Buscar

8. Atividades em Processo de Desenvolvimento de Software - Testes

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

Continue navegando