olá na aula de hoje veremos os processos de verificação e validação também conhecidos como vv esses processos são essenciais para o desenvolvimento de software e podem ser executados de várias formas como exemplo de execução desses processos veremos na execução deles em uma empresa real de desenvolvimento de software [Música] o [Música] o teste não é a única forma de analisar um produto de software à procura de defeitos na verdade o teste é parte dos processos fundamentais na gênese software os processos de verificação e de validação esses processos são forma disciplinada de avaliar o produto de software
e controlar a qualidade dele para isso nesse processo é necessário analisar se os produtos de software satisfazem a especificação e as necessidades definidas mas note que o software não é único produto que pode ser analisado pelos processos de viver além dele pode-se analisar manuais e modelos criados durante o desenvolvimento ou até mesmo outros artefatos de software a forma de analisar o produto também varia de uma forma geral de 20 análise realizada na tv como estática ou dinâmica na análise estática não foi executar software mas a partir de análise desse tipo determinamos propriedades válidas para qualquer
execução do produto por exemplo revisão é uma forma de análise estática na análise dinâmica se executa o produto ou até mesmo a especificação dele os testes são as formas mais comuns mas não únicas de análise dinâmica uma escola é a diferença entre a verificação e validação muitas vezes os profissionais usam esses termos como sinônimos mas você verá que o objetivo de cada processo é bem diferente a verificação busca garantir os produtos e trabalhos selecionados cumprirão seus requisitos especificados esses requisitos especificados podem ser vistos software condições impostas para a atividade em geral se o conteúdo é
factível consistente correto e padrões práticas de convenções se definidos como requisitos é possível verificar praticamente qualquer artefato de software qualquer forma de revisão ou auditoria que analisa se o produto segue os requisitos especificados é uma forma de verificação mas a verificação limitada revisões e tutorias por exemplo na atividade de definição e análise de requisitos pode se usar técnicas de modo o checking usando linguagens como z de evento m e v m para verificar se os requisitos são factíveis estáveis e corretos no projeto pode se fazer uma avaliação arquitetural usando por exemplo o tanto que é
um método de análise da arquitetura de software na implementação técnicas como integração contínua e programação em paris também fazem um pouco de verificação da integração contínua ao integrar o software é naturalmente feita uma revisão do código existente na programação em paris o par naturalmente revisa o código está sendo gerado também é possível usar ferramentas de análise estática de código para analisar a qualidade dele naturalmente na atividade de testes se faz muita verificação mas além de verificar o software é possível por exemplo verificar se os testes são corretos com uma cobertura adequada isso também é a
verificação qualquer documento gerado pode ser verificado o manual por exemplo pode ser verificado para analisar se é condizente com o software diferente da verificação na validação se demonstra o produto o componente do produto com o uso pretendido quando colocado em seu ambiente desejado ou seja analisa se o produto atende às necessidades do sector vers mas como as necessidades são difíceis de definir em geral precisamos da participação direta dos seis rodadas para realizar a avaliação ainda assim poderemos validar vários produtos de software como manuais materiais de treinamento interface com o usuário modelos um próprio software assim
como na verificação avaliação pode ser realizada em várias atividades desenvolvimento de software na definição e análise de requisitos pode se criar protótipos simulações que são apresentados pelo usuário ou mesmo fazer discussões com o usuário no projeto é um pouco mais difícil fazer avaliações mas nada impede que se discuta com os usuários o projeto de software o que é feito de certa forma pelo domínio de organizarem durante a implementação pode fazer demonstrações do que está sendo implementado no processo de teste também se faz validação a uns executar o teste de aceitação nesse teste o cliente do
usuário e outros efeitos polders aprova um software e naturalmente válida nele a entrada contínua com internações curtas também é de certa forma uma maneira de fazer validação o software entregue com freqüência o que permite que os usuários possam usar o software o quanto antes a verificação ea validação processo com objetivos bem diferentes na verificação se analisa se o software construído está certo na validação é analisado se está sendo construído software certo eles tratam da diferença entre a especificação e necessidades por mais que o desenvolvedor atenda a especificação é possível que as necessidades dos stakeholders não
sejam atendidas por isso precisamos fazer verificação e validação o ideal é que se faça muita verificação e validação quanto mais melhor mais chance de se atender a especificação e satisfazer as necessidades dos tem poucos [Música] o processo de software não tem uma forma correta única de fazer verificação e validação cabelo engenheiro de processo conhecer a cultura da empresa os detalhes do processo detalhes do projeto para escolher as melhores formas de fazer viver para entender melhor os processos vão conhecer a cobra tecnologia é uma empresa que desenvolve software web mobile de forma ágil [Música] estou aqui
com vinícius que é um dos fundadores da cobra tecnologia obrigado vinícius por me receber ela processa é obrigado a me convidar a entrevista é como se sabe já foi aluno também é uma antiga grande alegria estar aqui hoje espero poder colaborar também os novos alunos com essa vídeo aula eu sei que qualidade de software algo fundamental pra vocês aqui na cordas então você podia me explicar um pouco como funciona o processo de verificação legal atingir uma boa qualidade utiliza diversos tipos de práticas mudança conseguiu falar é o código civil que significa isso é a revisão
de código e se isso significa que a pessoa que desenvolveu uma funcionalidade pega o código que ela fez submete a uma plataforma para outros membros do time revisarem esse é um ponto importante não é uma pessoa específica que revisa então vários membros do time porque acredita que com esse tipo de iniciativa a não sair prova em uma boa hora colaboratividade e uma postura também e cujo no chip a todo mundo do time conhecido do código segundo o projeto e ele acredita que com isso futuramente vai ser um grande vai fornecer um grande valor projeto como
um todo uma outra parte também que a gente considera importante é utilizar testes de automatizados em diversos níveis desde o nível mais baixo desta taxa unitário quente desta classe métodos funções que fazem que deveria ser feito no código até teste mais digamos ao estatuto mais alto nível como integração o caixa preta aqui a gente tem um robô que de fato visita à plataforma que a gente desenvolve testa clicar no botão e ver se a tela funciona como deveria funcionar junto com isso existe um outro tipo de prática que lembra um pouco o código civil mas
de uma maneira automatizada que eu quem chama de análise tática do código então depende da linguagem a ferramenta é diferente mas em todas as linguagens a gente procura tirar algum tipo de ferramenta que ele automaticamente o código e cada um escreve e confirma que ele está de acordo com os padrões quais padrões isso é uma coisa que cada time tem de definir então qual não só coisa de estilo como e digitação tamanho de métodos homem de nome de fundir função etc mas essas ferramentas são bem interessantes porque ela ajuda a detectar alguns could smell se
isto é algumas partes potencialmente ruins no código e já avisa o desenvolvedor olha pode ter um problema aqui é onde vai dar uma olhada nisso uma última prática que acho que é interessante comenta também é que pega bastante também no ágio é problema aqui é a gente fala que é 99% do tempo do desenvolvedor e gás pensando em não ditando então até pra conseguir agilizar um pouco isso a gente acredita que alguns momentos específicos faz muito sentido e é bem relevante mais uma pessoa pensar na nossa função junto e depois alguém vai lá e programa
atende e quando finalmente se vocês usam para isso vem para cada tipo de prática existe um tipo de ferramenta é especificamente no beach por exemplo a gente consegue trabalhar talvez final o código e junto com ele uma plataforma com um kit lábio beach rugby associado como ferramenta de código do beach mas consegue submeter todo esse código que acordou e viu eo pessoal consegue lá e comentar uma lei específica revisava de conversões e conseguir cada vez mais prazer um código melhor para testes depende da linguagem então no caso do ambiente temos alguns fêmeas algumas bibliotecas como
o caso do ipec me teste analistas de que é feita por um uma biblioteca chama robocop que é o policial do código e no javascript quem também estava no script temas como jasmine que permite uma delas ante taxa de fazer tudo de integração até unitário e validação como que vocês fazem avaliação por aqui esse processo de validação é uma parte bem importante no software porque a gente faz softwares o código tem que cumprir o que o cliente quer e foi amor de negócio e para conseguir garante isso a gente tem todo um processo e diversos
espaços ao longo dele começando no início mesmo então mas a partir da especificação por exemplo a gente além de obviamente escrever o que precisa acontecer a afetar bastante com o conceito de vários frames são desenhos e como é que ela vai ficar no final quando o software foi de fato implementado é isso é bom porque eventualmente faz com que o cliente veja uma maneira bem antecipado o resultado final eo trabalho é mínimo porque comparativamente com desenvolver de fato a funcionalidade frame fazer um desenho é menor então isso permite que a gente vale alguma coisa bem
antecipadamente e taxa de fato é que nós estamos pensando em fazer faz algum sentido na parte da especificação tenha especificado o cliente não aceitar aceitado tudo o que a gente combinou as partes por isso nem no próprio desenvolvimento a gente faz por interações e pode ser uma semana pode ser duas semanas mas nesse ciclo de interação o próprio time também cada funcionalidade que ele desenvolve submete um ambiente de teste interno da cola e nesse ambiente todos os membros do time também tem acesso e qualquer pessoa pode lá e testar se de fato a funcionalidade foi
desenvolvida entrega valor e faz o que deveria ser feito também como cliente gostaria depois disso quando finalize a interação a gente fecha o pacote com todas essas funcionalidades esse pacote vai para um outro ambiente que chama de uma oração homologação ambiente que o próprio cliente vai acessar vai está vai verificar se o sistema faz o que ele queria e vai dar feedbacks tudo certo aí sim a gente consegue pegar todo esse pacote de funcionalidades e jogar nome reprodução de fato para ser utilizado em um início muito obrigado pela entrevista foi um prazer ouvir suas informações
a verificação e validação obrigado pela oportunidade e espero ter ajudado também é interessante notar que algumas práticas não envolvem só verificação e validação a revisão de código por exemplo envolve também encontra diversão que o programa é uma prática de desenvolvimento mas claro cada empresa e cada projeto é uma forma diferente de fazer ver o importante é que elas sejam feitos com alta freqüência para melhorar a qualidade de software e nas próximas aulas veremos mais sobre teste que a principal forma de viver natal [Música] o [Música] [Música]