SlideShare une entreprise Scribd logo
1  sur  27
Teste de Caixa Branca e Métricas de Código 
Dupla: Aricelio e Késia 
Instituto Federal do Norte de Minas Gerais - Campus Januária 
Curso: Tecnologia em Análise e Desenvolvimento de Sistemas 
Disciplina: Qualidade de Software 
Prof.: Petrônio C. L. S.
Sumário 
● Teste de Caixa Branca. 
● Métricas de Código. 
● DoctorJ - Java Analyzer. 
● Ferramenta JDepend. 
● Referências. 
● Demonstração prática.
Testes de Software 
● O teste do software é a investigação do software a fim 
de fornecer informações sobre sua qualidade em 
relação ao contexto em que ele deve operar. 
● Isso inclui o processo de utilizar o produto para 
encontrar seus defeitos.
Teste de Caixa Branca
Teste de Caixa Branca 
● Teste de caixa-branca é uma técnica de teste que usa a 
perspectiva interna do sistema para modelar os casos de 
teste, [6]. 
● O analista tem acesso ao código fonte, conhece a 
estrutura interna do produto sendo analisado e possibilita 
que sejam escolhidas partes específicas de um 
componente para serem avaliadas, [7].
Teste de Caixa Branca 
● O Teste de caixa-branca é aplicável nas fases de 
unidade, integração, regressão e sistema do processo 
de teste, e geralmente usado na fase de unidade. 
● Estratégias usadas no teste de caixa-branca incluem o 
teste de fluxo de controle, fluxo de dados e ramificação 
da execução, além da análise estática.
Teste de Caixa Branca 
● Vantagem: Como a estrutura interna é usada como 
referência, é fácil encontrar os valores de entrada mais 
úteis para o teste, o que ajuda na otimização geral do 
sistema. 
● Custo maior devido aos testes serem baseados na 
implementação e também exigir o conhecimento interno 
do sistema.
Métricas de Código
Métricas de Código 
● São ferramentas com as quais se é possível obter uma 
visão de mais alto nível de todo o sistema, com 
abstrações mais adequadas. 
● E através dessas abstrações, gerar gráficos, relatórios, 
matrizes, entre outros.
Métricas de Código 
● As Métricas de Código não estão relacionadas apenas 
com o software em si, mas também com os processos 
de desenvolvimento e manutenção do mesmo. 
● Consegue-se, a partir das métricas, dados quantitativos 
que oferecem uma boa informação sobre o andamento 
da construção.
Métricas de Código 
A partir desses dados é possível: 
● Estimar custos. 
● Avaliar tendências. 
● Melhorar o design. 
● Até mesmo ter noção sobre a qualidade do sistema 
produzido.
Métricas de Código 
Através das métricas de código pode-se conhecer: 
● A complexidade. 
● Tamanho. 
● Quantidade de métodos. 
● Nível de coesão. 
● Grau de acoplamento entre classes. 
● E inúmeras outras possibilidades.
Métricas de Código 
Em resumo as métricas são usadas para: 
● Analisar qualidade e produtividade do processo de 
desenvolvimento e manutenção bem como do produto 
de software construído; 
● Qualificar a performance técnica dos produtos do ponto 
de vista do desenvolvedor. 
● Embasar solicitações de novas ferramentas e 
treinamentos
Métricas de Código 
● Medidas funcionais são necessárias para qualificar a 
performance dos produtos pela perspectiva do usuário. 
● Utilizadas para comparar a produtividade de diferentes 
técnicas e tecnologias. 
● Entender e aperfeiçoar o processo de desenvolvimento. 
● Reduzir frustrações e pressões de cronograma.
DoctorJ - Java Analyzer
DoctorJ - Java Analyzer 
● DoctorJ é uma ferramenta que analisa o código Java e 
sua documentação, a fim de encontrar descuidos e 
erros comuns que a ferramenta javadoc não encontra. 
● É um software de código aberto. 
● É gratuito tanto para uso pessoal e comercial.
DoctorJ - Java Analyzer 
● A última versão foi lançada em 2006 e é compatível 
com todos os sistemas operacionais POSIX (Linux / 
BSD / UNIX-like).
Ferramenta JDepend
JDepend 
● O JDepend é uma ferramenta que analisa classes Java 
e gera métricas sobre a qualidade do "Design" para 
cada package Java, [8]. 
● O JDepend permite a equipe de Qualidade 
automaticamente mensurar a qualidade do "Design" em 
termos de suas extensibilidades, reusabilidade e 
manutenibilidade para controle efetivo das 
dependências dos packages Java.
JDepend 
● Exemplo de Relatório:
JDepend 
Esse relatório corresponde a um relatório resumido com as 
métricas obtidas pelo JDepend. Os campos da tabela 
podem ser interpretados da seguinte forma: 
● TC: Número total de classes. 
● CC: Número total de classes concretas. 
● AC: Número total de classes abstratas. 
● Ca: Acoplamento Aferente - número total de classes de 
fora de um pacote que dependem de classes de dentro 
do pacote.
JDepend 
● Ce: Acoplamento Eferente - O número total de classes 
de dentro de um pacote que dependem de classes de 
fora do pacote. 
● A: Nível de Abstração – Mede o quanto abstrato é um 
pacote.
JDepend 
● I: instabilidade - Mede a instabilidade de pacotes, onde a 
estabilidade é medida calculando o esforço para mudar um 
pacote sem gerar impacto em outros pacotes dentro da 
aplicação. 
● D: Distância da Seqüência Principal – Este valor relaciona a 
Abstração e a Instabilidade.
Dúvidas?
Referências 
[1] DANIEL, L. Code metrics (parte 1) – Métricas de código são aliadas do arquiteto. Fev 2012. 
Disponível em: <http://leandrodaniel.com/index.php/code-metrics-parte-1-metricas-de-codigo-sao- 
aliadas-do-arquiteto/>. Acesso em: 17 Set. 2014. 
[2] DANTAS, Aldimar. Engenharia de Software - Tipos de Testes (Caixa Preta, Caixa Branca). 
Jul 2013. Disponível em: <http://pt.slideshare.net/adilmar/engenharia-de-software-ii-testes>. 
Acesso em: 17 Set. 2014. 
[3] ANICHE, M. Métricas de código, pra que te quero?. Jun 2013. Disponível em: 
<http://pt.slideshare.net/mauricioaniche/mtricas-de-cdigo-pra-que-te-quero>. Acesso em: 17 Set. 
2014. 
[4] Why Use JDepend?. Disponivel em: <http://clarkware.com/software/JDepend.html>. Acesso em 
17 Set. 2014. 
[5] LINS, Julio César. Métricas de Qualidade com JavaNCSS e JDepend. Disponível em: 
<http://www.devmedia.com.br/metricas-de-qualidade-com-javancss-e-jdepend/8825>. Acesso 
em: 17 Set. 2014.
Referências 
[6] JUNIOR, Pasteur Ottoni de Miranda. Testes de Caixa Branca e Testes de Caixa Preta. 
Disponível em: 
<http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCQQFjAB&u 
rl=http%3A%2F%2Fwww.tesestec.com.br%2Fpasteurjr%2FTCPB.pdf&ei=A0gpVOL9KJO-ggSIoYL4CQ& 
usg=AFQjCNEkoQfLnw7nkgq6D7f6tLIjbWIOXQ&bvm=bv.76247554,d.eXY>. 
Acesso em: 29 Set. 2014. 
[7] Conceitos: Testes de Caixa Branca e Testes de Caixa Preta. Jul 2014. Disponível em: 
<http://crowdtest.me/teste-caixa-branca-caixa-preta/>. Acesso em: 29 Set. 2014. 
[8] HENRIQUES, Carine Gomes, COSTA, Maurício. JDepend. Disponível em: 
<http://webserver2.tecgraf.puc-rio. 
br/~ismael/Cursos/Senac_MTSW/aulas/Modulo2_TecnicasDesnvolvimentoAgeis/4- 
Metricas/maven2/jdepend/JDepend.doc.>. Acesso em: 29 Set. 2014.
Demonstração Prática

