SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
Universidade Federal de Goiás
            Instituto de Informática
            Engenharia de Software




              Geovane Pazine Filho
         Inael Rodrigues de Oliveira Neto
           Jackeline Neves de Almeida




Teste Estrutural usando a
    ferramenta Jabuti

                            Esse  trabalho  pretende  apresentar  o  teste
                            estrutural   usando  a  ferramenta  JaBUTI,
                            nesse  tutorial será abordado como criar um
                            projeto,  e  como  visualizá­lo  na  ferramenta,
                            assim como, como interpretar o resultado.
                            Com  a  ferramenta   é  possível  visualizar  o
                            gráfico  Def­Uso  e  como  executar testes na
                            ferramenta.




             Goiânia, maio de 2011
1. Introdução

       Jabuti  é  uma   ferramenta  de  suporte  ao  teste  estrutural   para   programas  Java,
desenvolvida  pelo  grupo  de  Engenharia  de  Software  da  USP­São  Carlos.  Nela  estão
implementados  critérios  de  testes  de  software  baseados  em  fluxo  de  controle  e  critérios
baseados em fluxo de dados.

       Uma  das  características  que diferencia a JaBUTi da outras  ferramentas  de teste é o fato
que  toda  a  análise  estática  necessária  para  a  realização  do  teste  é  feita  sobre  o  programa
objeto, ou seja, sobre o bytecode Java e não sobre o programa fonte.


2. Criar um Projeto de Teste na Jabuti

       Na  ferramenta  Jabuti,  para  realizar  um  teste  estrutural,  primeiramente  deve­se  criar um
projeto  de   teste.  Um  projeto  de  teste  contem  um  conjunto  de  arquivos  .class  e  informações
adicionais como o CLASSPATH.

       Para  criar  um  novo  projeto,  vá  no  menu  principal  File  ⇒  Open  Class.  Em  seguida será
exibido   um  dialogo  para  selecionar  os  .class  que  serão  testados  (vide  figura  1).  Deve  ser
observado  se  os  .java  está  na  mesma  pasta  dos   .class  para  que  seja  possível  visualizar  o
código fonte na própria ferramenta.




                                                    Figura 1
Ao  clicar  no  botão Abrir,  será exibido para gerenciar as  classes  que serão testadas (vide
Figura 2).




                                                  Figura 2


       Basta  escolher  as  classes,  digitar  no Classpath o caractere “.” e clicar no botão Ok para
criar um novo  projeto .jbt.


3. Como realizar teste estrutural

       A  ferramenta,  inicialmente,  exibirá  o  código  compilado,  mas  é  possível  mudar  a
visualização  para  o  modo de código fonte se ele estiver disponível no classpath. Para isso vá no
menu Visualization → Current Source File (vide Figura 3).




                                                  Figura 3
Observe  que  a  ferramenta usa  várias  cores  sobre  as  linhas  do  código de acordo com o
nó que está cada instrução de código, o que indica a complexidade ciclomática.

        Cada  cor  diferente,  indica  um  nó  diferente.  Na  barra  superior  ao  código  é  possível
visualizar   quantos  nós  o  projeto  inserido  possui  e   a  coloração  facilita  a  identificação  de  qual
bloco pertence a qual nó (vide Figura 4).




                                                  Figura 4
A  JaBUTI  possui  integração  com  ferramentas  para  visualização  do  gráfico.  O  grafo,  é  a
representação  dos  nós  do  código.  Para  exibir  o  gráfico  deve­se acessar  a  seção  e  escolher  a
opção Def Use Graph (vide Figura 5).




                                                Figura 5


       Nessa   tela,  a  maioria  dos  nós  estão  coloridos  com  vermelho.  Observe  também que o
vermelho  tem  peso  7,  isso significa que se for realizado um teste que cubra o nó vermelho, pelo
menos 7 nós serão cobertos.

       A ferramenta  tem  seis critérios de testes. De acordo com o critério selecionado,  o código
é colorido de forma diferente.

       Para  realizar  os  testes  vá  em  Test  Case  ­>  Executing  JUnit  Test  Set...,  abrirá  uma
janela onde deverá ser selecionado (vide Figura 6):

           ●   O caminho para o código fonte da suite de teste JUnit.
           ●   O caminho para o código binário da suite de teste JUnit.
●   Dar um nome Qualificado.
          ●   O caminho para a biblioteca do Jabuti.
          ●   Caminho  para  outras  bibliotecas  que  possam  ser  úteis  para  a  realização  dos
              testes.
          ●   Caminho para o javac




                                             Figura 6


      Após setar esses parâmetros você poderá executar os testes.


      4. Conclusão

      Com  a  elaboração  desse  tutorial,  nosso  grupo  conheceu  e  praticou a  técnica  estrutural
