Engenharia de Testes

37
INTRODUÇÃO A TESTE DE SOFTWARE Adriana C. Nascimento Danilo Dias Luma da R. Seixas Yuko Mitsuya

Transcript of Engenharia de Testes

Page 1: Engenharia de Testes

INTRODUÇÃO A TESTE DE SOFTWARE

Adriana C. NascimentoDanilo DiasLuma da R. SeixasYuko Mitsuya

Page 2: Engenharia de Testes

TESTE

CONCEITO DE TESTE:

“Exame ou prova para avaliar uma capacidade ou aptidão de alguém, ou para determinar a qualidade, natureza ou comportamento de algo.”

(Fonte: Minidicionário da língua Portuguesa)

Page 3: Engenharia de Testes

TESTE DE SOFTWARE

CONCEITO:

“É o processo de execução de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado”.

“É uma das fases do processo de engenharia de software que visa atingir um nível superior da qualidade de software.”

Page 4: Engenharia de Testes

TESTE DE SOFTWARE

É parte de um tema mais amplo chamado Verificação e Validação (V&V), onde:

Verificação - refere-se ao conjunto de atividades que garante que o software implementa corretamente uma função específica, e;

Validação - refere-se ao conjunto de atividades que garante que o software que foi construído atende às exigências do cliente.

Page 5: Engenharia de Testes

TESTE DE SOFTWARE

Logo,

“Testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado.”

Page 6: Engenharia de Testes

TESTE DE SOFTWARE

OBJETIVO:

“Revelar o número máximo de falhas dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos”.

Page 7: Engenharia de Testes

TESTE DE SOFTWARE

IMPORTÂNCIA:

Economia:Quanto mais cedo um defeito for encontrado, mais barato é o custo da sua correção;

Qualidade:Devem ser encarados como investimento em qualidade.

Page 8: Engenharia de Testes

TESTE DE SOFTWARE

DEFEITO, ERRO, FALHAS

Page 9: Engenharia de Testes

TESTE DE SOFTWAREElementos Essenciais

Caso de Teste:

• Condição particular a ser testada;

• Composta por valores de entrada, restrições, e resultado ou comportamento esperado.

Page 10: Engenharia de Testes

TESTE DE SOFTWAREElementos Essenciais

Procedimento de Teste:

• Descrição dos passos necessários para executar um caso de teste, ou grupo de casos;

Page 11: Engenharia de Testes

TESTE DE SOFTWAREElementos Essenciais

Critério de Teste:

• Selecionar e avaliar os casos de teste;

• Estabelecer um nível elevado de confiança na correção do produto.

Page 12: Engenharia de Testes

TESTE DE SOFTWARECritérios de Teste

Cobertura de Testes:

• Identificação de partes do programa que devem ser executadas para garantir a qualidade do software;

• Indicar quando o mesmo foi suficientemente testado.

Page 13: Engenharia de Testes

TESTE DE SOFTWARECritérios de Teste

Adequação de Casos de Teste:

• Verificar se um conjunto de casos de teste satisfaz aos requisitos de teste estabelecidos pelo critério;

Page 14: Engenharia de Testes

TESTE DE SOFTWARECritérios de Teste

Geração de Casos de Teste:

• Quando o critério define regras e diretrizes para geração dos casos de teste de um produto que esteja de acordo com o critério de adequação definido.

Page 15: Engenharia de Testes

TIPOS DE TESTE

• Os tipos de teste normalmente são definidos em função das características ou dimensões da qualidade que serão avaliadas no software.

 • "A totalidade de características de um produto de

software  que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas".(NBR 13596)

Page 16: Engenharia de Testes

TIPOS DE TESTE

• O que são necessidades explícitas e implícitas? •  As explícitas são condições e objetivos propostos

por aqueles que produzem o software.   • As implícitas são necessidades subjetivas dos

usuários, devem permitir atingir metas como: efetividade, produtividade, segurança e etc.

Page 17: Engenharia de Testes

TIPOS DE TESTE A ISO/IEC 9126 (NBR 13596) fornece um modelo que define 6 amplas categorias de características de qualidade, por sua vez, sub-divididas em sub-características.

