Priorização dos casos de teste de regressão baseados nos defeitos

23
Internal Use Only Priorização dos casos de teste de regressão baseados nos defeitos

description

Priorização dos casos de teste de regressão baseados nos defeitos

Transcript of Priorização dos casos de teste de regressão baseados nos defeitos

Page 1: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

Priorização dos casos de

teste de regressão

baseados nos defeitos

Page 2: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• INdT

• Apresentação pessoal

• Teste de software

• Teste de regressão

• Ambiente

• Problema encontrado

• Por que priorizar?

• Como foi implantado

• Resultados

AGENDA

INdT 20142

Page 3: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Instituto de pesquisa e desenvolvimento independente e sem

fins lucrativos fundado pela Nokia (Microsoft) e focado na geração

de novos conceitos, produtos e soluções para as áreas

relacionadas com tecnologias móveis e Internet

– Unidades em Manaus, Brasilia, Recife e São Paulo

– Projetos de pesquisa e de desenvolvimento de soluções

móveis

INdT

INdT 20143

Page 4: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Anne Noronha

– Desenvolvedora do time de Validação de Produto do INdT

– 3 anos de experiência em Teste de Software

– Atualmente trabalhando no projeto TV Digital

• Erickson Alves

– Desenvolvedor do time de Validação de Produto do INdT

– 1 ano de experiência em Teste de Software

– Atualmente trabalhando no projeto TV Digital

• Pablo Quiroga

– Desenvolvedor do time de Validação de Produto do INdT

– 8 anos de experiência em Teste de Software

– Atualmente trabalhando no projeto TV Digital

APRESENTAÇÃO PESSOAL

INdT 20144

Page 5: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Testar é medir a qualidade e funcionalidade de um sistema

– Teste é “o processo que consiste em todas as atividades do

ciclo de vida tanto estáticas quanto dinâmicas, voltadas para

o planejamento, preparação e avaliação de produtos de

software e produtos de trabalho relacionados a fim de

determinar se elas satisfazem os requisitos especificados e

demonstrar que estão aptas para sua finalidade e para

detecção de defeitos.” (Glossário do ISTQB)

TESTE DE SOFTWARE

INdT 20145

Page 6: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• “O teste de programas pode ser usado para mostrar a presença de

defeitos, mas nunca para mostrar a sua ausência.” (Dijkstra)

• “Testar é analisar um programa com a intenção de descobrir erros

e defeitos.” (Myers)

TESTE DE SOFTWARE

INdT 20146

Page 7: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

TESTE DE SOFTWARE

INdT 20147

Page 8: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Tipo de teste para assegurar que mudanças feitas no software não

adicionaram defeitos ao mesmo

• Os testes de regressão voltam a testar segmentos já testados após

a implementação de uma mudança em outra parte do software

TESTE DE REGRESSÃO

INdT 20148

Page 9: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Projeto TV Digital com o framework ágil Scrum

– 10 dias úteis de sprint

– 10 desenvolvedores

– 3 testadores

– 5 versões por sprint para validação

– 78 casos de teste de regressão

– 15 minutos em média para casa caso de teste

– 6 horas e 30 minutos para cada teste de regressão,

contando com os 3 testadores focados para esta tarefa

AMBIENTE

INdT 20149

Page 10: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

AMBIENTE

INdT 201410

App

Middleware Ginga

TV Digital

Page 11: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Existem semanas específicas acordadas previamente com o

cliente para que entregas sejam feitas

– Cada entrega seria uma versão prévia estável do produto final

– Após uma entrega ser feita, a próxima continua em

desenvolvimento para que uma versão mais completa seja

entregue na próxima data

– No período de entrega de versão, cada alteração feita no

produto deve ser assegurada estável e validada para não

comprometer a entrega final

PROBLEMA ENCONTRADO

INdT 201411

Page 12: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Em média, 1 defeito por dia era encontrado em semana de

entrega. Ou seja, ao corrigi-lo, um teste de regressão devia ser

executado

PROBLEMA ENCONTRADO

INdT 201412

Horas de trabalho diárias

Regressão Outras atividades

Page 13: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Assim sendo, viu-se a necessidade de diminuir o tempo de

execução de uma suíte de regressão

• Alternativas

– Aumentar o número de testadores (custoso, logo inviável)

– Executar os casos de teste mais rápido (adiciona riscos,

podendo diminuir a concentração necessária)

– Diminuir o número de casos de teste

PROBLEMA ENCONTRADO

INdT 201413

