Testes Unitários 
Tecnologia em Análise e Desenvolvimento de Sistemas 
Disciplina: Qualidade de Software 
Equipe: Aline Ferreira; Igor Guedes Ribeiro
Sumário 
 Teste Unitário 
 TDD 
 Ferramentas 
 Demonstração Prática 
 Referências
Teste Unitário
Teste Unitário 
 Testes unitários, como o nome sugere, devem testar unidades 
de trabalho isoladas, afim de mostrar que funcionam 
individualmente. 
 O que é unidade? 
 Componente, classe, método, etc.
Teste Unitário 
 Implica em testar a estrutura interna (como fluxo lógico e de 
dados) a função da unidade e os comportamentos observáveis. 
 Foco: Funcionalidade; 
 Preciso: aponta o caso específico que gera problemas;
Teste Unitário 
 Quando existe a necessidade de testar unitariamente um 
método que realize uma tarefa que dependa de algum recurso 
externo é necessário o uso de um Mock. 
 Mock: 
 é uma técnica para simular o comportamento de estruturas 
de programação.
Teste Unitário 
 Vantagens: 
 Previne contra o aparecimento de “bugs” oriundos de 
códigos mal escritos. 
 Código testado é mais confiável. 
 Permite alterações sem medo (coragem)
Teste Unitário 
 Vantagens: 
 Testa situações de sucesso e de falha. 
 Serve como métrica do projeto (teste == requisitos) 
 Gera e preserva um “conhecimento” sobre as regras de 
negócios do projeto.
Teste Unitário 
 Necessita de planejamento prévio; 
 Esse tipo de teste é de responsabilidade do próprio desenvolvedor 
durante a implementação do sistema. 
 Pode ser escrito antes ou depois de implementado o objeto alvo do 
teste
TDD 
( Teste-Driven Development )
TDD 
 O conceito de Desenvolvimento Guiado por Testes define que 
antes de criarmos um código novo (classe), devemos escrever 
um teste (classe de Test Case) para ele;
TDD 
 Irão assegurar o comportamento adequado do código; 
 Nenhum código vai para produção sem ter pelo menos um 
teste associado a ele; 
 Assegura que tudo foi testado antes de ser entregue;
TDD 
 Facilita o rastreamento de erro caso uma mudança ocasione 
um problema; 
 Os testes direcionam como o código deverá ser estruturado 
 Implementação de maneira simples
TDD 
 Caso os testes não sejam abrangentes, erros podem 
acontecer quando o sistema estiver em produção; 
 Correções podem causar efeitos colaterais em outros lugares 
que não foram previstos
Ferramentas
JUnit 
 Criado por Erich Gamma e Kent Beck 
 É um framework open-source que possibilita a criação de testes 
unitários em Java;
JUnit 
 Casos de teste são constituídos por um ou mais métodos, 
sendo que estes podem estar agrupados em suítes de teste. 
 Ele Fornece uma API (conjunto de classes) para construir os 
testes e Aplicações gráficas e em modo console para executar 
os testes criados.
JUnit 
 Pode verificar se cada unidade de código funciona da forma 
esperada. 
 Facilita a criação, execução automática de testes e a 
apresentação dos resultados. 
 É Orientado a Objeto 
 É gratuito e pode ser baixado em: www.junit.org
TesteNG 
 É um framework de testes inspirado do JUnit e NUnit com 
algumas novas funcionalidades que tornam mais poderoso e 
fácil de usar;
TesteNG 
 TestNG é projetado para cobrir todas as categorias de testes: 
unidade, funcional, end-to-end, integração, etc ... 
 Apoiado por uma variedade de ferramentas e plug-ins (Eclipse, 
IDEA, Maven, etc ...) 
 Configuração de teste flexível.
Dúvidas ?
Referências 
 Testes de unidade com Junit. Disponível 
em:<http://www.devmedia.com.br/testes-de-unidade-com-junit/ 
4637> Acesso em: 31 de Outubro de 2014 
 O que é Mock em Teste Unitário? Disponível em: 
<http://www.anselmeit.com/2012/06/o-que-e-mock-em-teste-unitario. 
html> Acesso em: 31 de Outubro de 2014 
 Testes Unitários e TDD. Disponível em < 
http://www.mobiltec.com.br/blog/index.php/testes-unitarios-e- 
tdd-conceitos-básicos> Acesso em 01 de Novembro de 2014
Demonstração Prática

