O documento descreve um método para priorizar casos de teste de regressão com base nos defeitos encontrados. O método unifica casos de teste e defeitos por funcionalidade, analisa a cobertura entre casos para remover duplicatas, resultando em uma suíte reduzida e priorizada. Isso diminuiu o tempo de execução dos testes de regressão em 25%.
Testar é somente apertar botões?
A apresentação foi feita para demonstrar a importância do testes de software, na construção de um software de qualidade.
O documento discute integração contínua, incluindo seus conceitos, benefícios e pré-requisitos. A integração contínua envolve construir e testar automaticamente o software sempre que novas mudanças são implementadas para garantir que o software esteja sempre em um estado funcional. Isso ajuda a detectar bugs cedo e manter o software de alta qualidade. Pré-requisitos incluem controle de versão, builds automatizados e testes automatizados.
Introdução a Testes de Software - Unidade IJoão Lourenço
1) O documento apresenta um curso sobre testes automatizados de software, incluindo objetivos, metodologia, conteúdo e conceitos básicos de teste de software.
2) Serão abordados testes unitários, testes de integração, testes funcionais e testes de carga, além de técnicas como TestNG e Mockito.
3) O curso visa demonstrar tecnologias e boas práticas para a construção de testes automatizados, facilitando o desenvolvimento e melhoria dos processos de teste.
O documento apresenta os conceitos e técnicas fundamentais de teste de software, descrevendo os objetivos do teste, os principais papéis e responsabilidades na equipe de teste, assim como os estágios e ciclo de vida dos testes.
O documento apresenta uma introdução ao teste de software, discutindo sua história, objetivos, processos, técnicas e ferramentas. Inclui tópicos como planejamento, projeto, execução e entrega de testes, níveis de teste, técnicas como caixa preta e branca e critérios como análise de valor limite e tabela de decisão. Por fim, fornece referências sobre o tema.
O documento discute testes de unidade automatizados e desenvolvimento orientado a testes (Test-Driven Development - TDD). O TDD envolve escrever testes unitários antes de escrever o código, para garantir que o código atenda aos requisitos funcionais e seja testável. O ciclo do TDD inclui escrever um teste, escrever o código mínimo para fazer o teste passar e refatorar o código. A abordagem do TDD ajuda a aumentar a confiabilidade, documentar requisitos e reduzir defeitos.
O documento fornece uma visão geral de técnicas e abordagens de teste de qualidade ágil, incluindo matrizes de teste, níveis de teste, tipos de teste comuns, técnicas de especificação e estrutura-baseadas, e abordagens como teste baseado em comportamento e risco. Ele também discute mitos comuns sobre teste e fornece referências adicionais.
O documento discute os conceitos e vantagens dos testes de software, apresentando os tipos de teste (caixa branca, preta e cinza) e as fases do teste (unidade, integração, sistema e aceitação). O objetivo dos testes é garantir a qualidade do software através da identificação de bugs.
Testar é somente apertar botões?
A apresentação foi feita para demonstrar a importância do testes de software, na construção de um software de qualidade.
O documento discute integração contínua, incluindo seus conceitos, benefícios e pré-requisitos. A integração contínua envolve construir e testar automaticamente o software sempre que novas mudanças são implementadas para garantir que o software esteja sempre em um estado funcional. Isso ajuda a detectar bugs cedo e manter o software de alta qualidade. Pré-requisitos incluem controle de versão, builds automatizados e testes automatizados.
Introdução a Testes de Software - Unidade IJoão Lourenço
1) O documento apresenta um curso sobre testes automatizados de software, incluindo objetivos, metodologia, conteúdo e conceitos básicos de teste de software.
2) Serão abordados testes unitários, testes de integração, testes funcionais e testes de carga, além de técnicas como TestNG e Mockito.
3) O curso visa demonstrar tecnologias e boas práticas para a construção de testes automatizados, facilitando o desenvolvimento e melhoria dos processos de teste.
O documento apresenta os conceitos e técnicas fundamentais de teste de software, descrevendo os objetivos do teste, os principais papéis e responsabilidades na equipe de teste, assim como os estágios e ciclo de vida dos testes.
O documento apresenta uma introdução ao teste de software, discutindo sua história, objetivos, processos, técnicas e ferramentas. Inclui tópicos como planejamento, projeto, execução e entrega de testes, níveis de teste, técnicas como caixa preta e branca e critérios como análise de valor limite e tabela de decisão. Por fim, fornece referências sobre o tema.
O documento discute testes de unidade automatizados e desenvolvimento orientado a testes (Test-Driven Development - TDD). O TDD envolve escrever testes unitários antes de escrever o código, para garantir que o código atenda aos requisitos funcionais e seja testável. O ciclo do TDD inclui escrever um teste, escrever o código mínimo para fazer o teste passar e refatorar o código. A abordagem do TDD ajuda a aumentar a confiabilidade, documentar requisitos e reduzir defeitos.
O documento fornece uma visão geral de técnicas e abordagens de teste de qualidade ágil, incluindo matrizes de teste, níveis de teste, tipos de teste comuns, técnicas de especificação e estrutura-baseadas, e abordagens como teste baseado em comportamento e risco. Ele também discute mitos comuns sobre teste e fornece referências adicionais.
O documento discute os conceitos e vantagens dos testes de software, apresentando os tipos de teste (caixa branca, preta e cinza) e as fases do teste (unidade, integração, sistema e aceitação). O objetivo dos testes é garantir a qualidade do software através da identificação de bugs.
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
O documento discute testes de software e desenvolvimento orientado a testes (TDD) usando PHPUnit. Ele introduz TDD, testes unitários, e PHPUnit, e enfatiza a importância da qualidade de software e dos testes para prevenir erros.
O documento descreve uma pesquisa sobre o efeito das taxas de revisão no processo de desenvolvimento de software. Foram analisados dados de 617 programas desenvolvidos no Personal Software Process (PSP). Os resultados mostram que taxas de revisão menores que 200 linhas de código por hora são mais eficazes na detecção de defeitos, identificando quase dois terços dos problemas.
Trabalho realizado pelo aluno Rafael Sanches sobre teste de software explicando os passos necessários para realização de testes no desenvolvimento de software.
Um desafio prático dos testes de unidade é a dependência entre unidades. Quando uma unidade depende de outras, é necessário desenvolver stubs (unidades substitutas) para as unidades dependentes para que a unidade sob teste possa ser testada isoladamente. Isso requer esforço adicional de desenvolvimento que pode atrasar o processo de teste. Além disso, bugs nos stubs podem mascarar ou simular bugs na unidade real, comprometendo a efetividade dos testes. Gerenciar as dependências entre unidades para permitir testes isolados é um desafio na prática dos testes de
O documento introduz conceitos básicos sobre teste de software, incluindo: 1) Teste de software é o processo de execução de um produto para determinar se atendeu suas especificações; 2) Existem diferentes níveis de teste como unidade, integração e sistema; 3) Critérios de teste como particionamento de classes de equivalência e análise de valor limite são usados para gerar casos de teste.
O documento discute os conceitos e técnicas de teste de software, com o objetivo de encontrar falhas e melhorar a qualidade do produto. Aborda temas como definição de teste de software, tipos de testes (caixa preta, caixa branca, caixa cinza), categorias de testes (unidade, integração, sistema), equipes de teste e por que testamos software.
Este documento apresenta conceitos básicos sobre teste de software, incluindo testes de unidade, funcional e integração. Também discute estratégias de teste no desenvolvimento dirigido por testes (TDD) e apresenta referências sobre TDD com Ruby e teste de unidade com Ruby.
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
O documento discute a implantação de um processo de teste de software, incluindo a importância da qualidade de software, os benefícios e desafios da implementação de um processo de teste, e as ferramentas e padrões utilizados no processo de teste de sistemas embarcados.
Alcançando qualidade de software através de entrega contínuaSamanta Cicilia
Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas. Processos de desenvolvimento são muitas vezes burocráticos. O desenvolvimento ágil veio para nos mostrar que a forma que pensávamos em software podia ser melhorada. A Entrega Contínua veio para potencializar a entrega desde a primeira linha de código até produção. Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas: Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
Este documento apresenta uma introdução ao teste de software, abordando os principais conceitos e atividades envolvidas no processo de teste de software, como planejamento, execução e avaliação dos resultados.
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
O documento discute os benefícios e limitações do teste de software, incluindo como o teste pode reduzir custos e aumentar a qualidade se bem planejado. Também aborda conceitos como objetivos de teste, verificação e validação, projeto de casos de teste e análise de cobertura.
O documento apresenta uma introdução sobre qualidade e teste de software, abordando:
1) Definições de qualidade, teste de software, verificação e validação;
2) Papéis e perfis dos profissionais de teste;
3) Técnicas para derivar casos de teste a partir de casos de uso.
O documento apresenta um plano de treinamento sobre testes funcionais que inclui três dias de aulas. No primeiro dia serão abordados fundamentos de testes e derivação de casos de teste a partir de casos de uso. Nos dias seguintes serão apresentados recursos de uma ferramenta de teste funcional e realizados laboratórios sobre projeto de testes, criação de scripts manuais e automatizados e geração de relatórios.
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
Camilo Falcão Ribeiro é um analista e arquiteto de teste com mais de quatro anos de experiência em testes de software e processos. Ele participou de mais de 40 projetos de software e projetos de implantação do CMMi em todos os níveis. Ribeiro é graduado em Sistemas para Internet e pós-graduando em Engenharia de Software.
O documento apresenta uma palestra sobre verificação, validação e testes de software. A agenda inclui conceitos básicos, o negócio da V&V, modelo em V, planejamento, revisão técnica e tipos de testes. O palestrante tem experiência em processos CMMi e liderança de projetos de software embarcado.
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
1. O documento discute testes de software, incluindo princípios, ferramentas e carreiras.
2. São apresentados os motivos para testar software, como evitar defeitos e aumentar a satisfação dos clientes.
3. São descritos os níveis, tipos e técnicas de teste de software, assim como ferramentas comuns de teste e oportunidades de carreira na área.
Uma breve apresentação do método de desenvolvimento guiado ao teste (TDD). Mostrando a definição, diferenças, motivos para sua utilização e o por quê utiliza-lo.
Verificação visa assegurar que o software seja desenvolvido de um modo apropriado e consistente. Validação visa assegurar que o software corresponda aos requisitos estabelecidos. Teste visa examinar o comportamento do software através de sua execução.
O documento discute o que é teste de software, por que é necessário testar e os principais princípios e processos de teste de software. Explica que teste de software envolve executar um programa para descobrir erros, que testar é necessário para evitar prejuízos financeiros e de reputação causados por falhas, e que os humanos sempre cometem erros, justificando a necessidade de testes.
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
O documento discute testes de software e desenvolvimento orientado a testes (TDD) usando PHPUnit. Ele introduz TDD, testes unitários, e PHPUnit, e enfatiza a importância da qualidade de software e dos testes para prevenir erros.
O documento descreve uma pesquisa sobre o efeito das taxas de revisão no processo de desenvolvimento de software. Foram analisados dados de 617 programas desenvolvidos no Personal Software Process (PSP). Os resultados mostram que taxas de revisão menores que 200 linhas de código por hora são mais eficazes na detecção de defeitos, identificando quase dois terços dos problemas.
Trabalho realizado pelo aluno Rafael Sanches sobre teste de software explicando os passos necessários para realização de testes no desenvolvimento de software.
Um desafio prático dos testes de unidade é a dependência entre unidades. Quando uma unidade depende de outras, é necessário desenvolver stubs (unidades substitutas) para as unidades dependentes para que a unidade sob teste possa ser testada isoladamente. Isso requer esforço adicional de desenvolvimento que pode atrasar o processo de teste. Além disso, bugs nos stubs podem mascarar ou simular bugs na unidade real, comprometendo a efetividade dos testes. Gerenciar as dependências entre unidades para permitir testes isolados é um desafio na prática dos testes de
O documento introduz conceitos básicos sobre teste de software, incluindo: 1) Teste de software é o processo de execução de um produto para determinar se atendeu suas especificações; 2) Existem diferentes níveis de teste como unidade, integração e sistema; 3) Critérios de teste como particionamento de classes de equivalência e análise de valor limite são usados para gerar casos de teste.
O documento discute os conceitos e técnicas de teste de software, com o objetivo de encontrar falhas e melhorar a qualidade do produto. Aborda temas como definição de teste de software, tipos de testes (caixa preta, caixa branca, caixa cinza), categorias de testes (unidade, integração, sistema), equipes de teste e por que testamos software.
Este documento apresenta conceitos básicos sobre teste de software, incluindo testes de unidade, funcional e integração. Também discute estratégias de teste no desenvolvimento dirigido por testes (TDD) e apresenta referências sobre TDD com Ruby e teste de unidade com Ruby.
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
O documento discute a implantação de um processo de teste de software, incluindo a importância da qualidade de software, os benefícios e desafios da implementação de um processo de teste, e as ferramentas e padrões utilizados no processo de teste de sistemas embarcados.
Alcançando qualidade de software através de entrega contínuaSamanta Cicilia
Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas. Processos de desenvolvimento são muitas vezes burocráticos. O desenvolvimento ágil veio para nos mostrar que a forma que pensávamos em software podia ser melhorada. A Entrega Contínua veio para potencializar a entrega desde a primeira linha de código até produção. Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas: Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
Este documento apresenta uma introdução ao teste de software, abordando os principais conceitos e atividades envolvidas no processo de teste de software, como planejamento, execução e avaliação dos resultados.
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
O documento discute os benefícios e limitações do teste de software, incluindo como o teste pode reduzir custos e aumentar a qualidade se bem planejado. Também aborda conceitos como objetivos de teste, verificação e validação, projeto de casos de teste e análise de cobertura.
O documento apresenta uma introdução sobre qualidade e teste de software, abordando:
1) Definições de qualidade, teste de software, verificação e validação;
2) Papéis e perfis dos profissionais de teste;
3) Técnicas para derivar casos de teste a partir de casos de uso.
O documento apresenta um plano de treinamento sobre testes funcionais que inclui três dias de aulas. No primeiro dia serão abordados fundamentos de testes e derivação de casos de teste a partir de casos de uso. Nos dias seguintes serão apresentados recursos de uma ferramenta de teste funcional e realizados laboratórios sobre projeto de testes, criação de scripts manuais e automatizados e geração de relatórios.
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
Camilo Falcão Ribeiro é um analista e arquiteto de teste com mais de quatro anos de experiência em testes de software e processos. Ele participou de mais de 40 projetos de software e projetos de implantação do CMMi em todos os níveis. Ribeiro é graduado em Sistemas para Internet e pós-graduando em Engenharia de Software.
O documento apresenta uma palestra sobre verificação, validação e testes de software. A agenda inclui conceitos básicos, o negócio da V&V, modelo em V, planejamento, revisão técnica e tipos de testes. O palestrante tem experiência em processos CMMi e liderança de projetos de software embarcado.
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
1. O documento discute testes de software, incluindo princípios, ferramentas e carreiras.
2. São apresentados os motivos para testar software, como evitar defeitos e aumentar a satisfação dos clientes.
3. São descritos os níveis, tipos e técnicas de teste de software, assim como ferramentas comuns de teste e oportunidades de carreira na área.
Uma breve apresentação do método de desenvolvimento guiado ao teste (TDD). Mostrando a definição, diferenças, motivos para sua utilização e o por quê utiliza-lo.
Verificação visa assegurar que o software seja desenvolvido de um modo apropriado e consistente. Validação visa assegurar que o software corresponda aos requisitos estabelecidos. Teste visa examinar o comportamento do software através de sua execução.
O documento discute o que é teste de software, por que é necessário testar e os principais princípios e processos de teste de software. Explica que teste de software envolve executar um programa para descobrir erros, que testar é necessário para evitar prejuízos financeiros e de reputação causados por falhas, e que os humanos sempre cometem erros, justificando a necessidade de testes.
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
Empresas no mundo inteiro têm cada vez mais dificuldade para desenvolver e entregar software de qualidade. Os desafios são vários, tais como gerenciar as expectativas do usuário e as mudanças constantes de requisitos, bem como garantir a coesão e o foco do time. Venha ver como o desenvolvimento ágil de aplicações, apoiado sobre o Scrum e o Team Foundation Server 2012, podem ajudar times de desenvolvimento a melhorar seu dia-a-dia de trabalho para entregar software de qualidade a seus clientes.
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
O documento discute técnicas de revisão de software como uma forma efetiva de melhorar a qualidade do software. A revisão técnica formal é apontada como o filtro mais efetivo para garantir a qualidade, com o objetivo de encontrar erros antes de serem entregues ao usuário final. Defeitos descobertos nas fases iniciais custam menos para corrigir do que defeitos encontrados mais tarde.
O documento apresenta os principais conceitos e atividades relacionadas ao processo de teste de software, incluindo a motivação para testes, formação de equipes de teste, estágios de teste, tipos de teste, planejamento e execução de testes e ferramentas de teste.
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
1) O documento discute os conceitos e técnicas de teste de software, incluindo os objetivos dos testes, diferentes tipos de testes e estratégias de teste.
2) São descritos os conceitos de defeito, erro e falha, além das diferenças entre teste e depuração.
3) São apresentadas as etapas de um processo de teste, incluindo teste de unidade, integração, validação e sistema.
O documento discute validação e testes de software, abordando tópicos como:
1) Os diferentes níveis de teste (unidade, integração, sistema e aceitação);
2) As abordagens de teste (caixa preta e caixa branca);
3) Os principais papéis no processo de teste (gerente de teste, líder de projeto de teste, etc);
4) A importância da documentação no planejamento e execução dos testes.
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
O documento discute a importância dos testes de software para garantir a qualidade e evitar bugs caros. Ele explica que testes devem ser realizados em três momentos: antes do desenvolvimento, durante o desenvolvimento e depois que o software é implantado. O documento também fornece exemplos de como práticas ágeis e testes automatizados podem melhorar a qualidade e reduzir custos.
O documento discute os desafios de projetos de software e as vantagens das metodologias ágeis como Scrum e Extreme Programming. Menciona que apenas 20% dos projetos de software entregam valor real para os usuários e que as metodologias ágeis permitem entregas frequentes com feedback do cliente.
O documento descreve o desenvolvimento guiado por testes (Test-Driven Development - TDD), incluindo suas regras fundamentais, etapas, tipos de testes, demonstração de um exemplo e conclusões sobre os benefícios do TDD.
O documento apresenta os principais conceitos e benefícios de testes de software, introduzindo testes unitários, de aceitação e de integração. Defende a importância da escrita de testes para garantir a qualidade do código e reduzir bugs, apresentando TDD e BDD como abordagens que utilizam testes no desenvolvimento de software.
Verificação e validação (V&V) são processos para melhorar a qualidade de software e produtividade. V&V permite identificar problemas cedo e corrigi-los antes da entrega, aumentando a produtividade. Técnicas estáticas como revisões e inspeções verificam a qualidade antes dos testes dinâmicos. Testes de software como caixa branca e preta são importantes para validar que o software atende aos requisitos.
O documento discute os desafios e atividades relacionadas ao teste de software. Os principais desafios incluem: (1) a impossibilidade de testar todas as entradas devido ao número astronômico de casos de teste possíveis; (2) garantir que correções e novas funcionalidades não introduzam novos bugs através de testes de regressão; (3) envolver a equipe de desenvolvimento no processo de teste desde as primeiras fases do projeto. As atividades realizadas em 2014 incluem automação de testes e manutenção de casos de teste
Palestra Fundamentos de Testes - Tche linux POAAline Zanin
Este documento apresenta os fundamentos de testes de software, incluindo: (1) tipos de testes como teste de unidade, integração e caixa preta/branca; (2) princípios fundamentais de teste; (3) processo de teste envolvendo planejamento, execução e relatórios; (4) definição de cenários e casos de teste. O documento fornece uma introdução abrangente aos conceitos e práticas-chave de teste de software.
O documento discute os processos e técnicas de teste de software, abordando tópicos como ciclo de vida de testes, métodos de teste, métricas e tecnologias. Ele destaca a importância da adoção de processos de qualidade para melhorar o desenvolvimento de software, reduzir custos e riscos.
O documento discute a importância da qualidade de software e como alcançá-la. Apresenta os desafios comuns entre testadores e desenvolvedores e como a automação de testes com ferramentas como o Visual Studio podem ajudar a superá-los, melhorando a comunicação, reprodutibilidade de defeitos e agilidade.
O documento discute se projetos ágeis precisam de testes de qualidade (QA) e apresenta argumentos a favor. Apresenta princípios como "todos testam" e papel dos testadores em fornecer feedback e ajudar a esclarecer requisitos. Também discute boas práticas como automação de testes, integração contínua e colaboração com usuários. Conclui que QA é necessário para assegurar a evolução do sistema e deve adotar técnicas que otimizem a estratégia ágil.
[1] O documento discute testes de unidade com o framework Junit, incluindo conceitos de testes de unidade, vantagens dos testes de unidade, como escrever testes com Junit e práticas recomendadas para testes de unidade. [2] Também aborda o uso de bibliotecas como EasyMock e DbUnit para isolar dependências e testar a camada de persistência e [3] discute o desenvolvimento guiado por testes (TDD).
Semelhante a Priorização dos casos de teste de regressão baseados nos defeitos (20)
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