2. Internal Use Only
AGENDA
• INdT
• Apresentação pessoal
• Teste de software
• Teste de regressão
• Ambiente
• Problema encontrado
• Por que priorizar?
• Como foi implantado
• Resultados
2 INdT 2014
3. INdT
• 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
Internal Use Only
móveis
3 INdT 2014
4. APRESENTAÇÃO PESSOAL
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
4 INdT 2014
5. TESTE DE SOFTWARE
• 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)
Internal Use Only
5 INdT 2014
6. TESTE DE SOFTWARE
• “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
Internal Use Only
e defeitos.” (Myers)
6 INdT 2014
8. TESTE DE REGRESSÃO
• Tipo de teste para assegurar que mudanças feitas no software não
Internal Use Only
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
8 INdT 2014
9. • 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
Internal Use Only
AMBIENTE
9 INdT 2014
11. PROBLEMA ENCONTRADO
• 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
Internal Use Only
11 INdT 2014
12. PROBLEMA ENCONTRADO
• 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
Internal Use Only
12 INdT 2014
Horas de trabalho diárias
Regressão Outras atividades
13. PROBLEMA ENCONTRADO
• Assim sendo, viu-se a necessidade de diminuir o tempo de
execução de uma suíte de regressão
Internal Use Only
• 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
13 INdT 2014
14. O PROBLEMA ENCONTRADO
• 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
Internal Use Only
14 INdT 2014
15. POR QUE PRIORIZAR?
• Uma suíte de teste sempre precisa passar por atualizações
• Aumentando o número de casos de teste, aumenta-se o tempo
Internal Use Only
para execução de uma suíte
• Quanto mais cobertura a suíte tiver e menos tempo ela levar para
ser executada, melhor
15 INdT 2014
16. COMO FOI IMPLANTADO
• Um software é definido por suas funcionalidades
Internal Use Only
– 퐹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, … , 푆푁) ∈ 퐶푇푖
16 INdT 2014
17. COMO FOI IMPLANTADO
• 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 퐶푇푖,
Internal Use Only
퐶푇푖 é removido de 푇푃
17 INdT 2014
18. COMO FOI IMPLANTADO
• 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
Internal Use Only
versão do produto
18 INdT 2014
19. Internal Use Only
RESULTADOS
Parâmetros
Suí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
15 15
(min)
Tempo de execução total (h) 6,5 4
19 INdT 2014
푅푒푑푢çã표 % =
(6,5 − 4)
6,5
≅ ퟑퟖ%
21. • 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,
Internal Use Only
REFERÊNCIAS
2nd edition, Willey.
21 INdT 2014
22. • Sommerville, Ian. (2006). Software Engineering, 8th edition,
• 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
REFERÊNCIAS
Addison Wesley.
22 INdT 2014
23. Internal Use Only
CONTATO
<anne.noronha, erickson.alves,
pablo.quiroga>@indt.org,br