teste de software i - principais conceitos_v02

109
Curso de Teste de Software Teste de Software I – Principais Conceitos 1

Upload: simone-araujo

Post on 28-Dec-2015

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teste de Software I - Principais Conceitos_V02

Curso de Teste de Software

Teste de Software I – Principais Conceitos

1

Page 2: Teste de Software I - Principais Conceitos_V02

Mônica C. Vaz

Trabalho Atual

Analista de Qualidade (Processo de Quality Assurance, Test Management, Treinamento e Consultoria em Casos de testes);

Formação

UEPG – Análise de Sistemas em 1996;

UEPG – Pós Graduação em Ciências da Computação em 1998;

Certificação

Six Sigma – Green Belt;

CBTS – Certificação Brasileira de Teste de Software em 2008;

2

Page 3: Teste de Software I - Principais Conceitos_V02

Participantes...

1. Nome

2. Atividade atual

3. Experiência com Testes

4. Expectativa com o Curso

3

Page 4: Teste de Software I - Principais Conceitos_V02

• Introdução aos conceitos de teste de

software – alinhamento da equipe;

• Entender os ganhos de um processo

documentado de testes;

• Identificar melhorias no processo atual;

Objetivo do treinamento

4

Page 5: Teste de Software I - Principais Conceitos_V02

•Equipe estressada; •Atraso no projeto; •Perda de oportunidade; •Descrédito da equipe de qualidade; •Retrabalho; •Aumento do custo do projeto; •Frustração de expectativas;

Um processo imposto...

5

Page 6: Teste de Software I - Principais Conceitos_V02

AGEND

A

1º dia

Planejamento de Testes - Conceitos básicos de teste ; Tipos de testes; Ciclo

de vida de testes ; Papéis e responsabilidades;

Casos de Testes – Conceitos de Requisitos de testes, Cenários de testes,

Casos de testes; Análise de risco dos testes x Prioridade; Técnicas de cobertura

de testes;

2º dia

Gestão de Testes - Estimativa de esforço; Custo do defeito; Testes de

Verificação x Validação; Log de execução; Report e Fluxo de defeitos;

Sumário final de testes – Lições Aprendidas e Recomendações; Métricas de

Testes;

Agenda

6

Page 7: Teste de Software I - Principais Conceitos_V02

Conceitos para o Planejamento

de testes

7

Page 8: Teste de Software I - Principais Conceitos_V02

O que é Teste de Software?

“Avaliar se o software está fazendo o que deveria fazer, de acordo com os seus requisitos, e não

está fazendo o que não deveria fazer”;

– Garantir que o produto funciona; – Garantir que o produto atende aos requisitos; – Garantir que o produto funciona, atende aos requisitos e não tem defeitos;

8

Page 9: Teste de Software I - Principais Conceitos_V02

Qualidade no PMBOK – áreas de conhecimento

Entregar um resultado de acordo com o escopo, no prazo, no custo definido,

com qualidade

O que / Quando / Quanto /

Como

9

Page 10: Teste de Software I - Principais Conceitos_V02

Dimensões da qualidade

Confiança: O sistema é resistente a falhas durante a execução, isto é, não entra em “loop”, não interrompe a execução por falta de recursos, etc.

Funcionalidade: O sistema se comporta conforme esperado e definido nos seus requisitos.

Performance: O sistema tem um tempo de resposta adequado e aceitável mesmo quando submetido a um volume alto de processamento

10

Page 11: Teste de Software I - Principais Conceitos_V02

Dimensões de Qualidade

3. Tipos de Testes

(O que testar)

1. Técnicas de Testes

(Como testar)

2. Níveis de Testes

(Quando testar)

11

Page 12: Teste de Software I - Principais Conceitos_V02

1. Técnicas de Teste: COMO TESTAR?

Caixa BRANCA Estrutural

• Caixa PRETA Funcional Determinar se os requisitos foram atendidos;

Verifica apenas os resultados produzidos e não requer conhecimento interno

do sistema, apenas conhecimento dos requisitos do negócio;

Realizado pelos testadores;

Determinar defeitos na estrutura interna ou no código;

São realizados pelos programadores;

1. Técnicas de Testes

(Como testar)

12

Page 13: Teste de Software I - Principais Conceitos_V02

2. Níveis de Teste: QUANDO TESTAR?

Teste de Aceite (UAT)

Teste de Sistema

Teste de Integração

Teste Unitário

Os níveis de teste definem o momento do ciclo de vida do software em que são realizados os testes.

2. Níveis de Testes

(Quando testar)

13

Page 14: Teste de Software I - Principais Conceitos_V02

Teste Unitário

Objetivos:

