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

Documentos relacionados
Desenvolvimento de Software

Implementação de um serviço de correio eletrônico na Intranet do Pólo de Touros utilizando o ambiente SQUIRELMAIL e POSTFIX em um Servidor Linux

empowering talents UM PRODUTO:

CASOS DE TESTE PALESTRANTE: MARCIA SILVA

Métricas de Software Importância e Aplicação

PORTFÓLIO DE SERVIÇOS

DOCUMENTO DE REQUISITO DE SOFTWARE

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

TERMO DE REFERÊNCIA Nº 1225 PARA CONTRATAÇÃO DE PESSOA FÍSICA CONSULTOR POR PRODUTO

Fundamentos de Teste de Software

Modelagem De Sistemas

ENGENHARIA DE SOFTWARE

Análise de Requisitos

Metodologias de PETI. Prof. Marlon Marcon

Sistemas de Informação

PRESIDÊNCIA DA REPÚBLICA SECRETARIA DE ASSUNTOS ESTRATÉGICOS PROGRAMA DAS NAÇÕES UNIDAS PARA O DESENVOLVIMENTO

Modelo de Desenvolvimento de Sprint

MINISTÉRIO DA EDUCAÇÃO FUNDO NACIONAL DE DESENVOLVIMENTO DA EDUCAÇÃO DIRETORIA DE ASSISTÊNCIA A PROGRAMAS ESPECIAIS

Engenharia de Software II

Plant Design.com

Público Alvo: Critérios de admissão para o curso: Investimento:

Insight for a better planet SOLUÇÕES EM PLANEJAMENTO, AGENDAMENTO E OTIMIZAÇÃO FLORESTAL

TERMO DE REFERÊNCIA PARA CONTRATAÇÃO DE PESSOA FÍSICA

Desenvolvimento de um Conjunto de Processos de Governança de Tecnologia de Informação para uma Instituição de Ensino Superior

Panorama da Inovação no Brasil. Hugo Ferreira Braga Tadeu 2014

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Os salários de 15 áreas de TI nas cinco regiões do Brasil

Mercado. Franchising. Principais clientes e serviços. Franqueado. - Perfil. - Vantagens. - Treinamento. Parcerias. Taxa de Franquia e Royalties

Ementário EMBA em Gestão de Projetos

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

O evento não fará uso do vídeo (webcam), somente slides e áudio. Se necessário, ajuste o idioma da sala na barra de ferramentas superior

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

Arquitecturas de Software Enunciado de Projecto

MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇAO, CIÊNCIA E TECNOLOGIA DE RONDÔNIA COMISSÃO DE ELABORAÇÃO DO PLANO ESTRATÉGICO DE TI

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

TERMO DE REFERÊNCIA PARA CONTRATAÇÃO DE CONSULTORIA ESPECIALIZADA (PESSOA FÍSICA) Contrato por Produto Nacional

CATÁLOGO DE APLICAÇÕES Rateio CC Contas a Pagar

POLÍTICA DE INVESTIMENTO PEIXE PILOTO PARA CLUBES DE INVESTIMENTOS Vitória, 26 de agosto de 2009.

Especialização em Arquitetura e Engenharia de Software

Análise e Projeto Orientado a Objetos. Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

Contrata Consultor na modalidade Produto

ANEXO VII PROCESSO E METODOLOGIA DE DESENVOLVIMENTO PROCERGS MDP. Processo de Desenvolvimento de Sistemas

Métricas de Software

PROCESSO DE SELEÇÃO DE DESENVOLVIMENTO DE PROJETOS DE EMPREENDEDORISMO DE IMPACTO EDITAL I LIBRIA

AGENDA MARÇO E ABRIL 2016 ESCRITÓRIO REGIONAL DE PIRACICABA

APENDICE A INSTRUMENTO DE COLETA DE DADOS PESQUISA SOBRE INOVAÇÕES GERENCIAIS EM INSTITUIÇÕES HOSPITALARES PRIVADAS DE SALVADOR

O que é um banco de dados? Banco de Dados. Banco de dados

Tarifação e Administração de Ligações

