SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentTung Nguyen Thanh
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesDerek Smith
 
05 junit
05 junit05 junit
05 junitmha4
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit TestingJoe Tremblay
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)Brian Rasmussen
 
Test unitaire
Test unitaireTest unitaire
Test unitaireIsenDev
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentMireia Sangalo
 
Software Testing
Software TestingSoftware Testing
Software TestingAndrew Wang
 
Unit and integration Testing
Unit and integration TestingUnit and integration Testing
Unit and integration TestingDavid Berliner
 
Unit Test Presentation
Unit Test PresentationUnit Test Presentation
Unit Test PresentationSayedur Rahman
 
TestNG Session presented in PB
TestNG Session presented in PBTestNG Session presented in PB
TestNG Session presented in PBAbhishek Yadav
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizadoselliando dias
 

Tendances (20)

TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best Practices
 
05 junit
05 junit05 junit
05 junit
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Workshop unit test
Workshop   unit testWorkshop   unit test
Workshop unit test
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
Junit
JunitJunit
Junit
 
Unit testing
Unit testingUnit testing
Unit testing
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Junit
JunitJunit
Junit
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Unit and integration Testing
Unit and integration TestingUnit and integration Testing
Unit and integration Testing
 
Unit Test Presentation
Unit Test PresentationUnit Test Presentation
Unit Test Presentation
 
TestNG Session presented in PB
TestNG Session presented in PBTestNG Session presented in PB
TestNG Session presented in PB
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizados
 

En vedette

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 driverJúlio de Lima
 
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 softwareHeider Lopes
 
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 AndroidEduardo Carrara de Araujo
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalEduardo Bregaida
 
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
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Javaalexmacedo
 
33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com JavaGlobalcode
 
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-AssuredQualister
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 

En vedette (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
 

Similaire à Apresentacao Testes de Unidade

Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
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 UnidadeThiago Bertuzzi
 
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
 
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 testeUniversidade Tiradentes
 
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 applicationsLuiz Henrique
 
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
 
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 SoftwareCloves da Rocha
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unitLucas Marques
 
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 AzureGrupo de Testes Carioca
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 

Similaire à Apresentacao Testes de Unidade (20)

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 com Python
TDD com PythonTDD com Python
TDD com Python
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 

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