• Testar os componentes individuais (ex: classes, métodos, ...) certificando-se de que as entradas e saídas são válidas;

• Reduzir o custo dos defeitos encontrados;

Execução:

• São executados pelos desenvolvedores, durante o processo de construção, no ambiente de desenvolvimento

14

Page 15: Teste de Software I - Principais Conceitos_V02

Objetivos:

É executado para garantir que as unidades ou aplicações que

foram testadas funcionem corretamente quando integrados.

Execução:

• São executados pelos desenvolvedores, durante o

processo de construção, no ambiente de

desenvolvimento;

Teste Integrado

15

Page 16: Teste de Software I - Principais Conceitos_V02

Objetivos:

• Demonstrar que o sistema executa de modo funcional e operacional as funções especificadas

• Verificar a Integração dos componentes de software com o ambiente operacional similar ao de produção (hardware, software, processo, pessoas);

Execução:

Executados pelos testadores em Ambiente de testes.

Teste de Sistema

16

Page 17: Teste de Software I - Principais Conceitos_V02

Teste de Aceite (UAT)

Objetivo:

• Verificar se a solução atende aos objetivos do negócio e a seus requisitos, no que diz respeito à funcionalidade e usabilidade.

Execução: • Os testes de aceite são executados pelos usuários e podem

ser de duas categorias: Teste alfa: geralmente nas instalações da equipe de

desenvolvimento e testes; Teste beta: feito pelo usuário, geralmente em suas instalações,

sem a supervisão da equipe de teste;

17

Page 18: Teste de Software I - Principais Conceitos_V02

Focam aspectos diferentes de um software;

Dependendo da técnica e do nível de teste, selecionamos os tipos adequados.

3. Tipos de Teste: O QUE TESTAR?

3. Tipos de Testes

(O que testar)

18

Page 19: Teste de Software I - Principais Conceitos_V02

Teste Funcional

• Verifica todas as funcionalidades do sistema em termos

de regras de negócio, incluindo entrada de dados,

processamento e resposta.

• Verifica o funcionamento das condições válidas e

inválidas.

• É baseado nas técnicas de caixa-preta, isto é,

verificar o sistema e seu processo interno pela

sua interação através da análise dos resultados.

19

Page 20: Teste de Software I - Principais Conceitos_V02

Teste de Regressão

Re-execução de teste feitos após uma

manutenção corretiva ou evolutiva.

Tem como propósito garantir que qualquer falha tenha

sido reparada e que nenhuma operação que funcionava

anteriormente tenha falhado após os reparos, ou seja, que

as novas características adicionadas não criaram

problemas com as versões anteriores ou com outros

sistemas.

20

Page 21: Teste de Software I - Principais Conceitos_V02

Teste de Segurança

Segurança: é um processo necessário para garantir a confidencialidade das informações e a proteção dos dados contra o acesso indivíduo de terceiros.

Segurança em nível de aplicação, incluindo acesso aos dados ou às funções do negócio;

Segurança em nível de sistema, incluindo o acesso ao sistema feito localmente ou remotamente

21

Page 22: Teste de Software I - Principais Conceitos_V02

Teste de Volume

Verifica se o sistema suporta altos volumes de dados numa única transação

O teste de volume submete grandes quantidades de dados ao sistema para determinar se limites que causam a falha do software são alcançados.

Este tipo de teste também identifica o volume máximo persistente que o sistema pode suportar por um dado período.

22

Page 23: Teste de Software I - Principais Conceitos_V02

Teste de Usabilidade

Testa a forma de uso do software, verificando a facilidade

que o software possui de ser claramente entendido e

facilmente operado pelos usuários.

Verifica:

A facilidade de operação do sistema pelo usuário;

A facilidade de entendimento das funções do sistema pelo

usuário, através da utilização de manuais, help on-line,

agentes e assistentes eletrônicos, etc.

23

Page 24: Teste de Software I - Principais Conceitos_V02

Teste de Stress

Tipo de teste de confiabilidade destinado a avaliar como o sistema responde

em condições anormais.

Verificar se o sistema funciona corretamente e sem erros sob as seguintes

condições de estresse:

- Pouca ou nenhuma memória disponível no servidor (RAM e HD).

- Número máximo real, ou fisicamente suportado, de clientes conectados ou simulado.

- Múltiplos usuários realizando as mesmas transações contra os mesmos dados ou

contas.

24

Page 25: Teste de Software I - Principais Conceitos_V02

Teste de Desempenho

O teste de desempenho mede e avalia o tempo de resposta, o número de transações e outros requisitos sensíveis ao tempo.

Verificar comportamento do sistema para funções de transações ou de negócio designadas sob as seguintes condições:

◦ Carga normal de trabalho

◦ Carga limite de trabalho.

25

Page 26: Teste de Software I - Principais Conceitos_V02

Teste de Instalação

Garantir que o software possa ser instalado

(completamente, de forma personalizada ou atualizado)

sob condições apropriadas;

Verificar que, uma vez instalado, o software funciona

corretamente.

26

Page 27: Teste de Software I - Principais Conceitos_V02

Verifica a resistência a falhas e a compatibilidade técnica em relação a linguagem, sintaxe, banco de dados (novos e legado)

Teste de Integridade

Page 28: Teste de Software I - Principais Conceitos_V02

Resumo – Dimensões de Qualidade

28

Tipos de Testes

(O que testar)

Técnicas de Testes

(Como testar)

Níveis de Testes

(Quando testar)

•Caixa Branca

•Caixa Preta

•Unitário

•Integração

•Sistema

•Aceitação

•Funcional

•Regressão

•Segurança

•Volume

•Usabilidade

•Stress

•Desempenho

•Instalação

•Integridade

Page 29: Teste de Software I - Principais Conceitos_V02

Exercício 1

Identifique os tipos de testes para atender aos requisitos do sistema „Venda de Livros pela Internet‟ Tempo: 20 minutos Equipe: Duplas

29

Page 30: Teste de Software I - Principais Conceitos_V02
Page 31: Teste de Software I - Principais Conceitos_V02

Ciclo de Vida do Processo

de Teste

31

Page 32: Teste de Software I - Principais Conceitos_V02

TESTE

= EXECUÇÃO

Teste ??

Executar Testes

Quando as pessoas pensam

em teste, normalmente a

primeira coisa que vem a

mente é a sua execução

A Execução dos Teste é uma das etapas do Processo!

32

Page 33: Teste de Software I - Principais Conceitos_V02

Fonte: Teste de software, de Emerson Rios e Trayahú Moreira (Rio de Janeiro, Alta Books, 2003)

2 Planejamento

3 Preparação

1Procedimentos

Inicias

4 Especificação

5 Execução

6 Entrega

Modelo 3P x 3E

33

Page 34: Teste de Software I - Principais Conceitos_V02

Planejamento: Plano de Testes

Ambiente e Ferramentas

Contratação

Especificação:

Casos de Testes

Execução:

Relatório de Log

e Relatório de

Incidentes

Entrega: Relatório

Sumário

Documentos - Processo de Teste

34

Page 35: Teste de Software I - Principais Conceitos_V02

Padrão IEEE 829

Norma mundial que trata da

documentação de cada etapa do processo

de teste de software.

• Tem por objetivo descrever os documentos necessários para apoiar a

atividade de teste de software.

• Os documentos descritos neste padrão abrangem o planejamento,

especificação e a geração de relatórios de testes;

35

Page 36: Teste de Software I - Principais Conceitos_V02

Define quais as técnicas e tipos de testes que serão

aplicados em cada nível de teste.

Análise dos riscos do projeto de testes, traçando a estratégia

para atender aos objetivos e critérios de aceitação dos testes.

Define o escopo do teste bem como o cronograma.

Define dos responsáveis pelas atividades.

Critérios de aceitação dos testes

Métricas que serão coletadas

Necessidades de ambiente de testes

1. Plano de Teste

36

Page 37: Teste de Software I - Principais Conceitos_V02

Principais Informações: Identificação do Plano de Teste Introdução Itens de Testes Funcionalidades a serem testadas Funcionalidades que não devem ser testadas Abordagem dos testes Critérios de conclusão dos testes Critérios para interrupção e retomada dos testes; Entregas Ambiente de teste Responsabilidades Pessoal (equipe, treinamento, local etc.) Cronograma Riscos do processo de teste (mitigação e contingência) Aprovação

37

1. Plano de Teste - template

Page 38: Teste de Software I - Principais Conceitos_V02

Especificar os caminhos para testar o software;

2. Caso de Testes

Diz a lenda que um certo dia um testador foi até o programador

mestre e disse:

“Todos os meus testes sempre passam. Não mereço um

aumento?”

Então o mestre respondeu: “Se todos os seus testes passam,

sempre que são executados, você precisa escrever testes

melhores...”

38

Page 39: Teste de Software I - Principais Conceitos_V02

Principais informações:

Pré-condições de execução

Prioridade do teste

Entradas de usuário / dados do teste

Ações do usuário / sistema

Resultados esperados para um objetivo específico

2. Caso de Testes - Template

39

Page 40: Teste de Software I - Principais Conceitos_V02

3. Relatório de Log

Objetivo: fornecer um registro cronológico das

