TEST DRIVEN DEVELOPMENT. Prof. Bruno Henrique Pachulski

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

Trilha Agile TDD e 20 coisas que você precisa saber

Programação Orientada a Objetos

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

Test-driven Development

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

Desenvolvendo aplicações de qualidade com TDD

Estratégias de Escrita de Testes Automatizados

October 13, 2016 Web.br hugeinc.com

Desenvolvimento Guiado por Testes

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

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

QUALIDADE DE SOFTWARE: UTILIZAÇÃO DO TESTE DE UNIDADE

Exercícios de Laboratório 1

Olimpíada Brasileira de Robótica

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Requisitos testáveis com behaviour-driven development

Algoritmo e Linguagem C++

Extreme Programming: Valores e Práticas

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Introdução a Programação de Jogos

Introdução ao TDD. Dionatan Moura. #guma10anos Abril de about.me/dionatanmoura

Dificuldades na implantação de Métodos Ágeis

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Como utilizar o Histórico de Ficheiros no Windows 10

PROCESSO DE DESENVOLVIMENTO DE PRODUTOS (PDP) AULA 02 UFPR. Prof.ª Nicolle Sotsek Ramos

Desenvolvimento guiado por testes e ferramentas xunit

Pesquisando Processos

Desenvolvimento de Software de Qualidade através de Testes Automatizados

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

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS DE REVISÃO

4.6. UML Diagramas de componentes

SME Introdução à Programação de Computadores Primeiro semestre de Trabalho: jogo Semáforo

Comunidade de Prática Virtual Inclusiva Formação de Professores

Desenvolvimento Dirigido por Testes (TDD)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

SÓLIDOS GEOMÉTRICOS. Materiais manipulativos para o ensino de COLEÇÃO MATHEMOTECA. ORGANIZADORAS Katia Stocco Smole Maria Ignez Diniz

Desenvolvimento Dirigido por Testes (TDD)

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 26/10/2015

Consultoria e Serviços Contábeis. A JBW Consultoria apresenta aos seus clientes um novo sistema de Gestão de Documentos. ESCRITÓRIO VIRTUAL

Gemini Vetrô. Fogão portátil. Descrições

Texto: Cadastro do Oficial de Justiça. 1 de 30

Memória Virtual. Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII

CellBus Plano de Gerenciamento de Qualidade Versão (1.3)

EXPERIÊNCIA 7 MUX e DEMUX

Modelos. Banco de dados. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER.

Luiz Fernando Maurício de Souza Sidemar Fidelis Cezario. FDD Desenvolvimento dirigido a funcionalidades

Processo de desenvolvimento

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

Engenharia de Software

UFPE, 1-o semestre de 2011 Estatística e Probabilidade ET-199 Licenciatura, ET-625 Engenharia cartográfica Professor André Toom PROVA 2, VERSÃO 1

Manual de Instrução Emissor de Nota Fiscal Eletrônica OSEDE

Introdução. Enquadramento. Descrição

CÓDIGO DA VAGA: TP05 QUESTÕES DE MÚLTIPLAS ESCOLHAS

Sistemas Distribuídos Capítulo 6 - Aula 12

Gerência de Projetos de Software. Prof. Dr. João Dovicchi INE / CTC / UFSC.

Rogerio Atem de Carvalho, Hudson Silva Ferreira, Rafael Ferreira Toledo, Milena Silveira de Azevedo

EXERCÍCIOS PROPOSTOS MÓDULO 03 AULA 03 EDUARDO TOGNON

Ferramenta de apoio a Experimentos em Engenharia de Software

Guia de Referência OPEN PROJECT Treinamento Essencial

Guilherme Lima. Designer Gráfico

Dialux evo Cálculo de Iluminação artificial para ambientes

Prática Colaborativa de Programação. Peterson Rodrigues Junho de 2015

development Teresa Maciel DEINFO/UFRPE

Manifesto Ágil Princípios

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

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

MANUAL TÉCNICO DE INTEGRAÇÃO MLO MONITOR DE LOJAS

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

