Você está na página 1de 3

Mas o que são testes de software ?

"O teste consiste em executar o programa com a intenção de encontrar


erros (bugs)". Myers, 1979
Dentre os principais objetivos do processo de teste temos: (Beizer, 90)
• foco na prevenção de erros (como outras fases da garantia da qualidade de
software);
• descobrir sintomas causados por erros;
• fornecer diagnósticos claros para que os erros sejam facilmente corrigidos.
Naturalmente o assunto não é tão simples assim pois :
• erros nem sempre são óbvios;
• erros diferentes podem ter a mesma manifestação;
• saber quem um programa não esta correto não necessariamente é saber como
corrigir o erro.
Antes de continuar deve ficar bem claro que teste e depuração são conceitos
diferentes.
Objetivos do teste : mostrar que o software tem erros.
Objetivos da depuração : encontrar a causa do erro detectado no teste, e projetar e
implementar as modificações no programa para correção do erro.
Para poder realizar testes com eficácia é necessário definir um processo de teste de
software. Podemos seguir as seguintes etapas:
1. Definir os processos
2. Medir os processos
3. Controlar os processos (garantir que a variabilidade é estável e os resultados
previsíveis)
4. Melhorar os processos
Os principais tipos de testes com processos definidos são :
Teste Estrutural (Caixa Branca) - são testados os caminhos lógicos através do software,
fornecendo casos de teste que põem a prova conjuntos específicos de condições e/ou
garante que todos os caminhos independentes dentro de um módulo tenham sido
exercitados pelo menos uma vez.
Executa todas as decisões lógicas para valores falsos ou verdadeiros
Executa todos os laços em suas fronteiras
Exercita as estruturas de dados internas
Teste funcional (caixa preta): são usados para demonstrar que as funções dos softwares
são operacionais, que a entrada é adequadamente aceita e a saída é corretamente
produzida; que a integridade das informações externas é mantida.
Atividade complementar aos testes de caixa branca, com a finalidade de descobrir
tipos/classes de erros.
Procura descobrir erro em:
funções incorretas ou ausentes;
erros de interface;
erros nas estruturas de dados ou n
acesso a bancos de dados externos;
erros de desempenho;
erro de inicialização e término
Baseada em erros: consiste em incluir propositalmente algum erro no programa e
observar o comportamento do programa com erro, comparando-o com o comportamento
do programa original.

Teste de Unidade
• Deve ser escrito pelo mesmo programador que desenvolveu o código a ser
testado.
• Serve como documentação do sistema
• Essencial para análise de desempenho
Teste de Sistema :
• Comparar o sistema com seus objetivos originais
• Enfatizar a análise do comportamento da estrutura hierárquica de chamadas de
módulos
• Fase mais complexa, devido à quantidade de informações envolvidas
Teste de Regressão
• Teste necessário para assegurar que modificações no programa não causaram
novos erros
• baseado em arquivo de 'log'
Teste de Aceitação
• A validação é bem sucedida quando o software funciona de uma maneira
razoavelmente esperada pelo cliente . Pressman , 1995
• Expectativas dos clientes documentadas
• Uso da documentação do usuário
Trazendo o assunto para um nível mais prático podemos usar as seguintes técnicas
básicas para efetuar testes em software:

- Teste o código em seus limites;


Para cada pequeno trecho de código (um laço, ou if por exemplo) verifique o seu bom
funcionamento;
Tente ume entrada vazia, um único item, um vetor cheio, etc.

- Teste de pré e pós condições;


Verificar certas propriedades antes e depois de trechos de código;

- Programe defensivamente;

- Sempre verificar se ocorreram erros ao abrir, ler, escrever e principalmente fechar


arquivos;

- Use os códigos de erro;

- Sempre tratar as possíveis exceções;

- Teste incrementalmente
Durante a construção do sistema;
Após testar dois pacotes independentemente teste se eles funcionam juntos;
- Teste primeiro partes simples
Tenha certeza que partes básicas funcionam antes de prosseguir;
Testes simples encontram erros simples;
- Conheça as saídas esperadas
Conheça a resposta certa;
Para programas mais complexos valide a saída com exemplos conhecidos;
Compiladores - arquivos de teste;
Numéricos - exemplos conhecidos, características;
Gráficos - exemplos, não confie apenas nos seus olhos;
- Testar com grandes quantidades de dados
Gerados automaticamente;
Erros comuns:
Overflow nos buffers de entrada, vetores e contadores;
- Não continue a implementação de novas características se já foram encontrados
erros;

- Teste em várias máquinas, compiladores e SOs(Se possível)


Conclusão:

"Teste e depois codifique" (Hetzel) e "Teste cedo e frequentemente" (Beizer)

E um desenvolvimento de software sem bugs (ou com pouquíssimos bugs) para você...

Você também pode gostar