Apresentacao Testes de Unidade

  • 1.
    Testes Unitários Tecnologiaem Análise e Desenvolvimento de Sistemas Disciplina: Qualidade de Software Equipe: Aline Ferreira; Igor Guedes Ribeiro
  • 2.
    Sumário  TesteUnitário  TDD  Ferramentas  Demonstração Prática  Referências
  • 3.
  • 4.
    Teste Unitário Testes unitários, como o nome sugere, devem testar unidades de trabalho isoladas, afim de mostrar que funcionam individualmente.  O que é unidade?  Componente, classe, método, etc.
  • 5.
    Teste Unitário Implica em testar a estrutura interna (como fluxo lógico e de dados) a função da unidade e os comportamentos observáveis.  Foco: Funcionalidade;  Preciso: aponta o caso específico que gera problemas;
  • 6.
    Teste Unitário Quando existe a necessidade de testar unitariamente um método que realize uma tarefa que dependa de algum recurso externo é necessário o uso de um Mock.  Mock:  é uma técnica para simular o comportamento de estruturas de programação.
  • 7.
    Teste Unitário Vantagens:  Previne contra o aparecimento de “bugs” oriundos de códigos mal escritos.  Código testado é mais confiável.  Permite alterações sem medo (coragem)
  • 8.
    Teste Unitário Vantagens:  Testa situações de sucesso e de falha.  Serve como métrica do projeto (teste == requisitos)  Gera e preserva um “conhecimento” sobre as regras de negócios do projeto.
  • 9.
    Teste Unitário Necessita de planejamento prévio;  Esse tipo de teste é de responsabilidade do próprio desenvolvedor durante a implementação do sistema.  Pode ser escrito antes ou depois de implementado o objeto alvo do teste
  • 10.
    TDD ( Teste-DrivenDevelopment )
  • 11.
    TDD  Oconceito de Desenvolvimento Guiado por Testes define que antes de criarmos um código novo (classe), devemos escrever um teste (classe de Test Case) para ele;
  • 13.
    TDD  Irãoassegurar o comportamento adequado do código;  Nenhum código vai para produção sem ter pelo menos um teste associado a ele;  Assegura que tudo foi testado antes de ser entregue;
  • 14.
    TDD  Facilitao rastreamento de erro caso uma mudança ocasione um problema;  Os testes direcionam como o código deverá ser estruturado  Implementação de maneira simples
  • 16.
    TDD  Casoos testes não sejam abrangentes, erros podem acontecer quando o sistema estiver em produção;  Correções podem causar efeitos colaterais em outros lugares que não foram previstos
  • 17.
  • 18.
    JUnit  Criadopor Erich Gamma e Kent Beck  É um framework open-source que possibilita a criação de testes unitários em Java;
  • 19.
    JUnit  Casosde teste são constituídos por um ou mais métodos, sendo que estes podem estar agrupados em suítes de teste.  Ele Fornece uma API (conjunto de classes) para construir os testes e Aplicações gráficas e em modo console para executar os testes criados.
  • 20.
    JUnit  Podeverificar se cada unidade de código funciona da forma esperada.  Facilita a criação, execução automática de testes e a apresentação dos resultados.  É Orientado a Objeto  É gratuito e pode ser baixado em: www.junit.org
  • 21.
    TesteNG  Éum framework de testes inspirado do JUnit e NUnit com algumas novas funcionalidades que tornam mais poderoso e fácil de usar;
  • 22.
    TesteNG  TestNGé projetado para cobrir todas as categorias de testes: unidade, funcional, end-to-end, integração, etc ...  Apoiado por uma variedade de ferramentas e plug-ins (Eclipse, IDEA, Maven, etc ...)  Configuração de teste flexível.
  • 23.
  • 24.
    Referências  Testesde unidade com Junit. Disponível em:<http://www.devmedia.com.br/testes-de-unidade-com-junit/ 4637> Acesso em: 31 de Outubro de 2014  O que é Mock em Teste Unitário? Disponível em: <http://www.anselmeit.com/2012/06/o-que-e-mock-em-teste-unitario. html> Acesso em: 31 de Outubro de 2014  Testes Unitários e TDD. Disponível em < http://www.mobiltec.com.br/blog/index.php/testes-unitarios-e- tdd-conceitos-básicos> Acesso em 01 de Novembro de 2014
  • 25.