Você está na página 1de 26

Verificao e Validao

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 1

O processo V & V

Deve ser aplicado a cada estgio do


desenvolvimento de software

Vale tanto para verificao quanto validao

Tem dois objetivos principais:

Descobrir problemas em um sistema


Problema = sistema que no satisfaz sua especificao

Avaliar se o sistema til e usvel em uma situao


operacional

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 2

Objetivos de V& V

Verificao e validao devem estabelecer


confiana de que o software adequado ao
seu propsito
Isto NO significa completamente livre de
defeitos
Ao invs disso, deve ser bom o suficiente para
seu uso pretendido

Tipo de uso determinar o grau de confiana


necessrio

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 3

V & V esttica e dinmica

Inspees de software. Anlise de representaes


estticas do sistema com o objetivo de descobrir
problemas (verificao esttica)

Teste de software. Relacionado ao exerccio e


observao do comportamento do produto (verificao
dinmica)

Pode ser suplementado por um documento baseado em


ferramenta e anlise de cdigo

O sistema executado com dados de teste e seu


comportamento operacional observado

Outras tcnicas: anlise dinmica, prototipao,


entrevistas, cenrios
Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 4

V & V esttica e dinmica

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 5

Testes de Programas

Podem revelar a presena de defeitos, NO a


ausncia
Principal tcnica de validao para requisitos
no-funcionais

O software executado para ver como se comporta.

Devem ser usados em conjunto com a


verificao esttica para fornecer uma cobertura
mais completa de V&V

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 6

Tipos de teste

Teste de validao

Pretende mostrar que o software atende as


necessidades dos usurios

Um teste bem sucedido aquele que mostra que um


requisito foi adequadamente implementado

Teste de defeitos

Testes projetados para descobrir defeitos de sistema

Um teste de defeitos bem sucedido aquele que revela


a presena de falha em um sistema

Abordado no Captulo 23 do livro

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 7

Teste e Depurao

Testes de depurao e de defeitos so


processos distintos
Verificao e validao esto relacionados ao
estabelecimento da existncia de falhas em um
programa
Depurao est relacionado localizao e
reparao dessas falhas

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 8

O Modelo V de Desenvolvimento

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 9

A Estrutura de um Plano de Testes

Processo de teste
Rastreabilidade de requisitos
Itens testados
Cronograma de testes
Procedimentos de registro de testes
Requisitos de hardware e de software
Restries

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 10

Inspees de software

Exame de um artefao de desenvolvimento para


descobrir anomalias e defeitos

No requerem a execuo de um sistema

Tcnica de verificao
Feitas por uma equipe, em uma reunio formal
Podem e devem ser usadas antes da implementao

Podem ser aplicadas a qualquer artefato


Tm se mostado uma tcnica efetiva para descobrir
erros de programa

...according to statistics it will find up to 90% of the contained


errors, if done properly.
`(http://www.the-software-experts.de/e_dta-sw-test-inspection.htm)

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 11

Sucesso das inspees

Muitos defeitos diferentes podem ser


descobertos em uma nica inspeo

Em teste, um defeito pode mascarar um outro,


por isso, vrias execues so necessrias

Conhecimento sobre o domnio e sobre


programao aumentam a eficcia

Revisores tm alta probabilidade de j ter visto


os tipos de erros que normalmente surgem

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 12

Inspees e testes

Inspees e testes so complementares

Inspees => verificao

Testes => verificao e validao

Ambos devem ser usados durante o processo de V&V


As inspees podem verificar a conformidade com uma
especificao

No verificam a conformidade com os requisitos reais do


cliente!

As inspees no podem verificar caractersticas de


qualidade, tais como desempenho, usabilidade, etc.
Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 13

Inspees de Programas

Abordagem formalizada para revises de


artefatos
Voltadas explicitamente para deteco de falhas
(no correo)
Falhas podem ser erros lgicos (por exemplo,
uma varivel no iniciada) ou no-conformidade
com padres

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 14

Pr-condies para inspeo

Uma especificao precisa deve estar disponvel


Os membros da equipe devem estar familiarizados com
os padres organizacionais
O cdigo sintaticamente correto ou outras
representaes do sistema devem estar disponveis
Um checklist de erros deve ser preparado
A gerncia deve aceitar que a inspeo aumentar os
custos no incio do processo de software
A gerncia no deve usar inspees para avaliar pessoal

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 15

O processo de inspeo

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 16

Procedimento de inspeo

Viso geral do sistema apresentado para a equipe de


inspeo
Cdigo e documentos associados so previamente
distribudos para a equipe de inspeo
A inspeo ocorre e os erros descobertos so anotados

Alguns podem ser descobertos na anlise individual

Modificaes so feitas para reparar os erros


descobertos
Uma nova inspeo pode ou no ser necessria

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 17

Papis da inspeo

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 18

Checklists de Inspeo

Um checklist de erros comuns deve ser usado para


direcionar a inspeo
Checklists de erros so dependentes de linguagem de
programao

Refletem os erros caractersticos com maior probabilidade de


surgimento na linguagem

Exemplos de itens da checklist: inicializao de


variveis, terminao de laos, etc.
Inspees tambm podem executar o sistema, atravs
da anlise passo-a-passo de seu cdigo

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 19

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 20

Taxa de Inspeo

500 declaraes de cdigo-fonte por hora durante a


viso geral
125 declaraes de cdigo fonte por hora durante a
preparao individual
De 90 a 125 declaraes por hora podem ser
inspecionados durante a reunio de inspeo
A inspeo , portanto, um processo dispendioso
A inspeo de 500 linhas custa aproximadamente 40
homem-hora de esforo 2800 em valores da GrBretanha (UK)
Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 21

Anlise Esttica Automatizada

Processamento de cdigo fonte (ou bytecode)


Varre o texto do programa e tenta descobrir
condies potencialmente errneas

Tcnica de verificao

So um suplemento, mas no um substituto,


para as inspees
Podem ser usadas para aumentar a
compreenso sobre um programa

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 22

Verificaes de Anlise Esttica

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 23

Tipos de Anlise Esttica

Anlise de fluxo de controle. Verifica laos com


mltiplos pontos de sadas ou de entrada,
encontra cdigo inacessvel, etc.
Anlise de uso de dados. Detecta variveis no
iniciadas, variveis que so declaradas mas
nunca usadas, etc.
Anlise de interface. Verifica a consistncia das
declaraes de rotina e procedimentos e seus
usos

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 24

Tipos de Anlise Esttica

Anlise de caminho. Identifica caminhos atravs do


programa e estabelece as declaraes executadas
naquele caminho

Pode tambm verificar se certos predicados so


verdadeiros

Destaca as informaes para inspeo ou reviso de


cdigo

Outros tipos de anlises so possveis!


Limitaes: escalabilidade, completude, preciso,
excesso de informaes
Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 25

Uso de Anlise Esttica

Particularmente valiosa quando uma linguagem


tal como C, que tem tipagem fraca, usada

Muitos erros no so detectados pelo compilador

Em linguagens como Java, que tm verificao


de tipos forte, muitos erros so detectados
durante a compilao

Anlises mais sofisticadas ainda podem ser teis,


porm!

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 22

Slide 26