Académique Documents
Professionnel Documents
Culture Documents
Engenharia de Software II
Engineering Software Ian Somerville Ed. 2007
Validao e Verificao
Teste de Software
Marcos Francisconi
Abril de 2011
- Teste de software.
Envolve a execuo como a implementao do software com dados de teste. Voc examina
os resultados do software e seu comportamento Operacional para verificar que ele est
executando, conforme a necessidade. Teste uma tcnica dinmica de verificao e
validao.
Apesar de inspees de software serem agora amplamente utilizados, o teste do programa
ser sempre, a verificao do software e tcnica de validao. Testar, envolve o uso do
programa, utilizando dados reais, processados pelo programa. Voc descobre os defeitos do
programa ou insuficincias, examinando as sadas do programa, procura de anomalias.
Existem dois tipos de testes que podem ser utilizados em diferentes fases do processo de
software:
1 - teste de validao. Pretende mostrar que o software o que o cliente quer que ele
atenda os requisitos. Como parte do teste de validao, voc pode utilizar testes estatsticos
para testar o desempenho dos programas e confiabilidade, e verificar como ele funciona em
condies operacionais.
2
Teste de validao:
Pretende mostrar que o software atende aos seus requisitos;
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 reve a presena de defeitos em um sistema.
Teste e debugging
Teste e debugging e de defeitos so processos distintos.Verificao e validao est relacionada
ao estabelecimento da existncia de defeitos em um programa.Debugging est relacionado
localizao e repararao desses defeitos.O debugging envolve a formulao de uma hiptese
sobre o comportamento do programa e o teste dessas hipteses para encontrar o defeito de
sistema.
Inspees de software
Envolvem pessoas que examinam uma representao original com o objetivo de descobrir
anomalias e defeitos.Inspees no requerem a execuo de um sistema, por isso, podem ser
usadas antes da implementao.Podem ser aplicadas em qualquer representao do sistema
(requisitos, projeto, dados de configurao Tm se mostrado uma tcnica efetiva para descobrir
erros de programa.
dados de teste, etc.).
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. Domnio de reuso e
conhecimento de programao de modo que os revisores tm maior probabilidade de j terem
visto os tipos de erros que normalmente surgem.
Inspees e testes
Inspees e testes so complementares, e no tcnicas de verificao opostas. Ambos devem ser
usados durante o processo de V & V. Ass inspees podem verificar a conformidade com uma
especificao, mas no a conformidade com os requisitos reais do cliente. As inspees no
podem verificar caractersticas no funcionais, tais como desempenho, usabilidade, etc.
Inspees de programa
Abordagem formalizada para revises de documentos. Voltadas explicitamente para deteco de
defeitos (no correo). Defeitos podem ser erros lgicos, anomalias no cdigo que poderiam
indicar uma condio errnea (por exemplo, uma varivel no iniciada) ou no conformidade com
padres.
Apesar do sucesso das inspeces, que provou ser difcil a introduo de inspees formais em
muitas organizaes de desenvolvimento de software.
Os engenheiros de software com experincia em programa de testes s vezes so relutantes em
aceitar que as inspees podem ser mais eficazes para deteco de defeitos de testes.
Os gerentes so suspeito porque as inspees requerem custos adicionais durante a concepo e
desenvolvimento. Eles no desejam ter mais risco ainda, de que no haver nenhum programa
de testes correspondentes ao oramento. No h dvida de que as inspeces "front-load de
software V & V" custam e resultam em reduo de custos somente aps as equipes de
desenvolvimento, aplicarem a experincia no seu uso. Alm disso, existem os problemas prticos
da organizao de inspeces: Inspees precisam de tempo para organizar e parece atrasar o
processo de desenvolvimento. difcil convencer um gerente duramente pressionado que esse
tempo pode ser feito mais tarde, porque menos tempo ser gasto na depurao do programa.
Abaixo segue um esquema que representa as principais etapas do processo de inspeo do
codigo-font.
Acontecem frequentemente falhas falhas de so detectadas pela tcnica de inspeo do codigofonte, abixo segue uma tabela exemplificando as pricipais.:
Classe de defeitos
Defeitos de controle
Checagem de inspeo
Todas as variveis do programa so iniciadas antes de seu uso?
Todas as constantes foram denominadas
O limite superior de vetores deve ser igual ao tamanho do vetor ou ao
tamanho 1?
Se as strings de caracteres so utilizadas, um delimitador
explicitamente designado?
Existe alguma possibilidade de overflow de buffer?
Para cada declarao condicional, a condio est correta?
Cada lao est certo para terminar?
Defeitos de
entrada/sada
Defeitos de interface
Defeitos de
Gerenciamento de
armazenamento
Defeitos de
gerenciamento de
excees
Defeitos em dados
Defeitos de controle
Defeitos de
entrada/sada
Defeitos de interface
Ponteiros no designados
Aritmtica de ponteiro
Somente testes exaustivos podem mostrar que um programa est livre de defeitos. Contudo,
testes exaustivos so impossveis.As polticas de teste definem a abordagem a ser usada na
seleo de testes de sistema:
Todas as funes acessadas por meio de menus devem ser testadas, as combinaes de funes
acessadas por meio dos mesmos menus devem ser testadas, onde as entradas de usurio so
fornecidas, todas as funes devem ser testadas com entradas corretas e incorretas.
Teste de Sistema
Envolve a integrao de dois ou mais componentes para criar um sistema ou subsistema. Pode
envolver o teste de um incremento para ser entregue ao cliente. Duas fases:
Teste de integrao a equipe de teste tem acesso ao cdigo fonte do sistema e o sistema
testado medida que os componentes so integrados.
Teste de releases a equipe de teste testa o sistema completo a ser entregue como uma
caixa-preta.
Diretrizes de teste
Diretrizes so recomendaes para a equipe de teste para auxili-los a escolher os testes que
revelaro defeitos no sistema.
Escolher entradas que forcem o sistema a gerar todas as mensagens de erro;
Projetar entradas que causem overflow dos buffers;
Repetir a mesma entrada ou srie de entradas vrias vezes;
Forar a gerao de sadas invlidas;
Forar resultados de clculo a serem muito grandes ou muito pequenos.
Teste de desempenho
Parte do teste de releases pode envolver teste de propriedades emergentes de um sistema, tais
como desempenho e confiabilidade. Testes de desempenho envolvem, geralmente, o
planejamento de uma srie de testes onde a carga constantemente aumentada at que o
desempenho do sistema se torne inaceitvel.
Teste de estresse
So exerccios do sistema alm de sua carga mxima de projeto. O estresse de um sistema
causa, freqentemente, o surgimento de defeitos ele testa o comportamento de falha, pois os
sistemas no devem falhar catastroficamente. O teste de estresse verifica uma perda inaceitvel
de servio ou de dados e ainda particularmente relevante para sistemas distribudos que podem
exibir degradao severa quando uma rede se torna sobrecarregada.
Teste de componentes
Teste de componente ou unitrio o processo de teste de componentes individuais isolados e
um processo de teste de defeitos. Os componentes podem ser:
Funes individuais ou mtodos de um objeto;