com  uso  de técnicas baseadas em complexidade(MacCabe), em fluxo de controle e em fluxo de
dados. Também conhecemos uma ótima ferramenta para realização de testes.

Mais conteúdo relacionado

Mais procurados

Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptFábio Flatschart
 
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...Mayara Fernandes
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Elaine Cecília Gatto
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 
Aula 03 - Estrutura Analítica do Projeto
Aula 03 - Estrutura Analítica do ProjetoAula 03 - Estrutura Analítica do Projeto
Aula 03 - Estrutura Analítica do ProjetoSuzana Viana Mota
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Elias Nogueira
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de softwareNorton Guimarães
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareRonney Moreira de Castro
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoManuel Menezes de Sequeira
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based TestingJohan Hoberg
 

Mais procurados (20)

Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScript
 
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1Interfaces Gráficas em Java Parte 1
Interfaces Gráficas em Java Parte 1
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 
Aula 03 - Estrutura Analítica do Projeto
Aula 03 - Estrutura Analítica do ProjetoAula 03 - Estrutura Analítica do Projeto
Aula 03 - Estrutura Analítica do Projeto
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
 
Apostila java completo
Apostila java completoApostila java completo
Apostila java completo
 
SonarQube Presentation.pptx
SonarQube Presentation.pptxSonarQube Presentation.pptx
SonarQube Presentation.pptx
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
2. El proceso del software
2. El proceso del software2. El proceso del software
2. El proceso del software
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Risk-based Testing
Risk-based TestingRisk-based Testing
Risk-based Testing
 
Curso MySQL #01 - Surgimento dos Bancos de Dados
Curso MySQL #01 - Surgimento dos Bancos de DadosCurso MySQL #01 - Surgimento dos Bancos de Dados
Curso MySQL #01 - Surgimento dos Bancos de Dados
 

Semelhante a Teste estrutural com JaBUTI

Escrevendo testes j unit no net beans ide
Escrevendo testes j unit no net beans ideEscrevendo testes j unit no net beans ide
Escrevendo testes j unit no net beans ideSocorro Vania Alves
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geralpaulo peres
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeansSliedesharessbarbosa
 
Aplicações java com netbeans
Aplicações  java com  netbeansAplicações  java com  netbeans
Aplicações java com netbeansThalles Anderson
 
Importância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareImportância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareEdison Moreira
 
Softblue logic-ide
Softblue logic-ideSoftblue logic-ide
Softblue logic-idemateusvini
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Test driven development
Test driven developmentTest driven development
Test driven developmentclauvane1708
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova Rogério Cardoso
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao SwingArthur Emanuel
 

Semelhante a Teste estrutural com JaBUTI (20)

Escrevendo testes j unit no net beans ide
Escrevendo testes j unit no net beans ideEscrevendo testes j unit no net beans ide
Escrevendo testes j unit no net beans ide
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
J unit xp
J unit xpJ unit xp
J unit xp
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeans
 
Apostila: Netbeans
Apostila: NetbeansApostila: Netbeans
Apostila: Netbeans
 
Debugging node
Debugging nodeDebugging node
Debugging node
 
Java7
Java7Java7
Java7
 
Aplicações java com netbeans
Aplicações  java com  netbeansAplicações  java com  netbeans
Aplicações java com netbeans
 
Visual Basic Básico
Visual Basic BásicoVisual Basic Básico
Visual Basic Básico
 
Importância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do SoftwareImportância do Teste Unitário na Qualidade do Software
Importância do Teste Unitário na Qualidade do Software
 
Softblue logic-ide
Softblue logic-ideSoftblue logic-ide
Softblue logic-ide
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 

Mais de Inael Rodrigues

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemInael Rodrigues
 
Arquiteturas de sistemas reais
Arquiteturas de sistemas reaisArquiteturas de sistemas reais
Arquiteturas de sistemas reaisInael Rodrigues
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2Inael Rodrigues
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: ComentáriosInael Rodrigues
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3Inael Rodrigues
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Inael Rodrigues
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Inael Rodrigues
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Inael Rodrigues
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: ClassesInael Rodrigues
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android Inael Rodrigues
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilInael Rodrigues
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Inael Rodrigues
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1Inael Rodrigues
 

Mais de Inael Rodrigues (18)

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de Pastagem
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Arquiteturas de sistemas reais
Arquiteturas de sistemas reaisArquiteturas de sistemas reais
Arquiteturas de sistemas reais
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
 
Código limpo: Limites
Código limpo: LimitesCódigo limpo: Limites
Código limpo: Limites
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: Comentários
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: Classes
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento Ágil
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1
 

