BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR

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

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

Requisitos testáveis com behaviour-driven development

BDD e eu com isso? Glaucimar Aguiar. Outubro, 2016

Prof. Luiz A. Nascimento

Processos de software

TEST DRIVEN DEVELOPMENT. Prof. Bruno Henrique Pachulski

Desenvolvimento de Projetos

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

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

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

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

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

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno

Análise e Projeto Orientado a Objetos

SUnit Referências. SUnit. Jefferson Serafim Ascaneo, Suzana de Siqueira Santos

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

EMPRESA DE AGRONEGÓCIOS TEM AUMENTO EM SEUS RESULTADOS E NA COLABORAÇÃO DOS TIMES 2016

XP EXTREME PROGRAMMING. AGO106 - Gestão

Modernização de Legados

Programação Extrema na Prática

Prof. Luiz A. Nascimento. As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software.

Model Driven Development (MDD)

Métodos ágeis no Brasil: estado da prática em times e organizações

Aula 4 Engenharia de Requisitos

Sistema Mobi-Lar Engenharia de Software

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

Programação Orientada a Objetos

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

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

O impacto de práticas de teste na velocidade de DevOps. Renato Quedas VP Solutions Marketing

Engenharia de Software II

Reuso de Software Aula Maio 2012

Universidade Regional de Blumenau

Processos Ágeis de Desenvolvimento de Software

Engenharia de Software DESENVOLVIMENTO ÁGIL

Jogos de Tabuleiro para Times Ágeis: o exemplo do BDD Warriors. Ana Carolina Hermann

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

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

Behavior Driven Development (BDD): Conceitos, ferramentas e estudo de caso

O PAPEL DO ANALISTA DE NEGÓCIOS NA AGILIDADE. Ainda precisamos de Analistas de Negócios?

ENGENHARIA DE SOFTWARE

Engenharia de Software

ENGENHARIA DE SOFTWARE

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Processos de Software

Engenharia de Software

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

Engenharia de Software II

Informática I. Aula Aula 21-29/11/06 1

Estratégias de Escrita de Testes Automatizados

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

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

2 Estado da arte 2.1. Desenvolvimento dirigido por comportamentos

Desenvolvimento ágil de software

Padrões de Testes Automatizados. Exame de Defesa de Mestrado Paulo Cheque Bernardo Orientador: Fabio Kon DCC IME/USP 4 de julho de 2011

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

ENTENDENDO E APLICANDO ESPECIFICAÇÃO POR EXEMPLOS LUIZA NUNES & PEDRO SILVA AGILE BRASIL - NOVEMBRO 2016

A Evolução de XP segundo Kent Beck Parte 1

Análise de Requisitos

DESENVOLVIMENTO BASEADO EM COMPONENTES

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Cooperativa de Desenvolvimento Ágil de Software

Cultura DevOps: desenvolvimento e aplicação na prática

Engenharia de Software. Projeto de Arquitetura

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

Princípios da Engenharia de Software aula 03

Engenharia de Software. Prof. Raquel Silveira

Introdução a Métodos Ágeis. Curso de Verão IME/USP

Unidade VI. Inspeção de software

Engenharia de Software

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

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

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

UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA

Curso online de. Formação em Front-End. Plano de Estudo

ENGENHARIA DE REQUISITOS

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

MODELOS DE PROCESSOS (PARTE 2)

05/09/2013. Ciclo de vida de um Sistema de Informação

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

Sistemas de Informação na Produção

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

Professor Emiliano S. Monteiro

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

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

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Desenvolvimento Java com ferramentas IBM

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

Engenharia da Computação. Tópicos Avançados em Engenharia de Software. Aula 2

QUAIS SÃO AS FASES DE IMPLEMENTAÇÃO DE UM SISTEMA DE GESTÃO INTEGRADA?

METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Capítulo 2 - Processos de Software

Aula 1.7 Introdução a APOO e UML

FATORES E MÉTRICAS DE QUALIDADE

Transcrição:

BEHAVIOR DRIVEN DEVELOPMENT BRUNO ROLIM MANSUR

AGENDA Motivação Processo Tradicional Processo BDD Fazer certo o certo Ciclo BDD Ferramentas Exemplo - Vídeo Rspec Vantagens e Desvantagens Referências

MOTIVAÇÃO Em 2012, a Força Aérea EUA decidiu abandonar um grande projeto de software que já havia custado mais de US $ 1 bilhão de dólares. O Sistema de Apoio a combate expedicionário foi projetado para modernizar e simplificar o gerenciamento da cadeia de abastecimento, a fim de economizar bilhões de dólares e conhecer novos requisitos legislativos. A edição do Relatório anual CHAOS do Standish Group 2011 encontrou que 42% dos projetos foram entregues com atraso, excedeu o orçamento, ou não conseguiram entregar todas as funcionalidades requeridas, e 21% dos projetos foram totalmente cancelados.