TUTORIAIS. Framework SCRUM. Rafael Buck Eduardo Franceschini. MSc., PMP, CSM MBA

Curso: Desenvolvimento Wordpress

Sistema de Gestão Avícola SYSAVES. O sistema SYSAVES controla todo o processo, desde a saída dos

Comunicação para empresas, franquias, empreendedores e startups. Seu negócio em evidência na mídia para seus clientes e público interno

DECRETO nº 2.303/2012

Agenda. O que é Testar? Por que testar? Quando testar? Processo de teste Níveis de teste Tipos de teste Classificação dos testes.

Sustentabilidade no Setor Público, A3P e Planos de Logística Sustentável

Audiência Pública Comissão Especial Projeto de Lei 6.789, de Agosto de 2015

Treinamos. CSD: Certified Scrum Developer Program

Curso: Gestão de Adwords / Links Patrocinados

Título do Case: Categoria: Temática: Resumo: Introdução:

Política de Responsabilidade Socioambiental Sulcredi São Miguel

Deswik.Sched. Sequenciamento por Gráfico de Gantt

Negociação Estratégica e Gestão de Conflitos Porque Educação Executiva Insper Cursos de Curta e Média Duração Educação Executiva

Pós-Graduação em Gestão Empresarial e Marketing (sábado)

Gestão da Qualidade. Aula 5. Prof. Pablo

MPSP Projeto ALM/Scrum. Diretoria de Sistemas de Informação

Proposta Wizard Nova Veneza

Gestão Eficiente do Portfólio de Projetos. Eduardo Montes, PMP

CURSO DE FORMAÇÃO PROFISSIONAL EM MACEIÓ-AL

Universidade Estadual de Ponta Grossa PRÓ-REITORIA DE GRADUAÇÃO DIVISÃO DE ENSINO

CURSO: MBA EM DESENVOLVIMENTO DE PESSOAS COM ÊNFASE EM COMPETÊNCIAS

Especificação e Automação Colaborativas de Testes utilizando a técnica BDD

Projeto de Desenvolvimento de Software

Título do Case: O impacto do layout na agilidade dos processos

LUIZ CARLOS FRANKLIN DA SILVA

Escritório de Processos. Palestrante: Marcelo Breyer Amorim Gerente do Centro de Serviços Compartilhados

TERMO DE REFERÊNCIA - UGL/PDRS: 05/2014 CONTRATAÇÃO DE CONSULTORIA PARA ELABORAÇÃO DO PROJETO DE DESENVOLVIMENTO DE WEB PORTAL PARA RESERVA LEGAL

DIMENSÕES DE PESQUISA EM ENGENHARIA DE SOFTWARE

Tribunal Superior do Trabalho

Política de Responsabilidade Socioambiental da PREVI

Público Alvo: Investimento: Disciplinas:

PRINCIPAIS UNIDADES PARCEIRAS :

Reduza seus custos e amplie a sua competitividade

Adoção de Práticas Ágeis no Desenvolvimento de Soluções de Business Intelligence. Trilha da Indústria

AULA 3 ETAPAS PARA ELABORAÇÃO DE PROJETOS

Compreender os estágios que envolvem o projeto de produto e serviços e os tipos de processos de produção e a aplicabilidade de cada um.

Os 7 Melhores Modelos de COACHING em GRUPO

MBA em Gerenciamento de Projetos

PROGRAMA DE COACHING & GERAÇÃO Z GESTÃO DE CARREIRA

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

Fundamentos em Teste de Software. Vinicius V. Pessoni

ágeis para projetos desenvolvidos por fábrica de software

TERMOS DE REFERÊNCIA. Consultor/a Local Elaboração Guia Coletivo Empreendedorismo

Vídeo 24/9/2012. Curso: Logística. Organizar Processos. Organizações e métodos Processos e planejamento de benchmarking. Profa. Ms.

Análise de Negócios com Agilidade Uma Combinação de Sucesso! por Luiz Claudio Parzianello

User. Stories. Por que e como escrever requisitos de forma ágil? RAFAEL HELM e DANIEL WILDT. Wildtech start wild, keep wild