ENGENHARIA DE SOFTWARE

Criando uma aplicação web

Métodos Ágeis para Desenvolvimento de Software Livre

PLANO MUNICIPAL DE SANEAMENTO BÁSICO PMSB PRODUTO IX METODOLOGIA PARA CRIAÇÃO DO SISTEMA DE INFORMAÇÕES PARA AUXÍLIO À TOMADA DE DECISÃO

Exercícios TVC2 PARTE I:

Neste tópico, você conhecerá a ferramenta Solution Packager, usada por parceiros e fornecedores de soluções de software para criar soluções prontas

Orientação a Objetos Interfaces

Estruturas de Dados com Jogos. Capítulo 6 Listas Cadastrais

Introdução aos Algoritmos

1. Pedidos 1. 2 Transferência de Revendedor Envio de de transferência de Revendedor 6. 3 Intenção de Revenda 7

Atalho de teclado CTRL + P

Manutenção Básica de Computadores João Paulo F. Guimarães

Proc. de melhoria contínua, 6 Sigma Prof. André Jun Nishizawa Capítulo 6

TDD depois do mainstream. E agora?

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Aula 08 Relacionamento entre Objetos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

EXPERIÊNCIA 6 CIRCUITOS CODIFICADORES E DECODIFICADORES

Análise de Ponto de Função APF. Aula 02

CATÁLOGO DE APLICAÇÕES Tag xped e nitemped no XML de Faturamento

2ª. Competição Tecnológica (Outubro/2010)

2. EXERCÍCIOS PROPOSTOS SOBRE V.A. E DISTRIB.PROBAB.

ISO/IEC Processo de ciclo de vida

Universidade Regional de Blumenau

Como criar menus para as suas planilhas

Avaliação de Processos de Software Utilizando a Norma ISO/IEC Autor : Anisio Iahn Orientador : Everaldo Artur Grahl

Sistema Rodoviário Tabajara

Transcrição:

TEST DRIVEN DEVELOPMENT Prof. Bruno Henrique Pachulski

TDD O Test-Driven Development (Desenvolvimento Guiado por Testes) é uma técnica que orienta o desenvolvimento de software, guiando o praticante a escrever programas seguindo um ciclo de três etapas. 1. Primeiro é desenvolvido um caso de teste para a próxima funcionalidade que se deseja desenvolver. Esta etapa é conhecida por vermelho (red), pois está definido apenas o caso de teste que falha. 2. Implementar o código para que o teste passe é o objetivo da segunda etapa, constituindo então a etapa verde (green). 3. O objetivo da última etapa é propor melhorias no código recém desenvolvido (refatoração), ato que não altera a funcionalidade. O ciclo se inicia novamente por uma nova funcionalidade e assim sucessivamente (2002, Beck).

EXEMPLO DA APLICAÇÃO DO FLUXO 1. Escreva um caso de teste que exercite uma funcionalidade no software que ainda não existe. 2. (Vermelho) Execute o conjunto de casos de teste. Se o teste for executado com sucesso, volte ao item 1. Se o teste falhar, vá ao item 3. 3. (Verde) Implemente o código necessário para que o caso de teste recém escrito seja executado com sucesso. 4. (Refatoração) Melhore (Refatore) o código escrito até aqui, para que seja o mais simples possível. 5. Execute o conjunto de testes novamente. Se o conjunto falhar, faça as correções necessárias (item 4). Se funcionar, volte ao início do ciclo novamente até que as funcionalidades a serem implementadas sejam esgotadas.

VAMOS PRATICAR? Exemplo #01

EXEMPLO #01 O participante deverá implementar um filtro de faturas. Uma fatura contém um código, um valor, uma data e pertence a um cliente. Um cliente tem um nome, data de inclusão e um estado. O filtro deverá então, dado uma lista de faturas, remover as que se encaixam nos critérios citados: 1. Se o valor da fatura for menor que 2000. 2. Se o valor da fatura estiver entre 2000 e 2500 e a data for menor ou igual a de um mês atrás. 3. Se o valor da fatura estiver entre 2500 e 3000 e a data de inclusão do cliente for menor ou igual a 2 meses atrás. 4. Se o cliente estiver com o estado de "INATIVO'.

