You are on page 1of 50

Em Direo a um Ambiente de

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

AGENDA

DA CRIAO DO BDDPM SUA AVALIAO

1. INTRODUO

2. O PROBLEMA

3. PROPOSTA

Motivao, Justificativa e
Contexto.

Caracterizao do Problema

Viso Geral da Proposta

4. FERRAMENTAL

5. STAKEHOLDERS

Ferramentas Utilizadas

Envolvidos no Projeto

6. BDDPM:
CRIAO
Desenvolvimento do Plugin

7. BDDPM NA
PRTICA

8. BDDPM:
AVALIAO

Apresentando a Ferramenta

Aplicando o Goal-Question-Metric

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

9. CONSIDERAES FINAIS
Dificuldades Encontradas, Trabalhos Futuros
e Concluso

INTRODUO
MOTIVAO, JUSTIFICATIVA E CONTEXTO

INTRODUO

MOTIVAO, JUSTIFICATIVA E CONTEXTO

CADA VEZ MAIOR O NMERO


de empresas que esto aderindo
metodologias e processos geis no
desenvolvimento de software.

MUITAS DELAS ESTO ENFRENTANDO


os mesmos problemas: falta de
previsibilidade (atrasos) e falta de
qualidade (no percebida). Problemas
que afetam a AGILIDADE.

A PRTICA 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
comunicao.

BDDPM

Discusses importam porque


software feito por pessoas, para
pessoas. Todos possuem uma
perspectiva nica e importante

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

Matt Wynne Desenvolvedor lder do


Cucumber. Autor do Cucumber Book.
Cofundador do Cucumber Limited.
QCon London - 2015 - International
Software Development Conference
4

INTRODUO

MOTIVAO, JUSTIFICATIVA E CONTEXTO

QUALIDADE NO PERCEBIDA.
BDD foca no desejo do cliente. Na entrega de valor
(utilidade + garantia)
Quando o cliente obtm O QUE ELE QUER, a
qualidade PERCEBIDA.

ENTREGA
DE
VALOR

COMPREENS
O
DO
PROBLEMA

ATRASOS. PROJETOS
IMPREVISVEIS.
BDD estimula contato com todos os stakeholders e,
principalmente, os clientes.
As discusses convergem para o entendimento do problema.
Muitos dos atrasos so causados pela falta de
entendimento do domnio trabalhado.

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

O BDD CONSIDERADO UMA


EVOLUO DO TDD.
ENTRETANTO, A PRTICA
MOSTRA QUE PARAMOS NO
TDD.
5

INTRODUO

MOTIVAO, 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

Google

Bing
TDD

62800

Yahoo

BDD

H MUITA preocupao na criao de software livre de defeitos, porm com POUCA


preocupao no COMPORTAMENTO esperado pelo cliente
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

INTRODUO

MOTIVAO, JUSTIFICATIVA E CONTEXTO


Busca por TDD e BDD nos Buscadores Acadmicos (Dezembro - 2014)
450000
400000

407000

350000
300000
250000
200000
150000
100000
50000
0

34300

11300 538

1448 62

TDD

1745 47

309

143

UMA PESQUISA
DENTRO DA
ACADEMIA

BDD

O BDD preterido em relao ao TDD


BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

INTRODUO

MOTIVAO, JUSTIFICATIVA E CONTEXTO

UMA PESQUISA EM
12 ANOS DE
EXPERINCIA NO
MERCADO DE TI

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

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

O PROBLEMA
CARACTERIZAO DO PROBLEMA

O PROBLEMA

CARACTERIZAO DO PROBLEMA

Experincia
Profissional

BDDPM

Pesquisa e
Entrevistas

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

Questionamen
tos

10

O PROBLEMA

CARACTERIZAO DO PROBLEMA

Como permitir
o uso do BDD
por usurios
de diferentes
nveis?

Como permitir
o
acompanhame
nto real do
teste de
software?

Quais as
caractersticas
e recursos
facilitariam a
adoo do
BDD?
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

