Roteiros de Teste - software

48
Testes – visão geral Vanilson Burégio

description

roteiro para testes de software

Transcript of Roteiros de Teste - software

Page 1: Roteiros de Teste - software

Testes – visão geral

Vanilson Burégio

Page 2: Roteiros de Teste - software

Roteiro

Introdução a testes de Software Tipos de teste; Técnicas de teste; Plano de Teste; Casos de teste; Revisões formais.

Page 3: Roteiros de Teste - software

Introdução a Testes de Software

Page 4: Roteiros de Teste - software

O que é testar?

Page 5: Roteiros de Teste - software

Introdução“O desenvolvimento de sistemas de software envolve

uma série de atividades de produção onde oportunidades para injeção de falhas humanas são enormes” [Pressman, 2007]

Enquanto existir software existirá erro

Testar um software nada mais é do que descobrir, de forma sistemática, erros embutidos durante a construção deste software

Page 6: Roteiros de Teste - software

O que é testar?

Teste de software é 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

Teste de software é 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

Page 7: Roteiros de Teste - software

ObjetivoRevelar falhas em um produto, para que as causas dessas falhas sejam identificadas e possam ser corrigidas pela equipe de desenvolvimento antes da entrega final

Revelar falhas em um produto, para que as causas dessas falhas sejam identificadas e possam ser corrigidas pela equipe de desenvolvimento antes da entrega final

Testar é um processo de execução de um programa com a intenção de encontrar um erro

Um bom caso de teste é aquele que possui uma alta probabilidade de encontrar erros ainda não descobertos

Um teste bem sucedido é aquele que realmente descobre um erro ainda não conhecido

Page 8: Roteiros de Teste - software

Então... Se eu testei um software e não encontrei

erros significa que meu software está correto, ou seja, livre erros!

Verdadeiro ou Falso?

Page 9: Roteiros de Teste - software

Conceitos Básicos Caso de Teste: descreve uma condição particular a ser testada e é

composto por valores de entrada, restrições para a sua execução e um resultado ou comportamento esperado

Procedimento de Teste: é uma descrição dos passos necessários para executar um caso (ou um grupo de casos) de teste

Critério de Teste: serve para selecionar e avaliar casos de teste de forma a aumentar as possibilidades de provocar falhas ou, quando isso não ocorre, estabelecer um nível elevado de confiança na correção do produto

– Critério de Cobertura dos Testes: permitem a identificação de partes do programa que devem ser executadas para garantir a qualidade do software e indicar quando o mesmo foi suficientemente testado

– Critério de Adequação de Casos de Teste: avalia se os casos de teste definidos são suficientes ou não para avaliação de um produto ou uma função

– Critério de Geração de Casos de Teste: define as 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 anteriormente

Page 10: Roteiros de Teste - software

Defeitos no desenvolvimento de Software

Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software

Page 11: Roteiros de Teste - software

Defeitos no desenvolvimento de Software

Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software

Page 12: Roteiros de Teste - software

Defeitos no desenvolvimento de Software

Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software

Page 13: Roteiros de Teste - software

Defeitos no desenvolvimento de Software

Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software

Page 14: Roteiros de Teste - software

Defeitos no desenvolvimento de Software

Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software

Page 15: Roteiros de Teste - software

Defeitos no desenvolvimento de Software

Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software

Page 16: Roteiros de Teste - software

Tipos de Teste de Software

Page 17: Roteiros de Teste - software

Tipos de teste de software O planejamento dos testes deve ocorrer em diferentes níveis e

em paralelo ao desenvolvimento do software

Page 18: Roteiros de Teste - software

Tipos de teste de software O planejamento dos testes deve ocorrer em diferentes níveis e

em paralelo ao desenvolvimento do software

Page 19: Roteiros de Teste - software

Tipos de teste de software O planejamento dos testes deve ocorrer em diferentes níveis e

em paralelo ao desenvolvimento do software

Page 20: Roteiros de Teste - software

Tipos de teste de software O planejamento dos testes deve ocorrer em diferentes níveis e

em paralelo ao desenvolvimento do software

Page 21: Roteiros de Teste - software

