SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Geração de Casos de 
Teste de Integração 
Efetiva de algumas 
unidades 
Pós – Graduação Senac 
Engenharia de Software com JEE
Introdução 
 O teste de integração tem como objetivo 
descobrir defeitos que são devidos a 
interações incorretas entre diferentes 
módulos de software 
 Os casos de teste de integração são 
geralmente mais complicados de 
desenvolver, e mais difíceis de gerar e 
manter do que os casos de teste de 
unidade.
Continuação... 
 Propormos uma técnica automática para 
gerar casos de teste de integração que 
aproveita suítes de teste de unidade 
existentes para conduzir geração de 
teste para a interação de módulos 
complexos.
a. Qual é o problema sendo 
abordado no artigo e porque 
ele é importante. 
 O teste de unidade tem como objetivo 
garantir que os métodos implementados 
a pós- condição, pré-especificadas e 
implícita. 
 O teste de integração assegura que os 
métodos segui corretamente protocolos 
de interação.
Continuação... 
 É importante por que utiliza uma nova 
técnica para gerar casos de testes de 
integração que aproveita os casos de 
testes de unidade existente. 
 E mostra que o caso de teste gerado 
podem encontrar falhas interessantes, 
em comparação de testes gerados .
Exemplo: 
 Uma estrutura leve para a criação de 
aplicações baseadas no padrão Model 
View Controller (MVC). Mostra-se que a 
falha depende da interação entre dois 
módulos, e como tal podem ser 
dificilmente detectados com casos de 
teste simples que conferem o 
comportamento de unidades individuais.
b.Qual a solução ou abordagem 
que os autores tiveram para 
lidar com o problema. 
 Gerar casos de teste de integração 
complexos a partir de outras unidades 
simples que exige o código fonte do 
sistema e um conjunto de casos de teste 
como entrada e funciona em 3 fases: 
 1. identificar as dependências de classe 
dentro do sistema sob a forma de um 
diagrama de relação de objeto;
Continua... 
 2. Calcular as informações de fluxo de 
dados dentro dos casos de teste de 
entrada, e usar essa informação para 
segmentar os casos de teste em 
blocos(inicialização e execução); 
 3. Gerar casos de teste de novos e mais 
complexos dos blocos extraídos de casos 
de teste de unidade usando a dependência 
da classe e informação do fluxo de dados.
c. Quais os resultados eles 
encontraram 
 Detectar defeitos que não são detectados pelos 
processos de teste de entrada originais. 
 1. Gerar novos casos de teste a partir da 
informação disponível no código e os casos de 
teste existentes. 
Tabela II 
Casos de teste gerado com a fusão e tempo de execução da configuração do ambiente de trabalho 
Programas Nº de casos de teste 
gerados 
Tempo de execução 
(min.) 
Explorer 420 1 
JGraphT 375 1 
Apache Ant 540 6 
JFreeChart 1350 24
Continua... 
 2. Os casos de teste gerados são uteis, 
podem revelar falhas que não são 
detectados pelos casos de teste originais. 
Tabela III 
DEFEITOS ENCONTRADOS COM FUSION, RANDOOP E PALUS rf: falhas de reais; f.p .: falsos positivos 
Programas Randoop Palus Fusion 
r.f. / f.p. r.f. / f.p. r.f. / f.p. 
Explorer 2 / 2 0 / 80 3 / 2 
JGraphT 5 / 9 2 / 1 3 / 4 
Apache Ant 9 / 128 0 / 94 1 / 7 
JFreeChart 23 / 17 2 / 34 3 / 48 
Total 39 / 156 4 / 209 10 / 61
Continua... 
 3. Uma abordagem mais eficaz do que 
as abordagens existentes para gerar 
automaticamente casos de teste, ou 
seja, os casos de teste gerados detecta 
falhas não reveladas pelos casos de 
teste gerados com outras técnicas.
d. Quais conclusões os 
autores chegaram. 
 Para gerar casos(integração) de teste 