Proble
ma

Como avaliar o
sucesso e
impacto esta
ferramenta?

...

11

O PROBLEMA

CARACTERIZAO DO PROBLEMA

COMO IR
EM DIREO A UM AMBIENTE
DE DESENVOLVIMENTO DE
SOFTWARE ORIENTADO POR
COMPORTAMENTO
?
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

12

PROPOSTA
VISO GERAL DA PROPOSTA

PROPOSTA

VISO GERAL DA PROPOSTA

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

Foco em
caracterstica
s que
facilitem a
adoo do
BDD

Avaliao
Sistemtica

AMBIENTE DE DESENVOLVIMENTO ORIENTADO POR COMPORTAMENTO

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

14

PROPOSTA

VISO GERAL DA PROPOSTA

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

15

PROPOSTA

VISO GERAL DA PROPOSTA

PROBLEMA: QUAIS AS FUNCIONALIDADES DA


FERRAMENTA?
Definidas empiricamente (Experincia e Pesquisa
Bibliogrfica)
+
BDDPM
Pesquisa com 54 profissionais da rea.
Em Direo a um Ambiente de Desenvolvimento de Software Orientado por
Comportamento

16

PROPOSTA

VISO GERAL DA PROPOSTA

PROBLEMA: QUAIS AS FUNCIONALIDADES DA


FERRAMENTA?
ESCOPO: Foco na FACILIDADE DE USO, UTILIZAO
PELO CLIENTE e ACOMPANHAMENTO DE TESTES.
ESCOPO:
Linguagens (PHP e C#) e Plataforma (Mantis
BDDPM
BT)

17

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

PROPOSTA

VISO GERAL DA PROPOSTA

PROBLEMA: COMO FAZER A AVALIAO?


Escolha do mtodo GQM (Goal-Question-Metric).
Utilizao da ferramenta em um ambiente de produo
real.
Fazer
conjecturas para outros ambientes.
BDDPM
Em Direo 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

QUESTIONRIOS

MANTIS BT

BDDPM

Em Direo 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

JOO PAULO

MARCOS FERNANDO
Estagirio da

Estagirio da

Criador do BBPM

PBPrev

PBPrev

Equipe GQM

Equipe de

Equipe de

Avaliao

Avaliao

VINCIUS CARDOSO

PBPREV

Professor Doutor

Empresa onde o

(PBprev)

Orientador do

BDDPM foi

Equipe de

Projeto

utilizado e

Avaliao

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

avaliado.

22

BDDPM: CRIAO
DESENVOLVIMENTO DO PLUGIN

BDDPM: CRIAO

DESENVOLVIMENTO DO PLUGIN

FASE
1:
REQUISITOS
E
Interface
ARQUITETURA

Funcionalidades

Definidos Empiricamente
Questionrio com 54
profissionais de TI
47 desenvolvedores /
testadores
06 gestores de projetos de TI
03 clientes de produtos de
software
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

24

BDDPM: CRIAO

DESENVOLVIMENTO DO PLUGIN

ARQUITETURA DO SISTEMA:
nico Ponto de Acesso
Aplicao de Pgina nica
Remote Procedure Calls
TECNOLOGIAS:
PHP, C#, HTML 5, CSS 3
JQuery, AngularJS (muitos recursos
rodando no cliente)

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

25

BDDPM: CRIAO

DESENVOLVIMENTO DO PLUGIN

ARQUITETURA DE TESTES:

Testes com TDD e BDD


Padro Facade

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

26

BDDPM: CRIAO

DESENVOLVIMENTO DO PLUGIN

FASE 2: DESENVOLVIMENTO
Utilizao de plugins de
terceiros
Repositrio GIT
21 testes de comportamento
83 testes de unidade
64 arquivos de cdigo
7259 linhas de cdigo
669 linhas de comentrio
03 meses de desenvolvimento
Licena GPL
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

27

BDDPM NA PRTICA
APRESENTANDO A FERRAMENTA

BDDPM NA PRTICA

