Internal Use Only
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
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
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
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
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
Internal Use Only
TESTE DE SOFTWARE
INdT 20147
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
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
Internal Use Only
AMBIENTE
INdT 201410
App
Middleware Ginga
TV Digital
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
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
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
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
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
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
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
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
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≅ 𝟑𝟖%
Internal Use Only
PERGUNTAS
INdT 201420
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.
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.
Internal Use Only
CONTATO
<anne.noronha, erickson.alves,
pablo.quiroga>@indt.org,br