Vous êtes sur la page 1sur 15

Engenharia de Software II

Aula 6

http://www.ic.uff.br/~bianca/engsoft2/
Aula 6 - 10/05/2006 1

Ementa
Processos de desenvolvimento de software Estratgias e tcnicas de teste de software (Caps. 13 e 14 do Pressman) Mtricas para software Gesto de projetos de software: conceitos, mtricas, estimativas, cronogramao, gesto de risco, gesto de qualidade e gesto de modificaes Reengenharia e engenharia reversa
Aula 6 - 10/05/2006 2

Estratgias de teste de software


Software testado para se descobrir erros de projeto e construo. Uma estratgia de teste de software fornece um roteiro que deve responder a questes do tipo:
Quais os passos a serem conduzidos como parte do teste? Quando os passos so planejados e executados? O programa deve ser testado como um todo ou em partes? Testes que j foram conduzidos devem ser reexecutados quando o software modificado? Quando o cliente deve ser envolvido?
Aula 6 - 10/05/2006 3

Caractersticas genricas das estratgias de teste


Para realizar um teste efetivo, uma equipe de software deve conduzir revises tcnicas formais.
Com isso, muitos erros so eliminados antes do incio do teste.

O teste comea no nvel de componente e prossegue para fora, em direo integrao de todo o sistema. Diferentes tcnicas so adequadas em diferentes momentos. O teste conduzido pelo desenvolvedor do software ou (para projetos grandes) um grupo de teste independente. O progresso deve ser mensurvel.
Aula 6 - 10/05/2006 4

Verificao e Validao
O teste somente um elemento de um conceito mais amplo da engenharia de software, conhecido como Verificao e Validao (V&V). Verificao = Estamos construindo o produto corretamente? Validao = Estamos construindo o produto certo? Outras atividades so necessrias para V&V como as revises tcnicas e formais, auditoria de qualidade e configurao, monitoramento de desempenho, etc.
O teste deve ser o ltimo recurso para avaliar a qualidade.

Existe um debate se o teste s fornece verificao ou se tambm pode fornecer validao.


Aula 6 - 10/05/2006 5

Organizao do Teste de Software


Conflito de interesses
O desenvolvedor tem interesse em demonstrar que o programa est livre de erros e que funciona de acordo com os requisitos. Assim, o desenvolvedor projeta e executa testes que demonstram que o programa funciona, em vez de descobrir erros. Um grupo de teste independente no tem esse conflito.

Concepes equivocadas
Os desenvolvedores no devem fazer nenhum teste. O grupo de teste independente (ITG) deve se envolver com o projeto somente quando os passos de teste esto para comear.

Organizao recomendada
O desenvolvedor testa as unidades individuais e faz testes de integrao at a arquitetura do software estar completa. Depois, o ITG trabalha junto com o desenvolvedor para garantir que testes rigorosos sero conduzidos.
Aula 6 - 10/05/2006 6

Uma Estratgia Global para Arquiteturas Convencionais


1.

Teste de unidade
Focaliza cada componente individualmente, garantido que funciona. Faz uso intensivo de tcnicas que exercitam caminhos especficos na estrutura de controle.

2.

Teste de integrao
Focaliza o pacote de software completo e trata da verificao do programa como um todo. Faz uso de tcnicas de projeto de casos de teste que enfocam as entradas e sadas, alm de exercitar caminhos especficos.

3.

Teste de validao
Critrios de avaliao estabelecidos durante a anlise de requisitos so avaliados.

4.

Teste de sistema
Testa a combinao do software com outros elementos do sistema (como hardware, pessoal e bancos de dados). Verifica se a funo/desempenho global do sistema alcanada.
Aula 6 - 10/05/2006 7

Uma Estratgia Global para Arquiteturas Orientada a Objeto


idntica em filosofia estratgia para arquiteturas convencionais, mas difere na abordagem.
O menor elemento testado uma classe ou pacote de classes que colaboram.
Abrange atributos e operaes e implica comunicao e colaborao.

