14
SpecFlow (Specification-By- Example) Criando uma “ponte” entre analistas e os desenvolvedores através de regras de negócios legíveis e de exemplos

Specflow - Criando uma ponte entre desenvolvedores

Embed Size (px)

Citation preview

Page 1: Specflow - Criando uma ponte entre desenvolvedores

SpecFlow (Specification-By-Example)

Criando uma “ponte” entre analistas e os desenvolvedores através de regras de negócios legíveis e de exemplos

Page 2: Specflow - Criando uma ponte entre desenvolvedores

SpecFlow é um framework inspirado no Cucumber , ou seja, podemos descrever cenário reais de uso de forma estruturada. Também é possível descrever nossos cenários em diversos idiomas.

Page 3: Specflow - Criando uma ponte entre desenvolvedores

O SpecFlow é um Plug-In para o Visual Studio e um framework de execução de Acceptance Teste Driver Development (ATDD)” Desenvolvimento Orientado a Testes de Aceitação” e Behavior Driven Development (BDD) “Desenvolvimento Guiado por Comportamento)”

Ele pode ser integrado com Nunit, MSTest, xUnit. Não funciona sozinho, ele precisa de uma ferramenta que faça a

interação com o browser com o *Selenium

Page 4: Specflow - Criando uma ponte entre desenvolvedores

SpecFlow tem por premissa criar uma “ponte” entre analistas e os desenvolvedores através de regras de negócios legíveis e de exemplos.

O objetivo é trabalhar de fora pra dentro, começando pela história.

A missão do SpecFlow é fornecer uma abordagem sem atrito através da especificação.

O que é SpecFlow?

Page 5: Specflow - Criando uma ponte entre desenvolvedores

O mais interessante de trabalhar com SpecFlow é a facilidade que ele tem de chamar um cenário ou outro através de frases, frases essas que são nada mais nada menos que os próprios critérios de aceite de uma estória.

O que é SpecFlow?

Page 6: Specflow - Criando uma ponte entre desenvolvedores

ENTÃO...

Por onde começar? Outside-in (fora p/dentro)

O que testar?User Story (história do usuário)

O que não testar?O resto

O que é SpecFlow?

Page 7: Specflow - Criando uma ponte entre desenvolvedores

As empresas de desenvolvimento de software sofriam para aprovar com o cliente quando um software ou mesmo uma funcionalidade estava completa e principalmente se ela estava se comportando como deveria.

Nesse ponto a abordagem de User Stories implementa os critérios de aceite (acceptance criteria ou acceptance testing) que é uma abordagem bem parecida com o nosso teste tradicional usando test cases, ou seja, são escritos testes e executados manualmente após a implementação de alguma feature.

Histórias de usuário

Page 8: Specflow - Criando uma ponte entre desenvolvedores

É aí onde serão definidos as nossas User Stories e o comportamento de nossa App. Aí que está o poder do BDD: Descrever comportamentos em uma linguagem mais alto nível e testar automaticamente para garantir que estamos desenvolvendo corretamente.Observe que isto possibilita ao desenvolvedor aumentar seu entendimento de negócio da aplicação. Além de favorecer os testes de regressão feitos posteriormente.

Histórias de usuário

Page 9: Specflow - Criando uma ponte entre desenvolvedores

Apesar das pessoas terem algum foco específico, porque estudaram mais uma determinada área, todas elas são consideras desenvolvedores dentro de um time Ágil, porque todos Desenvolvem Software, utilizando seu conhecimento.

Teste em par

Visão de Time ágil

Baseado no livro da Lisa Crispin – Agile Testing

Page 10: Specflow - Criando uma ponte entre desenvolvedores

Funcionalidade: <descrição da funcionalidade>Como um <usuário/ator>Eu quero <meta a ser alcançada>De modo que <a razão para alcançar a meta>Cenário: <descrição do teste>Dado <um estado conhecido>Quando <um determinado evento ocorre>Então <isso deve ocorrer>

Estrutura do Specflow

Funcionalidade: Formulário de Contato Eu como usuário Preciso contatar o prestador de serviço Para que seja necessário um possível retorno. Preenchimento do formulario corretamente que eu esteja no site jobmidia eu clicar no link contato e preencher o formulario o site ira informar a mensagem 'Sua mensagem

foi enviada com sucesso.'

Page 11: Specflow - Criando uma ponte entre desenvolvedores

Exemplo VISUAL STUDIO

Page 12: Specflow - Criando uma ponte entre desenvolvedores

Deu pra notar como isso pode facilitar os testes funcionais em uma aplicação maior? É uma vantagem e ganho de tempo enorme. Somando isso ao utilizar com um servidor de integração contínua (TFS ou JENKINS), sua aplicação está bem mais testável, além de mapear pontos mais sensíveis a quebra do sistema.

Page 13: Specflow - Criando uma ponte entre desenvolvedores

DÚVIDAS

?

Page 14: Specflow - Criando uma ponte entre desenvolvedores

Obrigado!

Contatos:

[email protected]: @doqconsultingSkype:faraujo52

Cod GitHub: https://github.com/nilknarf52/SpecFlowSite SpecFlow : http://www.specflow.org/BDD: http://pt.slideshare.net/CintiaArmesto/bdd-com-spec-flowLisa Crispin: http://lisacrispin.com/