complexos de (unidade) casos de teste 
simples, requer apenas código fonte, e utiliza 
técnicas clássica para extrair as informações, 
para construir casos de teste complexos. 
 A ideia de combinar sequencias de 
inicialização e execução de casos de teste 
simples para gerar novos. 
 Quatro estudos de casos podem encontrar 
falhas relevantes em aplicações bem 
testadas.
e. Quais as criticas dos alunos 
ao trabalho. 
 Difícil entendimento das tabelas e 
figuras. 
 Artigo todo em inglês, tivemos que 
traduzir para melhor entendimento.
Agradecimentos 
 Componentes: 
Adriana Telles – Analista de Sistema 
telles19@gmail.com 
Vania Santos – Programadora Java 
vniadefranca@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basicoIsmael
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?Samuel Lourenço
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnitelliando dias
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesEverton Rodrigues
 
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesQA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesThiago Boschese
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnitLeonardo Soares
 
Verificação e Validação
Verificação e ValidaçãoVerificação e Validação
Verificação e ValidaçãoMarcelo Yamaguti
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDRaphael Pacheco
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
 

Was ist angesagt? (20)

Teste agora! Não deixe para depois!
Teste agora! Não deixe para depois!Teste agora! Não deixe para depois!
Teste agora! Não deixe para depois!
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basico
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por Testes
 
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesQA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnit
 
Verificação e Validação
Verificação e ValidaçãoVerificação e Validação
Verificação e Validação
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Erros comuns em java
Erros comuns em javaErros comuns em java
Erros comuns em java
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Qualidade
QualidadeQualidade
Qualidade
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
 
Java 01
Java 01Java 01
Java 01
 
Test-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.netTest-Driven Development (TDD) utilizando o framework xUnit.net
Test-Driven Development (TDD) utilizando o framework xUnit.net
 

Ähnlich wie Casos teste integração efetiva de algumas unidades

Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de testeMarcos Pessoa
 
ybr789try
ybr789tryybr789try
ybr789tryteste
 
Testes de software
Testes de softwareTestes de software
Testes de softwareteste
 
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testesAndré Luiz Forchesatto
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Um framework para validação automática de modelos aplicado ao subsistema de e...
Um framework para validação automática de modelos aplicado ao subsistema de e...Um framework para validação automática de modelos aplicado ao subsistema de e...
Um framework para validação automática de modelos aplicado ao subsistema de e...Italo Pinto Rodrigues
 
Metodologia de-testes
Metodologia de-testesMetodologia de-testes
Metodologia de-testespadinho
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Vanderson Silva
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com PythonDorneles Treméa
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfRodolphoCesar2
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de DesempenhoBase2 Tecnologia
 

Ähnlich wie Casos teste integração efetiva de algumas unidades (20)

Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
JUnit
JUnitJUnit
JUnit
 
Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de teste
 
ybr789try
ybr789tryybr789try
ybr789try
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testes
 
Teste baseado em modelos
Teste baseado em modelosTeste baseado em modelos
Teste baseado em modelos
 
TDD (Resumo)
TDD (Resumo)TDD (Resumo)
TDD (Resumo)
 
J unit xp
J unit xpJ unit xp
J unit xp
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Um framework para validação automática de modelos aplicado ao subsistema de e...
Um framework para validação automática de modelos aplicado ao subsistema de e...Um framework para validação automática de modelos aplicado ao subsistema de e...
Um framework para validação automática de modelos aplicado ao subsistema de e...
 
Metodologia de-testes
Metodologia de-testesMetodologia de-testes
Metodologia de-testes
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de Desempenho
 