ocorrências de todo o processo de execução dos

testes.

Principais informações: quem executou, quando

executou, resultado obtido com a execução;

40

Page 41: Teste de Software I - Principais Conceitos_V02

4. Relatório de Incidentes

Objetivo: documentar qualquer evento ocorrido durante a

execução dos testes que requeira algum tipo de

investigação ou correção.

Principais informações:

Descrição do incidente, data de abertura, responsável,

status, severidade, prioridade, causa do defeito...

41

Page 42: Teste de Software I - Principais Conceitos_V02

5. Relatório Sumário de Teste

Objetivo:

Avaliar os resultados e atividades de teste e comparar

com cronograma previsto.

Principais Informações:

Variações ocorridas (prazo, esforço), Sumário do resultado

(qtde casos de testes testados, qtde incidentes, ocorrências

não resolvidas, ...), Métricas, Lições aprendidas.

42

Page 43: Teste de Software I - Principais Conceitos_V02

Equipe de Testes - Formação

43

Page 44: Teste de Software I - Principais Conceitos_V02

Matriz de Responsabilidades

Etapas Atividades LT AT AN TE

Planejamento Elaborar Estratégia de Teste E P

Elaborar Plano de Teste E P

Preparação Disponibilizar infra-estrutura e ferramentas A E P

Disponibilizar Pessoal E P

Especificação/

Execução

Elaborar Casos de Teste e Script de Teste A P E

Executar os Testes E

Acompanhar o andamento dos testes E

Entrega Avaliar e arquivar a documentação de teste A E P

Responsabilidades

E Execução das atividades

P Participa na execução (co-responsável)

A Acompanha / é informado dos resultados

Equipe de Testes - Responsabilidades

44

Page 45: Teste de Software I - Principais Conceitos_V02
Page 46: Teste de Software I - Principais Conceitos_V02

Discussão em grupo...

Por que é importante ter um processo de testes

documentado?

46

Page 47: Teste de Software I - Principais Conceitos_V02

•Controle do que está sendo testados

•Sabe-se o quanto foi testado.

•Reduz a duplicação de esforço depois ter uma base de

documentação já criada (reaproveitamento)

•Não se deixa perder o conhecimento adquirido durante o

processo de testes

•Torna-se mais fácil a manutenção do software.

•Facilita o acompanhamento e a gerencia do teste

•É um meio eficaz de comunicação na equipe de teste.

•Fornece aos clientes evidência da qualidade do software

•Diminui a dependência entre membros da equipe de teste.

Por que é importante ter um processo de testes

documentado?

47

Page 48: Teste de Software I - Principais Conceitos_V02

Dificuldades para ter uma documentação de testes

Discussão em grupo...

48

Page 49: Teste de Software I - Principais Conceitos_V02

Dificuldades para ter uma documentação de testes

•Resistência à elaboração de documentos faz parte da

cultura de profissões técnicas;

•Nem sempre a informação necessária ao planejamento e

projeto do teste está facilmente disponível;

•Desconhecimento de padrões de documentação pelos

testadores;

•Normalmente, as ferramentas que auxiliam o processo de

documentação do teste são caras e complexas;

•Falta de consciência da importância da documentação.

•Falta de planejamento de esforço para documentação dos

processos de testes;

49

Page 50: Teste de Software I - Principais Conceitos_V02

Conceitos para a Preparação dos

Casos de testes

50

Page 51: Teste de Software I - Principais Conceitos_V02

O que é um Caso de Teste?

É uma situação diferenciada e única de comportamento no sistema, com o objetivo de identificar um defeito não previsto em todo o

ciclo de desenvolvimento.

51

Page 52: Teste de Software I - Principais Conceitos_V02

Padrão de Qualidade do Caso de Teste

Efetivo: Testar o que se planejou testar

Econômico: Sem passos desnecessários

Reutilizável: Possa ser repetido

Rastreável: Possa identificar o requisito a ser testado

Autoexplicativo: Possa ser testado por qualquer pessoa

52

Page 53: Teste de Software I - Principais Conceitos_V02

Derivação do Caso de Teste

Os casos de testes são derivados de uma

especificação formal que define os requisitos.

Requerimentos Casos de Uso Casos de Testes

53

Page 54: Teste de Software I - Principais Conceitos_V02

Exemplo Exemplo de um Caso de Teste

Caso de Teste Objetivo 002_01_IncluirCliente Verificar o cadastro de cliente com sucesso.

Pré Condição: 1. Executar o caso de teste 001_01_ListagemComDados

Procedimentos:

Passo Ação Resultado Esperado

1 Clicar no botão "Incluir" É exibida a tela "Incluir/Alterar Cliente

