SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Frameworks de Testes
End-to-end
NodeJS
Oi!
Bárbara Cabral
QA Engineer
◎ Conceitos
◉ BDD & ATDD
◎ Exemplos ATDD + BDD
◎ Frameworks em NodeJS
◉ CucumberJS
◉ Protractor
◉ CodeceptJS
◉ BackstopJS
Agenda
BDD e ATDD
Abordagens de Desenvolvimento de
Software orientado à Testes
Unitários
Componente
Integração
Aceitação
Pirâmide de Testes
BDD
Behavior Driven Development
1
O que é?
É uma abordagem
que funciona muito
bem com uma
metodologia ágil,
encoraja devs, qas, e
pessoas não técnicas
(de negócios) a
utilizarem uma
linguagem única
facilitando a
conversação.
Criador
Dan North, em 2003,
concebeu em reposta
ao TDD, ele retira a
palavra “teste” do
nome da técnica e a
traz de volta ao
comportamento da
aplicação.
BDD
ATDD
Acceptance Testing Driven
Development
2
O que é?
É uma abordagem
para a criação de
requisitos de forma
colaborativa entre o
cliente e a equipe. É
descrita de forma
natural para que
todos entendam o
que será entregue
sem criação de
doctos adicionais.
Criador
Elisabeth
Hendrickson, em
2008, criou a técnica
se baseando em
conceitos de BDD,
TDD e Especificação
por exemplos.
ATDD
Exemplos
ATDD + BDD
Base para os frameworks de testes
end-to-end
Estória (User Story)
Como um usuário do site
JetBlue
Eu gostaria de encontrar
vôos de ida e volta para a
cidade de destino
Para que eu agende a
minha viagem de férias
“As a/an …
I would like ..
So that”
Cenário (Scenario)
Dado que eu acesso o site da JetBlue
Quando escolho cidade de origem
E escolho data de saída
E escolho cidade de destino
E escolho data de retorno
Então eu visualizo uma lista de vôos
relacionados à pesquisa
“ Given …
When …
Then … ”
Exemplo
Cenário Outline: Busca por vôos inválidos
Quando eu escolho a <cidade_origem>
E escolho a <data_saida>
E escolho a <cidade_destino>
E escolho a <data_retorno>
E eu busco por vôos
Então eu vejo a mensagem de erro “Vôo não encontrado”
Exemplos:
| cidade_origem | data_saida | cidade_destino | data_retorno |
| "Florianópolis" | "02/01/2018" | "São Paulo" | "28/01/2018" |
| "Miami" | "02/01/2018" | "Cairo" | "28/01/2052" |
Exemplos
Frameworks em NodeJS
◎ Especificação
◉ CucumberJS
◎ Protractor
◎ CodeceptJS
◎ BackstopJS
Frameworks
CucumberJS
◎ Versão em Javascript do Cucumber
◉ Framework de Especificação para BDD
◎ Sintaxe da linguagem é gherkin
◎ Executa com o NodeJS
◎ Baseado em:
◉ Feature files
◉ Step Files
◎ Especificar os cenários ANTES de
desenvolver
◎ Automatizá-los DEPOIS de desenvolvidos
CucumberJS
CucumberJS
CucumberJS
Protractor
◎ Executa com o Node.js usando o WebDriver
(selenium) para controlar o browser e simular
as ações dos usuários
◎ Identifica elementos do AngularJS
◎ Usa a biblioteca do Jasmine para sua sintaxe
de testes.
◎ Sintaxe é similar à sintaxe dos testes unitários,
contendo um arquivo de teste com um ou
mais blocos de “it” que descrevem os
requisitos da aplicação.
Protractor
Protractor
Protractor + PageObj
PageObject
CodeceptJS
◎ É baseado em cenários
◎ Pode-ser ir inserindo os comandos direto no shell
dentro da execução do teste
◎ É personalizável, Helpers:
◉ Protractor
◉ Pupeeter (opera em cima do Chrome
diretamente, sem o ChromeDriver)
◉ Nightmare (headless, like PhantomJS)
◉ Appium (mobile)
◉ REST (API)
◎ Sintaxe unificada, não importa o Helper
CodeceptJS
CodeceptJS + CucumberJS
CodeceptJS + CucumberJS
◎ Simples de começar
◎ Comandos interessantes
◉ Gerar steps não implementados
◉ Executar tags do cucumber
◉ Cenários que executam apenas em 1 browser
◉ Gerar pageobjects
CodeceptJS + PageObjects
BackstopJS
◎ Testes de Regressão Visual
◎ Compara alterações visuais entre versões do
sistema
◉ Ex: dev environment vs. production
◉ Screenshots para versão de referência
BackstopJS
◎ Comandos
◉ $ backstopjs init
◉ $ backstopjs referente
◉ $ backstopjs test
◎ Engines
◉ Chrome-Headless
○ "engine": "puppeteer" (default)
○ "engine": "chromy"
◉ Slimer (similar ao phantom roda no gecko: engine do firefox)
○ "engine": "slimerjs"
○ "engine": "casper"
BackstopJS
“Referências
◎ Top 5 Most Rated Node.js Frameworks for
End-to-End Web Testing
◎ Meus Exemplos
◉ Exemplo JetBlue com Protractor
◉ Exemplo JetBlue com o CucumberJS +
Protractor
Obrigada!
Perguntas & Sugestões
Você pode me encontrar
twitter @barbarapcabral & email barbaracabral@gmail.com