MODELOS DE PROCESSO TÉCNICAS INTELIGENTES QUE APOIAM A CONSTRUÇÃO DE UM SOFTWARE

mercado de cartões de crédito, envolvendo um histórico desde o surgimento do produto, os agentes envolvidos e a forma de operação do produto, a

Transcrição:

Fatto Consultoria Inteligência para o mercado de TI Visão prática do BDD (Behavior Driven Design) para agilizar o processo de desenvolvimento 1 Palestrante: Marcelo Nascimento Costa, MSc marcelo.costa@fattocs.com.br FATTO Consultoria e Sistemas - www.fattocs.com.br FATTO Consultoria e Siste

2 Minibio Consultor na área de qualidade de software, automação de testes, ALM/DevOps e gerência de projetos. Professor de graduação e pósgraduação na Universidade Veiga de Almeida. Ministra palestras e webinars em assuntos relativos a automação do desenvolvimento, testes e no aceite de software. Experiência de participação em projetos de consultoria, desenvolvimento de software e implantação de processos em empresas como a Accenture, Ipiranga, Globosat, Oi Móvel e Oi Fixa, Banco BBM, Telefonica- SP, Vivo, Banco Modal e Brasil Telecom. Atuou como empreendedor com diversos treinamentos ministrados, consultoria e projetos desenvolvidos para as plataformas Web e Móvel em grandes empresas, como Unigranrio, Laboratório Servier, Dataprev, Petrobrás e Marinha. Atuou como líder de projetos e administrador de banco de dados no startup de diversas empresas de telecomunicações, como a Telemar e a Embratel e na implantação da arquitetura do Sistema de Pagamento Brasileiro (SPB) no Banco Central.

Agenda Definição de BDD Como funciona o BDD Vantagens Dúvidas comuns Diferenças entre BDD e TDD Boas práticas Specflow como ferramenta de BDD Exemplo do Specflow FATTO Consultoria e Sistemas - www.fattocs.com.br 3

BDD - Definição Behavior-driven development é sobre implementar uma aplicação através da descrição de seu comportamento pela perspectiva de seus stakeholders -- Dan North

Foco no valor Criar software que importa! Tem valor de negócio tangível Entregue incrementalmente Fácil de manter e gerenciar Fácil de entender e comunicar

6 Em outras palavras, o que é BDD? É um conjunto de práticas ágeis para agilizar o desenvolvimento de software através da integração das User Stories definidas para o software com a automação dos testes funcionais do software desenvolvido O BDD é uma evolução feita a partir da implantação de técnicas TDD (Test Driven Development) O BDD não é uma metodologia de desenvolvimento de software, porém incorpora e melhora as ideias de muitas dessas metodologias

7 Funcionamento do BDD Definição dos Testes funcionais automatizados com base nos Exemplos Necessidade de implantação de uma funcionalidade do backlog Levantamento dos exemplos concretos como resultado esperado das User Stories Levantamento das User Stories com os Usuários e partes interessadas Descrição dos cenários de comportamento (features)

8 Levantamento das User Stories

Exemplo de uma implementação BDD (Notação Gherkin) Scenario: Transferir dinheiro para uma conta poupança GIVEN a conta de numero <numero> com o limite <limite> e saldo <saldo> WHEN o dono realiza o deposito no valor de <deposito> na conta AND o dono realiza o primeiro saque no valor de <primeiro_saque> na conta AND o dono realiza o segundo saque no valor de <segundo_saque> na conta THEN o dono tem o saldo no valor de <saldo_esperado> na conta Exemplos: numero limite saldo deposito primeiro_saque segundo_saque saldo_esperado 111 1000 0 100 10 10 80 222 1000 0 200 10 10 180 FATTO Consultoria e Sistemas - www.fattocs.com.br 9

10 Vantagens e Benefícios do BDD BDD oferece um nível de entendimento comum entre especialistas de domínio, product owners, desenvolvedores e testadores. Agilizar o processo diminuindo o gap entre os requisitos/user Stories e a automação dos testes de aceitação do usuário A notação simples utilizada pelo BDD Given-Then-When para os testes de aceitação são próximas do entendimento dos envolvidos no projeto Garante a regressão das funcionalidades após a re-execução de todos os testes de aceitação. Acelera a criação dos testes com a geração automática dos passos do código de testes a partir dos cenários descritos

