Escolar Documentos
Profissional Documentos
Cultura Documentos
Informtica Industrial
Roteiro
Verificao e Validao (V&V) Conceitos bsicos Processo de V&V Inspees de Software Anlise Esttica Automatizada Verificao e Mtodos Formais Teste de Software Teste de Sistema Teste de Componentes Projeto de Casos de Teste
2
Verificao e Validao
Objetivo
Assegurar que o software cumpra as suas especificaes e atenda s necessidades dos usurio/cliente
Quando acontece
Ao longo do processo de desenvolvimento
Requisitos Inspees de Cdigo Teste de Produto
3
Verificao e Validao
De acordo com Boehm (1979)
Validao
Estamos construindo o produto correto? O sistema atende s expectativas do cliente/usurio
Verificao
Estamos construindo o produto corretamente? O software est de acordo com suas especificaes
As especificaes do software nem sempre esto de acordo com as expectativas dos usurios
4
Verificao e Validao
Processo de Verificao e Validao de Software
Estabelecer a confiana de que o sistema est adequado ao seu propsito
Funo do software
Quo crtico o software
Ambiente de mercado
Concorrentes/Cronograma/Preo
5
Verificao e Validao
Processo de Verificao e Validao de Software
Deteco de erros Abordagens complementares
Inspeo de software: Verificao Esttica
Verificao: requisitos, diagramas, cdigo fonte Restries: utilidade operacional, desempenho, confiabilidade
Verificao e Validao
Teste de software
Teste de validao
O software o que o cliente deseja
Ex. Testes de aceitao
Teste de defeitos
Revelar defeitos no sistema de acordo com a sua especificao
Verificao e Validao
Inspeo e Testes de Software
Verificao e Validao
Atividades intercaladas
Processo de Verificao e Validao de Software
Estabelecer a existncia de defeitos no software
Debugging (Depurao)
Localiza e corrige os defeitos encontrados
Erros comuns de programadores (incremento de contador) Erros tpicos da LP (direcionamento de ponteiro em C) Rastrear o programa Ferramentas de debugging interativas: permite acompanhar a execuo passo a passo
Verificao e Validao
Processo de Debugging
Casos de teste
Especificao
Localizar erros
Reparar erros
10
11
Inspees de Software
Deteco de defeitos de programa
Identificam entre 60 e 90% dos erros de programa
Inspetor:
Encontra erros, omisses e inconsistncias
Leitor:
Apresenta o artefato em uma reunio de inspeo
Relator:
Registra os resultados da reunio de inspeo
Moderador/Moderador-chefe:
Gerencia/aprimora o processo de inspeo
*cdigo ou documentao
12
Inspees de Software
Pr-condies
Especificao precisa disponvel Equipe familiarizada com o padres organizacionais Verso atualizada e completa do cdigo (complilvel) disponvel
13
Inspees de Software
Planejamento Viso Geral Preparao Individual Reunio de Inspeo Retrabalho
Acompanhamento
1. O moderador planeja a inspeo: alocao de pessoal e de recursos necessrios 2. O autor apresenta o programa explicando o que o mesmo se prope a fazer 3. Cada membro da equipe estuda o programa procurando por erros 4. Os erros so apresentados pelo leitor e registrados pelo relator 5. O autor corrige os problemas identificados 6. O moderador chefe decide sobre a necessidade de conduzir outra inspeo
Checklist pode auxiliar no processo de inspeo de software Inspees so aprimoradas com a experincia da equipe
14
Inspees de Software
15
Inspees de Software
Anlise esttica automatizada
Ferramentas que auxiliam, de forma automatizada, a inspeo de software
Teste de Software
Metas
Demonstrar ao desenvolvedor e ao cliente que o software atente aos requisitos
Teste de validao
Teste bem sucedido: o sistema funciona corretamente
Descobrir falhas ou defeitos no software que apresenta comportamento incorreto, no desejvel ou no conformidade com a sua especificao
Teste de defeito
Teste bem sucedido: expe um defeito que causa funcionamento incorreto do sistema
17
Teste de Software
Os testes podem apenas mostrar a presena de erros, no sua ausncia, Dijkstra, et al. 1972
O software bom o suficiente para uso operacional
Confiabilidade de software
18
Teste de Software
Casos de teste
Entradas para o teste
Dados de teste podem ser automatizados (gerados automaticamente)
Teste de Software
Modelo de processo de testes de software
Relatrios de teste
Casos de teste
Dados de teste
Resultados de teste
20
Teste de Software
Classificao inicial
Teste de sistema
Equipe de teste independente Baseado em uma especificao escrita do sistema Envolve a integrao de dois ou mais componentes do sistema
21
Teste de Software
Teste de sistema Teste de integrao
Acesso ao cdigo fonte: descoberta de defeitos Problema Origem do problema Componentes depurados
Teste de releases
Verso do sistema testada Valida se o sistema atende aos requisitos: funcionalidade, desempenho e confiabilidade Teste caixa-preta/Teste funcional Problemas repassados para a equipe de desenvolvimento (depurao/correo)
Teste de Software
Teste de integrao Incremental
Teste de regresso
A T1 T1 A T2 B C T1 T2 T3 C D T4 T5
23
T1
T2
T3
B
T3
T4
Teste de Software
Teste de release
24
Teste de Software
Teste de release Escolher entradas que forcem o sistema a gerar todas as mensagens de erros Projetar entradas que causem overflow dos buffers Repetir a mesma entrada ou srie de entradas vrias vezes Forar a gerao de sadas invlidas Forar os resultados de clculos a serem muito grandes ou muito pequenos Casos de teste baseado em cenrios Cenrios mais provveis Cenrios que considerem entradas e sadas invlidas Casos de uso e diagrama de seqncia podem ser teis
25
Teste de Software
Teste de componentes
Componentes a serem testados
Funes e mtodos individuais de um objeto Classes de objetos com vrios atributos e mtodos Componentes compostos que constituem diferentes objetos ou funes
Interface bem definida para acesso s funcionalidades
Teste de interface
Desenvolvimento OO Desenvolvimento baseado em componentes
26
Teste de Software
Teste de componentes Teste de interface
Mau uso de interface
Um componente chama outro e faz mau uso de usa interface
Erros de timing
Sistemas de tempo real que usam memria compartilhada
27
Teste de Software
Projeto de casos de teste (CT)
Criar um conjunto de casos de teste eficazes para descobrir defeitos do programa e demonstrar que o sistema atende aos requisitos Selecionar caractersticas ou componentes a serem testados Selecione as entradas Documente as sadas Abordagens Teste baseado em requisitos: testar os requisitos Teste de parties: parties de entradas e de sadas (faixa de valores com caractersticas semelhantes comportamentos semelhantes) Teste estrutural/caixa-branca: o conhecimento sobre a estrutura do programa auxilia na definio dos CTs que exercitem todas as partes do programa
Teste de caminho (teste de mtodo)
28
Bibliografia
Sommerville, Ian. Engenharia de Software - 8 Edio 2007 Pressman, Roger s. Engenharia de Software 1995