MOTIVAÇÃO E se não tivesse que ser dessa maneira? E se pudéssemos escrever software de uma forma que nos deixaria descobrir e concentrar os nossos esforços no que realmente importa? E se pudéssemos objetivamente aprender quais recursos realmente vai beneficiar a organização e a forma mais custo-efetiva para implementá-las? E se pudéssemos ver além do que o usuário solicita e construir o que o usuário realmente precisa?

MOTIVAÇÃO BDD ajuda as equipes a concentrar os seus esforços na identificação, compreensão e construção de recursos valiosos que são importantes para as empresas e assegura que estes recursos são bem concebidos e bem implementados. Como?

Processo tradicional

Processo tradicional Existem muitas oportunidades para alguma informação se perder na tradução, ser mal compreendida, ou apenas ser ignorada. As chances são de que o novo módulo em si não pode fazer exatamente o que era necessário e que a documentação não irá refletir os requisitos iniciais que o Usuário deu para o analista.

Processo BDD

Processo BDD Em comparação com o cenário anterior a equipe faz uso de conversas e exemplos para reduzir a quantidade de informação perdida na tradução. Cada estágio além da etapa 2 começa com as especificações de comportamento, que são baseados em exemplos concretos fornecidos pelo usuário. Desta forma, uma grande parte da ambiguidade em traduzir os requisitos iniciais do cliente em código, relatórios e documentação é removido.

Fazer certo o certo As maiores causas de falha em projetos de Software: Não desenvolver o software certo; Ou não desenvolver certo o software;

Evolução do TDD BDD foi originalmente inventado por Dan North no início e meados da década de 2000 como uma maneira mais fácil de ensinar e praticar Test- Driven Development (TDD). TDD, inventado por Kent Beck nos primeiros dias de Agile, é uma técnica extremamente eficaz que utiliza testes de unidade para especificar, projetar e verificar o código do aplicativo.

Evolução do TDD Apesar de suas vantagens, muitas equipes ainda têm dificuldade em adotar e utilizar TDD efetivamente. Os desenvolvedores muitas vezes têm dificuldade em saber por onde começar ou quais testes eles devem escrever a seguir. Às vezes TDD pode levar desenvolvedores para tornarem-se demasiado focados no detalhe, perdendo o quadro mais amplo dos objetivos de negócio que supostamente deveriam implementar. Algumas equipes também acham que o grande número de testes de unidade podem se tornar difícil de manter como a evolução do projeto.

Evolução do TDD O objetivo de criar o BDD é utilizar o conceito de linguagem ubíqua (DDD) para que analistas de negócios possam definir os requisitos de forma inequívoca, e que ests requisitos possam ser facilmente transformados em testes de aceitação automatizados. Exemplo: Dado um cliente tem uma conta corrente Quando o cliente transfere fundos a partir desta conta para uma conta no exterior Em seguida, os fundos devem ser depositados na conta no exterior E a taxa de transação deve ser deduzido da conta corrente Legenda: Vermelho: Descrição do Cenário Azul: Comportamento

Ferramentas Existem várias ferramentas que implementam BDD no nível da unidade de código. Eis algumas das principais:

Vantagens e Desvantagens Vantagens Desvantagens Reduz desperdício; Reduz o custo; Alterações mais fáceis e mais seguras; Entregas mais ágeis; Requer alto nível de engajamento e colaboração da equipe de negócio envolvida; BDD trabalha melhor em um contexto Ágil ou Interativo;

RSpec (Vídeo Youtube)

REFERÊNCIAS RSpec Tutorial (Level 1) https://www.youtube.com/watch?v=dj19o9klk6w Testing with RSpec https://www.codeschool.com/courses/testing-with-rspec Desenvolvimento orientado por comportamento (BDD) - Artigo Java Magazine 91 http://www.devmedia.com.br/desenvolvimento-orientado-por-comportamento-bdd-artigo-java-magazine-91/21127 Behavior Driven Development https://pt.wikipedia.org/wiki/behavior_driven_development Outside in software development https://en.wikipedia.org/wiki/outside%e2%80%93in_software_development BDD in Action: Behavior-Driven Development for the whole software lifecycle ISBN-10: 1-61729-165-X Dan North, Introducing BDD, http://dannorth.net/introducing-bdd/. 10 Kent Beck, Test-Driven Development: By Example (Addison-Wesley Professional, 2002).