• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Eng de testes   aula2
 

Eng de testes aula2

on

  • 314 views

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

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

Statistics

Views

Total Views
314
Views on SlideShare
314
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Eng de testes   aula2 Eng de testes aula2 Presentation Transcript

    • Leonardo A Alves
    • • 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.
    • • 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.
    •  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.
    • Níveis de teste de softwareO planejamento dos testes deve ocorrer em diferentes níveis eem 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.
    • • 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.
    • • 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
    • • Técnica Estrutural (ou teste caixa-branca)Técnica de teste que avalia o comportamento internodo componente de software. Essa técnica trabalhadiretamente sobre o código fonte do componente desoftware para avaliar aspectos tais como: teste decondição, teste de fluxo de dados, teste de ciclos eteste de caminhos lógicos (PRESSMAN, 2005)
    • • 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 ocomportamento interno do mesmo. Dados de entrada são fornecidos,o teste é executado e o resultado obtido é comparado a um resultadoesperado previamente conhecido. Haverá sucesso no teste se oresultado obtido for igual ao resultado esperado. O componente desoftware a ser testado pode ser um método, uma função interna, umprograma, um componente, um conjunto de programas e/oucomponentes ou mesmo uma funcionalidade. A técnica de testefuncional é aplicável a todos os níveis de teste (PRESSMAN, 2005).
    • • Análise do valor limitePor razões não completamente identificadas, umgrande número de erros tende a ocorrer nos limites dodomínio de entrada invés de no “centro”. Esse critériode teste explora os limites dos valores de cada classede equivalência para preparar os casos de teste.Se uma condição de entrada especifica uma faixa devalores limitada em a e b, casos de teste devem serprojetados com valores a e b e imediatamente acima eabaixo de a e b. Exemplo: Intervalo = {1..10}; Casos deTeste  {1, 10, 0,11}.
    • • Caixa-cinzaA técnica de teste de caixa-cinza é um mesclado do usodas técnicas de caixa-preta e de caixa-branca.
    • • Análise do valor limitePor razões não completamente identificadas, umgrande número de erros tende a ocorrer nos limites dodomínio de entrada invés de no “centro”. Esse critériode teste explora os limites dos valores de cada classede equivalência para preparar os casos de teste.Se uma condição de entrada especifica uma faixa devalores limitada em a e b, casos de teste devem serprojetados com valores a e b e imediatamente acima eabaixo de a e b. Exemplo: Intervalo = {1..10}; Casos deTeste  {1, 10, 0,11}.
    • • Grafo de causa-efeitoEsse critério de teste verifica o efeito combinado dedados de entrada. As causas (condições de entrada) eos efeitos (ações) são identificados e combinados emum grafo a partir do qual é montada uma tabela dedecisão, e a partir desta, são derivados os casos deteste e as saídas. (usado em alguns casos)
    • • 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.
    • - Automação dos testes- Planejamento e execuçãode testes...