Em Direção a um Ambiente de

Desenvolvimento de Software
Orientado por Comportamento
MPROF – MAIO/2015
ALVARO MAGNUM BARBOSA NETO
ORIENTADOR: DR. VINÍCIUS CARDOSO GARCIA

AGENDA

DA CRIAÇÃO DO BDDPM À SUA AVALIAÇÃO

1. INTRODUÇÃO

2. O PROBLEMA

3. PROPOSTA

Motivação, Justificativa e
Contexto.

Caracterização do Problema

Visão Geral da Proposta

4. FERRAMENTAL

5. STAKEHOLDERS

Ferramentas Utilizadas

Envolvidos no Projeto

6. BDDPM:
CRIAÇÃO
Desenvolvimento do Plugin

7. BDDPM NA
PRÁTICA

8. BDDPM:
AVALIAÇÃO

Apresentando a Ferramenta

Aplicando o Goal-Question-Metric

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

9. CONSIDERAÇÕES FINAIS
Dificuldades Encontradas, Trabalhos Futuros
e Conclusão

2

INTRODUÇÃO
MOTIVAÇÃO, JUSTIFICATIVA E CONTEXTO

INTRODUÇÃO

MOTIVAÇÃO, JUSTIFICATIVA E CONTEXTO

É CADA VEZ MAIOR O NÚMERO
de empresas que estão aderindo à
metodologias e processos ágeis no
desenvolvimento de software.

MUITAS DELAS ESTÃO ENFRENTANDO
os mesmos problemas: falta de
previsibilidade (atrasos) e falta de
qualidade (não percebida). Problemas
que afetam a AGILIDADE.

A PRÁTICA DO BDD PERMITE
explorar, descobrir, definir e extrair o
comportamento desejado do
software usando conversas e exemplos
concretos, e depois aplicar TDD.

O BDD PODE SALVAR
o desenvolvimento ágil. As empresas que
adotam o BDD tem mais sucesso
quando se trata de agilidade.

ESSES PROBLEMAS OCORREM
Principalmente pela falta de
comunicação.

BDDPM

“Discussões importam porque
software é feito por pessoas, para
pessoas. Todos possuem uma
perspectiva única e importante”

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

Matt Wynne – Desenvolvedor líder do
Cucumber. Autor do Cucumber Book.
Cofundador do Cucumber Limited.
QCon London - 2015 - International
Software Development Conference
4

INTRODUÇÃO

MOTIVAÇÃO, JUSTIFICATIVA E CONTEXTO

QUALIDADE NÃO PERCEBIDA.
 BDD foca no desejo do cliente. Na entrega de valor
(utilidade + garantia)
 Quando o cliente obtém O QUE ELE QUER, a
qualidade é PERCEBIDA.

ENTREGA
DE
VALOR

COMPREENSÃ
O
DO
PROBLEMA

ATRASOS. PROJETOS
IMPREVISÍVEIS.
 BDD estimula contato com todos os stakeholders e,
principalmente, os clientes.
 As discussões convergem para o entendimento do problema.
 Muitos dos atrasos são causados pela falta de
entendimento do domínio trabalhado.

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

O BDD É CONSIDERADO UMA
EVOLUÇÃO DO TDD.
ENTRETANTO, A PRÁTICA
MOSTRA QUE “PARAMOS” NO
TDD.
5

INTRODUÇÃO

MOTIVAÇÃO, JUSTIFICATIVA E CONTEXTO
Busca por TDD e BDD nos Principais Buscadores da WEB (Dezembro - 2014)
1200000

1040000

1000000

1000000

800000

UMA PESQUISA
FORA DA
ACADEMIA

703000

600000

400000

200000

177000
63000

0

Google

Bing
TDD

62800

Yahoo

BDD

“Há MUITA preocupação na criação de software livre de defeitos, porém com POUCA
preocupação no COMPORTAMENTO esperado pelo cliente”
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