Casos teste integração efetiva de algumas unidades

  • 1. Geração de Casos de Teste de Integração Efetiva de algumas unidades Pós – Graduação Senac Engenharia de Software com JEE
  • 2. Introdução  O teste de integração tem como objetivo descobrir defeitos que são devidos a interações incorretas entre diferentes módulos de software  Os casos de teste de integração são geralmente mais complicados de desenvolver, e mais difíceis de gerar e manter do que os casos de teste de unidade.
  • 3. Continuação...  Propormos uma técnica automática para gerar casos de teste de integração que aproveita suítes de teste de unidade existentes para conduzir geração de teste para a interação de módulos complexos.
  • 4. a. Qual é o problema sendo abordado no artigo e porque ele é importante.  O teste de unidade tem como objetivo garantir que os métodos implementados a pós- condição, pré-especificadas e implícita.  O teste de integração assegura que os métodos segui corretamente protocolos de interação.
  • 5. Continuação...  É importante por que utiliza uma nova técnica para gerar casos de testes de integração que aproveita os casos de testes de unidade existente.  E mostra que o caso de teste gerado podem encontrar falhas interessantes, em comparação de testes gerados .
  • 6. Exemplo:  Uma estrutura leve para a criação de aplicações baseadas no padrão Model View Controller (MVC). Mostra-se que a falha depende da interação entre dois módulos, e como tal podem ser dificilmente detectados com casos de teste simples que conferem o comportamento de unidades individuais.
  • 7. b.Qual a solução ou abordagem que os autores tiveram para lidar com o problema.  Gerar casos de teste de integração complexos a partir de outras unidades simples que exige o código fonte do sistema e um conjunto de casos de teste como entrada e funciona em 3 fases:  1. identificar as dependências de classe dentro do sistema sob a forma de um diagrama de relação de objeto;
  • 8. Continua...  2. Calcular as informações de fluxo de dados dentro dos casos de teste de entrada, e usar essa informação para segmentar os casos de teste em blocos(inicialização e execução);  3. Gerar casos de teste de novos e mais complexos dos blocos extraídos de casos de teste de unidade usando a dependência da classe e informação do fluxo de dados.
  • 9. c. Quais os resultados eles encontraram  Detectar defeitos que não são detectados pelos processos de teste de entrada originais.  1. Gerar novos casos de teste a partir da informação disponível no código e os casos de teste existentes. Tabela II Casos de teste gerado com a fusão e tempo de execução da configuração do ambiente de trabalho Programas Nº de casos de teste gerados Tempo de execução (min.) Explorer 420 1 JGraphT 375 1 Apache Ant 540 6 JFreeChart 1350 24
  • 10. Continua...  2. Os casos de teste gerados são uteis, podem revelar falhas que não são detectados pelos casos de teste originais. Tabela III DEFEITOS ENCONTRADOS COM FUSION, RANDOOP E PALUS rf: falhas de reais; f.p .: falsos positivos Programas Randoop Palus Fusion r.f. / f.p. r.f. / f.p. r.f. / f.p. Explorer 2 / 2 0 / 80 3 / 2 JGraphT 5 / 9 2 / 1 3 / 4 Apache Ant 9 / 128 0 / 94 1 / 7 JFreeChart 23 / 17 2 / 34 3 / 48 Total 39 / 156 4 / 209 10 / 61
  • 11. Continua...  3. Uma abordagem mais eficaz do que as abordagens existentes para gerar automaticamente casos de teste, ou seja, os casos de teste gerados detecta falhas não reveladas pelos casos de teste gerados com outras técnicas.
  • 12. d. Quais conclusões os autores chegaram.  Para gerar casos(integração) de teste complexos de (unidade) casos de teste simples, requer apenas código fonte, e utiliza técnicas clássica para extrair as informações, para construir casos de teste complexos.  A ideia de combinar sequencias de inicialização e execução de casos de teste simples para gerar novos.  Quatro estudos de casos podem encontrar falhas relevantes em aplicações bem testadas.
  • 13. e. Quais as criticas dos alunos ao trabalho.  Difícil entendimento das tabelas e figuras.  Artigo todo em inglês, tivemos que traduzir para melhor entendimento.
  • 14. Agradecimentos  Componentes: Adriana Telles – Analista de Sistema telles19@gmail.com Vania Santos – Programadora Java vniadefranca@gmail.com