Contenu connexe

Tendances

Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
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
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Identificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfmmarolla1
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testeselliando dias
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
Intro to Manual Testing
Intro to Manual TestingIntro to Manual Testing
Intro to Manual TestingAyah Soufan
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Como descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaComo descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaTesting Dojo Uai
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosThiago Poiani
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - FundamentosLucas Amaral
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIvanFontainha
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Ariane Izac
 
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
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 

Tendances (20)

Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
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
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Identificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdfIdentificar Requisitos Funcionais.pdf
Identificar Requisitos Funcionais.pdf
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testes
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Intro to Manual Testing
Intro to Manual TestingIntro to Manual Testing
Intro to Manual Testing
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Como descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma corretaComo descrever cenários de teste utilizando Gherkin de forma correta
Como descrever cenários de teste utilizando Gherkin de forma correta
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - Fundamentos
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdf
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
AOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de UsoAOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de Uso
 

Similaire à Teste Caixa Branca Métricas Código

Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unitLucas Marques
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfHoctairBernardino
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKMário Pravato Junior
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação DiversitáriaLaís Berlatto
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentOtavio Augusto
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de TesteBeatriz Marques
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introduçãomiroslayer
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IVJoão Lourenço
 

Similaire à Teste Caixa Branca Métricas Código (20)

Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unit
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação Diversitária
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de Teste
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Gt 2 – ferramentas
Gt 2 – ferramentasGt 2 – ferramentas
Gt 2 – ferramentas
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IV
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 