Dúvidas comuns sobre BDD A grande confusão nos clientes no mercado se refere a mistura dos conceitos entre TDD e BDD. Perguntas comuns no mercado? Eu fiz um TDD com uma cobertura de 90%, eu ainda preciso do BDD? O TDD não testa todo o código? Eu tenho User Stories bem detalhadas com uma quantidade expressiva de exemplos, faz-se necessário o TDD? Onde começa o TDD e onde termina o BDD? Enquanto eu faço o TDD, eu não posso executar tarefas de BDD? Eu comecei a desenvolver as features do BDD, depois comecei a desenvolver o código de testes do TDD, então tenho que parar as tarefas do BDD? FATTO Consultoria e Sistemas - www.fattocs.com.br 11

12 Interação entre BDD x TDD testes caixa-preta testes caixa-branca

13 Diferenças fundamentais do BDD x TDD TDD - Exercita o código vinculado a cada método do objeto. 10 Passou pelo tratamento de Exceções? 0 BDD - valida se o resultado apresentado pela UI está de acordo com o comportamento definidos nos exemplos na User Story. 10 Popup com a mensagem Erro: Divisão inválida? 0

14 Por onde eu começo? Implementar a definição de User Stories como detalhamento de requisitos Envolver o usuário na definição dos exemplos concretos para os testes Pontuar a User Story contemplando a definição dos testes de aceitação para servir como base para a execução dos testes no BDD Implementar uma arquitetura com a ferramenta de BDD (Specflow/Cucumber/Jbehave) executando em diversas plataformas Pontuar as tarefas de manutenção para contemplar a manutenção dos cenários implementados na ferramenta de BDD

Boas práticas para implementação do BDD FATTO Consultoria e Sistemas - www.fattocs.com.br 15 Envolvimento Testador nas User Stories Coach Arquitetura Ferramenta BDD User Stories seguindo padrão INVEST Entregar o BDD na Sprint

O que é Specflow? É uma ferramenta Opensource integrada ao ecossistema.net que gera e executa testes definidos a partir do padrão Given-When- Then É totalmente integrado ao ambiente Visual Studio contemplando templates de projetos que podem ser instanciados no próprio Visual Studio. Suporta frameworks de testes como MSTest e Nunit (2 e 3) Utiliza como notação de execução de testes o WebDriver do Selenium, largamente conhecido no mercado. Após a configuração correta, consegue executar multibrowsers (Chrome, IE e Firefox) FATTO Consultoria e Sistemas - www.fattocs.com.br 16

Dinâmica do SpecFlow Orientação de Negócios Orientação Técnica Orientação de Negócios Definição das Features Definição dos Scenarios Definição dos Steps Código de implantação dos Steps Biblioteca de Automação de IU Execução dos Scenarios Analisar os defeitos gerados pela execução dos Scenarios Corrigir o código de produção para resolução de defeitos FATTO Consultoria e Sistemas - www.fattocs.com.br Orientação Técnica 17

Arquitetura.Net de Execução com Continuous Delivery FATTO Consultoria e Sistemas - www.fattocs.com.br 18 1.Builds TFS Build 2.Runs Pacote Arquitetura SpecFlow Package 5. Outputs NUnit Package Selenium Package Teste Executável 3. Drives 4. Drives 5. Drives

19 Exemplo SpecFLow Cenário Válido

20 Exemplo SpecFLow Cenário Inválido

21 Código Exemplo

22 Verificação do Resultado

23 Conclusão O BDD é uma realidade no mercado e possui um ferramental forte A execução dos testes automatizados na visão funcional através do BDD e da visão técnica através do TDD fornecem um potencial para melhorar a qualidade do software entregue seguindo as principais premissas ágeis. Tem que haver um investimento em tempo e recursos devido a curva de aprendizado para os primeiros projetos utilizando BDD. O ideal é ter papeis diferentes para a criação dos testes TDD e outro para criação dos testes BDD