001-02" com os campos Nome, Endereço,

Bairro, Estado, Cidade, Cep e Telefone e

botões "Salvar" e "Fechar"

2 Informar os campos obrigatórios > Clicar no

botão "Salvar"

O sistema limpa os campos da tela e

emite a mensagem "Cadastro efetuado

com sucesso." no topo da tela

"Incluir/Alterar Cliente 001-02".

Pós Condição: Cliente cadastrado com sucesso na base de dados.

54

Page 55: Teste de Software I - Principais Conceitos_V02

... antes de elaborar casos de testes

• Definição de cenários de testes

•Organiza as idéias do que deve ser testado;

•Avalia a cobertura dos testes antes do esforço

da preparação;

•Revisa os requisitos de testes;

55

Page 56: Teste de Software I - Principais Conceitos_V02

Exemplo

Cenário 1: Pesquisa válida de livro

Caso de Testes 1: Pesquisa por título

Caso de Testes 2: Pesquisa por autor

existente

Caso de Testes 3: Pesquisa todos os livros

Caso de Testes 4: Pesquisa livros

inexistentes

Cenário 2: Pesquisa inválida de

livro

Caso de Testes 1: Campo obrigatório

em branco

Caso de Testes 2: Pesquisa autor

inválido

Requisito 1: Pesquisar livro

Cada caso de testes terá um conjunto de passos ou procedimentos para a realização

da pesquisa. Exemplo:

- Informar o título válido

- Clicar no botão „Pesquisar‟

- Sistema retorna a lista de livros para o título pesquisado

- Clicar em „Fechar‟ 56

Page 57: Teste de Software I - Principais Conceitos_V02

Técnicas de Testes O que é uma técnica de teste?

• Padrões que auxiliam na identificação dos

cenários de testes de acordo com o requisito a

ser testado.

57

Page 58: Teste de Software I - Principais Conceitos_V02

No mínimo quantos casos de

testes podem ser levantados para

a tela abaixo?

Título:

Autor:

Pesquisar Voltar

Tela Pesquisar obra

58

Page 59: Teste de Software I - Principais Conceitos_V02

Resposta Título Autor Resultado

V V Pesquisa OK

V - Pesquisa OK

- V Pesquisa OK

- - Msg erro

V I Msg erro

I V Msg erro

I - Msg erro

- I Msg erro

I I Msg erro

Fazendo este exercício, implicitamente você está utilizando

uma técnica de testes.

Page 60: Teste de Software I - Principais Conceitos_V02

Técnicas de testes funcionais

1. Equivalência de Classe

2. Valor Limite

3. Tabela de Decisão

Page 61: Teste de Software I - Principais Conceitos_V02

Técnicas de testes funcionais 1. Equivalência de Classe

Regra:

Menor ou igual a 16 anos não contrata funcionário

Maior que 16 a 18 anos contrata em tempo parcial

Maior que 18 a 55 anos contrata em tempo integral

Maior que 55 anos não contrata

0 16 18 55

5 17 30 60

Page 62: Teste de Software I - Principais Conceitos_V02

1. Resultado - Equivalência de Classe

Técnica para redução da quantidade de casos de testes, que pode ser utilizada de

forma intuitiva.

No mínimo 4 casos de testes para comprovar que a regra de negócio está sendo

atendida;

Caso de testes Idade entrada Resultado

CT1 5 Não contrata

CT2 17 Contrata tempo parcial

CT3 30 Contrata tempo integral

CT4 60 Não contrata

Page 63: Teste de Software I - Principais Conceitos_V02

2. Valor Limite

Regra:

Menor ou igual a 16 anos não contrata funcionário

Maior que 16 a 18 anos contrata em tempo parcial

Maior que 18 a 55 anos contrata em tempo integral

Maior que 55 anos não contrata

0 16 18 55

-1, 0, 1 15, 16, 17 17, 18, 19 54, 55, 56 98, 99, 100

99

Page 64: Teste de Software I - Principais Conceitos_V02

2. Resultado – Valor Limite

Caso de testes Idade entrada Resultado

CT1 -1 Idade inválida

CT2 0 Não contrata

CT3 1 Não contrata

CT4 15 Não contrata

CT5 16 Não contrata

CT6 17 Contrata tempo parcial

CT7 18 Contrata tempo parcial

CT8 19 Contrata tempo integral

CT9 54 Contrata tempo integral

CT10 55 Contrata tempo integral

CT11 56 Não contrata

CT12 98 Não contrata

CT13 99 Não contrata

CT14 100 Idade inválida

Page 65: Teste de Software I - Principais Conceitos_V02

3. Tabela de Decisão

