• Nenhum resultado encontrado

Introdução aos TESTES

N/A
N/A
Protected

Academic year: 2022

Share "Introdução aos TESTES"

Copied!
6
0
0

Texto

(1)

Introdução aos TESTES

“ Há um mito segundo o qual , se fôssemos realmente bons para programar , não haveria 'bugs' a ser procurados. Se pudéssemos realmente nos concentrar, se todos usassem programação

estruturada, projeto 'top-down' , tabelas de decisão, se tivéssemos as balas de prata certas, então não haveria 'bugs'.

 Tarefa de efetuar testes em software foi considerada secundária

 Desestímulo ao programador.

 Em que não se deveria gastar muito com tempo e investimentos.

 Relegado a segundo plano.

Engenharia de Software: preocupação crescente em

aprimorar e aperfeiçoar os processos de testes em desenvolvimento de software;

 Visa reduzir custos com manutenção;

 Em produzir um produto de melhor qualidade.

Por que realizar testes?

- Leis de Murphy

Primeira lei - Se uma coisa pode sair errado, sairá.

Se tudo parece estar indo bem, é porque você não olhou direito.

A natureza sempre está a favor da falha oculta.

"É de conhecimento geral entre os analistas de software que nunca se elimina o último bug de um programa. Os bugs são aceitos como uma triste realidade. Esperamos eliminá-los todos, um por um, mas nunca conseguiremos nos livrar deles."

Geralmente ocorrem as seguintes situações:

- "Depois eu escrevo o plano de testes..."

- "Vamos deixar os testes para a próxima fase..."

- "Na minha máquina funcionou..."

- "Temos que entregar o produto na semana que vem..."

(2)
(3)

O que são testes de software?

"O teste consiste em executar o programa com a intenção de encontrar erros (bugs)".

Quem executa os testes?

Gerente do projeto, engenheiros de software (desenvolvedores) e especialistas em testes.

Dentre os principais objetivos do processo de teste há:

 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:

 erros nem sempre são óbvios;

 erros diferentes podem ter a mesma manifestação;

 saber que um programa não esta correto não necessariamente é saber como corrigir o erro.

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, 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. Etapas sugeridas:

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 no software, fornecendo casos de teste que põem à prova conjuntos específicos de condições e/ou garante que todos os caminhos

independentes dentro de um módulo tenham sido exercitados ao

(4)

Banco de Dados

Regras de negócio Interface

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 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.

 Focaliza o esforço de verificação na menor unidade de projeto de software – o componente ou módulo de software.

 Serve como documentação do sistema

 Essencial para análise de desempenho

 Pseudocontrolador, (driver) e/ou um pseudocontrolado (stub)

Teste de Integração

 visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto.

ex: páginas html no browser

Módulos em código JAVA

ex: stored procedures -SQLServer

(5)
(6)

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 Aceitação

 A validação é bem sucedida quando o software funciona de uma maneira razoavelmente esperada pelo cliente.

 Expectativas dos clientes documentadas

 Uso da documentação do usuário

Modelo V - paralelismo entre as atividades de desenvolvimento e teste de software

Teste de Regressão

Consiste na aplicação de testes à versão mais recente do software para garantir que não surgiram novos bugs em componentes já testados

(manutenção do sistema).

 Teste necessário para assegurar que modificações no programa não causaram novos erros.

 baseado em arquivo de 'log'

(7)

Aplicando Testes de Software:

- Testar 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;

Tentar uma entrada vazia, um único item, um vetor cheio, etc.

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

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

- Programar defensivamente;

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

- Usar os códigos de erro;

- Tratar as possíveis exceções;

- Testar incrementalmente

Durante a construção do sistema;

Após testar dois pacotes independentemente teste se eles funcionam juntos;

- Teste primeiro partes simples

Para ter a 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;

- Testar em várias máquinas, compiladores, browsers e SOs

(Se possível)

(8)

Conclusão:

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

Conjunto de critérios de teste pode ser aplicado aos testes funcionais (caixa-preta).

Particionamento em classes de equivalência.

Divide o domínio de entrada em classes de equivalência em que os casos de testes são derivados;

Objetivo é minimizar o número de casos de teste para um caso de teste de cada classe;

a.

Identificar classes de equivalência (é um processo heurístico)

:

Condição de entrada;

Válidas e inválidas.

b.

Definir os casos de teste:

Enumeram-se as classes de equivalência;

Casos de teste para as classes válidas;

Casos de teste para as classes inválidas.

Casos de Teste (valor 1, valor 2, resultado esperado) = {( , , ); ( , , );

( , , )}

Referências

Documentos relacionados

No final, entender como juntar todos esses elementos, saber posicioná-los dentro de um jogo, seja trabalhando com elementos físicos no cenário, ou características de

Quando utilizado o EDTA 17%, a ativação ultrassônica durante 1 minuto como método de irrigação final também é eficiente na remoção da smear layer e debris dentinários na

efeitos e interações podem apresentar um efeito significativo na resposta mudar as condições de operação para melhorar a resposta fase é completada quando a melhoria

Para tanto, estipulou-se os seguintes temas a serem estudados: a história do bairro do Carandiru, como se deu sua formação e desenvolvimento; a história do

Ademais, possuem a crença na atuação do diabo no desvio da humanidade em a direção a Deus, bem como na aplicação de enfermidade e distúrbios espirituais por este

d) barreiras nas comunicações: qualquer entrave ou obstáculo que dificulte ou impossibilite a expressão ou o recebimento de mensagens por intermédio dos meios ou sistemas

Analisando os métodos iterativos com melhores resultados para cada iteração e o método direto utilizado no MAT- POWER, perbece-se que o método por coordenadas polares, BiCGStab

Foi montado um sistema de irrigação por gotejamento em área de 200m² utilizando 100% de esgoto doméstico para irrigação da cultura, realizando análises apenas da