6

INTRODUÇÃO

MOTIVAÇÃO, JUSTIFICATIVA E CONTEXTO
Busca por TDD e BDD nos Buscadores Acadêmicos (Dezembro - 2014)
450000
400000

407000

350000
300000
250000
200000
150000
100000
50000
0

34300

11300 538

1448 62

TDD

1745 47

309

8

143

7

UMA PESQUISA
DENTRO DA
ACADEMIA

BDD

“O BDD é preterido em relação ao TDD”
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

7

INTRODUÇÃO

MOTIVAÇÃO, JUSTIFICATIVA E CONTEXTO

UMA PESQUISA EM
12 ANOS DE
EXPERIÊNCIA NO
MERCADO DE TI

“Em todo esse tempo de trabalho o BDD NUNCA foi aplicado NEM solicitado. O que faltou?”
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

8

O PROBLEMA
CARACTERIZAÇÃO DO PROBLEMA

O PROBLEMA

CARACTERIZAÇÃO DO PROBLEMA

Experiência
Profissional

BDDPM

Pesquisa e
Entrevistas

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

Questionamen
tos

10

O PROBLEMA

CARACTERIZAÇÃO DO PROBLEMA

Como permitir
o uso do BDD
por usuários
de diferentes
níveis?

Como permitir
o
acompanhame
nto real do
teste de
software?

Quais as
características
e recursos
facilitariam a
adoção do
BDD?
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

Proble
ma

Como avaliar o
sucesso e
impacto esta
ferramenta?

...

11

O PROBLEMA

CARACTERIZAÇÃO DO PROBLEMA

COMO IR
EM DIREÇÃO A UM AMBIENTE
DE DESENVOLVIMENTO DE
SOFTWARE ORIENTADO POR
COMPORTAMENTO
?
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

12

PROPOSTA
VISÃO GERAL DA PROPOSTA

PROPOSTA

VISÃO GERAL DA PROPOSTA

Recursos
para auxiliar
e
automatizar
boa parte do
processo
com BDD.

Foco em
característica
s que
facilitem a
adoção do
BDD

Avaliação
Sistemática

AMBIENTE DE DESENVOLVIMENTO ORIENTADO POR COMPORTAMENTO

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

14

PROPOSTA

VISÃO GERAL DA PROPOSTA

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

15

PROPOSTA

VISÃO GERAL DA PROPOSTA

PROBLEMA: QUAIS AS FUNCIONALIDADES DA
FERRAMENTA?
Definidas empiricamente (Experiência e Pesquisa
Bibliográfica)
+
BDDPM
Pesquisa com 54 profissionais da área.
Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

16

PROPOSTA

VISÃO GERAL DA PROPOSTA

PROBLEMA: QUAIS AS FUNCIONALIDADES DA
FERRAMENTA?
 ESCOPO: Foco na FACILIDADE DE USO, UTILIZAÇÃO
PELO CLIENTE e ACOMPANHAMENTO DE TESTES.
 ESCOPO:
Linguagens (PHP e C#) e Plataforma (Mantis
BDDPM
BT)

17

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

PROPOSTA

VISÃO GERAL DA PROPOSTA

PROBLEMA: COMO FAZER A AVALIAÇÃO?
 Escolha do método GQM (Goal-Question-Metric).
 Utilização da ferramenta em um ambiente de produção
real.
 Fazer
conjecturas para outros ambientes.
BDDPM
Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

18

FERRAMENTAL
FERRAMENTAS UTILIZADAS

FERRAMENTAL

FERRAMENTAS UTILIZADAS

PHP STORM

VISUAL STUDIO

FIREWORKS

VERTRIGO SERV

FERRAMENTAS DE
TESTES

FRAMEWORKS JS

QUESTIONÁRIOS

MANTIS BT

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

20

STAKEHOLDERS
ENVOLVIDOS NO PROJETO

STAKEHOLDERS

