October 13, 2016 Web.br hugeinc.com

Documentos relacionados
Desenvolvendo aplicações de qualidade com TDD

JUnit. Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues

TEST DRIVEN DEVELOPMENT. Prof. Bruno Henrique Pachulski

Testar: impossível. Jorge Diz Globalcode. Agile Brazil 2010 Slide 1

Community. .com. Introdução ao T D

Teste de software. Engenharia de software Profª karine sato da silva

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Desconstruindo Monolitos. Como construir micro serviços Delphi com agilidade e qualidade

Programação Orientada a Objetos

Introdução à Programação para Dispositivos Móveis

Princípios e práticas de extremme Programming

Desenvolvimento Guiado por Testes

Arquitetura Java Pastoreando gatos

Teste de Software. Karen Frigo Busolin Novembro / 2010

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Desenvolvimento orientado por testes, padrões de testes e JWebUnit

testes de software & tdd

Teste de Software Básico

Membros. MDS - Ícaro Aragão - João Robson Martins - Letícia de Souza - Rafael Bragança - Thiago Pereira - Varley Silva - Victor Leite - Vinicius Lima

1. A principal razão de dividir o processo de teste em tarefas distintas é:

J820. Mock objects. Testes de código com dependências. argonavis.com.br. Helder da Rocha

Teste de Software. Planejamento de Teste. Rosemary Silveira Filgueiras Melo

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

Estratégias de Escrita de Testes Automatizados

Desenvolvimento de Software de Qualidade através de Testes Automatizados

Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

O papel do QA (Testador) em um time Ágil. #caipiraagil2017

Introdução ao Teste Unitário com JUnit

MÓDULO 16 PLANEJAMENTO DE CONSTRUÇÃO, TESTES E DOCUMENTAÇÃO DO SISTEMA

Papel do PO Métodos Ágeis. Fonte: Adaptworks

Testes Automatizados. Cursos de Verão 2007 IME/USP Dairton Bassi & Paulo Cheque

Engenharia de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Behavior-Driven Development. Professor: Régis Patrick Silva Simão

RX Sistema Gerenciamento de Restaurantes

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Testes Ágeis com BDD. Por que o BDD pode salvar o agile? Paloma Costa

Sumário. Capítulo 3 Valores do XP Feedback Comunicação... 46

Recife Nov/2009. Agilidade na prática Start-ups em grandes empresas

Trilha Análise de Negócios A Transformação da Análise de Negócios frente às Mudanças de Metodologias Alexandre Xavier / Fernanda Matzenbacher

ENGENHARIA DE SOFTWARE O QUE SÃO TESTES? TESTES TESTES TESTES 26/08/2014. São pontuais; São previsíveis; São finitos;

Visão prática do BDD (Behavior Driven Design) para agilizar o processo de desenvolvimento

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

Organização para Realização de Teste de Software

Metodologias Ágeis. Equipe WEB Cercomp

Cultura Ágil e SCRUM. Bruno Oliveira.

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

- 8ª Lista de Exercícios -

Augusto Roselli

TS05. Teste de Software AUTOMATIZAÇÃO DE TESTES. COTI Informática Escola de Nerds

métodos ágeis e saas engenharia de sistemas de informação Daniel Cordeiro 11 de agosto de 2017 Escola de Artes, Ciências e Humanidades EACH USP

Testes com JUnit. Treinamento ALESP SPL. Danilo Toshiaki Sato.

Trilha Gestão de Produtos

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

CASOS DE TESTE PALESTRANTE: MARCIA SILVA

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

Testes de Interface de Usuário

1. A função DevOps, que se concentra principalmente em Produtos & Serviços:

Tendências de Teste de Software para #gutsrs

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

Métodos Ágeis e Programação Extrema (XP)

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Curso online de Fundamentos em Android. Plano de Estudo

Atividades de Desenvolvimento. Desenvolvimento de Software. Especificação de Requisitos. Atividades de Desenvolvimento. Especificação de Requisitos

Testes de Unidade. Curso de Verão IME/USP Hugo Corbucci

Diagramas de Use Case

rspec-rails & o ciclo tdd: vermelho verde refatore

Introdução a Teste de Software

ENGENHARIA DE SOFTWARE

Programação Orientada a Testes Rodrigo Rebouças de Almeida

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

Curso online de Aplicações. Híbridas. Plano de Estudo

Uso de Integração Continua no controle de acesso a ambientes. André Pinheiro TIC - UFRJ

ENGENHARIA DE SOFTWARE

Padrões de Testes Automatizados

7 Conclusão e Trabalhos Futuros

Behaviour-Driven Development BDD. Cristian Mathias Felipe Foliatti

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Desenvolvimento Ágil no Governo. Produtos de Software. Luís Dosso. Outubro/2011. Sistemas e aplicações sob medida para as necessidades do seu negócio.

Modulo I Método Ágil XP Extreme Programming

Modulo I Método Ágil XP Extreme Programming

Teste de Software. Professor Maurício Archanjo Nunes Coelho

Testes em Go - Do básico ao avançado

empowering talents UM PRODUTO:

CBSoft Indústria. Lições Aprendidas na Aplicação de Critérios de Testes Funcionais Tradicionais e Adaptados em um Jogo. a Plataforma Móvel

Introdução aos Testes de Software

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

TS04. Teste de Software PLANOS DE TESTE. COTI Informática Escola de Nerds

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

Programação Extrema na Prática

Métodos Ágeis e o SCRUM. Bruno Henrique Oliveira

Qual a Distribuição % típica do Esforço das Atividades de Teste?

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Testes de Software. Prof. Edjandir C. Costa

Qualidade de software. Prof. Emiliano Monteiro

Transcrição:

October 13, 2016 Web.br hugeinc.com

13 de outubro, 2016 Desenvolvendo aplicações de qualidade com TDD Huge

Isabella Silveira Web Engineer @ Huge. Front-End, Back-End, Agile e Integração Contínua.

Agenda. 1. Introdução 2. O que é TDD? 3. Por que usar TDD? 4. Show me the code. 5. Boas práticas. 6. Ferramentas. 7. Próximos passos. 8. Conclusão.

Introdução.

Hoje em dia, a qualidade é um diferencial em tudo que consumimos.

E podemos dizer que o mundo moderno funciona a base de código.

Qualidade de software é uma preocupação crescente.

TDD é uma ótima ferramenta para nos ajudar a alcançar este objetivo.

O que é TDD?

Vamos falar de coisa boa.

Testes de Software.

O que é TDD? Tipos de teste de software.

Tipos de teste de software: 1. Testes unitários. 2. Testes de integração. 3. Testes de aceitação.

Tipos de teste de software: 1. Testes unitários. 2. Testes de integração. 3. Testes de aceitação.

Garantem o funcionamento de cada parte individual do sistema.

Tipos de teste de software. 1. Testes unitários. 2. Testes de integração. 3. Testes de aceitação.

Asseguram que duas ou mais unidades funcionam corretamente quando trabalhando juntas.

Tipos de teste de software. 1. Testes unitários. 2. Testes de integração. 3. Testes de aceitação.

Testes na vista, simulam o comportamento do usuário.

Vista Integração Unitários

O que é TDD? Metodologia de desenvolvimento de software onde os testes são escritos antes das funcionalidades em si.

O que é TDD? As três leis do TDD.

As trêsleis do TDD: Você deve escrever um teste que falhe antes de escrever qualquer código de produção.

"Getting software to work is only half of the job." Robert C. Martin (Uncle Bob)

Primeiro fazer o código funcionar, depois melhorar a estrutura.

As três leis do TDD: Você não deve escrever um teste que contenha mais do que o necessário para simular o comportamento da função.

Keep it simple: faça apenas o necessário no escopo da função.

As três leis do TDD: Você não deve escrever mais código de produção do que o suficiente para fazer o teste passar.

A failing test should read like a highquality bug report. Eric Elliott

Mas como eu sei o que testar?

Divida a sua user story em features, e as features em unidades atômicas.

Eu, enquanto usuário, gostaria de ser redirecionado para a home depois de logar no sistema.

Definição de feature: Form de login.

Próximo passo: Definir as funcionalidades e o comportamento esperado dessa feature.

Por que usar TDD?

Por que usar TDD? 1. Auxilia no design da API. 2. Testes = Documentação. 3. Código de qualidade. 4. Viabiliza IC.

Por que usar TDD? 1. Auxilia no design da API. 2. Testes = Documentação. 3. Código de qualidade. 4. Viabiliza IC.

TDD te dá uma perspectiva mais clara do que realmente é necessário.

TDD reduz a complexidade do código.

Por que usar TDD? 1. Auxilia no design da API. 2. Testes = Documentação. 3. Código de qualidade. 4. Viabiliza IC.

Cada teste documenta com exatidão o comportamento de cada função.

Por que usar TDD? 1. Auxilia no design da API. 2. Testes = Documentação. 3. Código de qualidade. 4. Viabiliza IC.

Cada linha de código testado é uma linha de código confiável.

Por que usar TDD? 1. Auxilia no design da API. 2. Testes = Documentação. 3. Código de qualidade. 4. Viabiliza IC.

A integração contínua fornece o panorama geral da aplicação.

Testes previnem código quebrado.

Testes mapeiam cada parte do comportamento da sua aplicação.

Testes acabam com o medo de refactorings.

TDD facilita a identificação de bugs de regressão.

TDD estimula designs modulares.

Show me the code.

Show me the code Quatro perguntas primordiais.

Quatro perguntas primordiais. 1. O que eu estou testando? 2. Quais os parâmetros? 3. Qual a saída obtida? 4. Qual a saída esperada?

Exemplo prático: logintosystem()

Red.

Green.

Refactor.

Testar o comportamento em caso de falha também é importante.

Boas práticas.

Cada teste deve ser independente.

Não faça asserções desnecessárias.

Mocke os estados e recursos externos.

Use nomes e descrições consistentes.

Teste um comportamento de cada vez.

Ferramentas.

Ferramentas Frameworks de teste.

Ferramentas Test runners.

Próximos Passos.

Code Coverage.

Karma Coverage.

Integração Contínua.

Conclusão.

Qualidade agrega valor à sua aplicação.

TDD não é a única forma de garantir a qualidade do software, apesar de ser um bom aliado.

Sempre prezar por um código modularizado e testável.

E o mais importante de tudo:

Qualidade de software não é opcional.

Perguntas?

isilveira@hugeinc.com Get in touch. @silveira_bells /in/isabellasilveira /bella-silveira