Regra mais complexa:

Menor ou igual a 16 anos não contrata

Maior que 16 a 18 anos e solteiro tempo parcial

Maior que 16 a 18 anos e casado tempo integral

Maior que 18 a 55 anos e solteiro tempo parcial

Maior que 18 a 55 anos e casado tempo integral

Maior que 55 anos não contrata

Page 66: Teste de Software I - Principais Conceitos_V02

3. Resultado - Tabela de Decisão

Regra1 Regra2 Regra3 Regra4 Regra5 Regra6

Condição

Idade 15 17 17 30 30 60

Estado Civil Solteiro Solteiro Casado Solteiro Casado Solteiro

Ação

Contratação Não Parcial Integral Parcial Integral Não

Pode-se utilizar a tabela de decisão com a técnica „Valores Limites‟ para

aumentar a quantidade de valores testados.

Page 67: Teste de Software I - Principais Conceitos_V02

Exercício 2

Utilizando as técnicas de testes „Valores Limites‟, levante a quantidade de casos de testes necessários para atender à regra do negócio

Tempo: 20 minutos

Equipe: duplas

67

Page 68: Teste de Software I - Principais Conceitos_V02

Exercício 2 - Regra

"... o cálculo do desconto por dependente é feito da

seguinte forma: a entrada é a idade do dependente

que deve estar restrita ao intervalo [0; 24]. Para

dependentes até 12 anos o desconto é de 15%.

Entre 13 e 18 o desconto é de 12%. Dos 19 aos 21

o desconto é de 5% e dos 22 aos 24 de 3%. O

sistema deve aceitar uma idade máxima válida de

99 anos".

...

68

Page 69: Teste de Software I - Principais Conceitos_V02

• Definir prioridade para os casos de testes:

Orientações para elaboração dos casos de

testes

69

- Direciona a execução dos

casos de testes;

- Apoia o gerente de testes e

gerente de projeto na tomada

de decisão (mudança de

escopo, prazo) e implantação;

Para que serve

Page 70: Teste de Software I - Principais Conceitos_V02

• Não misture diferentes ações em um mesmo passo, nem utilize as

conjunções “se” ou “ou”. Cada passo deve conter uma entrada/ tarefa

clara para o testador.

• O nome do caso de testes deve corresponder exatamente à situação

que está sendo testada; Cada caso de testes deve testar somente uma

transação do início ao fim. Nova transação requer novo caso de teste;

• Devem ser elaborados pelo menos 1 caso de testes para o „Fluxo

Principal‟, para cada „Fluxo Alternativo‟ . Exceções e Regras devem ser

combinadas de acordo com cada cenário de testes;

• Devem ser testados os limites das funcionalidades;

70

Orientações para elaboração dos casos de

testes - continuação

Page 71: Teste de Software I - Principais Conceitos_V02

BOAS PRÁTICAS:

• Crie Checklists com as principais regras e

referências para criação dos casos de testes;

• Utilize testes padrões para serem aplicados pela

equipe de desenvolvimento;

71

Page 72: Teste de Software I - Principais Conceitos_V02

Desafios da Elaboração dos Casos de

Testes

Uma abordagem que não avalie o software de forma adequada e efetiva;

Uma abordagem totalmente negativa ou destrutiva – talvez nunca seja considerado aceitável;

Evitar dois extremos potenciais:

72

Page 73: Teste de Software I - Principais Conceitos_V02
Page 74: Teste de Software I - Principais Conceitos_V02

Estimativa de Esforço

74

Page 75: Teste de Software I - Principais Conceitos_V02

Como pode ser estimado esforço:

Ferramenta Use Case Point (UCP) - planejamento do esforço com base na

quantidade e complexidade dos requisitos;

Entrada de dados:

Quantidade de Use Cases;

Quantidade de fluxo principal + alternativos;

Exemplo de planilha para cálculo de esforço de testes (link)

75

Page 76: Teste de Software I - Principais Conceitos_V02

Gestão de Testes e Defeitos

76

Page 77: Teste de Software I - Principais Conceitos_V02

Quando o custo da correção dos defeitos for maior do que

o custo da ocorrência do defeito...

Custo da Qualidade

77

Quando os testes devem parar?

Page 78: Teste de Software I - Principais Conceitos_V02

Quanto custa um defeito?

• A regra 10 de Myers indica que o custo da correção de um defeito tende a ser cada vez maior quanto mais tarde ele for descoberto.

78

Page 79: Teste de Software I - Principais Conceitos_V02

Verificação: realizar inspeções/revisões sobre os produtos

gerados pelas diversas etapas do processo de teste.

• Revisão de Requisitos

• Revisão do Projeto (Design)

