SlideShare uma empresa Scribd logo
Test-Driven Development
com JavaScript
Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br
“Transformar equipes de desenvolvimento de software”
http://www.agilecode.com.br
Rodrigo Branas
rodrigo.branas@agilecode.com.br
http://www.agilecode.com.br
• Desenvolvendo Software na Gennera
• Criando treinamentos na Agile Code
• Escrevendo na Java Magazine e PacktPub
• Palestrando sobre desenvolvimento de
software em eventos, universidades e
empresas
Certificações
Formação Acadêmica
Ciências da Computação – UFSC
Gerenciamento de Projetos - FGV
SCJA, SCJP, SCJD, SCWCD, SCBCD, PMP, MCP e CSM
Experiência
Há mais de 12 anos desenvolvendo software na
plataforma Java com as empresas: EDS, HP, NET,
Citibank, GM, Dígitro, Softplan, OnCast, Senai,
VALE, RBS, Unimed, Globalcode, V.Office, Suntech,
WPlex e Gennera.
• Há mais de 5 anos liderando pessoas.
• Mais de 2000 horas em sala de aula.
• Mais de 100 apresentações em eventos.
• 6 artigos escritos para revistas.
• 1 livro.
• Mais de 500 profissionais treinados.
• Criação de 22 palestras.
• Criação de 10 treinamentos.
• Criação de mais de 3.000 slides.
Atualmente, qual é a cobertura de
testes nos projetos de vocês?
Qual é o problema em não ter de
testes automatizados?
Code and Pray
Trabalho braçal para testar várias
vezes a mesma coisa
Trabalhar em um castelo de cartas
Você tem medo do projeto em
que trabalha?
Onde entra o Agile nisso tudo?
Velocidade é a ausência de
desperdício – Amyr Klink
Se você trabalha para eliminar o
desperdício, aumentará gradativamente
a porcentagem de tempo que gasta
adicionando valor ao produto!
Test-Driven Development com JavaScript, Jasmine  Karma
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
Geralmente a gente pensa e vai
codificando, depois vê o que acontece
É tudo uma questão de expectativa
Test-Driven Development com JavaScript, Jasmine  Karma
Jasmine
Para testar a nossa aplicação, vamos utilizar
o framework de testes Jasmine. Ele é fácil
de utilizar e se integra bem com
ferramentas de automação.
http://pivotal.github.io/jasmine
Executando os testes
Como você executa os testes em Java?
Test-Driven Development com JavaScript, Jasmine  Karma
Karma
O Karma é uma das ferramenta mais
utilizadas para a execução de testes escritos
em JavaScript. Ela é compatível com
principais frameworks de teste como o
Jasmine, Mocha e QUnit.
http://karma-runner.github.io
Processo de Instalação
Para instalar a ferramenta, basta digitar o
comando abaixo:
npm install -g karma karma-cli
Configuração
O Karma é configurado por meio do arquivo
karma.conf.js. Nele será especificado o
framework de teste, a localização dos arquivos
da aplicação e o ambiente de execução.
karma init
karma.conf.js
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: ['js/*.js', 'test/*.js'],
exclude: [],
port: 8080,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
karma start
karma run
Calculadora de Strings
Vamos praticar
Vou usar esse negócio o tempo
todo?
Escrever o teste antes limita o escopo,
evitando codificar além do necessário
Já se pegou codificando várias
coisas diferentes ao mesmo tempo?
Escrever o teste antes não aumenta
o tempo de desenvolvimento?
Escrever o teste depois ou não escrever e
assumir um maior número de bugs para
corrigir, não aumenta o tempo de
desenvolvimento?
Evitar o refactoring por conta da falta de
testes leva a um código de baixa qualidade
e difícil de manter, não aumenta o tempo de
desenvolvimento?
Ter uma alta rotatividade por conta dos
problemas causados pela qualidade do
código, não aumenta o tempo de
desenvolvimento?
A dificuldade de entendimento por conta de
um código sem uma documentação
atualizada, como por exemplo um teste,
não aumenta o tempo de desenvolvimento?
Testar repetidas vezes a mesma coisa,
manualmente, não aumenta o tempo de
desenvolvimento?

Mais conteúdo relacionado

Mais procurados (20)

PPTX
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Rodrigo Branas
 
PPTX
Introdução ao AngularJS
Rodrigo Branas
 
PPTX
Refactoring
Rodrigo Branas
 
PPTX
HTTP, JSON, REST e AJAX com AngularJS
Rodrigo Branas
 
PDF
#1 - Git - Introdução
Rodrigo Branas
 
PPTX
Testes Automatizados
Rodrigo Branas
 
PPTX
A evolução do AngularJS
Rodrigo Branas
 
PDF
Material Design simples e rapido com AngularJS
Henrique Limas
 
PPTX
Introdução ao AngularJS!
Diullian Casagrande
 
PDF
Introdução ao LiveOak
jesuinoPower
 
PPTX
Primeiros passos no Vue.js
Joel Rodrigues
 
PDF
Conectando jBPM com o mundo - TDC 2014 SP
jesuinoPower
 
PPTX
jQuery
Douglas Aguiar
 
PPTX
Apresentação JQuery
Kassiano Pretto
 
PPTX
Criando aplicações java fx em minutos
Bruno Oliveira
 
PDF
JavaFX: Desktop para desenvolvedores WEB
jesuinoPower
 
PPTX
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Daniel Makiyama
 
PDF
Clean Architecture
Rodrigo Branas
 
PDF
O poder das Progressive Web Apps
Pedro Edson Silva Barros
 
PPTX
Domain-Driven Design
Rodrigo Branas
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Rodrigo Branas
 
Introdução ao AngularJS
Rodrigo Branas
 
Refactoring
Rodrigo Branas
 
HTTP, JSON, REST e AJAX com AngularJS
Rodrigo Branas
 
#1 - Git - Introdução
Rodrigo Branas
 
Testes Automatizados
Rodrigo Branas
 
A evolução do AngularJS
Rodrigo Branas
 
Material Design simples e rapido com AngularJS
Henrique Limas
 
Introdução ao AngularJS!
Diullian Casagrande
 
Introdução ao LiveOak
jesuinoPower
 
Primeiros passos no Vue.js
Joel Rodrigues
 
Conectando jBPM com o mundo - TDC 2014 SP
jesuinoPower
 
Apresentação JQuery
Kassiano Pretto
 
Criando aplicações java fx em minutos
Bruno Oliveira
 
JavaFX: Desktop para desenvolvedores WEB
jesuinoPower
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Daniel Makiyama
 
Clean Architecture
Rodrigo Branas
 
O poder das Progressive Web Apps
Pedro Edson Silva Barros
 
Domain-Driven Design
Rodrigo Branas
 

Destaque (15)

PPTX
JavaScript - Date
Rodrigo Branas
 
PPTX
JavaScript - Expressões Regulares
Rodrigo Branas
 
PDF
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Rodrigo Branas
 
PPTX
Técnicas de Refactoring
Rodrigo Branas
 
PDF
#2 - Git - DAG
Rodrigo Branas
 
PPTX
Clean Code
Rodrigo Branas
 
PDF
Node.js - #5 - Process - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #6 - Core Modules - net - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Rodrigo Branas
 
PPTX
XP - Extreme Programming
Rodrigo Branas
 
PPTX
Criando serviços com AngularJS
Rodrigo Branas
 
PDF
HTTP Interceptors com AngularJS
Rodrigo Branas
 
PPTX
Utilizando diretivas com AngularJS
Rodrigo Branas
 
PPTX
Evoluindo a arquitetura de uma aplicação com AngularJS
Rodrigo Branas
 
PPTX
Construindo Diretivas com AngularJS
Rodrigo Branas
 
JavaScript - Date
Rodrigo Branas
 
JavaScript - Expressões Regulares
Rodrigo Branas
 
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Rodrigo Branas
 
Técnicas de Refactoring
Rodrigo Branas
 
#2 - Git - DAG
Rodrigo Branas
 
Clean Code
Rodrigo Branas
 
Node.js - #5 - Process - Rodrigo Branas
Rodrigo Branas
 
Node.js - #6 - Core Modules - net - Rodrigo Branas
Rodrigo Branas
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Rodrigo Branas
 
XP - Extreme Programming
Rodrigo Branas
 
Criando serviços com AngularJS
Rodrigo Branas
 
HTTP Interceptors com AngularJS
Rodrigo Branas
 
Utilizando diretivas com AngularJS
Rodrigo Branas
 
Evoluindo a arquitetura de uma aplicação com AngularJS
Rodrigo Branas
 
Construindo Diretivas com AngularJS
Rodrigo Branas
 
Anúncio

Semelhante a Test-Driven Development com JavaScript, Jasmine Karma (20)

PPTX
[DevOps Carioca] Testes Automatizados
Samanta Cicilia
 
PPTX
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
minastestingconference
 
PPTX
Importância de Testes Automatizados para Continuous Delivery & DevOps
Samanta Cicilia
 
PPS
Automação de testes para equipes agile
Alini Rebonatto
 
PPTX
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
Samanta Cicilia
 
PDF
Mini curso de testes ágeis
Qualister
 
PDF
Agile Testing - Qualidade do Discovery ao Deploy
Eduardo Cini
 
PDF
Teste Ágil - Fazendo pirâmides com node.js
Diogo Andrade Miranda
 
PDF
Testes de Software & Ferramentas de Testes
Paulo César M Jeveaux
 
PPTX
Unit Test JavaScript
Dan Vitoriano
 
PPTX
Introdução a testes automatizados
Thiago Ghisi
 
PPSX
DevQA | Da zona de conforto ao comprometimento com a qualidade
Kamilla Queiroz Xavier
 
KEY
Greenbar - Testes automatizados na sua empresa
Rafael Ponte
 
PDF
Meus 50 Cents sobre Teste de Software
Vanilton Pinheiro
 
PPTX
CNQS - Testes Automatizados & Continuous Delivery
Samanta Cicilia
 
PPTX
Testes com javascript
Laís Lima
 
PDF
Agile testing coach - Agile Trends Floripa
Walmyr Lima e Silva Filho
 
PPSX
DevQA - Da zona de conforto ao comprometimento com a qualidade
Kamilla Queiroz Xavier
 
PPTX
[GUTS-RS] Agile Tester 3.0
GUTS-RS
 
[DevOps Carioca] Testes Automatizados
Samanta Cicilia
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
minastestingconference
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Samanta Cicilia
 
Automação de testes para equipes agile
Alini Rebonatto
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
Samanta Cicilia
 
Mini curso de testes ágeis
Qualister
 
Agile Testing - Qualidade do Discovery ao Deploy
Eduardo Cini
 
Teste Ágil - Fazendo pirâmides com node.js
Diogo Andrade Miranda
 
Testes de Software & Ferramentas de Testes
Paulo César M Jeveaux
 
Unit Test JavaScript
Dan Vitoriano
 
Introdução a testes automatizados
Thiago Ghisi
 
DevQA | Da zona de conforto ao comprometimento com a qualidade
Kamilla Queiroz Xavier
 
Greenbar - Testes automatizados na sua empresa
Rafael Ponte
 
Meus 50 Cents sobre Teste de Software
Vanilton Pinheiro
 
CNQS - Testes Automatizados & Continuous Delivery
Samanta Cicilia
 
Testes com javascript
Laís Lima
 
Agile testing coach - Agile Trends Floripa
Walmyr Lima e Silva Filho
 
DevQA - Da zona de conforto ao comprometimento com a qualidade
Kamilla Queiroz Xavier
 
[GUTS-RS] Agile Tester 3.0
GUTS-RS
 
Anúncio

Mais de Rodrigo Branas (8)

PDF
Node.js - #4 - Timers - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #3 - Global Objects - Rodrigo Branas
Rodrigo Branas
 
PDF
Node.js - #1 - Introdução - Rodrigo Branas
Rodrigo Branas
 
PDF
#6 - Git - Desfazendo as coisas
Rodrigo Branas
 
PDF
#5 - Git - Contribuindo com um repositório remoto
Rodrigo Branas
 
PDF
#4 - Git - Stash
Rodrigo Branas
 
PDF
#3 - Git - Branching e Merging
Rodrigo Branas
 
PPTX
Desvendando a linguagem JavaScript
Rodrigo Branas
 
Node.js - #4 - Timers - Rodrigo Branas
Rodrigo Branas
 
Node.js - #3 - Global Objects - Rodrigo Branas
Rodrigo Branas
 
Node.js - #1 - Introdução - Rodrigo Branas
Rodrigo Branas
 
#6 - Git - Desfazendo as coisas
Rodrigo Branas
 
#5 - Git - Contribuindo com um repositório remoto
Rodrigo Branas
 
#4 - Git - Stash
Rodrigo Branas
 
#3 - Git - Branching e Merging
Rodrigo Branas
 
Desvendando a linguagem JavaScript
Rodrigo Branas
 

Último (6)

PPTX
5 Critérios para seleção do objeto de estudo.pptx
Eduardo Corrêa
 
PDF
Aulas Extras - O que é e por que Aprender e Utilizar.pdf
fmartinsss
 
PPTX
Windows 11 Apostila do Básico ao Avançado
deividcosimo1
 
PDF
Ceritificado Imersão SOC HackOne Sab/Dom.pdf
RodrigoMori7
 
DOCX
150 PMBOK 7 Scenario-Based PMP Exam Questions and Answers.docx
Marcelo Cruz
 
PDF
Estudos DAC - projeto de arquitetura futurista
ra189223
 
5 Critérios para seleção do objeto de estudo.pptx
Eduardo Corrêa
 
Aulas Extras - O que é e por que Aprender e Utilizar.pdf
fmartinsss
 
Windows 11 Apostila do Básico ao Avançado
deividcosimo1
 
Ceritificado Imersão SOC HackOne Sab/Dom.pdf
RodrigoMori7
 
150 PMBOK 7 Scenario-Based PMP Exam Questions and Answers.docx
Marcelo Cruz
 
Estudos DAC - projeto de arquitetura futurista
ra189223
 

Test-Driven Development com JavaScript, Jasmine Karma