SlideShare uma empresa Scribd logo
1 de 25
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Api Testing
Api TestingApi Testing
Api Testing
 
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...
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
software testing
 software testing software testing
software testing
 
API Testing Presentations.pptx
API Testing Presentations.pptxAPI Testing Presentations.pptx
API Testing Presentations.pptx
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 
RESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsRESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and Jenkins
 
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
사용자 스토리 대상 테스트 설계 사례(테스트기본교육 3장 3절)
 
testng
testngtestng
testng
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Integration testing
Integration testingIntegration testing
Integration testing
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentals
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
API TESTING
API TESTINGAPI TESTING
API TESTING
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
 
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
 
API Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj RollisonAPI Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj Rollison
 

Destaque

Destaque (14)

Power mock
Power mockPower mock
Power mock
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
 
Utilizando Espresso e UIAutomator no Teste de Apps Android
Utilizando Espresso e UIAutomator no Teste de Apps AndroidUtilizando Espresso e UIAutomator no Teste de Apps Android
Utilizando Espresso e UIAutomator no Teste de Apps Android
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso Total
 
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
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Selenium - WebDriver
Selenium - WebDriverSelenium - WebDriver
Selenium - WebDriver
 
33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com Java
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-Assured
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Introdução ao maven
Introdução ao mavenIntrodução ao maven
Introdução ao maven
 

Semelhante a Apresentacao Testes de Unidade

Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
Cloves da Rocha
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
UFPA
 

Semelhante a Apresentacao Testes de Unidade (20)

TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
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
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
J unit xp
J unit xpJ unit xp
J unit xp
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de Unidade
 
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
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applications
 
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
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unit
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 

Apresentacao Testes de Unidade

  • 1. Testes Unitários Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Qualidade de Software Equipe: Aline Ferreira; Igor Guedes Ribeiro
  • 2. Sumário  Teste Unitário  TDD  Ferramentas  Demonstração Prática  Referências
  • 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-Driven Development )
  • 11. 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;
  • 12.
  • 13. 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;
  • 14. 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
  • 15.
  • 16. 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
  • 18. JUnit  Criado por Erich Gamma e Kent Beck  É um framework open-source que possibilita a criação de testes unitários em Java;
  • 19. 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.
  • 20. 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
  • 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.
  • 24. 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