Característica Sub-características

Funcionalidade: O conjunto de funções satisfaz as necessidades explicitas e implícitas para a finalidade a que se destina o produto?

Adequação, acurácia, interoperabilidade, segurança de acesso e conformidade.

Confiabilidade: O desempenho se mantém ao longo do tempo e em condições estabelecidas?

Maturidade, tolerância a falhas e recuperabilidade.

Usabilidade: É fácil utilizar o software? Inteligibilidade, apreensibilidade e operacionalidade.

Eficiência: Os recursos e os tempos utilizados são compatíveis com o nível de desempenho requerido para o produto?

Comportamento em relação ao tempo e comportamento em relação aos recursos

Manutenibilidade: Há facilidade para correções, atualizações e alterações?

Analisabilidade, modificabilidade, estabilidade e testabilidade.

Portabilidade: É possível utilizar o produto em diversas plataformas com pequeno esforço de adaptação?

Adaptabilidade, capacidade para ser instalado, capacidade para substituir e conformidade.

Page 18: Engenharia de Testes

TIPOS DE TESTE A escolha do tipo de teste dependerá do grau de importância de cada uma das características de qualidade que serão avaliadas no software. Os tipos de testes mais comuns segundo  o Guide to the CSTE Common Body of Knowledge do QAI são:

Tipos de testes Descrição

Teste de Estresse Avalia o desempenho do sistema com um volume de acesso/trasações acima da média esperada em condições extremas de uso.

Teste de Execução Avalia se o sistema atende os requisitos de performance (proficiência) com um volume de acesso/trasanções dentro do esperado.

Teste Contigência Avalia se o sistema retorna a um status operacioal após uma falha.

Teste de Operação Avalia se o sistema (aplicação, pessoal, procedimentos e manuais) pode ser executado corretamente em ambiente de pré-produção.

Teste de Conformidade

Avalia se o sistema foi desenvolvido em consônancia com os padões e metodologia estabelecidos no projeto.

Teste de Segurança Avalia se o sistema foi desenvolvido em consonância com os padrões de segurança da organização.

Teste de Regressão Avalia por meio do ré-teste se uma funcionalidade que estava funcionando ainda funciona após uma modificação no sistema.

Teste de Integração Avalia se a interconexão entre as aplicações funciona corretamente.

Page 19: Engenharia de Testes

PROCESSO ESTRUTURA DETESTE DE SOFTWARE 

  • Um processo estruturado de software tem a

finalidade de formalizar as fases, atividades, papéis, artefatos e responsabilidades necessárias para o planejamento e a execução dos testes sistematicamente.

Page 20: Engenharia de Testes

PROCESSO ESTRUTURA DETESTE DE SOFTWARE 

                            O ciclo de vida do TMAP é dividido em sete fases distintas, como podemos                 observar a seguir:  • Planejamento: Nesta fase é realizada o planejamento e a

definição geral da estratégia e planos de testes.  • Controle:Nesta fase são realizados o controle e a

monitoração das atividades planejadas. • Configuração e manutenção da infra-estrutura:Nesta fase

é preparada e mantida a infra-estrutura(software e hardware) necessária para a plena realização dos testes.

Page 21: Engenharia de Testes

PROCESSO ESTRUTURA DETESTE DE SOFTWARE 

• Preparação: É realizado o refinamento da estratégia de testes e plano de testes criados na fase de planejamento.

 • Especificação:Nesta fase é realizada a especificação dos casos

de testes e demaisdocumentos. • Execução: É realizada a execução dos testes, reporte do

progresso e indicadores de qualidade. • Conclusão:Fase do processo de testes é avaliada afim de

promover as melhorias para os próximos projetos.

Page 22: Engenharia de Testes

9/29/2010

Níveis de Teste• As atividades de teste são normalmente divididas em

níveis.• Define a fase do processo de desenvolvimento de

software na qual os testes serão realizados.o Teste de unidadeo Teste de integraçãoo Teste de sistemao Teste de aceitação

Page 23: Engenharia de Testes

9/29/2010

Níveis de TesteTeste de Unidade

