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

Transcript
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