SlideShare a Scribd company logo
1 of 48
TDD
Automatizando Testes com Java
TDC - POA - 2016
Bruno Maomeh
Um grande aficionado pelo conhecimento,
admirador do desenvolvimento de software
e metodologias ágeis. Trabalhando por mais
de 9 anos com desenvolvimento, eu
também sou entusiasta por comunidades de
desenvolvimento de sistemas, atuando
como coordenador do Grupo de Usuários
Java do Rio Grande do Sul (RSJug) e do
JavaSF International Group (JavaSF).
O que é um teste?
O que é um teste?
Um teste é tudo aquilo que
assegura que alguma coisa
está funcionando.
O que é um teste?
"Afirma-se que o teste de software é um
processo, ou uma série de processos, projetado
para se certificar a respeito do código de
computador, de fazer o que foi designado a
cumprir, e sem realizar nada que não seja
intencional.” (Myers - 2004)
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
Testes Manuais
● Faz alteração no código;
● Levanta o Tomcat;
● Abre o Chrome;
● Faz login na aplicação;
● Entra na página do formulário;
● Preenche um formulário;
● Envia o formulário;
Testes Manuais
Fazer testes manuais É LENTO!!
Uma hora você vai esquecer ou errar algum passo!!
Testes automatizados
Testes automatizados
Tipos de testes
Teste de unidade
Teste de integração
Teste de aceitação
Teste de segurança
Teste de performance
Teste de configuração
Teste de regressão
Tipos de testes
Teste de unidade
Teste de integração
Teste de aceitação
Teste de segurança
Teste de performance
Teste de configuração
Teste de regressão
Teste de Unidade
Teste de unidade
● Ajuda na rastreabilidade de
bugs no sistema;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como documentação do
código;
● Auxilia na criação do design do
sistema.
Teste de unidade
● Ajuda na rastreabilidade de bugs
no sistema;
● Previnem regressão do
código;
● Incentivam a refatoração do
código;
● Servem como documentação do
código;
● Auxilia na criação do design do
Teste de unidade
● Ajuda na rastreabilidade de bugs
no sistema;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como documentação do
código;
● Auxilia na criação do design do
sistema.
Teste de unidade
● Ajuda na rastreabilidade de bugs
no sistema;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como
documentação do código;
● Auxilia na criação do design do
sistema.
Teste de unidade
● Ajuda na rastreabilidade de bugs
no sistema;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como documentação do
código;
● Auxilia na criação do
design do sistema.
NÃO é Teste de Unidade
Se ele conversa com o banco de dados;
Se ele se comunica através da rede;
Se ele toca o sistema de arquivos;
Se ele não pode ser executado ao mesmo tempo de
outros testes de unidade;
Se for necessário configurar ou preparar o ambiente
Teste de Integração
Teste de integração
● Garante a comunicação
com outros módulos
ou sistema;
● Previnem regressão do
código;
● Incentivam a refatoração do
código;
● Servem como
documentação de código e
de api.
Teste de integração
● Garante a comunicação
com outros módulos ou
sistema;
● Previnem regressão do
código;
● Incentivam a refatoração do
código;
● Servem como
documentação de código e
de api.
Teste de integração
● Garante a comunicação
com outros módulos ou
sistema;
● Previnem regressão do
código;
● Incentivam a
refatoração do código;
● Servem como
documentação de código e
de api;
Teste de integração
● Garante a comunicação
com outros módulos ou
sistema;
● Previnem regressão do
código;
● Incentivam a refatoração do
código;
● Servem como
documentação de
código e de api.
Teste de Aceitação
Teste de aceitação
● Garante a funcionalidade
do sistema como um todo;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como documentação de
código e de api;
● Simula o teste com o usuário
final.
Teste de aceitação
● Garante a funcionalidade do
sistema como um todo;
● Previnem regressão do
código;
● Incentivam a refatoração do
código;
● Servem como documentação de
código e de api;
● Simula o teste com o usuário
Teste de aceitação
● Garante a funcionalidade do
sistema como um todo;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como documentação de
código e de api;
● Simula o teste com o usuário
final.
Teste de aceitação
● Garante a funcionalidade do
sistema como um todo;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como
documentação de código e
de api;
● Simula o teste com o usuário
Teste de aceitação
● Garante a funcionalidade do
sistema como um todo;
● Previnem regressão do código;
● Incentivam a refatoração do
código;
● Servem como documentação de
código e de api;
● Simula o teste com o
usuário final.
Testes automatizados
Qual tipo de teste usar?
Em regras gerais
(isso não é uma estatística,
apenas referência)
O que é TDD?
O que é TDD?
TDD é uma prática de
desenvolvimento de software
onde todo o código do sistema
é escrito depois de escrever
testes automatizados.
"We never have enough time for testing, so let's just write the test first." (Kent Beck)
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
O que é TDD?
Ciclo do TDD: Vermelho-Verde-Amarelo
O que é TDD?
Muito além de técnicas de "test-first"
Auxilia na detecção de falhas no design do sistema.
Também deve ter informações sobre o código testado.
Se um teste está ficando muito complicado, é um grande indício que
exista problema com o design.
É hora de refatorar!!
@brunomaomeh
brunomaomeh@gmail.com
https://github.com/brunomaomeh
https://slideshare.net/brunomaomeh
https://linkedin.com/in/brunomaomeh
Obrigado e