• Inspeção de Código

Verificação

Verificação x Validação

Validação: avaliar se o sistema atende aos requisitos do

projeto (usuário)

• Testes

79

Page 80: Teste de Software I - Principais Conceitos_V02

Processo de avaliação da qualidade dos artefatos produzidos durante o

ciclo de desenvolvimento visando a redução de custos, antecipando os

desvios e rastreando a qualidade dos artefatos a medida que são

construídos.

4

DE:

PARA:

Teste de Verificação / Quality Assurance

Através de:

Checklists

Reuniões de revisão

Revisão em pares

80

Page 81: Teste de Software I - Principais Conceitos_V02

Um processo de verificação:

Apoia a análise de ambiguidade e / ou descrições superficiais dos requisitos;

Ajuda a estabelecer processos;

Determina programas de medida para avaliar processos;

Identifica fraquezas em processos e os aperfeiçoa;

81

Page 82: Teste de Software I - Principais Conceitos_V02

•O objetivo do projeto é construir um brinquedo que

cause emoção e possa ser usado por crianças

• Deverá ter subidas e descidas íngremes de forma que o

usuário sinta medo

• O veículo deve poder levar crianças e ter no mínimo 4

rodas

• O veículo deve rodar sobre trilhos em alta velocidade

• Deve ter um mecanismo de proteção para os Passageiros

Requisitos do cliente

82

Page 83: Teste de Software I - Principais Conceitos_V02

Rampas Íngremes

Trilhos

Proteção

Utilizado por criança

4 rodas

Requisito atendido...

mas ..... O que óbvio para um não é necessariamente óbvio para o outro!

83

Page 84: Teste de Software I - Principais Conceitos_V02

O que o usuário precisava...

84

Page 85: Teste de Software I - Principais Conceitos_V02

Exemplos de Métricas

• % de defeitos detectados para cada fase de inspeção (Requisito, Análise

e Design, Construção, Teste);

• % de artefatos com defeitos;

• % de defeitos detectados por criticidade;

• Esforço médio para correção dos defeitos (Retrabalho);

• Ganho na antecipação da detecção dos defeitos;

85

Teste de Verificação / Quality Assurance

Page 86: Teste de Software I - Principais Conceitos_V02

Progresso da Execução

86

Page 87: Teste de Software I - Principais Conceitos_V02

87

Acompanhamento da execução

• Acompanhamento de cronograma por prioridade

de teste;

• Reports de acompanhamento para todos os

envolvidos (periodicidade pré definida);

• Controle dos casos de testes que estão

bloqueados por defeitos;

• Planejamento de ciclos de testes

Page 88: Teste de Software I - Principais Conceitos_V02

Status execução por Projeto

10

12

5

20

15

2

16

2

5

1

5

1

14

10

20

55

21

0

0

5

10

15

20

25

Projeto / Release A Projeto / Release B Projeto / Release C Projeto / Release D

Passed

Failed

Blocked

No Run

Not Completed

Projeto A - Execução por risco

10

25

22

5

12

2 1

10

25

16

5 58

0

5

10

15

20

25

Passed Failed Blocked No Run Not

Completed

Alto

Médio

Baixo

88

Reports de execução - exemplo

Page 89: Teste de Software I - Principais Conceitos_V02

89

Fluxo do Defeitos - exemplo

Acompanhamento de defeitos

Page 90: Teste de Software I - Principais Conceitos_V02

Status dos defeitos por Prioridade

10

35

3

25

2 35

3

12

2

54

10 9

0

5

10

15

20

25

30

Open Assigned Pending

Retest

Failed

Retest

Closed

1-Critical

2-High

3-Medium

4-Low

Defeitos por Prioridade

Defeitos por Categoria

90

Reports de defeitos - exemplo

Page 91: Teste de Software I - Principais Conceitos_V02

Projeto A - Defeitos por fase de teste

20

35

30

21

15

3

0

5

10

15

20

25

30

35

40

Closed Open Pending

Retest

Failed Retest

Unitário

Sistema

Aceitação

Defeitos por Fase de teste

91

Reports de defeitos - exemplo

Page 92: Teste de Software I - Principais Conceitos_V02

Idade dos defeitos

92

Reports de defeitos - exemplo

Page 93: Teste de Software I - Principais Conceitos_V02

Métricas de defeitos utilizando ferramentas

93

Reports de defeitos - exemplo

Page 94: Teste de Software I - Principais Conceitos_V02
Page 95: Teste de Software I - Principais Conceitos_V02

Sumário Final dos testes e Coleta

de Métricas

95

Page 96: Teste de Software I - Principais Conceitos_V02

O que não pode ser medido, não pode ser melhorado!