medida que as classes so integradas, uma srie de testes feita para descobrir erros devido a comunicao e colaborao entre classes.
Aula 6 - 10/05/2006 8

Critrios para Completamento do Teste


Quando devemos terminar o teste? No h uma resposta definitiva, pois nunca podemos garantir com 100% de certeza que no h erros. Algumas respostas cnicas:
O teste nunca acaba, a tarefa passa do engenheiro de software para o cliente. O teste deve acabar quando o tempo ou o dinheiro acabarem.

Respostas baseadas em critrios estatsticos:


Coletando mtricas e usando modelagem estatstica e teoria da confiabilidade de software, podem ser desenvolvidos modelos de falha de software. Os modelos estatsticos permitem dizer, por exemplo: Com 95% de confiana, a probabilidade de mil horas de operao de CPU livre de falhas de 0,995.
Aula 6 - 10/05/2006 9

Diretrizes Estratgicas I
Especifique os requisitos do produto de um modo quantificvel muito antes de testar.
Isso inclui caractersticas como portabilidade e usabilidade.

Enuncie explicitamente os objetivos do teste.


A cobertura, o tempo mdio entre falhas, a densidade restante de defeitos, o nmero de horas de trabalho por teste, etc.

Entenda os usurios de software e desenvolva um perfil para cada categoria.


Focaliza o teste no uso real do produto.

Desenvolva um plano de teste que enfatize um ciclo rpido (2% do esforo do projeto).
Gera uma realimentao rpida para o projeto.
Aula 6 - 10/05/2006 10

Diretrizes Estratgicas II
Construir software robusto.
O software deve ser capaz de auto-diagnosticar certas classes de erro. O projeto deve acomodar automao de teste e teste de regresso.

Usar revises tcnicas formais como filtro.


Reduzem a quantidade de testes necessria para produzir software de alta qualidade.

Conduzir revises tcnicas formais para avaliar a estratgia de teste.


Podem descobrir inconsistncias, omisses e erros na abordagem de teste.

Desenvolver uma abordagem de aperfeioamento contnuo para o teste.


Aula 6 - 10/05/2006 11

Teste de Unidade
Focaliza na menor unidade de projeto do software: o componente ou mdulo. Pode ser conduzido em paralelo para os diversos componentes. Caminhos de controle importantes so testados para descobrir erros dentro dos limites do mdulo. A complexidade dos testes limitada pelo escopo restrito.
Aula 6 - 10/05/2006 12

Consideraes do Teste de Unidade


Teste de Interface
Garante que a informao flui adequadamente pra dentro e para fora da unidade.

Teste das Estruturas de Dados


Garante que os dados armazenados temporariamente mantenham sua integridade durante todos os passos da execuo.

Teste das Condies-Limite


Garante que o mdulo opere adequadamente nos limiares estabelecidos para limitar ou restringir o processamento.

Teste de Caminhos Independentes Teste de Caminhos de Manipulao de Erros.


Condies de erros so antecipadas e caminhos so estabelecidos para redirecionar ou claramente terminar o processamento.

Aula 6 - 10/05/2006

13

Erros comumente encontrados nos testes de unidade I


Erros devidos a clculos errados
Precedncia aritmtica errada Operaes em modo misto Inicializao incorreta Falta de preciso Representao incorreta de uma expresso simblica

Erros devidos a comparaes erradas


Comparao de tipos de dados diferentes Operadores ou precedncia lgica incorretos Expectativa de igualdade quando erro de preciso torna a igualdade improvvel Comparao incorreta de variveis Terminao de ciclo inadequada ou inexistente Variveis de ciclo inadequadamente modificadas
Aula 6 - 10/05/2006 14

Erros comumente encontrados nos testes de unidade II


Erros na manipulao de erros
A descrio do erro ininteligvel O erro mencionado no corresponde ao erro encontrado A condio de erro provoca a interveno do sistema antes da manipulao do erro A descrio do erro no fornece informao suficiente para manipular o erro
Aula 6 - 10/05/2006 15

Vous aimerez peut-être aussi