16
Engenharia de Teste de Software Leonardo A Alves

Eng de testes aula2

Embed Size (px)

DESCRIPTION

material do segundo dia do curso de testes para pós em eng de softwares

Citation preview

Page 1: Eng de testes   aula2

Engenharia de Teste de SoftwareLeonardo A Alves

Page 2: Eng de testes   aula2

Testes e Defeitos

• No processo de desenvolvimento de software, todos os defeitos são humanos e, apesar do uso dos melhores métodos de desenvolvimento, ferramentas ou profissionais, permanecem presentes nos produtos, o que torna a atividade de teste fundamental durante o desenvolvimento de um software.

Page 3: Eng de testes   aula2

Como provocar falhas

• O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no processo são dois possíveis fatores que aumentam a complexidade dessa tarefa, e consequentemente aumentam a probabilidade de defeitos. Assim, a ocorrência de falhas é inevitável. Mas o que significa dizer que um programa falhou? Basicamente significa que o funcionamento do programa não está de acordo com o esperado pelo usuário.

Page 4: Eng de testes   aula2

Como provocar falhas

Esse tipo de falha pode ser originado por diversos motivos:• A especificação pode estar errada ou incompleta;• A especificação pode conter requisitos impossíveis de serem implementados devido a limitações de hardware ou software;• A base de dados pode estar organizada de forma que não seja permitido distinguir os tipos de usuário;• Pode ser que haja um defeito no algoritmo de controle dos usuários.

Page 5: Eng de testes   aula2

Níveis(fases) de Testes

Níveis de teste de softwareO planejamento dos testes deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento do software :• Teste de Unidade: também conhecido como testes unitários.

Tem por objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código.

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

Page 6: Eng de testes   aula2

Níveis(fases) de Testes

• Teste de Sistema: avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final. Dessa maneira, os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software. Verifica se o produto satisfaz seus requisitos.

• Teste de Aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado.

Page 7: Eng de testes   aula2

Níveis(fases) de Testes

• Teste de Regressão: Teste de regressão não corresponde a um nível de teste, mas é uma estratégia importante para redução de “efeitos colaterais”. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Pode ser aplicado em qualquer nível de teste

Page 8: Eng de testes   aula2

Técnicas empregadas nos testes

• Técnica Estrutural (ou teste caixa-branca)Técnica de teste que avalia o comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos (PRESSMAN, 2005)

Page 9: Eng de testes   aula2

Técnicas empregadas nos testes

• Teste Funcional (ou teste caixa-preta)Técnica de teste em que o componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo. Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Haverá sucesso no teste se o resultado obtido for igual ao resultado esperado. O componente de software a ser testado pode ser um método, uma função interna, um programa, um componente, um conjunto de programas e/ou componentes ou mesmo uma funcionalidade. A técnica de teste funcional é aplicável a todos os níveis de teste (PRESSMAN, 2005).

Page 10: Eng de testes   aula2

Técnicas empregadas nos testes

• Análise do valor limitePor razões não completamente identificadas, um grande número de erros tende a ocorrer nos limites do domínio de entrada invés de no “centro”. Esse critério de teste explora os limites dos valores de cada classe de equivalência para preparar os casos de teste.Se uma condição de entrada especifica uma faixa de valores limitada em a e b, casos de teste devem ser projetados com valores a e b e imediatamente acima e abaixo de a e b. Exemplo: Intervalo = {1..10}; Casos de Teste {1, 10, 0,11}.

Page 11: Eng de testes   aula2

Técnicas empregadas nos testes

• Caixa-cinzaA técnica de teste de caixa-cinza é um mesclado do uso das técnicas de caixa-preta e de caixa-branca.

Page 12: Eng de testes   aula2

Técnicas empregadas nos testes

• Análise do valor limitePor razões não completamente identificadas, um grande número de erros tende a ocorrer nos limites do domínio de entrada invés de no “centro”. Esse critério de teste explora os limites dos valores de cada classe de equivalência para preparar os casos de teste.Se uma condição de entrada especifica uma faixa de valores limitada em a e b, casos de teste devem ser projetados com valores a e b e imediatamente acima e abaixo de a e b. Exemplo: Intervalo = {1..10}; Casos de Teste {1, 10, 0,11}.

Page 13: Eng de testes   aula2

Técnicas empregadas nos testes

• Grafo de causa-efeitoEsse critério de teste verifica o efeito combinado de dados de entrada. As causas (condições de entrada) e os efeitos (ações) são identificados e combinados em um grafo a partir do qual é montada uma tabela de decisão, e a partir desta, são derivados os casos de teste e as saídas. (usado em alguns casos)

Page 14: Eng de testes   aula2

Teste de software

Page 15: Eng de testes   aula2

Automação do Teste de software

• Testes Manuais– Revelam muitas falhas;– Tarefa complexa, desgastante e consome muito tempo;– Pode não ser efetiva para certas partes do software.

• Testes automatizados– Podem ser executados rapidamente;– Custo mais efetivo;– Requer um maior gerenciamento a fim de manter os casos

de teste;– Necessário conhecimento técnico.

Page 16: Eng de testes   aula2

Próximo encontro

- Automação dos testes- Planejamento e execuçãode testes...