Plus de Aricelio Souza

Metodologia Ágil Scrum
Metodologia Ágil ScrumMetodologia Ágil Scrum
Metodologia Ágil ScrumAricelio Souza
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMAricelio Souza
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAAricelio Souza
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Aricelio Souza
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Ataques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAtaques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAricelio Souza
 
Documentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingDocumentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingAricelio Souza
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 

Plus de Aricelio Souza (9)

Metodologia Ágil Scrum
Metodologia Ágil ScrumMetodologia Ágil Scrum
Metodologia Ágil Scrum
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
Tipos de Servidores
Tipos de ServidoresTipos de Servidores
Tipos de Servidores
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAA
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Ataques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAtaques DOS, DDOS e Scamming
Ataques DOS, DDOS e Scamming
 
Documentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingDocumentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e Scamming
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 

Teste Caixa Branca Métricas Código

  • 1. Teste de Caixa Branca e Métricas de Código Dupla: Aricelio e Késia Instituto Federal do Norte de Minas Gerais - Campus Januária Curso: Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Qualidade de Software Prof.: Petrônio C. L. S.
  • 2. Sumário ● Teste de Caixa Branca. ● Métricas de Código. ● DoctorJ - Java Analyzer. ● Ferramenta JDepend. ● Referências. ● Demonstração prática.
  • 3. Testes de Software ● O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. ● Isso inclui o processo de utilizar o produto para encontrar seus defeitos.
  • 4. Teste de Caixa Branca
  • 5. Teste de Caixa Branca ● Teste de caixa-branca é uma técnica de teste que usa a perspectiva interna do sistema para modelar os casos de teste, [6]. ● O analista tem acesso ao código fonte, conhece a estrutura interna do produto sendo analisado e possibilita que sejam escolhidas partes específicas de um componente para serem avaliadas, [7].
  • 6. Teste de Caixa Branca ● O Teste de caixa-branca é aplicável nas fases de unidade, integração, regressão e sistema do processo de teste, e geralmente usado na fase de unidade. ● Estratégias usadas no teste de caixa-branca incluem o teste de fluxo de controle, fluxo de dados e ramificação da execução, além da análise estática.
  • 7. Teste de Caixa Branca ● Vantagem: Como a estrutura interna é usada como referência, é fácil encontrar os valores de entrada mais úteis para o teste, o que ajuda na otimização geral do sistema. ● Custo maior devido aos testes serem baseados na implementação e também exigir o conhecimento interno do sistema.
  • 9. Métricas de Código ● São ferramentas com as quais se é possível obter uma visão de mais alto nível de todo o sistema, com abstrações mais adequadas. ● E através dessas abstrações, gerar gráficos, relatórios, matrizes, entre outros.
  • 10. Métricas de Código ● As Métricas de Código não estão relacionadas apenas com o software em si, mas também com os processos de desenvolvimento e manutenção do mesmo. ● Consegue-se, a partir das métricas, dados quantitativos que oferecem uma boa informação sobre o andamento da construção.
  • 11. Métricas de Código A partir desses dados é possível: ● Estimar custos. ● Avaliar tendências. ● Melhorar o design. ● Até mesmo ter noção sobre a qualidade do sistema produzido.
  • 12. Métricas de Código Através das métricas de código pode-se conhecer: ● A complexidade. ● Tamanho. ● Quantidade de métodos. ● Nível de coesão. ● Grau de acoplamento entre classes. ● E inúmeras outras possibilidades.
  • 13. Métricas de Código Em resumo as métricas são usadas para: ● Analisar qualidade e produtividade do processo de desenvolvimento e manutenção bem como do produto de software construído; ● Qualificar a performance técnica dos produtos do ponto de vista do desenvolvedor. ● Embasar solicitações de novas ferramentas e treinamentos
  • 14. Métricas de Código ● Medidas funcionais são necessárias para qualificar a performance dos produtos pela perspectiva do usuário. ● Utilizadas para comparar a produtividade de diferentes técnicas e tecnologias. ● Entender e aperfeiçoar o processo de desenvolvimento. ● Reduzir frustrações e pressões de cronograma.
  • 15. DoctorJ - Java Analyzer
  • 16. DoctorJ - Java Analyzer ● DoctorJ é uma ferramenta que analisa o código Java e sua documentação, a fim de encontrar descuidos e erros comuns que a ferramenta javadoc não encontra. ● É um software de código aberto. ● É gratuito tanto para uso pessoal e comercial.
  • 17. DoctorJ - Java Analyzer ● A última versão foi lançada em 2006 e é compatível com todos os sistemas operacionais POSIX (Linux / BSD / UNIX-like).
  • 19. JDepend ● O JDepend é uma ferramenta que analisa classes Java e gera métricas sobre a qualidade do "Design" para cada package Java, [8]. ● O JDepend permite a equipe de Qualidade automaticamente mensurar a qualidade do "Design" em termos de suas extensibilidades, reusabilidade e manutenibilidade para controle efetivo das dependências dos packages Java.
  • 20. JDepend ● Exemplo de Relatório:
  • 21. JDepend Esse relatório corresponde a um relatório resumido com as métricas obtidas pelo JDepend. Os campos da tabela podem ser interpretados da seguinte forma: ● TC: Número total de classes. ● CC: Número total de classes concretas. ● AC: Número total de classes abstratas. ● Ca: Acoplamento Aferente - número total de classes de fora de um pacote que dependem de classes de dentro do pacote.
  • 22. JDepend ● Ce: Acoplamento Eferente - O número total de classes de dentro de um pacote que dependem de classes de fora do pacote. ● A: Nível de Abstração – Mede o quanto abstrato é um pacote.
  • 23. JDepend ● I: instabilidade - Mede a instabilidade de pacotes, onde a estabilidade é medida calculando o esforço para mudar um pacote sem gerar impacto em outros pacotes dentro da aplicação. ● D: Distância da Seqüência Principal – Este valor relaciona a Abstração e a Instabilidade.
  • 25. Referências [1] DANIEL, L. Code metrics (parte 1) – Métricas de código são aliadas do arquiteto. Fev 2012. Disponível em: <http://leandrodaniel.com/index.php/code-metrics-parte-1-metricas-de-codigo-sao- aliadas-do-arquiteto/>. Acesso em: 17 Set. 2014. [2] DANTAS, Aldimar. Engenharia de Software - Tipos de Testes (Caixa Preta, Caixa Branca). Jul 2013. Disponível em: <http://pt.slideshare.net/adilmar/engenharia-de-software-ii-testes>. Acesso em: 17 Set. 2014. [3] ANICHE, M. Métricas de código, pra que te quero?. Jun 2013. Disponível em: <http://pt.slideshare.net/mauricioaniche/mtricas-de-cdigo-pra-que-te-quero>. Acesso em: 17 Set. 2014. [4] Why Use JDepend?. Disponivel em: <http://clarkware.com/software/JDepend.html>. Acesso em 17 Set. 2014. [5] LINS, Julio César. Métricas de Qualidade com JavaNCSS e JDepend. Disponível em: <http://www.devmedia.com.br/metricas-de-qualidade-com-javancss-e-jdepend/8825>. Acesso em: 17 Set. 2014.
  • 26. Referências [6] JUNIOR, Pasteur Ottoni de Miranda. Testes de Caixa Branca e Testes de Caixa Preta. Disponível em: <http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCQQFjAB&u rl=http%3A%2F%2Fwww.tesestec.com.br%2Fpasteurjr%2FTCPB.pdf&ei=A0gpVOL9KJO-ggSIoYL4CQ& usg=AFQjCNEkoQfLnw7nkgq6D7f6tLIjbWIOXQ&bvm=bv.76247554,d.eXY>. Acesso em: 29 Set. 2014. [7] Conceitos: Testes de Caixa Branca e Testes de Caixa Preta. Jul 2014. Disponível em: <http://crowdtest.me/teste-caixa-branca-caixa-preta/>. Acesso em: 29 Set. 2014. [8] HENRIQUES, Carine Gomes, COSTA, Maurício. JDepend. Disponível em: <http://webserver2.tecgraf.puc-rio. br/~ismael/Cursos/Senac_MTSW/aulas/Modulo2_TecnicasDesnvolvimentoAgeis/4- Metricas/maven2/jdepend/JDepend.doc.>. Acesso em: 29 Set. 2014.

Notes de l'éditeur

  1. Custo maior devido aos testes serem baseados na implementação, porque se a implementação mudar todo o teste deverá ser refeito. Custo por exigir o conhecimento interno do sistema, porque requer um conhecimento maior por parte do testador.