Page 14: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Dados 𝑇 uma suíte de teste, 𝑃𝑇 um conjunto de permutações de 𝑇,

𝑓 uma função de 𝑃𝑇 para os números reais, o problema é achar

𝑇′ ∈ 𝑃𝑇 tal que:

∀𝑇′′ 𝑇′′ ∈ 𝑃𝑇 𝑇′′ ≠ 𝑇′ [𝑓 𝑇′ ≥ 𝑓(𝑇′′)]

• 𝑃𝑇 é o conjunto de todas as possibilidades de ordenação de 𝑇 e 𝑓

é uma função que atribui um valor real para qualquer ordenação

dada. 𝑓 também representa o objetivo da priorização

O PROBLEMA ENCONTRADO

INdT 201414

Page 15: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Uma suíte de teste sempre precisa passar por atualizações

• Aumentando o número de casos de teste, aumenta-se o tempo

para execução de uma suíte

• Quanto mais cobertura a suíte tiver e menos tempo ela levar para

ser executada, melhor

POR QUE PRIORIZAR?

INdT 201415

Page 16: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Um software é definido por suas funcionalidades

– 𝐹1, 𝐹2, … , 𝐹𝑁 ∈ 𝑃

• Cada funcionalidade contem casos de teste para validá-la e cada

execução desses casos de teste podem gerar defeitos para a

funcionalidade

– (𝐶𝑇1, 𝐶𝑇2, … , 𝐶𝑇𝑁) ∈ 𝐹𝑖– (𝐷1, 𝐷2, … , 𝐷𝑁) ∈ 𝐹𝑖

• Cada caso de teste é composto por uma sequência de passos

– (𝑆1, 𝑆2, … , 𝑆𝑁) ∈ 𝐶𝑇𝑖

COMO FOI IMPLANTADO

INdT 201416

Page 17: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Para cada funcionalidade, são unificados os casos de teste

especificados para ela e os defeitos encontrados para ela em

forma de caso de teste

– Gera-se uma suíte temporária 𝑇𝑃

• Para cada caso de teste 𝐶𝑇𝑖 ∈ 𝑇𝑃, uma análise de seus passos,

observando se existe algum outro caso de teste que cubra os

passos do mesmo

– Caso existe um caso de teste 𝐶𝑇𝑗 ∈ 𝑇𝑃(𝑖 ≠ 𝑗) que cubra 𝐶𝑇𝑖,

𝐶𝑇𝑖 é removido de 𝑇𝑃

COMO FOI IMPLANTADO

INdT 201417

Page 18: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

• Ao final do processo, tem-se uma suíte de teste reduzida e

priorizada de acordo com os defeitos encontrados previamente em

cada funcionalidade

• Consegue-se uma diminuição do tempo para validar cada nova

versão do produto

COMO FOI IMPLANTADO

INdT 201418

Page 19: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

ParâmetrosSuíte de

regressão original

Suíte de regressão

priorizada

Testadores 3 3

Casos de teste 78 48

Tempo médio de cada caso de teste

(min)

15 15

Tempo de execução total (h) 6,5 4

RESULTADOS

INdT 201419

𝑅𝑒𝑑𝑢çã𝑜 % =(6,5 − 4)

6,5≅ 𝟑𝟖%

Page 20: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

PERGUNTAS

INdT 201420

Page 21: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

REFERÊNCIAS

INdT 201421

• Binder, Robert V. (1999) Francisco Gomes Testing object-oriented

systems: models, patterns, and tools. Addison-Wesley Longman

Publishing Co., Inc., Boston, MA, USA.

• Elbaum S., Malishevsky A, Rothermel G. (2001). Prioritizing test

cases for regression testing. In Proceedings of the International

Symposium on Software Testing and Analysis.

• Kaner C., Falk J., Nguyen Q. (1999). Testing Computer Software,

2nd edition, Willey.

Page 22: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

REFERÊNCIAS

INdT 201422

• Sommerville, Ian. (2006). Software Engineering, 8th edition,

Addison Wesley.

• Watkins, John. (2001). An off-the-shelf Software Testing Process,

1st edition, Cambridge University Press.

• Dustin E., Rashka J., Paul J. (1999). Automated Software Testing –

Introduction, Management and Performance, 1st edition, Addison

Wesley.

Page 23: Priorização dos casos de teste de regressão baseados nos defeitos

Internal Use Only

CONTATO

<anne.noronha, erickson.alves,

pablo.quiroga>@indt.org,br