• Objetiva explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeito de lógica e de implementação em cada módulo, separadamente.

• Universo alvo são pequenos trechos de código.

Page 24: Engenharia de Testes

9/29/2010

Níveis de TesteTeste 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.

• Integração entre os componentes do sistema (classes, módulos, sub-sistemas, etc).

Page 25: Engenharia de Testes

9/29/2010

Níveis de TesteTeste de Sistema

• Avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final.

• Verificação se o produto satisfaz os seus requisitos.

Page 26: Engenharia de Testes

9/29/2010

Níveis de TesteTeste de Aceitação

• É feita uma simulação, por um grupo restrito de usuários, para a realização de operações de rotina do sistema de modo a verificar se o seu comportamento está de acordo com o solicitado.

• Verifica se o sistema satisfaz os requisitos (funcionais e não funcionais), sob o ponto de vista do usuário final.

Page 27: Engenharia de Testes

9/29/2010

Modelo V• Planejamento e projeto devem ocorrer

de cima para baixo.

Page 28: Engenharia de Testes

9/29/2010

Técnica de Teste de Software• Objetiva encontrar falhas no software.

• São classificadas de acordo com a origem das informações utilizadas para estabelecer os requisitos de teste.

• Pode-se estabelecer uma estratégia de teste que contenple as vantagens e os aspectos complementares dessas técnicas.o Técnica Estruturalo Técnica Funcional

Page 29: Engenharia de Testes

9/29/2010

Técnica Estrutural• Também chamado teste caixa-branca• Técnica de teste que avalia o comportamento

interno do componente de software.• Trabalha diretamente sobre o código fonte do

componente de software e avalia:o Teste condição;o Teste de fluxo de dados;o Teste de ciclos; eo Teste de caminhos lógicos.

Page 30: Engenharia de Testes

9/29/2010

Técnica Estrutural• Os aspectos válidos dependem:

o Da complexidadeo Da tecnologia

• É desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram todas as possibilidades do componente de software.

• Todas as variações de estruturas de condição são testadas.

Page 31: Engenharia de Testes

9/29/2010

Técnica Estrutural• Técnica recomendada para os níveis de Teste de

Unidade e Teste de Integração.• A responsabilidade principal fica a cargo dos

desenvolvedores do sistema.• Auxilia na redução de problemas existentes nas

pequenas funções ou unidades que compõem o software.

Page 32: Engenharia de Testes

9/29/2010

Técnica Funcional• Também chamada de teste caixa-preta.• NÃO considera o comportamento interno do

software.• Os dados de entrada são fornecidos, o teste é

executado e o resultado obtido é comparado a um resultado esperado.

Page 33: Engenharia de Testes

9/29/2010

Técnica Funcional• O componete de software a ser testado

pode ser um método, uma função interna, um programa, um componete, um conjunto de componentes ou mesmo uma funcionalidade.

• É aplicável a todos os níveis de teste.

Page 34: Engenharia de Testes

9/29/2010

Critérios de testeParticionamento de classes de

equivalência

• Divide o domínio da entrada de um programa em classes de equivalência. A partir das quais os casos de teste são derivados

• Minimiza o número de casos de teste de cada classe, pois em princípio todos os elementos de uma classe devem se comportar de maneira equivalente.

• Classe equivalente representa um conjunto de estados válidos e inválidos para uma condição de entrada.

Page 35: Engenharia de Testes

9/29/2010

Critérios de testeAnálise de Valor Limite

• Erros tendem a ocorrer nos limites do domínio de entrada ao invés do centro.

• Explorar os limites dos valores de cada classe de equivalência para preparar os casos de teste.

Page 36: Engenharia de Testes

9/29/2010

Critérios de testeGrafo de Causa-efeito

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

Page 37: Engenharia de Testes

9/29/2010

Critérios de testeGrafo de Causa-efeito

• Esse critério é baseado em quatro passos:1.Para cada módulo de causa e efeito são

relacionados, atribuindo-se um identificador para cada um.

• O grafo de causa-efeito é elaborado.• Transforma-se o grafo de causa-efeito

numa tabela de decisão.• As regras da tabela são convertidas em

casos de teste.