Teste estrutural com JaBUTI

  • 1. Universidade Federal de Goiás Instituto de Informática Engenharia de Software Geovane Pazine Filho Inael Rodrigues de Oliveira Neto Jackeline Neves de Almeida Teste Estrutural usando a ferramenta Jabuti Esse  trabalho  pretende  apresentar  o  teste estrutural   usando  a  ferramenta  JaBUTI, nesse  tutorial será abordado como criar um projeto,  e  como  visualizá­lo  na  ferramenta, assim como, como interpretar o resultado. Com  a  ferramenta   é  possível  visualizar  o gráfico  Def­Uso  e  como  executar testes na ferramenta. Goiânia, maio de 2011
  • 2. 1. Introdução Jabuti  é  uma   ferramenta  de  suporte  ao  teste  estrutural   para   programas  Java, desenvolvida  pelo  grupo  de  Engenharia  de  Software  da  USP­São  Carlos.  Nela  estão implementados  critérios  de  testes  de  software  baseados  em  fluxo  de  controle  e  critérios baseados em fluxo de dados. Uma  das  características  que diferencia a JaBUTi da outras  ferramentas  de teste é o fato que  toda  a  análise  estática  necessária  para  a  realização  do  teste  é  feita  sobre  o  programa objeto, ou seja, sobre o bytecode Java e não sobre o programa fonte. 2. Criar um Projeto de Teste na Jabuti Na  ferramenta  Jabuti,  para  realizar  um  teste  estrutural,  primeiramente  deve­se  criar um projeto  de   teste.  Um  projeto  de  teste  contem  um  conjunto  de  arquivos  .class  e  informações adicionais como o CLASSPATH. Para  criar  um  novo  projeto,  vá  no  menu  principal  File  ⇒  Open  Class.  Em  seguida será exibido   um  dialogo  para  selecionar  os  .class  que  serão  testados  (vide  figura  1).  Deve  ser observado  se  os  .java  está  na  mesma  pasta  dos   .class  para  que  seja  possível  visualizar  o código fonte na própria ferramenta. Figura 1
  • 3. Ao  clicar  no  botão Abrir,  será exibido para gerenciar as  classes  que serão testadas (vide Figura 2). Figura 2 Basta  escolher  as  classes,  digitar  no Classpath o caractere “.” e clicar no botão Ok para criar um novo  projeto .jbt. 3. Como realizar teste estrutural A  ferramenta,  inicialmente,  exibirá  o  código  compilado,  mas  é  possível  mudar  a visualização  para  o  modo de código fonte se ele estiver disponível no classpath. Para isso vá no menu Visualization → Current Source File (vide Figura 3). Figura 3
  • 4. Observe  que  a  ferramenta usa  várias  cores  sobre  as  linhas  do  código de acordo com o nó que está cada instrução de código, o que indica a complexidade ciclomática. Cada  cor  diferente,  indica  um  nó  diferente.  Na  barra  superior  ao  código  é  possível visualizar   quantos  nós  o  projeto  inserido  possui  e   a  coloração  facilita  a  identificação  de  qual bloco pertence a qual nó (vide Figura 4). Figura 4
  • 5. A  JaBUTI  possui  integração  com  ferramentas  para  visualização  do  gráfico.  O  grafo,  é  a representação  dos  nós  do  código.  Para  exibir  o  gráfico  deve­se acessar  a  seção  e  escolher  a opção Def Use Graph (vide Figura 5). Figura 5 Nessa   tela,  a  maioria  dos  nós  estão  coloridos  com  vermelho.  Observe  também que o vermelho  tem  peso  7,  isso significa que se for realizado um teste que cubra o nó vermelho, pelo menos 7 nós serão cobertos. A ferramenta  tem  seis critérios de testes. De acordo com o critério selecionado,  o código é colorido de forma diferente. Para  realizar  os  testes  vá  em  Test  Case  ­>  Executing  JUnit  Test  Set...,  abrirá  uma janela onde deverá ser selecionado (vide Figura 6): ● O caminho para o código fonte da suite de teste JUnit. ● O caminho para o código binário da suite de teste JUnit.
  • 6. Dar um nome Qualificado. ● O caminho para a biblioteca do Jabuti. ● Caminho  para  outras  bibliotecas  que  possam  ser  úteis  para  a  realização  dos testes. ● Caminho para o javac Figura 6 Após setar esses parâmetros você poderá executar os testes. 4. Conclusão Com  a  elaboração  desse  tutorial,  nosso  grupo  conheceu  e  praticou a  técnica  estrutural com  uso  de técnicas baseadas em complexidade(MacCabe), em fluxo de controle e em fluxo de dados. Também conhecemos uma ótima ferramenta para realização de testes.