Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Processos de Desenvolvimento de Software • Onde estamos? Introdução 4 Levantamento de Requisitos Análise Projeto Implementação Testes Manutenção • Como garantir que o software está de acordo com as especificações e atende às expectativas do cliente? – Através dos processos de Verificação e Validação (V & V); – Testes de software é uma das técnicas de V&V. – ‘ Motivação 5 Motivação 6 • Denominação dada aos processos que certificam se o software atende à especificação e à expectativas dos clientes/usuários. • Inicia com as revisões de requisitos, passa pelas revisões de projeto e inspeções de código até os testes do produto. Verificação e Validação 7 • Verificação ≠ Validação – Verificação: • Estamos construindo o produto correto? • Objetiva verificar se o software está de acordo com as especificações, ou seja, se atende aos requisitos funcionais e não-funcionais especificados. – Validação: • Estamos construindo o produto corretamente? • Objetiva assegurar que o software atenda às expectativas do cliente. Vai além da verificação de conformidade com a especificação. Verificação e Validação 8 • Objetivos principais: – Descobrir defeitos em um sistema; – Avaliar se o sistema é útil e usável ou não em uma situação operacional. • Isto NÃO significa dizer que o software está completamente livre de defeitos. Verificação e Validação 9 • As técnicas de verificação e validação podem ser estáticas ou dinâmicas. • Estáticas – Não é preciso executar o software em um computador. – Exemplos: • Inspeção de software; • Revisão por pares. – Analisam e verificam modelos do sistema como documento de requisitos, diagramas de análise e projeto, código-fonte do programa. Verificação e Validação 10 • As técnicas de verificação e validação podem ser estáticas ou dinâmicas. • Dinâmicas – É preciso executar o software com dados de teste. – Exemplo: • Testes. – Compreende examinar as saídas do software e o seu comportamento operacional. Verificação e Validação 11 • Inspeção de software e testes são complementares. Verificação e Validação 12 • Os processos de V & V e debugging, em geral, são intercalados. – À medida que os defeitos são descobertos , altera- se os programas para corrigir esses defeitos. – No entanto, V & V e debugging têm finalidades distintas: • V & V estabelece a existência de defeitos em um software; • Debugging é o processo que localiza e corrige esses defeitos. Verificação e Validação 13 • Processo de debugging. Verificação e Validação 14 • Processo de debugging – Em princípio, deve-se repetir todos os testes (teste de regressão) após cada reparo de defeitos; • Isso é muito caro!!! – O que pode ajudar? • Automatização dos testes; • Identificação de dependências entre os componentes do software e os seus testes; – Ou seja, rastreabilidade entre casos de teste e componentes do sistema; Verificação e Validação 15 • Inspeção de software – Processo de V & V estático; – Em geral, focaliza-se no código fonte, mas qualquer representação legível do software pode ser inspecionado • Exemplos: requisitos, modelos de projeto. – São frequentemente guiadas por checklists de erros e/ou heurísticas; – Para alguns erros e heurísticas é possível automatizar o processo de inspeção... Verificação e Validação 16 • Inspeção de software – Análise estática automatizada • Analisadores estáticos são ferramentas que analisam o código-fonte de um programa e detectam possíveis defeitos; • Objetiva chamar a atenção do inspetor de software para anomalias no programa, como por exemplo: – Uso de variáveis sem inicialização; – Variáveis não utilizadas; – Dentre outras. – Não substitui as inspeções, é complementar. Verificação e Validação 17 • Planejamento de V & V – Modelo V de desenvolvimento Verificação e Validação 18 Especificação de Requisitos Especificação de Sistema Projeto de Sistema Projeto Detalhado Teste de Aceitação Teste de Integração de Sistemas Testes de integração de subsistemas Código Unitário e de módulo, e teste Plano de Teste de Aceitação Plano de Teste de integração do sistema Plano de Teste de integração de subsistemas • O que é teste de software? – Técnica dinâmica de verificação e validação (V & V); – Compreende a execução de uma implementação do software com dados de teste; – Objetivo de verificar se as saídas e o comportamento operacional está conforme o especificado e necessário; – Considerada como a técnica principal de V & V. Verificação e Validação 19 • Meta dos Testes de Software – Convencer desenvolvedores e clientes do sistema que o software é bom o suficiente para entrar em operação. – Pode revelar a presença de defeitos, NÃO a ausência. Verificação e Validação 20 • Classificação - Dois tipos: – Teste de Validação • Objetiva mostrar que o software é o que o cliente deseja, que atende aos requisitos especificados por ele. – Teste de Defeitos • Objetiva mostrar defeitos no sistema. – Delimitação entre estes 2 tipos de teste não é rígida. Verificação e Validação 21 • Técnicas de Teste - Dois tipos: – Teste Caixa Preta (black box) • Também chamado de teste funcional; • Teste executado nas interfaces do software/componente; • Teste executado sem o conhecimento interno “da caixa”; – Sem conhecimento da estrutura lógica interna. • Testa que o software é operacional: – entradas são adequadamente aceitas e saídas são corretamente produzidas. Verificação e Validação 22 • Técnicas de Teste - Dois tipos: – Teste Caixa Branca (white box) • Também chamado de teste estrutural; • Teste executado com o conhecimento interno “da caixa”; – Com conhecimento dos detalhes procedimentais, caminhos lógicos, condições, laços. Verificação e Validação 23 • Processo de Teste em 02 estágios: – Teste de Componentes; • Teste de partes do sistema. – Teste de Sistema. • Teste do sistema como um todo. Verificação e Validação – Processo de Teste 24 Teste de Componentes Teste de Sistema Desenvolvedor Equipe de testes independente • Objetivos: – Demonstrar à equipe de desenvolvimento e ao cliente que o software atende aos requisitos; • Teste de validação – Descobrir falhas no software que apresenta comportamento incorreto, não desejável ou em não-conformidade com a especificação. • Teste de defeito Verificação e Validação – Processo de Teste 25 • Processo de Teste em 03 estágios: – Teste de Componentes • Teste de partes do sistema. – Teste de Sistema • Teste do sistema como um todo. – Teste de Aceitação • Teste com os dados fornecidos pelo cliente do sistema Verificação e Validação – Processo de Teste 26 Teste de Componentes Teste de Sistema Desenvolvedor Equipe de testes independente Teste de Aceitação Cliente • Teste de Componente: – Também conhecido como teste de unidade; – Objetiva descobrir defeitos por meio de testes em componentes individuais do software. – Componentes? • Funções, objetos ou componentes reusáveis. – Cada componente é testado independentemente; – Em geral, é responsabilidade do desenvolvedor; – Baseia-se no entendimento que os desenvolvedores têm de como o componentedeve funcionar. Verificação e Validação – Processo de Teste 27 • Teste de Componentes: – Teste de interface: • Testa se a interface do componente se comporta de acordo com a especificação; • Técnica: caixa preta. – Teste estrutural: • Casos de teste são gerados a partir do conhecimento da estrutura e implementação do software; • Técnica: caixa branca. Verificação e Validação – Processo de Teste 28 • Teste de Sistema – Testes realizados após a integração dos componentes; – Objetiva: • Detectar erros nas interações entre os componentes; • Verificar se o sistema atende aos requisitos funcionais e não- funcionais; – Em geral, é responsabilidade de uma equipe independente de testes; – Baseia-se em uma especificação escrita do sistema; – Em sistemas de grande porte... • ...podemos ter teste de subsistemas. Verificação e Validação – Processo de Teste 29 • Teste de Sistema: – Teste de integração: • A integração de dois ou mais componentes é testada a fim de detectar defeitos; • Pode envolver a realização de testes de regressão. • Testes de regressão são utilizados para verificar se as mudanças feitas em um programa não introduziram novos defeitos. – Teste de desempenho: • Teste de propriedades como desempenho e confiabilidade; • Objetiva assegurar que o sistema pode operar com a carga necessária. Verificação e Validação – Processo de Teste 30 • Teste de Aceitação: – Também chamado de teste de release; – Também chamado de teste alfa; – Estágio final do processo de teste; – Objetiva verificar se o sistema pode entrar em operação; – Testes são realizados com os dados fornecidos pelo cliente do sistema; – Pode detectar erros e omissões na definição dos requisitos do sistema. Verificação e Validação – Processo de Teste 31 • Outros tipos/níveis de teste: – Teste de usabilidade; – Teste de carga; – Teste de stress; – Teste de confiabilidade. Verificação e Validação – Processo de Teste 32 “Os testes podem somente mostrar a presença de erros, não a sua ausência” (Edsger Dijkstra) Verificação e Validação – Processo de Teste 33 Dúvidas ? 34 • SOMMERVILLE, I. Engenharia de Software. 8ª Edição. Editora Pearson, 2007. • PRESSMAN, R. S. Engenharia de Software. 6ª Edição. Editora McGraw Hill, 2006. Referências 35
Compartilhar