ENVOLVIDOS NO PROJETO

ALVARO MAGNUM
Aluno MPROF

DANIEL DE OLIVEIRA
Coordenador

JOÃO PAULO

MARCOS FERNANDO
Estagiário da

Estagiário da

Criador do BBPM

PBPrev

PBPrev

Equipe GQM

Equipe de

Equipe de

Avaliação

Avaliação

VINÍCIUS CARDOSO

PBPREV

Professor Doutor

Empresa onde o

(PBprev)

Orientador do

BDDPM foi

Equipe de

Projeto

utilizado e

Avaliação

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

avaliado.

22

BDDPM: CRIAÇÃO
DESENVOLVIMENTO DO PLUGIN

BDDPM: CRIAÇÃO

DESENVOLVIMENTO DO PLUGIN

FASE
1:
REQUISITOS
E
 Interface
ARQUITETURA

Funcionalidades

 Definidos Empiricamente
 Questionário com 54
profissionais de TI
 47 desenvolvedores /
testadores
 06 gestores de projetos de TI
 03 clientes de produtos de
software
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

24

BDDPM: CRIAÇÃO

DESENVOLVIMENTO DO PLUGIN

ARQUITETURA DO SISTEMA:
 Único Ponto de Acesso
 Aplicação de Página Única
 Remote Procedure Calls
TECNOLOGIAS:
 PHP, C#, HTML 5, CSS 3
 JQuery, AngularJS (muitos recursos
rodando no cliente)

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

25

BDDPM: CRIAÇÃO

DESENVOLVIMENTO DO PLUGIN

ARQUITETURA DE TESTES:

 Testes com TDD e BDD
 Padrão Facade

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

26

BDDPM: CRIAÇÃO

DESENVOLVIMENTO DO PLUGIN

FASE 2: DESENVOLVIMENTO
 Utilização de plugins de
terceiros
 Repositório GIT
 21 testes de comportamento
 83 testes de unidade
 64 arquivos de código
 7259 linhas de código
 669 linhas de comentário
 03 meses de desenvolvimento
 Licença GPL
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

27

BDDPM NA PRÁTICA
APRESENTANDO A FERRAMENTA

BDDPM NA PRÁTICA

APRESENTANDO A FERRAMENTA

INSTALAÇÃO
1. Download do PLUGIN
2. Extrair para a pasta de plugins do
Mantis
3. Abrir o Mantis  Tela de Plugins
4. Instalar o Plugin a partir da opção
BDDPM

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

29

BDDPM NA PRÁTICA

APRESENTANDO A FERRAMENTA

1 - CONFIGURAÇÃO
1. Caminho para executável do GIT
2. Tipo de Repositório: Local ou Online
3. Login e Senha do Usuário do
Repositório
4. Namespace do projeto
5. Caminho para os arquivos de testes de
aceitação

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

6. Caminho para os arquivos de código
de teste

30

BDDPM NA PRÁTICA

APRESENTANDO A FERRAMENTA

2 - ESCRITA DE TESTES
1. Título do Caso de Uso
2. Descrição do Caso de Uso
3. Prioridade do Caso de USO
4. Wizard para criação (montagem) do Teste

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

31

BDDPM NA PRÁTICA

APRESENTANDO A FERRAMENTA

3 - SINCRONIZAÇÃO COM O VCS
1. Envio dos arquivos para o Repositório
2. Integração com o Visual Studio

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

32

BDDPM NA PRÁTICA

APRESENTANDO A FERRAMENTA

4 - ACOMPANHAMENTO DE TESTES
1. Acompanhamento em Tempo Real
2. Sempre que um teste é executado no
VS
3. Atualização da Interface do BDDPM
4. Identificação do problema

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

33

BDDPM NA PRÁTICA

APRESENTANDO A FERRAMENTA

EM BACKGROUND:
Caso de Uso / Recurso:
Calculadora (Calculadora para
Somar 2 Números)