96

Page 97: Teste de Software I - Principais Conceitos_V02

97

Efetividade dos Testes

Mede a qualidade dos testes realizados antes do sistema ser implantado,

comparando a quantidade de defeitos encontrados na fase „Test‟ com relação

aos defeitos detectados em „Produção‟.

Densidade de Defeitos

Mede a qualidade do projeto de acordo com a quantidade de defeitos

encontrados na fase „Test‟ e „Produção‟, de acordo com o seu tamanho em

UCP.

Page 98: Teste de Software I - Principais Conceitos_V02

98

Como Calcular

Efetividade dos Testes = A / (A+B)

Densidade de Defeitos = (A + B) / UCP

◦Considerar:

◦A = Defeitos encontrados nas atividades de testes

◦B = Defeitos encontrados em produção

Exemplo:

UCP = 300 (aproximadamente 20 Use Cases)

Total de Defeitos em Teste de Sistema = 100

Total de Defeitos em Teste de Aceitação = 45

Defeitos Produção = 2

TEI = (100 + 45) / (100 + 45 + 2) 98,6

DD = (100 + 45 + 2) / 300 0,49

Importante medir, analisar e estabelecer metas

Page 99: Teste de Software I - Principais Conceitos_V02

Indicadores de qualidade – Efetividade de testes

88%

90%

94% 94%

80%

70%

75%

80%

85%

90%

95%

100%

Release 1 Release 2 Release 3 Release 4 Release 5

Efetividade dos testes - Releases 2010

99

Page 100: Teste de Software I - Principais Conceitos_V02

0

0,2

0,4

0,6

0,8

1

1,2

1,4

1,6

Release 1 Release 2 Release 3 Release 4 Release 5

Densidade de defeitos - Releases 2010

Série1

100

Indicadores de qualidade – Densidade de defeitos

Page 101: Teste de Software I - Principais Conceitos_V02

101

Defeitos por categoria - 2008

965; 8%

7865; 68%

1206; 10%

1617; 14%

Defeitos por categoria - 2009

2351; 19%

6672; 54%

1794; 14%

1650; 13%

Defeitos por categoria - 2010

893; 12%

5059; 66%

913; 12%

794; 10%

Identifica onde está a maior causa dos defeitos.

Indicadores de qualidade – Defeitos por categoria

Page 102: Teste de Software I - Principais Conceitos_V02

Grande quantidade de defeitos sendo detectados somente no final do projeto

Defects - Base 2010

566 645442 505

2469

3352

707

300

1300

2300

3300

Requirements Analysis Design UT/UIT SIT/ST UAT Post

Implementat ion

19% 6%

67%

8%

Identifica quando os erros estão sendo detectados.

102

Indicadores de qualidade – Fase do projeto

Page 103: Teste de Software I - Principais Conceitos_V02

Voltando ao 'Relatório Sumário de Teste'

Gerado ao final do projeto:

• Variações ocorridas (prazo, esforço)

• Sumário do resultado (qtde casos de testes executados,

qtde incidentes encontrados x corrigidos)

• Métricas coletadas

• Lições aprendidas e recomendações para melhoria do

processo

103

Page 104: Teste de Software I - Principais Conceitos_V02

Melhoria do processo...

Exemplos de Lições Aprendidas em Projetos (link)

104

Page 105: Teste de Software I - Principais Conceitos_V02

Gradativo

Adequado

Apoio gerência sênior

Resumo

Processos

Pessoas

Ferramentas

Page 106: Teste de Software I - Principais Conceitos_V02

Qualidade não é uma fase do ciclo de desenvolvimento de software...

É parte de todas as fases!

Page 107: Teste de Software I - Principais Conceitos_V02

Bibliografia

Base de Conhecimento em Teste de Software - 2a.

Edição (Rios, Emerson; Cristalli, Ricardo; Moreira,

Trayahú & Bastos, Aderson. - S.Paulo, Martins Fontes,

2007)

• Testes de Software (Molinari, Leonardo. - S.Paulo,

Érica, 2003.)

• The Rational Unified Process - An Introduction

(Kruchten, Philippe. - Boston, Addison Wesley,

1999.)

• Testes Funcionais de Software (Molinari, Leonardo. –

Florianópolis, Visual Books, 2008)

107

Page 108: Teste de Software I - Principais Conceitos_V02

Avaliação do Treinamento

Deixe sua opinião com relação ao conteúdo do

treinamento, pontos fortes e oportunidades de

melhoria…

108

Page 109: Teste de Software I - Principais Conceitos_V02

Obrigada

Nome do professor

e-mail do professor Mônica C. S. Vaz

[email protected]