More Related Content

What's hot

[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiroz Xavier
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Robson Agapito Correa
 
Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016Renato Groff
 
Revisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da culturaRevisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da culturaLeandro Parazito
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesPaulo César M Jeveaux
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Samanta Cicilia
 
Testes de interfaces Web com Selenium
Testes de interfaces Web com SeleniumTestes de interfaces Web com Selenium
Testes de interfaces Web com SeleniumRenato Groff
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineClaudio Romao
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoLeonardo Galani
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
 
Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaSamanta Cicilia
 

What's hot (20)

[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.
 
Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016Behavior-Driven Development (BDD) - DevOps Summit 2016
Behavior-Driven Development (BDD) - DevOps Summit 2016
 
Revisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da culturaRevisão de Código - Uma prática que depende da cultura
Revisão de Código - Uma prática que depende da cultura
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
 
Testes de interfaces Web com Selenium
Testes de interfaces Web com SeleniumTestes de interfaces Web com Selenium
Testes de interfaces Web com Selenium
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no Pipeline
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitido
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
 
Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínua
 

Viewers also liked

James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...
James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...
James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...Mozaic Works
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjugBruno Maomeh
 
Apresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - GoiâniaApresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - GoiâniaFrederico Maia Arantes
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a pontaElias Nogueira
 
Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...Elias Nogueira
 
Automação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com AppiumAutomação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com AppiumElias Nogueira
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing MindsetElias Nogueira
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeElias Nogueira
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisElias Nogueira
 
A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste ContinuoElias Nogueira
 
10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre Testes10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre TestesKatiana Maia
 
O que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de AceiteO que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de AceiteElias Nogueira
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
Acelerando o feedback e deploy com Automação de Testes!
Acelerando o feedback e deploy com Automação de Testes! Acelerando o feedback e deploy com Automação de Testes!
Acelerando o feedback e deploy com Automação de Testes! Elias Nogueira
 
O testador esta morto!
O testador esta morto!O testador esta morto!
O testador esta morto!Elias Nogueira
 

Viewers also liked (18)

James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...
James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...
James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjug
 
Apresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - GoiâniaApresentando meteor! Join Community - Goiânia
Apresentando meteor! Join Community - Goiânia
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a ponta
 
Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...Tudo o que você precisa saber para começar a automação de testes em dispositi...
Tudo o que você precisa saber para começar a automação de testes em dispositi...
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
Automação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com AppiumAutomação de Teste para iOS e Android com Appium
Automação de Teste para iOS e Android com Appium
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing Mindset
 
Testes generativos
Testes generativosTestes generativos
Testes generativos
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu time
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste Continuo
 
10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre Testes10 coisas que não me contaram sobre Testes
10 coisas que não me contaram sobre Testes
 
O que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de AceiteO que Evitar na Escrita de Criterios de Aceite
O que Evitar na Escrita de Criterios de Aceite
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
Acelerando o feedback e deploy com Automação de Testes!
Acelerando o feedback e deploy com Automação de Testes! Acelerando o feedback e deploy com Automação de Testes!
Acelerando o feedback e deploy com Automação de Testes!
 
Casperjs-tdc-2016.ppt
Casperjs-tdc-2016.pptCasperjs-tdc-2016.ppt
Casperjs-tdc-2016.ppt
 
O testador esta morto!
O testador esta morto!O testador esta morto!
O testador esta morto!
 

Similar to AutomatizandoTestesJavaTDD

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
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous DeliverySamanta Cicilia
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de CódigoRicardo Terra
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentOtavio Augusto
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
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
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
 
Testes: existe vida antes do TDD
Testes: existe vida antes do TDDTestes: existe vida antes do TDD
Testes: existe vida antes do TDDDiana Ungaro Arnos
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
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
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 

Similar to AutomatizandoTestesJavaTDD (20)

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
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de Código
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
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
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
 
Cultura de testes
Cultura de testesCultura de testes
Cultura de testes
 
Testes: existe vida antes do TDD
Testes: existe vida antes do TDDTestes: existe vida antes do TDD
Testes: existe vida antes do TDD
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
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
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 

AutomatizandoTestesJavaTDD

  • 1. TDD Automatizando Testes com Java TDC - POA - 2016
  • 2. Bruno Maomeh Um grande aficionado pelo conhecimento, admirador do desenvolvimento de software e metodologias ágeis. Trabalhando por mais de 9 anos com desenvolvimento, eu também sou entusiasta por comunidades de desenvolvimento de sistemas, atuando como coordenador do Grupo de Usuários Java do Rio Grande do Sul (RSJug) e do JavaSF International Group (JavaSF).
  • 3. O que é um teste?
  • 4. O que é um teste? Um teste é tudo aquilo que assegura que alguma coisa está funcionando.
  • 5. O que é um teste? "Afirma-se que o teste de software é um processo, ou uma série de processos, projetado para se certificar a respeito do código de computador, de fazer o que foi designado a cumprir, e sem realizar nada que não seja intencional.” (Myers - 2004)
  • 6. Testes Manuais ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário;
  • 7. Testes Manuais ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário;
  • 8. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  • 9. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  • 10. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  • 11. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  • 12. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  • 13. ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário; Testes Manuais
  • 14. Testes Manuais ● Faz alteração no código; ● Levanta o Tomcat; ● Abre o Chrome; ● Faz login na aplicação; ● Entra na página do formulário; ● Preenche um formulário; ● Envia o formulário;
  • 15. Testes Manuais Fazer testes manuais É LENTO!! Uma hora você vai esquecer ou errar algum passo!!
  • 18. Tipos de testes Teste de unidade Teste de integração Teste de aceitação Teste de segurança Teste de performance Teste de configuração Teste de regressão
  • 19. Tipos de testes Teste de unidade Teste de integração Teste de aceitação Teste de segurança Teste de performance Teste de configuração Teste de regressão
  • 21. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  • 22. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do
  • 23. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  • 24. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  • 25. Teste de unidade ● Ajuda na rastreabilidade de bugs no sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação do código; ● Auxilia na criação do design do sistema.
  • 26. NÃO é Teste de Unidade Se ele conversa com o banco de dados; Se ele se comunica através da rede; Se ele toca o sistema de arquivos; Se ele não pode ser executado ao mesmo tempo de outros testes de unidade; Se for necessário configurar ou preparar o ambiente
  • 28. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api.
  • 29. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api.
  • 30. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api;
  • 31. Teste de integração ● Garante a comunicação com outros módulos ou sistema; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api.
  • 33. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário final.
  • 34. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário
  • 35. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário final.
  • 36. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário
  • 37. Teste de aceitação ● Garante a funcionalidade do sistema como um todo; ● Previnem regressão do código; ● Incentivam a refatoração do código; ● Servem como documentação de código e de api; ● Simula o teste com o usuário final.
  • 39. Qual tipo de teste usar? Em regras gerais (isso não é uma estatística, apenas referência)
  • 40. O que é TDD?
  • 41. O que é TDD? TDD é uma prática de desenvolvimento de software onde todo o código do sistema é escrito depois de escrever testes automatizados. "We never have enough time for testing, so let's just write the test first." (Kent Beck)
  • 42. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  • 43. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  • 44. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  • 45. O que é TDD? Ciclo do TDD: Vermelho-Verde-Amarelo
  • 46. O que é TDD? Muito além de técnicas de "test-first" Auxilia na detecção de falhas no design do sistema. Também deve ter informações sobre o código testado. Se um teste está ficando muito complicado, é um grande indício que exista problema com o design. É hora de refatorar!!