Feature: Calculadora para Soma
Calculadora para somar 2
números

[Binding]
class CalculadoraParaSomaSteps
{

Cenário: Soma de 2 Números

@1
Scenario: Soma de 2
números
Given Que o número A é 5
And O número B é 3
When A soma for efetuada
Then O resultado deverá ser
8

[Given(@"Que o número A é (.*)")]
public void
GivenQueONumeroAE(int p0)
{

1.
2.
3.
4.

Dado que o número A é 5
E o número B é 3
Quando a soma for efetuada
Então o resultado deverá ser
8

ALTO NÍVEL
BDDPM

GHERKIN

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

ScenarioContext.Current.Pending();
}
}

CÓDIGO C#
34

BDDPM: AVALIAÇÃO
APLICANDO O GOAL-QUESTION-METRIC

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

SSAC
(SISPROTO – Solicitações de
Alteração e Correção)
O BDDPM foi utilizado e avaliado
no projeto de desenvolvimento
deste sistema.

 Duranção do desenvolvimento: 45 dias
 Duração da avaliação: 30 dias
 Linguagem do sistema: C#
 56 testes de comportamento
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

36

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE PLANEJAMENTO

1. Estabelecimento da equipe GQM
2. Seleção do objeto de avaliação
3. Estabelecimento da equipe de
avaliação do projeto
4. Criação do plano de projeto
5. Treinamento e promoção

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

37

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE DEFINIÇÃO

1. Definição do(s) objetivo(s) da
medição
2. Revisar ou produzir modelos de
processos de software
3. Condução de entrevista GQM
4. Definição de questões/perguntas
e hipóteses
5. Revisão das questões/perguntas e
hipóteses
6. Definição das métricas
7. Revisão das métricas
8. Produção do plano GQM
9. Produção do plano de medição
10.Produção do plano de análise
11.Revisão dos planos
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

38

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE DEFINIÇÃO

 04 objetivos
 19 questões
 25 métricas
 Todos derivados da entrevista GQM
 OBJETIVO 1: Fácil de utilizar em termos de
usabilidade
 OBJETIVO 2: Permitir a aplicação do BDD de
maneira eficiente e eficaz
 OBJETIVO 3: Facilitar a adoção do BDD
 OBJETIVO 4: Permitir a escrita dos testes
pelos clientes
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

39

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE DEFINIÇÃO

 Exemplo Pergunta 01 (Relacionada a Facilidade de Uso)
 Está relacionada a 03 (três) objetivos:
 O1 - Fácil de utilizar em termos de usabilidade
 O2 - Permitir a aplicação do BDD de maneira eficiente e eficaz
 O3 - Facilitar a adoção do BDD
 Está relacionada a 07 (sete) métricas:






M01
M02
M05
M14
M15
M16
M17

-

Facilidade de Uso
Quantidade de Cliques para se Atingir o Objetivo
Complexidade de Uso
Satisfação do Cliente do Projeto
Satisfação do Gestor do Projeto
Satisfação do Desenvolvedor do Projeto
Satisfação do Testador do Projeto

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

40

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

41

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE COLETA DE DADOS

 Iniciou-se com o desenvolvimento do
SSAC.
 Feedbacks registrados de maneira
contínua.

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

42

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE ANÁLISE DE DADOS

 PASSO 1: Cada avaliador fez a
avaliação das perguntas de acordo
com as métricas estabelecidas.
 PASSO 2: Checou-se o índice de
satisfação das perguntas. (70% das
métricas)
 PASSO 3: Checou-se o índice de
satisfação dos objetivos. (70% das
perguntas)
 PASSO 4: O BDDPM foi avaliado de
acordo com o cumprimento dos
objetivos. (80% dos objetivos)
BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

43

O1: 100,00% atendido
 P01: ATENDE

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

P02: ATENDE

P06: ATENDE

P03: ATENDE

P08: ATENDE

