priorização dos casos de teste de regressão baseados nos defeitos
DESCRIPTION
Priorização dos casos de teste de regressão baseados nos defeitosTRANSCRIPT
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