Tipos de teste de software Teste de Unidade (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

Page 22: Roteiros de Teste - software

Tipos de teste de software 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

Page 23: Roteiros de Teste - software

Técnicas de Teste de Software

Page 24: Roteiros de Teste - software

Técnicas de teste de software Atualmente existem muitas maneiras de se testar um software

Existem as técnicas que sempre foram muito utilizadas em sistemas desenvolvidos sobre linguagens estruturadas que ainda hoje têm grande valia para os sistemas orientados a objeto

Apesar de os paradigmas de desenvolvimento serem diferentes, o objetivo principal destas técnicas continua a ser o mesmo: encontrar falhas no software.

As técnicas de teste são classificadas de acordo com a origem das informações utilizadas para estabelecer os requisitos de teste. As técnicas existentes são:

– Técnica funcional (Caixa preta)– Técnica estrutural (Caixa branca)

Page 25: Roteiros de Teste - software

Técnicas de teste de software Teste Estrutural Caixa-branca

– avalia o comportamento interno do componente de software– trabalha diretamente sobre o código fonte do componente de software

• teste de condição; • teste de fluxo de dados; • teste de ciclos; • teste de caminhos lógicos• Complexidade ciclomática

– exemplo bem prático desta técnica: uso da ferramenta livre JUnit

Page 26: Roteiros de Teste - software

Técnicas de testes caixa-branca Testes de caminhos lógicos

– Notação de grafo de fluxo– Complexidade ciclomática– Derivando casos de teste– Matriz de grafo

Testes de estrutura de controle– Teste de condição– Teste de fluxo de dados– Teste de loops

Page 27: Roteiros de Teste - software

Técnicas de teste de software Teste Funcional Caixa-preta

– o componente de software a ser testado é abordado como se fosse uma caixa-preta

– 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

– 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

Page 28: Roteiros de Teste - software

Técnicas de teste de software Outras técnicas

– Outras técnicas de teste podem e devem ser utilizadas de acordo com necessidades de negócio ou restrições tecnológicas

• teste de desempenho• teste de usabilidade• teste de carga• teste de stress• teste de confiabilidade • teste de recuperação.

Page 29: Roteiros de Teste - software

Plano de Testes

Page 30: Roteiros de Teste - software

Processo de teste Exemplo baseado no RUP (Rational Unified Process)

Nosso foco agora!

Page 31: Roteiros de Teste - software

Plano de testes Objetivo

– identificar e descrever os testes que serão executados e implementados

– plano de testes possuirá os requisitos para o teste e as estratégias de teste

O projetista de teste é o responsável pelo planejamento dos testes

Page 32: Roteiros de Teste - software

Planejar testes

Técnicas que asseguram o levantamento adequado de informações desta atividade

– entrevistas– questionários– monitoramento de funções

Page 33: Roteiros de Teste - software

Planejar testes Atividades:

– Selecionar requisitos a testar

– Definir prioridades

– Planejar testes de regressão

– Definir estratégia dos testes

– Definir o registro dos resultados dos testes e defeitos descobertos

– Definir recursos humanos

– Definir cronograma de testes

– Realizar checklist

Page 34: Roteiros de Teste - software

Plano de Testes(ver exemplo de modelo)

Page 35: Roteiros de Teste - software

Casos de Teste(Projetar Testes)

Page 36: Roteiros de Teste - software

Processo de teste Exemplo baseado no RUP (Rational Unified Process)

Nosso foco agora!

Page 37: Roteiros de Teste - software

Projetar testes Objetivo

– Detalhar o projeto dos casos de testes o suficiente para que não haja dúvida ou ambigüidade, de modo que possa ser feitas a implementação e posterior execução

Page 38: Roteiros de Teste - software

Planejar testes Artefatos de entrada

Documento de Requisitos

Especificação de Casos de Uso

Plano de Testes

Lições aprendidas

Artefatos de saída Modelo de testes

Casos de teste

Procedimentos de teste

Page 39: Roteiros de Teste - software

Projetar testes Passos:

– Identificar casos de teste – Descrever casos de teste – Identificar casos de teste a serem automatizados – Definir massa de dados

Page 40: Roteiros de Teste - software

Casos de teste Identificar casos de teste

– Além dos requisitos que serão testados, deve-se definir também quais testes serão realizados para os requisitos selecionados (casos de teste)

– A identificação dos casos de teste é feita por meio da análise dos fluxos de eventos dos diferentes cenários possíveis para os casos de uso

• Para cada cenário deve-se ter, no mínimo, um caso de teste correspondente.

• A análise dos requisitos não-funcionais também deve gerar casos de testes

Page 41: Roteiros de Teste - software

Projetar testes Descrever casos de teste

– Este passo tem como objetivo descrever os casos de testes identificados na fase de planejamento. Essa descrição deve conter:

Condição inicial para execução: Descrever qual a configuração do ambiente em que esse caso de teste será executado e qual o estado inicial do sistema para que possa ser executado corretamente e outras pré-condições, como "deve existir um cliente cadastrado na base de dados".

Passos específicos do teste a ser executado: Passos que devem ser executados para a correta execução do caso de teste. Pode incluir referências a rotinas comuns ou outros casos de teste.

Page 42: Roteiros de Teste - software

Projetar testes Descrever casos de teste

– Essa descrição deve conter ainda:

Resultados esperados: Quais os critérios de sucesso do teste (pode ser um valor específico ou algo mais genérico, como "Observar que a aplicação montou uma tela contendo a mensagem 'Cadastro realizado com sucesso' e que o banco foi alterado").

Condição final de execução: O estado que o sistema deve estar ao término da execução. Por exemplo, "a execução deste caso de teste deve manter a base de dados inalterada".

Page 43: Roteiros de Teste - software

Documento de casos de teste

(Ver exemplo de modelo)

Page 44: Roteiros de Teste - software

Revisões formais

Page 45: Roteiros de Teste - software

Motivação Quando artefatos defeituosos são produzidos....

– Geramos retrabalho para corrigir defeitos– custo de retrabalho para correção de defeitos aumenta na medida que o processo de desenvolvimento progride

Iniciativas devem ser realizadas no sentido de encontrar e corrigir defeitos tão logo sejam introduzidos

Uma abordagem que tem se mostrado eficiente nesse sentido: revisão dos artefatos produzidos ao longo do processo de desenvolvimento de software

Custo de desenvolvimento / Esforço

Tempo / Produtividade

Qualidade

Page 46: Roteiros de Teste - software

Inspeção de Software Inspeção de software é um tipo particular de revisão que

pode ser aplicado a todos os artefatos de software e possui um processo de detecção de defeitos rigoroso e bem definido

Inspeções de Software nos Diferentes Artefatos

Page 47: Roteiros de Teste - software

Inspeção de Software Processo tradicional de inspeção envolve:

– planejamento da inspeção– indivíduos revisando um determinado artefato– um encontro em equipe para discutir e registrar os defeitos– a passagem dos defeitos para o autor do artefato para que

possam ser corrigidos– uma avaliação final sobre a necessidade de uma nova

inspeção

Page 48: Roteiros de Teste - software

Exemplo de questão