P04: ATENDE

P09: ATENDE

P18: ATENDE

P10: ATENDE

P19: ATENDE

P12: ATENDE

P13: ATENDE

P14: ATENDE

P18: ATENDE

P19: ATENDE

FASE DE ANÁLISE DE DADOS

 Apenas as perguntas 16 e 17 não foram
atendidas pela não satisfação das métricas.
 Acessibilidade e Visibilidade do
BDDPM
 Linguagens de Programação
(Projeto) suportadas.

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

O2: 100,00% atendido
 P04: ATENDE

O3: 87,50% atendido
 P01: ATENDE

O4: 100,00% atendido
 P01: ATENDE

P02: ATENDE

P02: ATENDE

P03: ATENDE

P03: ATENDE

P04: ATENDE

P04: ATENDE

P06: ATENDE

P14: ATENDE

P08: ATENDE

P18: ATENDE

P09: ATENDE

P19: ATENDE

P10: ATENDE

P12: ATENDE

P13: ATENDE

P14: ATENDE

P15: ATENDE

P16: NÃO ATENDE

P17: NÃO ATENDE

P18: ATENDE

P19: ATENDE

44

BDDPM: AVALIAÇÃO

APLICANDO O GOAL-QUESTION-METRIC

AVALIANDO O RESULTADO

 Primeira aplicação do BDD. Bom indício para
adoção.
 Equipe de avaliação formada por profissionais de
informática (clientes)
 Equipe de avaliação sem experiência em BDD
 SSAC - Projeto Pequeno
 100% de Satisfação - Estranho
 OBJETIVO 3: Elo fraco
 Primeira avaliação com GQM
 Expectativas elevadas
 Acompanhamento da Avaliação pelo criador do
BDDPM

BDDPM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

100
%

100
%

O1: Facilidade

O2: Aplicação do
BDD

87,5
%

100%

O3: Adoção do BDD

O4: Escrita de Testes
45

CONSIDERAÇÕES
FINAIS

DIFICULDADES ENCONTRADAS, TRABALHOS FUTUROS E CONCLUSÃO

CONSIDERAÇÕES FINAIS

DIFICULDADES ENCONTRADAS

TESTES
 Somente no
Windows

BDDPM

GROUNDED
THEORY
 Ficou de Fora

PBPREV
 Não é fábrica de
Software.
 Saída da
Empresa.

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

GQM E BDD
 Falta de
Experiência

EXPECTATIVAS
 Elevadas

47

CONSIDERAÇÕES FINAIS

TRABALHOS FUTUROS

FACILIDADE

APLICAÇÃO

DE USO
 Mais assistentes em Tela
 Coleta de dados de
utilização da ferramenta

DO BDD
OBJETIVO
1

OBJETIVO
2

ADOÇÃO

DO BDD

ESCRITA

OBJETIVO
3

 Mais linguagens de
programação suportadas
 Mais plataformas de gestão
suportadas
 Divulgação da ferramenta
 Submissão de Artigos
(CBSoft, etc.)
 Suporte à SVN

BDDPM

 Adição de mais recursos
BDD
 Integração com o
Cucumber
 Execução de testes a partir da
ferramenta

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

OBJETIVO
4

DE TESTES
 Modo de inserção avançãdo
 Melhoria do Wizard
 Linguagem “Business
Writable”

48

CONSIDERAÇÕES FINAIS

CONCLUSÃO

“Um passo
promissor”
ALVARO MAGNUM

AVALIAÇÃO DO BDDPM
“O BDDPM foi utilizado com sucesso no projeto do SSAC. Seus
objetivos foram alcançados e seus resultados levam a acreditar que
o projeto é uma boa opção para adoção do BDD em pequenos
projetos de desenvolvimento de software. A ferramenta
também apresenta grande potencial de crescimento”

BDDPM

Equipe de Avaliação

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

49

FIM

Em Direção a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento