Você está na página 1de 29

Validao e Verificao de Software

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

Expectativas dos usurios


Expectativas crescentes a partir da dcada de 90

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

Teste de software: Verificao Dinmica


Executar implementao do software com dados de teste Comportamento operacional/desempenho e confiabilidade so observados
6

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

No existe delimitador entre os tipos de teste.

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

Aps a correo: revalidar o sistema


Testes de regresso
9

Verificao e Validao
Processo de Debugging
Casos de teste

Resultados dos testes

Especificao

Localizar erros

Projetar reparo de erros

Reparar erros

Testar programa novamente

10

Planejamento de Verificao e Validao


Sucesso na inspeo e nos testes
Planos de Teste
Documentos que evoluem durante o processo de desenvolvimento Estabelecer padres para o processo de teste Alocar recursos (hardware/software/pessoal) Estabelecer cronogramas

11

Inspees de Software
Deteco de defeitos de programa
Identificam entre 60 e 90% dos erros de programa

Processo formal realizado em equipe


Autor:
Responsvel pelo artefato* assim como por sua correo

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

Verificao e mtodos formais


Representaes matemticas de software para anlise de especificao Mais utilizada em softwares crticos devido ao investimento necessrio Modelo de processo Cleanroom: software com defeito zero
16

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)

Sadas esperadas do sistema


Precisam da percepo do indivduo que compreende o sistema

O que est sendo testado

Os testes precisam ser baseados em um subconjunto de casos possveis de teste


Testes exaustivos no so possveis
19

Teste de Software
Modelo de processo de testes de software
Relatrios de teste

Casos de teste

Dados de teste

Resultados de teste

Projetar casos de teste

Preparar dados de teste

Executar programa com dados de teste

Comparar resultados para os casos 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

Teste de componente (de unidade)


Desenvolvedor do software Entendimento intuitivo de como o software deve operar Envolve o teste de componentes individuais 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 desempenho/Teste de carga/Teste de estresse


Estressar o sistema/Limites do sistema Detectar erros em situaes atpicas
22

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

Mau entendimento da interface


Um componente chamado perde a especificao da interface do componente chamado e faz suposies sobre seu comportamento

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

Você também pode gostar