APRESENTANDO A FERRAMENTA

INSTALAO
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 opo
BDDPM

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

29

BDDPM NA PRTICA

APRESENTANDO A FERRAMENTA

1 - CONFIGURAO
1. Caminho para executvel do GIT
2. Tipo de Repositrio: Local ou Online
3. Login e Senha do Usurio do
Repositrio
4. Namespace do projeto
5. Caminho para os arquivos de testes de
aceitao

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

6. Caminho para os arquivos de cdigo


de teste

30

BDDPM NA PRTICA

APRESENTANDO A FERRAMENTA

2 - ESCRITA DE TESTES
1. Ttulo do Caso de Uso
2. Descrio do Caso de Uso
3. Prioridade do Caso de USO
4. Wizard para criao (montagem) do Teste

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

31

BDDPM NA PRTICA

APRESENTANDO A FERRAMENTA

3 - SINCRONIZAO COM O VCS


1. Envio dos arquivos para o Repositrio
2. Integrao com o Visual Studio

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

32

BDDPM NA PRTICA

APRESENTANDO A FERRAMENTA

4 - ACOMPANHAMENTO DE TESTES
1. Acompanhamento em Tempo Real
2. Sempre que um teste executado no
VS
3. Atualizao da Interface do BDDPM
4. Identificao do problema

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

33

BDDPM NA PRTICA

APRESENTANDO A FERRAMENTA

EM BACKGROUND:
Caso de Uso / Recurso:
Calculadora (Calculadora para
Somar 2 Nmeros)

Feature: Calculadora para Soma


Calculadora para somar 2
nmeros

[Binding]
class CalculadoraParaSomaSteps
{

Cenrio: Soma de 2 Nmeros

@1
Scenario: Soma de 2
nmeros
Given Que o nmero A 5
And O nmero B 3
When A soma for efetuada
Then O resultado dever ser
8

[Given(@"Que o nmero A (.*)")]


public void
GivenQueONumeroAE(int p0)
{

1.
2.
3.
4.

Dado que o nmero A 5


E o nmero B 3
Quando a soma for efetuada
Ento o resultado dever ser
8

ALTO NVEL
BDDPM

GHERKIN

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

ScenarioContext.Current.Pending();
}
}

CDIGO C#
34

BDDPM: AVALIAO
APLICANDO O GOAL-QUESTION-METRIC

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

SSAC
(SISPROTO Solicitaes de
Alterao e Correo)
O BDDPM foi utilizado e avaliado
no projeto de desenvolvimento
deste sistema.

Durano do desenvolvimento: 45 dias


Durao da avaliao: 30 dias
Linguagem do sistema: C#
56 testes de comportamento
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

36

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE PLANEJAMENTO

1. Estabelecimento da equipe GQM


2. Seleo do objeto de avaliao
3. Estabelecimento da equipe de
avaliao do projeto
4. Criao do plano de projeto
5. Treinamento e promoo

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

37

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE DEFINIO

1. Definio do(s) objetivo(s) da


medio
2. Revisar ou produzir modelos de
processos de software
3. Conduo de entrevista GQM
4. Definio de questes/perguntas
e hipteses
5. Reviso das questes/perguntas e
hipteses
6. Definio das mtricas
7. Reviso das mtricas
8. Produo do plano GQM
9. Produo do plano de medio
10.Produo do plano de anlise
11.Reviso dos planos
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

38

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE DEFINIO

04 objetivos
19 questes
25 mtricas
Todos derivados da entrevista GQM
OBJETIVO 1: Fcil de utilizar em termos de
usabilidade
OBJETIVO 2: Permitir a aplicao do BDD de
maneira eficiente e eficaz
OBJETIVO 3: Facilitar a adoo do BDD
OBJETIVO 4: Permitir a escrita dos testes
pelos clientes
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

39

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE DEFINIO

Exemplo Pergunta 01 (Relacionada a Facilidade de Uso)