(RED) O PARTICIPANTE DEVERÁ IMPLEMENTAR UM FILTRO DE FATURAS.

(GREEN) O PARTICIPANTE DEVERÁ IMPLEMENTAR UM FILTRO DE FATURAS.

(RED) O PARTICIPANTE DEVERÁ IMPLEMENTAR UM FILTRO DE FATURAS.

(GREEN) O PARTICIPANTE DEVERÁ IMPLEMENTAR UM FILTRO DE FATURAS UMA FATURA CONTÉM UM CÓDIGO, UM VALOR, UMA DATA E PERTENCE A UM CLIENTE. UM CLIENTE TEM UM NOME, DATA DE INCLUSÃO E UM ESTADO.

(RED) O FILTRO DEVERÁ ENTÃO, DADO UMA LISTA DE FATURAS, REMOVER AS QUE SE ENCAIXAM NOS CRITÉRIOS.

(GREEN) O FILTRO DEVERÁ ENTÃO, DADO UMA LISTA DE FATURAS, REMOVER AS QUE SE ENCAIXAM NOS CRITÉRIOS.

(RED) FILTRO #01: SE O VALOR DA FATURA FOR MENOR QUE 2000.

(GREEN) FILTRO #01: SE O VALOR DA FATURA FOR MENOR QUE 2000.

(RED) FILTRO #02: SE O VALOR DA FATURA ESTIVER ENTRE 2000 E 2500 E A DATA FOR MENOR OU IGUAL A DE UM MÊS ATRÁS.

(GREEN) FILTRO #02: SE O VALOR DA FATURA ESTIVER ENTRE 2000 E 2500 E A DATA FOR MENOR OU IGUAL A DE UM MÊS ATRÁS.

(REFACTOR) FILTRO #02: SE O VALOR DA FATURA ESTIVER ENTRE 2000 E 2500 E A DATA FOR MENOR OU IGUAL A DE UM MÊS ATRÁS.

(RED) FILTRO #02: SE O VALOR DA FATURA ESTIVER ENTRE 2000 E 2500 E A DATA FOR MENOR OU IGUAL A DE UM MÊS ATRÁS.

(GREEN) + (REFACTOR) FILTRO #02: SE O VALOR DA FATURA ESTIVER ENTRE 2000 E 2500 E A DATA FOR MENOR OU IGUAL A DE UM MÊS ATRÁS.

(REFACTOR) FILTRO #02: SE O VALOR DA FATURA ESTIVER ENTRE 2000 E 2500 E A DATA FOR MENOR OU IGUAL A DE UM MÊS ATRÁS.

(RED) FILTRO #03: SE O VALOR DA FATURA ESTIVER ENTRE 2500 E 3000 E A DATA DE INCLUSÃO DO CLIENTE FOR MENOR OU IGUAL A 2 MESES ATRÁS.

(RED) FILTRO #03: SE O VALOR DA FATURA ESTIVER ENTRE 2500 E 3000 E A DATA DE INCLUSÃO DO CLIENTE FOR MENOR OU IGUAL A 2 MESES ATRÁS.

(REFACTOR) (RED) FILTRO #03: SE O VALOR DA FATURA ESTIVER ENTRE 2500 E 3000 E A DATA DE INCLUSÃO DO CLIENTE FOR MENOR OU IGUAL A 2 MESES ATRÁS. De para &&

(GREEN) FILTRO #03: SE O VALOR DA FATURA ESTIVER ENTRE 2500 E 3000 E A DATA DE INCLUSÃO DO CLIENTE FOR MENOR OU IGUAL A 2 MESES ATRÁS.

(RED) FILTRO #04: SE O CLIENTE ESTIVER COM O ESTADO DE INATIVO.

(GREEN) FILTRO #04: SE O CLIENTE ESTIVER COM O ESTADO DE INATIVO.