Contenu connexe

Tendances

Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Rodrigo Kono
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de RequisitosPaulo Furtado
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Elaine Cecília Gatto
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)Evandro Paes
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareRonney Moreira de Castro
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de SoftwareCloves da Rocha
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 

Tendances (20)

Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
 
Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Requisitos de software
Requisitos de softwareRequisitos de software
Requisitos de software
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Cmmi e mps.Br
Cmmi e mps.BrCmmi e mps.Br
Cmmi e mps.Br
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)
 
eXtreme Programming (XP)
eXtreme Programming (XP)eXtreme Programming (XP)
eXtreme Programming (XP)
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de Software
 
Definição e classificação dos requisitos
Definição e classificação dos requisitosDefinição e classificação dos requisitos
Definição e classificação dos requisitos
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 

Similaire à Frameworks de testes end-to-end em NodeJS

Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumSandy Maciel
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...Renato Groffe
 
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...iMasters
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Renato Groff
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumRafael Cruz, MCT, MBA
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Renato Groffe
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Renato Groff
 
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
 
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016Renato Groff
 
MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015Kaio Valente
 

Similaire à Frameworks de testes end-to-end em NodeJS (20)

[Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js [Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js
 
Bdd com cucumber + java + selenium
Bdd com cucumber + java + seleniumBdd com cucumber + java + selenium
Bdd com cucumber + java + selenium
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Node JS - Parte 1
Node JS - Parte 1Node JS - Parte 1
Node JS - Parte 1
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Behaviour-Driven Development com Ruby
Behaviour-Driven Development com RubyBehaviour-Driven Development com Ruby
Behaviour-Driven Development com Ruby
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Bdd&tdd
Bdd&tddBdd&tdd
Bdd&tdd
 
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e Selenium
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
 
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
 
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
 
BDD
BDDBDD
BDD
 
MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015MEAN Full Stack JavaScript - TaSafoConf 2015
MEAN Full Stack JavaScript - TaSafoConf 2015
 

Plus de Bárbara Cabral da Conceição, CTFL

[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloud[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloudBárbara Cabral da Conceição, CTFL
 
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Bárbara Cabral da Conceição, CTFL
 
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...Bárbara Cabral da Conceição, CTFL
 
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...Bárbara Cabral da Conceição, CTFL
 
Information quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosureInformation quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosureBárbara Cabral da Conceição, CTFL
 

Plus de Bárbara Cabral da Conceição, CTFL (20)

[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloud[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloud
 
Implementando indicadores com google apps script
Implementando indicadores com google apps scriptImplementando indicadores com google apps script
Implementando indicadores com google apps script
 
Saindo do zero com DevOps
Saindo do zero com DevOpsSaindo do zero com DevOps
Saindo do zero com DevOps
 
Testes de ui com docker DevFest2018 - GDG Floripa
Testes de ui com docker DevFest2018 - GDG FloripaTestes de ui com docker DevFest2018 - GDG Floripa
Testes de ui com docker DevFest2018 - GDG Floripa
 
Khomp testes complexos!
Khomp   testes complexos!Khomp   testes complexos!
Khomp testes complexos!
 
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
 
O que é influência afinal?
O que é influência afinal?O que é influência afinal?
O que é influência afinal?
 
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
 
O que Continuous delivery significa para QA
O que Continuous delivery significa para QAO que Continuous delivery significa para QA
O que Continuous delivery significa para QA
 
Carreira de QA
Carreira de QA Carreira de QA
Carreira de QA
 
Data driven quality - tdc2016
Data driven quality - tdc2016Data driven quality - tdc2016
Data driven quality - tdc2016
 
Agile Trends: Qualidade orientada a Dados
Agile Trends: Qualidade orientada a DadosAgile Trends: Qualidade orientada a Dados
Agile Trends: Qualidade orientada a Dados
 
Lean software testing
Lean software testing Lean software testing
Lean software testing
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
UX testing - Onde podemos contribnuir?
UX testing - Onde podemos contribnuir?UX testing - Onde podemos contribnuir?
UX testing - Onde podemos contribnuir?
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Avaliação da Qualidade da Informação em empresa de TI
Avaliação da Qualidade da Informação em empresa de TIAvaliação da Qualidade da Informação em empresa de TI
Avaliação da Qualidade da Informação em empresa de TI
 
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
 
Problemas de Qualidade da Informação e Abordagens Atuais
Problemas de Qualidade da Informação e Abordagens AtuaisProblemas de Qualidade da Informação e Abordagens Atuais
Problemas de Qualidade da Informação e Abordagens Atuais
 
Information quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosureInformation quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosure
 

Frameworks de testes end-to-end em NodeJS

  • 3. ◎ Conceitos ◉ BDD & ATDD ◎ Exemplos ATDD + BDD ◎ Frameworks em NodeJS ◉ CucumberJS ◉ Protractor ◉ CodeceptJS ◉ BackstopJS Agenda
  • 4. BDD e ATDD Abordagens de Desenvolvimento de Software orientado à Testes
  • 7. O que é? É uma abordagem que funciona muito bem com uma metodologia ágil, encoraja devs, qas, e pessoas não técnicas (de negócios) a utilizarem uma linguagem única facilitando a conversação. Criador Dan North, em 2003, concebeu em reposta ao TDD, ele retira a palavra “teste” do nome da técnica e a traz de volta ao comportamento da aplicação. BDD
  • 9. O que é? É uma abordagem para a criação de requisitos de forma colaborativa entre o cliente e a equipe. É descrita de forma natural para que todos entendam o que será entregue sem criação de doctos adicionais. Criador Elisabeth Hendrickson, em 2008, criou a técnica se baseando em conceitos de BDD, TDD e Especificação por exemplos. ATDD
  • 10.
  • 11. Exemplos ATDD + BDD Base para os frameworks de testes end-to-end
  • 12. Estória (User Story) Como um usuário do site JetBlue Eu gostaria de encontrar vôos de ida e volta para a cidade de destino Para que eu agende a minha viagem de férias “As a/an … I would like .. So that” Cenário (Scenario) Dado que eu acesso o site da JetBlue Quando escolho cidade de origem E escolho data de saída E escolho cidade de destino E escolho data de retorno Então eu visualizo uma lista de vôos relacionados à pesquisa “ Given … When … Then … ” Exemplo
  • 13. Cenário Outline: Busca por vôos inválidos Quando eu escolho a <cidade_origem> E escolho a <data_saida> E escolho a <cidade_destino> E escolho a <data_retorno> E eu busco por vôos Então eu vejo a mensagem de erro “Vôo não encontrado” Exemplos: | cidade_origem | data_saida | cidade_destino | data_retorno | | "Florianópolis" | "02/01/2018" | "São Paulo" | "28/01/2018" | | "Miami" | "02/01/2018" | "Cairo" | "28/01/2052" | Exemplos
  • 15. ◎ Especificação ◉ CucumberJS ◎ Protractor ◎ CodeceptJS ◎ BackstopJS Frameworks
  • 16. CucumberJS ◎ Versão em Javascript do Cucumber ◉ Framework de Especificação para BDD ◎ Sintaxe da linguagem é gherkin ◎ Executa com o NodeJS ◎ Baseado em: ◉ Feature files ◉ Step Files ◎ Especificar os cenários ANTES de desenvolver ◎ Automatizá-los DEPOIS de desenvolvidos
  • 20. Protractor ◎ Executa com o Node.js usando o WebDriver (selenium) para controlar o browser e simular as ações dos usuários ◎ Identifica elementos do AngularJS ◎ Usa a biblioteca do Jasmine para sua sintaxe de testes. ◎ Sintaxe é similar à sintaxe dos testes unitários, contendo um arquivo de teste com um ou mais blocos de “it” que descrevem os requisitos da aplicação.
  • 25. CodeceptJS ◎ É baseado em cenários ◎ Pode-ser ir inserindo os comandos direto no shell dentro da execução do teste ◎ É personalizável, Helpers: ◉ Protractor ◉ Pupeeter (opera em cima do Chrome diretamente, sem o ChromeDriver) ◉ Nightmare (headless, like PhantomJS) ◉ Appium (mobile) ◉ REST (API) ◎ Sintaxe unificada, não importa o Helper
  • 28. CodeceptJS + CucumberJS ◎ Simples de começar ◎ Comandos interessantes ◉ Gerar steps não implementados ◉ Executar tags do cucumber ◉ Cenários que executam apenas em 1 browser ◉ Gerar pageobjects
  • 30. BackstopJS ◎ Testes de Regressão Visual ◎ Compara alterações visuais entre versões do sistema ◉ Ex: dev environment vs. production ◉ Screenshots para versão de referência
  • 31. BackstopJS ◎ Comandos ◉ $ backstopjs init ◉ $ backstopjs referente ◉ $ backstopjs test ◎ Engines ◉ Chrome-Headless ○ "engine": "puppeteer" (default) ○ "engine": "chromy" ◉ Slimer (similar ao phantom roda no gecko: engine do firefox) ○ "engine": "slimerjs" ○ "engine": "casper"
  • 33. “Referências ◎ Top 5 Most Rated Node.js Frameworks for End-to-End Web Testing ◎ Meus Exemplos ◉ Exemplo JetBlue com Protractor ◉ Exemplo JetBlue com o CucumberJS + Protractor
  • 34. Obrigada! Perguntas & Sugestões Você pode me encontrar twitter @barbarapcabral & email barbaracabral@gmail.com