Est relacionada a 03 (trs) objetivos:
O1 - Fcil de utilizar em termos de usabilidade
O2 - Permitir a aplicao do BDD de maneira eficiente e eficaz
O3 - Facilitar a adoo do BDD
Est relacionada a 07 (sete) mtricas:

M01
M02
M05
M14
M15
M16
M17

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

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

40

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

41

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE COLETA DE DADOS

Iniciou-se com o desenvolvimento do


SSAC.
Feedbacks registrados de maneira
contnua.

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

42

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

FASE DE ANLISE DE DADOS

PASSO 1: Cada avaliador fez a


avaliao das perguntas de acordo
com as mtricas estabelecidas.
PASSO 2: Checou-se o ndice de
satisfao das perguntas. (70% das
mtricas)
PASSO 3: Checou-se o ndice de
satisfao dos objetivos. (70% das
perguntas)
PASSO 4: O BDDPM foi avaliado de
acordo com o cumprimento dos
objetivos. (80% dos objetivos)
BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

43

O1: 100,00% atendido


P01: ATENDE

BDDPM: AVALIAO

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 ANLISE DE DADOS

Apenas as perguntas 16 e 17 no foram


atendidas pela no satisfao das mtricas.
Acessibilidade e Visibilidade do
BDDPM
Linguagens de Programao
(Projeto) suportadas.

BDDPM

Em Direo 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: NO ATENDE

P17: NO ATENDE

P18: ATENDE

P19: ATENDE

44

BDDPM: AVALIAO

APLICANDO O GOAL-QUESTION-METRIC

AVALIANDO O RESULTADO

Primeira aplicao do BDD. Bom indcio para


adoo.
Equipe de avaliao formada por profissionais de
informtica (clientes)
Equipe de avaliao sem experincia em BDD
SSAC - Projeto Pequeno
100% de Satisfao - Estranho
OBJETIVO 3: Elo fraco
Primeira avaliao com GQM
Expectativas elevadas
Acompanhamento da Avaliao pelo criador do
BDDPM

BDDPM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

100
%

100
%

O1: Facilidade

O2: Aplicao do
BDD

87,5
%

100%

O3: Adoo do BDD

O4: Escrita de Testes


45

CONSIDERAES
FINAIS

DIFICULDADES ENCONTRADAS, TRABALHOS FUTUROS E CONCLUSO

CONSIDERAES FINAIS

DIFICULDADES ENCONTRADAS

TESTES
Somente no
Windows

BDDPM

GROUNDED
THEORY
Ficou de Fora

PBPREV
No fbrica de
Software.
Sada da
Empresa.

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

GQM E BDD
Falta de
Experincia

EXPECTATIVAS
Elevadas

47

CONSIDERAES FINAIS

TRABALHOS FUTUROS

FACILIDADE

APLICAO

DE USO
Mais assistentes em Tela
Coleta de dados de
utilizao da ferramenta

DO BDD
OBJETIVO
1

OBJETIVO
2

ADOO

DO BDD

ESCRITA

OBJETIVO
3

Mais linguagens de
programao suportadas
Mais plataformas de gesto
suportadas
Divulgao da ferramenta
Submisso de Artigos
(CBSoft, etc.)
Suporte SVN

BDDPM

Adio de mais recursos


BDD
Integrao com o
Cucumber
Execuo de testes a partir da
ferramenta

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

OBJETIVO
4

DE TESTES
Modo de insero avando
Melhoria do Wizard
Linguagem Business
Writable

48

CONSIDERAES FINAIS

CONCLUSO

Um passo
promissor
ALVARO MAGNUM

AVALIAO DO BDDPM
O BDDPM foi utilizado com sucesso no projeto do SSAC. Seus
objetivos foram alcanados e seus resultados levam a acreditar que
o projeto uma boa opo para adoo do BDD em pequenos
projetos de desenvolvimento de software. A ferramenta
tambm apresenta grande potencial de crescimento

BDDPM

Equipe de Avaliao

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento

49

FIM

Em Direo a um Ambiente de Desenvolvimento de Software Orientado por


Comportamento