Escolar Documentos
Profissional Documentos
Cultura Documentos
RECIFE, MAIO/2015
RECIFE, MAIO/2015
ii
Agradecimentos
Inicialmente, agradeo ao nico que digno de toda honra e toda glria: Deus.
Agradeo o dom da vida, a famlia que Ele me deu e, principalmente, Sua graa e
misericrdia que abundam a vida deste grande pecador.
Agradeo a minha esposa, Roberta Arruda, que me incentivou e cobrou
perseverana ao longo de todo trabalho. Sem seu amor, carinho e cuidados muitas de
minhas conquistas no teriam o mesmo sabor que tm hoje. Agradeo sua pacincia e
tolerncia todas as vezes em que tive que me dedicar a pesquisa e no a ela. Agradeo
sua ajuda, pois, ainda que da rea do Direito, e no de Tecnologia, procurou e indicou
pessoas conhecidas de TI para avaliarem meu trabalho. Te amo demais. Juntos, somos
UM.
Aos meus pais, Alvaro Barbosa e Marta Sueli. Muitos de meus princpios e
educao foram enraizados por eles. Seus exemplos e condutas influenciaram a minha
vida. A maior parte de minha vida passei ao lado deles, foram momentos de muitas
alegrias e aprendizados. Meus pais nunca deixaram de me incentivar a crescer tanto
acadmica, quanto profissionalmente. Por estes motivos e muitos outros, a eles dou
honra. Amo vocs.
A minha irm, Marta Monike, por quem tenho grande amor e carinho. Sua ateno
e seu jeito meigo de me tratar me do foras para fazer muitas coisas. Ela me incentivou
bastante com suas especializaes e sua busca por crescimento no meio acadmico.
Amo voc.
Ao meu orientador, o Dr. Vinicius Cardoso, que sempre falou claramente o que
prestava e o que no prestava em minhas pesquisas e por me ensinar que,
independentemente do problema, temos que contornar e ir em frente. Todos passam por
dificuldades e somos responsveis por enfrenta-los e venc-los. Sua objetividade, clareza
e simplicidade em nortear o caminho, se mostraram muito desafiadores e estimulantes:
algo, mais ou menos, como O caminho esse, o resto depende de voc e no de mim.
Aos professores do curso que, pela experincia de fazerem parte de uma das
universidades federais mais importantes do pas, e com grande destaque no cenrio
nacional de tecnologia, nos orientaram e nos incentivaram com paixo e afinco. Souberam
nos mostrar como eliminar o descartvel e focar no que importante e, principalmente,
que nem sempre o caminho ser fcil.
Aos amigos e colegas da turma do mestrado profissional que se uniram durante
todo o curso, estudaram e trocaram ideias. Em especial agradeo a turma de Joo
Pessoa: Ernandes e Tales. Montamos uma equipe arrasadora do incio ao fim.
Estudamos, trabalhamos, sofremos e nos alegramos juntos. Infelizmente por duas notas
B, no ficamos com 100% de nota A. Quem sabe em um doutorado.
Aos companheiros de profisso da Paraba Previdncia que adotaram a
ferramenta (que foi um dos frutos desse trabalho) dentro do ambiente corporativo e
procuraram utilizar e se beneficiar dela, contribuindo com dados estatsticos e ideias.
Resumo
Criado por Dan North, o BDD (Behavior Driven Development) uma tcnica de
desenvolvimento gil de software baseada no TDD (Test Driven Development) e que
foca no teste de software orientado por comportamentos, isto , concentra-se nas
razes pelo qual o software criado e nos requisitos de comportamento do negcio.
A utilizao da tcnica traz uma srie de benefcios para projetos de desenvolvimento
de software, contudo, ela no tem uma aceitao to grande no mercado e , muitas
vezes, preterida em relao ao TDD. Esse trabalho faz uma anlise dessa situao e
tambm prope um ambiente que visa facilitar a adoo do BDD atravs da anlise
dos seguintes questionamentos: quais caractersticas devem fazer parte de uma
ferramenta para que ela facilite e dinamize a utilizao do BDD no contexto de um
projeto de desenvolvimento de software? Como permitir o uso da mesma por um
cliente leigo em testes, e, ao mesmo tempo, agregar valor para o gerente do projeto,
os testadores e os desenvolvedores de software? Como o cliente poderia acompanhar
em tempo real se o que ele espera obter est, de fato, sendo construdo? Como medir
o impacto da ferramenta? Atravs de anlises e resultados obtidos em mais de 12
anos de experincia profissional no setor de tecnologia de instituies pblicas e
privadas, alm de pesquisas na literatura, entrevistas com profissionais de TI e
avaliaes de ferramentas BDD no mercado, foi concebido um plugin: o BDD Plugin
for Mantis (BDDPM), uma ferramenta cujo objetivo facilitar a adoo do BDD em
projetos de desenvolvimento de software. Para avaliar o plugin quanto ao
cumprimento dos objetivos, foi utilizada uma tcnica denominada GQM
(Goal/Question/Metric), que permite, atravs de objetivos bem estabelecidos, planejar
e mensurar mtricas de avaliao. O BDDPM foi avaliado com sucesso dentro de um
ambiente de produo real, uma autarquia do Governo do Estado da Paraba: a
Paraba Previdncia. Este trabalho descreve, em detalhes, todo o ciclo de vida do
projeto, desde sua concepo, passando por sua criao, tecnologias utilizadas,
recursos includos, etc.
Palavras-chave: Plugin, BDD, Mantis, Testes, Software, Projeto, Desenvolvimento,
GQM, Anlise, Medio, Adoo do BDD, Acompanhamento de Testes, Escrita de
Testes.
vi
Abstract
Created by Dan North, BDD (Behavior Driven Development) is a software agile
development technique based on TDD (Test Driven Development). The BDD focuses
on software testing oriented by behaviors, that is, it focuses on the reasons why a
software is created and its business behavior. The use of the technique brings a
number of benefits for software development projects; however, BDD does not have
such a great market as the TDD: the first choice of the majority. This work brings an
analysis of this situation and also proposes an environment to facilitate the adoption of
BDD by examining the following questions: what characteristics should be part of a
tool so that it facilitate and streamline the use of BDD in a context of project software
development? How can it be used by an unexperienced client, and, at the same time,
add value to project managers, testers and developers? How the customer could
follow, in real time, if what he expects to, is really being built? How to measure the
impact of the tool? Through analysis and results obtained from over 12 years of
professional experience in the technology sector of public and private institutions, as
well as research in the literature, interviews with IT professionals and reviews of BDD
tools on the market, a plugin was developed: the BDD Plugin for Mantis (BDDPM), a
tool which aims to facilitate the adoption of BDD in software development projects. To
assess the plugin in meeting the goals, a technique called GQM (Goal / Question /
Metric) was used; it allows, through well-established objectives, plan and measure
evaluation metrics. The BDDPM was successfully evaluated in a real production
environment, a company called Paraba Previdncia. This paper describes in detail the
entire life cycle of the project: from its conception, through its creation, the technologies
used, features included, etc.
Keywords: Plugin, BDD, Mantis, Tests, Software, Project, Development, GQM,
Analysis, Measurement, BDD Adoption, Test Tracking, Test Writing.
vii
Sumrio
NDICE DE TABELAS: ............................................................................................. XI
NDICE DE FIGURAS: ............................................................................................ XII
Anexos:
1.2.
Explicitando o Problema................................................................................. 3
1.3.
1.4.
1.5.
O TDD .......................................................................................................... 10
2.2.
O BDD .......................................................................................................... 13
2.3.
3.1.1.
Sobre o Jira............................................................................................... 19
3.1.2.
3.1.3.
3.1.4.
3.1.5.
3.2.
3.3.
3.4.
Comparativo ................................................................................................. 25
3.5.
4.1.1.
4.1.2.
4.1.3.
4.2.
4.2.1.
Configurao............................................................................................. 41
4.2.2.
4.2.3.
4.2.4.
5.2.
5.3.
5.3.1.
5.3.1.1.
5.3.1.2.
5.3.1.3.
5.3.1.4.
5.3.1.5.
5.3.2.
5.3.2.1.
5.3.2.2.
5.3.2.3.
5.3.2.4.
5.3.2.5.
5.3.2.6.
5.3.2.7.
5.3.3.
5.3.4.
5.4.
Avaliao do Resultado................................................................................ 76
ix
Captulo 6 Concluso
6.1.
Dificuldades Encontradas............................................................................. 79
6.2.
6.3.
Contribuies ............................................................................................... 81
6.4.
ndice de Tabelas
Tabela 1: Ranking (TOP 10) de Linguagens de Programao da TIOBE
(Dezembro/2014) ....................................................................................................... 7
Tabela 2: Comparativo de retorno de resultado nos principais buscadores WEB (TDD
x BDD) ...................................................................................................................... 16
Tabela 3: Comparativo de retorno de resultado acadmico (TDD x BDD) .............. 16
Tabela 4: Comparativo entre BDDPM (Mantis) e BEHAVE (Jira) ............................ 26
Tabela 5: Testes do BDDPM em nmeros .............................................................. 34
Tabela 6: Objetivo de medio 1: Fcil de utilizar em termos de usabilidade ......... 63
Tabela 7: Objetivo de medio 2: Permitir a aplicao do BDD de maneira eficiente e
eficaz ........................................................................................................................ 63
Tabela 8: Objetivo de medio 3: Facilitar a adoo do BDD .................................. 63
Tabela 9: Objetivo de medio 4: Permitir a escrita dos testes pelos clientes ........ 63
Tabela 10: Avaliao do BDDPM: Resultado da entrevista GQM ........................... 65
Tabela 11: BDDPM: Anlise GQM (Bottom-Up) Mtricas Perguntas ............... 76
Tabela 12: BDDPM: Anlise GQM (Bottom-Up) Perguntas Objetivos............... 76
xi
ndice de Figuras
Figura 1: Questionamentos e fatos que culminam no problema "Como ir em Direo
a um Ambiente de Desenvolvimento de Software Orientado por Comportamento?" .. 4
Figura 2: Viso Geral da Proposta: Recursos Adoo do BDD Avaliao ........ 5
Figura 3: Viso Geral da Proposta: Ferramenta GQM Impactos ....................... 6
Figura 4: Ciclo do TDD ............................................................................................. 11
Figura 5: Teste de Aceitao descrito em GHERKIN ............................................... 15
Figura 6: Questionrio para Interface. Resultado da Pergunta 1 ............................. 31
Figura 7: Questionrio para Interface. Resultado da Pergunta 2 ............................. 31
Figura 8: Questionrio para Interface. Resultado da Pergunta 3 ............................. 32
Figura 9: Questionrio para Interface. Resultado da Pergunta 4 ............................. 32
Figura 10: Questionrio para Interface. Resultado da Pergunta 5 ........................... 32
Figura 11: Questionrio para Interface. Resultado da Pergunta 6 ........................... 33
Figura 12: Arquitetura de Testes do BDDPM ........................................................... 35
Figura 13: Arquitetura do Sistema BDDPM .............................................................. 37
Figura 14: Arquitetura da Aplicao de Pgina nica - BDDPM .............................. 39
Figura 15: Tela inicial do BDDPM aps a instalao ................................................ 42
Figura 16: BDDPM: Configurao do Plugin ............................................................ 42
Figura 17: BDDPM: Configurao do Projeto ........................................................... 43
Figura 18: Requisito do SSAC transformado em teste de comportamento .............. 44
Figura 19: BDDPM: Opo de acesso pgina de criao de testes ...................... 45
Figura 20: BDDPM: Criao de Caso de Uso (funcionalidade e descrio) ............. 45
Figura 21: BDDPM: Criao de Caso de Uso (prioridade do teste) ......................... 46
Figura 22: BDDPM: Criao de Caso de Uso (linguagem dos testes) ..................... 46
Figura 23: BDDPM: Criao de Caso de Uso (descrio do comportamento) ......... 46
Figura 24: BDDPM: Caso de Uso transformado em gherkin .................................... 47
Figura 25: BDDPM: Cdigo de teste gerado em C# ................................................. 48
Figura 26: Gerao de Cdigo de Teste em C# a partir dos testes do cliente ......... 50
Figura 27: Resultado de um teste no Visual Studio.................................................. 51
Figura 28: Resultado de um teste no BDDPM.......................................................... 51
Figura 29: Fases do GQM [Rini van Solingen et al, 1999] ....................................... 55
Figura 30: Paradigma do GQM ................................................................................ 56
Figura 31: Exemplo de um Abstraction Sheet ........................................................ 64
xii
xiii
Lista de Abreviaes
ABNT
ACM
AJAX
API
ASF
BDD
BDDPM
BSD
BT
CAPES
CESAR
CMMI
COC
CSS
DOM
DR
DRY
DSL
FSF
GNOME
GPL
GQM
GT
HTML
HTTP
IDE
IEC
IEEE
ISO
JIT
JR
JS
JUG
MIT
MPROF
MVC
NASA
ORM
PBPREV
PHP
PL
PMBOK
QA
RBAC
RIA
RPC
RSS
SCM
SEO
SGBD
SLA
SR
SSAC
SVN
TDD
TI
UFCG
UFPE
UI
URL
VCS
VS
WWW
XHTML
XML
xv
Captulo 1 Introduo
1.
Este captulo faz uma apresentao geral deste trabalho e do problema a ser
tratado justificando-o e elucidando sua proposta de soluo. Tambm descreve as
tcnicas escolhidas, tanto para o desenvolvimento da ferramenta fruto do esforo,
bem como para avaliao dos resultados.
O captulo inicia-se na seo 1.1 com um breve sumrio do cenrio de testes de
software com BDD e TDD. Em seguida, na seo 1.2, o problema foco deste trabalho
explicitado para, na sequncia (seo 1.3), mostrar uma viso geral da proposta
para tratamento do problema. Por fim, a Seo 1.4 descreve a metodologia aplicada
na consecuo do trabalho e a 1.5 discorre sobre a organizao desta dissertao de
maneira a facilitar sua leitura e descrever, resumidamente, o que pode ser encontrado
em cada captulo.
Test Driven Development (TDD) ou em portugus Desenvolvimento orientado a testes uma tcnica de
desenvolvimento de software que se baseia em um ciclo curto de repeties: primeiramente o desenvolvedor
escreve um caso de teste automatizado que define uma funcionalidade ou melhoria desejada em uma funo.
Em seguida produzido um cdigo que possa ser validado pelo teste para, posteriormente, o cdigo ser
refatorado para uma verso sob padres aceitveis.
Test Driven Development (TDD - Desenvolvimento orientado por teste) uma tcnica de desenvolvimento de
software que se baseia em um ciclo curto de repeties: primeiro cria-se o teste, depois o cdigo, depois
refatora-se o cdigo.
linguagem de negcio de alto nvel deste cliente (requisitos de usurio) para uma
linguagem tcnica (requisitos de sistema). Sob esta perspectiva, muito fcil
descrever e especificar funes tcnicas, por isso o TDD to utilizado. Por outro
lado, quando se fala em BDD3, ou seja, o comportamento do software, no h tantos
esforos em sua prtica: o BDD gera, pelo menos, 75% a menos de resultados em
sites de pesquisas comerciais e acadmicos, por exemplo.
Quando Dan North concebeu o Behavior Driven Development, seu objetivo era
buscar uma maior aproximao com o cliente do produto de software durante o
desenvolvimento do mesmo, pois o cliente um dos melhores stakeholders4 para
descrever o que ele mesmo espera do produto que est adquirindo. Infelizmente,
conforme citado anteriormente, a prtica do mercado mostrou que era muito
complicado trabalhar diretamente com o cliente. Surge, ento, a figura do Analista de
Requisitos, que o responsvel por fazer a ponte ente o que o cliente deseja, que
descrito em alto nvel, e a sua correspondente especificao tcnica, voltada para
desenvolvedores e testadores de software. Com isso, clientes de software se
distanciaram mais dos projetos de desenvolvimento de software e, consequentemente
do teste de software, e os analistas de requisitos ganharam mais responsabilidades.
O Cucumber5 foi um grande passo na tentativa de reaproximar o cliente da fase
de testes de seu produto. Ao utilizar uma linguagem especfica de domnio e Business
Readable, o Gherkin, um novo chamado ao maior engajamento dos clientes em
testes foi feito. Este tipo de linguagem foca na possibilidade de leitura e no
entendimento por parte do cliente. Com essa linguagem eles podem descrever o
comportamento esperado do software.
Apesar dos benefcios, o BDD no se aproxima do TDD em termos de aceitao.
Quais os motivos que levaram a este fato? Por que as empresas priorizam
funcionalidades em detrimento do comportamento? Mas, principalmente, como seria
possvel possibilitar uma maior adoo do BDD? Estes so alguns dos
questionamentos discutidos ao longo deste trabalho.
Behavior Driven Development (BDD - Desenvolvimento orientado por comportamento) uma tcnica de
desenvolvimento de software oriunda do TDD e que segue os mesmos princpios desse, entretanto foca no
comportamento do software esperado pelo cliente.
4
Stakeholder (em portugus, parte interessada ou interveniente), um termo usado em diversas reas como
gesto de projetos, administrao, engenharia de software, etc., e se refere a toda e qualquer parte interessada
e/ou afetada em um determinado mbito, contexto, projeto, empreendimento. Pode englobar tanto
participantes externos, quanto internos.
5
O Cucumber uma ferramenta de software utilizada por programadores/desenvolvedores para testar outros
softwares. O Cucumber foi escrito em Ruby e executa testes de aceitao BDD em uma linguagem de alto nvel
e semiformal (Gherkin). O Cucumber permite o teste de aplicaes criadas em diferentes plataformas (Java,
Ruby, PHP, .NET, etc.).
COMO PERMITIR O
USO DO BDD POR
USURIOS DE
DIFERENTES NVEIS?
COMO PERMITIR O
ACOMPANHAMENTO
REAL DO TESTE DE
SOFTWARE?
QUAIS AS
CARACTERSTICAS E
RECURSOS
FACILITARIAM A
ADOO DO BDD?
BDD PRETERIDO EM
RELAO AO TDD
COMO AVALIAR O
SUCESSO E IMPACTO
DESTES RECURSOS?
PROBLEMA
...
RECURSOS PARA
AUXILIAR E
AUTOMATIZAR BOA
PARTE DO PROCESSO
COM BDD.
FOCO EM
CARACTERSTICAS
QUE FACILITEM A
ADOO DO BDD
AVALIAO
SISTEMTICA
De acordo com a OSI (Open Source Initiative - http://opensource.org) um software dito Open Source (Cdigo
Aberto) quando pode ser livremente utilizado, modificado e compartilhado, tanto a verso original quanto a
modificada. A OSI a atual mantenedora do Open Source.
8
Em cincia da computao, front-end e back-end so termos generalizados que se referem s etapas inicial e
final de um processo. O front-end responsvel por coletar a entrada em vrias formas do usurio e processla para adequ-la a uma especificao em que o back-end possa utilizar. O front-end uma espcie de interface
entre o usurio e o back-end.
9
O Ranking da TIOBE (http://tiobe.com/index.php/content/paperinfo/tpci/index.html) um renomado
indicador da popularidade das linguagens de programao do mercado. O ndice atualizado uma vez por ms.
Os resultados so baseados no nmero de usurios/desenvolvedores ao redor do globo, cursos e fabricantes de
software, alm de nmero de resultados nos principais buscadores da WEB.
Posio
1
2
3
4
5
6
7
8
9
10
Linguagem de Programao
C
Java
Objective-C
C++
C#
PHP
Java Script
Python
Visual
Perl
ndice
17.588%
14.959%
9.130%
6.104%
4.328%
2.746%
2.433%
2.287%
2.235%
1.826%
10
http://www.pbprev.pb.gov.br
11
PARTE I CONTEXTO
CAP. 2 A Situao do TDD e do BDD no Mercado. Discorre sobre as
prticas do TDD e BDD e o cenrio nas quais esto inseridas atualmente
no mercado.
CAP. 3 Ferramentas Disponveis no Mercado e o Plugin Criado.
Apresenta as principais ferramentas com foco em BDD do mercado
considerando-se as seguintes plataformas WEB de gesto de projetos de
desenvolvimento de software: Jira, Mantis, RedMine, Trac e BugZilla.
Tambm apresenta o BDDPM e traz um quadro comparativo com as
demais ferramentas apresentadas.
PARTE II BDDPM EM DETALHES
CAP. 4 O BDDPM: Mais Detalhes. Descrio detalhada de todo o
processo de desenvolvimento do plugin, incluindo desafios, cronograma e
etapas. Descreve a plataforma, utilitrios, ferramentas, componentes e
tecnologias envolvidas no desenvolvimento. Apresenta seus recursos
atravs de exemplos de utilizao e faz o enquadramento da ferramenta
em uma licena de software livre.
PARTE III AVALIAO E RESULTADOS
CAP. 5 Aplicao do GQM e Anlise dos Resultados. Descreve, de
maneira detalhada, como a tcnica do GQM (Goal/Question/Metric) foi
aplicada para o levantamento das medies de resultados alcanados pelo
produto de software.
CAP. 6 Concluso. Uma avaliao geral das dificuldades encontradas,
dos resultados alcanados pelo produto de software, suas contribuies e
um detalhamento das funcionalidades e recursos que sero implementadas
em verses futuras. O captulo finalizado com as consideraes finais a
respeito do trabalho.
PARTE IV REFERNCIAS BIBLIOGRFICAS E ANEXOS
2.1. O TDD
creditado a Kent Beck o ttulo de criador do TDD. Kent Beck um Engenheiro
de Software norte-americano, um dos pioneiros na rea de Padres de
Desenvolvimento de Software14 e Desenvolvimento gil de Software15, e tambm foi
um dos 17 signatrios originais do Agile Manifesto16.
A ideia por trs do Desenvolvimento Dirigido por Testes bastante simples: os
testes devem ser criados antes do cdigo de produo. Com qual objetivo? Possibilitar
que todo o cdigo, ou a maior parte dele, possua um teste que garanta seu
funcionamento. Alm disso, durante a evoluo do projeto de desenvolvimento de
software e, fica mais fcil garantir que as alteraes/incrementos no afetem a parte
do sistema que j est coberta por testes.
H uma corrente que afirma que Beck apenas redescobriu o TDD, uma vez que
o conceito fundamental da tcnica j havia sido empregado no passado e estava
apenas esquecido. O prprio Kent confirma a teoria. Um exemplo de utilizao da
metodologia anterior a Kent Beck, entre outros exemplos existentes, pode ser
conferido na obra Digital Computer Programming sob o ttulo Program Checkout
[D.D. McCracken, 1957], quando se sugeria que, para evitar problemas e erros, um
cliente deveria preparar exemplos de respostas esperadas em um caso de uso de um
14
De acordo com a Engenharia de Software, o Software Design Pattern, normalmente traduzido como "Padro
de Projeto de Software", ou "Padro de Desenvolvimento de Software", ou ainda "Padro de Design de
Software", uma soluo genrica e reutilizvel para um problema comum e recorrente em um determinado
contexto no Projeto de Software. No se trata de algo acabado, mas uma ideia, um template, uma receita para
resolver um problema e que pode ser utilizada em diversas situaes.
15
Desenvolvimento gil de software (do ingls Agile Software Development) ou Mtodo gil um conjunto de
metodologias de desenvolvimento de software cujo as solues evoluem atravs da colaborao de times auto
organizados e multifuncionais. O Desenvolvimento gil promove um planejamento adaptativo, desenvolvimento
evolucionrio/incremental, entregas incrementais e antecipadas; e encoraja respostas rpidas e flexveis a
mudanas no cenrio do Projeto de Desenvolvimento de Software.
16
O Agile Manifesto, traduzido para "Manifesto gil" uma declarao de princpios que fundamentam o
desenvolvimento gil de software. O manifesto contm quatro valores fundamentais e 12 princpios. Todos esto
descritos no endereo http://www.agilemanifesto.org.
10
Um sistema composto por um conjunto de unidades integradas. Uma unidade uma parte mnima/pequena
do cdigo do sistema que agrega uma funcionalidade. Na Engenharia de Software o teste dessa pequena parte
do cdigo chamado de "Teste de Unidade".
11
Objetos Mock, objetos simulados ou simplesmente Mock (do ingls Mock Object), em desenvolvimento de
software, so objetos que simulam o comportamento de objetos reais de forma controlada. So normalmente
criados para testar o comportamento de outros objetos. Em outras palavras, os objetos Mock so objetos falsos
que simulam o comportamento de uma classe ou objeto real para que possamos focar o teste na unidade a
ser testada.
12
2.2. O BDD
O BDD (Behavior Driven Development) uma tcnica de desenvolvimento gil
de software baseada no TDD. Ela segue, portanto, os mesmos princpios do TDD. Na
verdade, o BDD tambm TDD, entretanto, em vez de focar nas funcionalidades, foca
no comportamento. Foi criado por Dan North com o objetivo de responder/solucionar
algumas perguntas cujo TDD no era capaz de responder, ou respondia de forma
incipiente. North entendeu que, para elucidar os questionamentos, fazia-se necessrio
uma colaborao entre todos os envolvidos no projeto do software, os stakeholders:
desenvolvedores, gestores, setores de qualidade, pessoas no tcnicas, etc. BDD
significa Desenvolvimento Orientado por Comportamento, o objetivo , literalmente,
testar o comportamento esperado do software pelos stakeholders, concentrando-se
nas razes pelas quais o cdigo est sendo criado, e no em detalhes tcnicos. Por
19
Ruby on Rails, ou simplesmente Rails, um framework Open Source para criao de aplicaes web. Enfatiza
a utilizao de padres de projetos e paradigmas bem conhecidos na Engenharia de Software (COC - Convention
over Configuration, DRY - Don't Repeat Yourself, MVC - Model View Controller, etc.)
20
Rede Social online lanada em 2004 e disponvel atravs do endereo facebook.com.
21
Automao de teste o uso de software para controlar a execuo do teste de software, a comparao dos
resultados esperados com os resultados reais, a configurao das pr-condies de teste e outras funes de
controle e relatrio de teste. De forma geral, a automao de teste pode iniciar a partir de um processo manual
de teste j estabelecido e formalizado.
13
esse motivo, os testes so escritos em uma linguagem de maior alto nvel para facilitar
o entendimento e o contato entre todos os envolvidos.
Com esta abordagem, descrita no endereo de Dan North
(http://dannorth.net/introducing-bdd), as perguntas poderiam ser respondidas da
seguinte maneira:
1. Escopo do teste o que deve e o que no deve ser testado? Deve ser
considerado como teste prioritrio tudo que o cliente espera ser entregue,
todos os comportamentos esperados.
2. Como entender melhor os testes e o motivo pelos quais eles falham?
O desenvolvedor deixa a perspectiva da viso de FUNES
implementadas e foca nos COMPORTAMENTOS esperados pelo cliente.
Sendo assim, um teste vai falhar quando um comportamento esperado
pelo cliente no for alcanado.
3. Onde o teste inicia e onde ele termina? Sabendo-se o desejo do cliente,
basta implementar estritamente o que desejado: nem mais, nem menos.
4. Como denominar os testes? Os testes passam a ser uma viso de todos
os stakeholders, ento, em vez de utilizar linguagens puramente tcnicas,
so escritos em mais alto nvel com descries claras e objetivas do que
est sendo testado. Isso facilita a comunicao entre todos os envolvidos.
5. Quanto deve ser testado? O necessrio para garantir o comportamento
desejado pelo cliente.
O grande potencial do BDD encontra-se na possibilidade de escrever testes de
aceitao22 comportamental do software atravs de uma linguagem ubqua23
compartilhada entre todos envolvidos no projeto de desenvolvimento, sejam pessoas
tcnicas ou no. Embora no seja a linguagem oficial do BDD para criao dos testes
de aceitao, o Gherkin, vem sendo amplamente utilizado para este fim devido ao
grande sucesso de sua utilizao no Cucumber.
Dan North indica um padro conhecido como Given When Then / Dado
Quando Ento, onde um cenrio de utilizao do software descrito atravs de uma
sequncia de passos. O Gherkin tem a vantagem de poder ser escrito em diversos
idiomas. Atualmente so 40 lnguas24 suportadas no Cucumber.
Considerando, como exemplo, um sistema de cadastramento de estudantes em
uma biblioteca central, o comportamento esperado do sistema poderia ser descrito da
maneira representada na Figura 8. uma descrio de alto nvel, perfeitamente
compreensvel por todos os stakeholders envolvidos no projeto e que facilita a
compreenso do que precisa ser testado:
22
Teste de aceitao uma fase do processo de teste no qual um sistema testado antes de sua disponibilizao.
Tem por funo verificar o sistema em relao aos seus requisitos originais, e s necessidades atuais do usurio.
23
Quando diferentes grupos ou equipes interagem constituindo uma interlinguagem com conceitos,
elementos e interpretaes comuns a todos, linguagem esta que precisa ser poderosa o suficiente para
potencializar a comunicao, facilitando o entendimento de fato e os acordos entre as partes de forma gil e
segura, com mnimo rudo. Trata-se de uma linguagem semiformal.
24
https://github.com/cucumber/cucumber/wiki/Spoken-languages
14
O BDD segue os mesmos princpios do TDD e, consequentemente, o ciclo REDGREEN-REFACTOR. A diferena que o teste est voltado para o
COMPORTAMENTO do software que est sendo desenvolvido, e a maneira como os
testes so construdos envolve no apenas desenvolvedores e testadores, mas
todos os interessados com uma grande aproximao do cliente do produto. De fato, a
prpria poltica do BDD indica que os clientes, em vez de se distanciarem dos testes,
deveriam, eles mesmos, escrever os casos de aceitao. O gherkin permite este fim,
exigindo um mnimo de conhecimento estrutural e de funcionamento da linguagem.
https://www.ieee.org
http://scholar.google.com
27
http://dl.acm.org
28
http://citeseer.ist.psu.edu
29
http://www.periodicos.capes.gov.br
26
15
Tabela 2 Comparativo de retorno de resultado nos principais buscadores WEB (TDD x BDD)
Sistema de Busca
IEEE
GOOGLE SCHOLAR
ACM Digital Library
CITESEERX
ACM
PERIDICOS/CAPES
17
30
18
3.1.1.
Sobre o Jira
33
19
3.1.2.
Sobre o Redmine
3.1.3.
Sobre o Trac
40
A GNU General Public License, GNU GPL, ou simplesmente GPL, a designao da licena para software livre
idealizada por Richard Matthew Stallman em 1989, no mbito do projeto GNU da Free Software Foundation
(FSF). GPL a licena com maior utilizao por parte de projetos de software livre. A GPL visa garantir que
qualquer produto de software (regido por suas regras) possa ser compartilhado e modificado por qualquer
pessoa e permanea assim, indefinidamente. O software pode ser vendido, mas deve ser sempre aberto. A
verso 2 da licena prega que qualquer tentativa de impedir esta liberdade acarreta na impossibilidade de
distribuio do software modificado.
41
A licena BSD uma licena de cdigo aberto inicialmente utilizada nos sistemas operacionais do tipo Berkeley
Software Distribution (um sistema derivado do Unix). A licena BSD estabelece que o detentor do copyright cede
os direitos comerciais, mas exige crdito pela autoria e propriedade. A redistribuies do cdigo fonte devem
manter a notcia de copyright, as condies da licena e um aviso de que no h garantias nem se assume a
responsabilidade por prejuzos decorrentes do uso do software. Distribuies binrias devem reproduzir na
documentao essas informaes. Os nomes do autor e seus colaboradores no podem ser usados para endossar
ou promover produtos derivados sem permisso.
42
https://code.djangoproject.com
43
https://trac.torproject.org/projects/tor
44
http://bugs.jquery.com
45
http://trac-hacks.org/wiki/TestManagerForTracPlugin
20
3.1.4.
Sobre o BugZilla
3.1.5.
Sobre o Mantis
http://trac-hacks.org/wiki/TestCaseManagementPlugin
https://www.mozilla.org
48
https://www.bugzilla.org/installation-list
49
https://bugzilla.mozilla.org
50
http://bugzilla.kernel.org
51
http://bugzilla.gnome.org
52
http://bugs.kde.org
53
http://issues.apache.org/bugzilla
54
http://bugs.libreoffice.org
55
http://www.openoffice.org/issues/query.cgi
56
http://bugs.eclipse.org/bugs
57
https://bugzilla.redhat.com/bugzilla
58
http://qa.mandriva.com
59
http://bugs.gentoo.org
60
https://bugzilla.novell.com
47
21
Um Sistema de Gerenciamento de Banco de Dados (SGBD) - do ingls Data Base Management System (DBMS)
- o conjunto de programas de computador (software) responsveis pelo gerenciamento de uma base de dados.
22
64 arquivos de cdigo
7259 linhas de cdigo
669 linhas de comentrio
Ainda do ponto de vista tcnico, o BDDPM, alm do cdigo prprio, foi construdo
utilizando recursos de frameworks, extenses e componentes de terceiros:
O Gherkin a linguagem utilizada em ferramentas que trabalham com o BDD. uma linguagem de negcios
que permite descrever o comportamento do software sem detalhar como esse comportamento implementado.
23
63
O Visual Studio um ambiente de desenvolvimento integrado (IDE) da Microsoft. Ele usado para desenvolver
programas de computador para o Windows, bem como web sites, aplicaes web e servios web. O Visual Studio
capaz de construir software para diversas plataformas Microsoft como o Windows Azure, Windows Forms,
Windows Presentation Foundation, Windows Store, Microsoft Silverlight, etc.
64
IDE, do ingls Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, um
programa de computador que rene caractersticas e ferramentas de apoio ao desenvolvimento de software
com o objetivo de agilizar este processo.
65
Assistente ou Wizard um padro de projeto de software amplamente utilizado em interface grfica do
usurio para prover um meio simples de realizar tarefas complexas em sistemas computacionais, atravs de um
esquema passo-a-passo.
66
GIT um sistema de controle de verso distribudo e um sistema de gerenciamento de cdigo fonte. O controle
de verso um sistema que registra as mudanas feitas em um arquivo ou um conjunto de arquivos ao longo do
tempo de forma que se possa recuperar verses especficas.
*
Recursos a serem adicionados posteriormente.
24
3.4. Comparativo
O BDDPM, conforme j explanado, um plugin/extenso para o MantisBT que
passa a estar disponvel no mercado a partir da publicao deste trabalho. A
ferramenta distribuda sobe a licena GPL. A Tabela 6 exibe um comparativo entre
o Behave, plugin para o JIRA, e o BDDPM. O Behave foi a nica extenso encontrada
para adio de suporte ao Behavior Driven Development considerando-se as
plataformas elencadas anteriormente.
67
25
RECURSO
Ferramenta para Automao
Forma de Entrada de Testes de Aceitao
Preo
Gerao de Cdigo de Teste
Linguagem de Programao Suportada
Suporte a Todos os Recursos do Gherkin
Acompanhamento em Tempo Real
Suporte Comentrios e Anexos
BDDPM
SpecFlow
Gherkin/Wizard
Gratuito
SIM
C#
NO71
SIM
NO73
BEHAVE
Cucumber69
Gherkin/Texto
Pago
NO
VRIAS70
SIM
NO72
SIM
69
26
74
27
75
A GNU General Public License, GNU GPL, ou simplesmente GPL, a designao da licena para software livre
idealizada por Richard Matthew Stallman em 1989, no mbito do projeto GNU da Free Software Foundation
(FSF). GPL a licena com maior utilizao por parte de projetos de software livre. A GPL visa garantir que
qualquer produto de software (regido por suas regras) possa ser compartilhado e modificado por qualquer
pessoa e permanea assim, indefinidamente. O software pode ser vendido, mas deve ser sempre aberto. A
verso 2 da licena prega que qualquer tentativa de impedir esta liberdade acarreta na impossibilidade de
distribuio do software modificado.
76
A licena MIT, tambm chamada de licena X ou de licena X11, uma licena de programas de computadores
(software), criada pelo "Massachusetts Institute of Technology - MIT". Ela uma licena que permite a
reutilizao de software licenciado em programas livres ou proprietrios. Basicamente a nica restrio imposta
por ela a de manter o aviso de copyright.
77
http://www.fsf.org
78
http://www.gnu.org/licenses/gpl-faq.en.html#WhatDoesCompatMean
79
https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses
28
80
O servidor Apache (ou Servidor HTTP Apache, em ingls: Apache HTTP Server, ou simplesmente: Apache) um
popular servidor web livre. Foi criado em 1995 por Rob McCool, ento funcionrio do NCSA (National Center for
Supercomputing Applications).
81
http://www.ufcg.edu.br
82
http://www.angloamericano.edu.br
83
http://www.ufpe.br
84
http://viniciusgarcia.com/about
29
31
A. 10. 18%
B. 3. 5%
C. 20. 36%
D. 8. 14%
E. 15. 27%
32
Pergunta 6 - Perfil
A. 47. 84%
B. 6. 11%
C. 3. 5%
D. 0. 0%
E. 0. 0%
4.1.2.
Quantidade
21
83
18
19
85
O padro de projeto Facade um padro estrutural que fornece uma interface unificada para um conjunto de
interfaces em um subsistema. O padro Facade define uma interface de nvel mais elevado que faz com que o
subsistema fique mais fcil de ser utilizado. De forma mais simples podemos dizer que o padro Facade tem
como objetivo esconder a complexidade de um sistema expondo apenas as interfaces que o cliente precisa
enxergar. Com isso o sistema fica mais simples e fornece uma coleo de mtodos mais fceis de entender.
34
86
Sistema BDDPM Para fins deste trabalho, ser considerado Sistema BDDPM o conjunto de todos os
componentes da Arquitetura do Projeto BDDPM.
36
Em Cincia da Computao, a Chamada Remota de Procedimento (RPC, acrnimo de Remote Procedure Call)
um princpio/protocolo de comunicao que permite que programas de computador possam executar
procedimentos em outros sistemas computacionais, ainda que eles estejam em diferentes domnios em uma
rede. Esta conexo se d de maneira tal que seus detalhes de implementao so transparentes: do ponto de
vista do cdigo, a chamada se assemelha de mtodos locais; s que estes procedimentos so executados
remotamente em outro ambiente. Muito utilizado para implementao do modelo cliente-servidor de
computao distribuda.
37
para a ferramenta atravs de uma requisio HTTP88, pois o plugin roda em cima de
uma aplicao WEB.
Uma API89 (API RPC) permite o acesso a todos os recursos pblicos do
BDDPM (adicionar teste, remover teste, salvar configuraes, obter resultados de
testes, enviar teste para o repositrio, etc.). neste mdulo que est concentrada a
lgica de negcio (do lado do servidor) do BDDPM responsvel pela recepo,
manipulao, transformao e repasse de dados para a camada da lgica de domnio
da aplicao: a camada de Modelo. Esta API, que foi desenvolvida em PHP, tambm
capaz de se comunicar com o repositrio do projeto de software atravs da criao
e envio de arquivos para o mesmo, porm no recebe nenhuma informao deste.
Dependendo de onde veio a requisio, o Controlador nico do BDDPM faz a
chamada da lgica de negcio correta atravs da API. Quando o cliente do controlador
o VS, h uma comunicao do tipo simplex90, onde o transmissor o Visual Studio
e o receptor o Controlador. Esta comunicao (VS Controlador) juntamente com
a comunicao da API com o Repositrio da aplicao testada (em GIT) so as nicas
comunicaes simplex do sistema, as demais comunicaes so do tipo duplex91.
O Controlador foi desenvolvido em PHP seguindo as definies constantes no
manual do desenvolvedor92 do Mantis, que estabelece uma arquitetura voltada para
eventos: aes, comandos e interaes com o usurio tornam-se eventos que so
capturados pela API que executa as aes correspondentes no servidor.
Na camada da lgica de domnio (o Modelo), os dados so persistidos e passam
a ter sentido: entradas dos clientes tornam-se testes, resultado de testes so
classificados, etc. O dado, que algo quantificvel e que pode ser guardado,
transforma-se em informao persistida, que algo que tem significado e transmite
mensagem. Este um mdulo PHP com persistncia em Banco de Dados MySQL
atravs da tcnica de ORM.
88
HTTP sigla de HyperText Transfer Protocol que em portugus significa "Protocolo de Transferncia de
Hipertexto". um protocolo de comunicao entre sistemas de informao que permite a transferncia de dados
entre redes de computadores, principalmente na Internet. O HTTP funciona como um protocolo de requisioresposta no modelo computacional cliente-servidor. Um navegador WEB, por exemplo, pode ser o cliente e uma
aplicao em um computador que hospeda um site da web pode ser o servidor. O cliente submete uma
mensagem de requisio HTTP para o servidor. O servidor, que fornece os recursos, como arquivos HTML e
outros contedos, ou realiza outras funes de interesse do cliente, retorna uma mensagem resposta para o
cliente. A resposta contm informaes de estado completas sobre a requisio juntamente com o contedo
solicitado pelo cliente.
89
API, de Application Programming Interface (em portugus: Interface de Programao de Aplicaes) um
conjunto de rotinas e padres estabelecidos por um software para a utilizao das suas funcionalidades por
aplicativos que no pretendem envolver-se em detalhes da implementao do software, mas apenas usar seus
servios.
90
Uma comunicao dita simplex quando h um dispositivo emissor e outro dispositivo receptor, sendo que
este papel no se inverte no perodo de transmisso. A transmisso tem sentido unidirecional, no havendo
retorno do receptor.
91
Duplex um sistema de comunicao composto por dois interlocutores que podem comunicar entre si em
ambas direes. Diz-se, portanto, bidirecional.
92
http://www.mantisbt.org/docs/master-1.2.x/en/developers/dev.plugins.building.html
38
Por fim, a Aplicao de Pgina nica uma parte do Sistema BDDPM que tem
sua prpria arquitetura conforme exibida na Figura 24:
4.1.3.
Fase 3: Implantao
40
4.2.1.
Configurao
4.2.2.
43
44
98
47
if (error == null)
{
status = "1";
}
else
{
errorMessage = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(error.Message));
status = "0";
}
WebRequest.Create(string.Format(url, id, status, errorMessage)).GetResponse();
}
#endregion
}
}
Figura 41 BDDPM: Cdigo de teste gerado em C#
O cdigo gerado pelo BDDPM dividido em duas partes: (i) o cdigo de teste
em si, onde o programador/desenvolvedor do projeto ir trabalhar e; (2) o cdigo de
48
4.2.3.
O protocolo HTTP define oito mtodos (GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS e CONNECT) que
indicam a ao a ser realizada no recurso especificado. O GET solicita algum recurso por meio do protocolo HTTP.
Alm disso, tambm suporta o envio de dados atravs da URL atravs de pares (chave, valor) na estrutura do
endereo. Ex: http://[endereo]?chave1=valor1&chave2=valor2....
102
https://www.mantisbt.org/wiki/doku.php/mantisbt:plugins_overview
103
Desenvolvimento iterativo uma estratgia de planejamento de retrabalho em que o tempo de reviso e
melhorias de partes do sistema pr-definido.
49
104
Em cincia da computao, uma expresso regular prov uma forma concisa e flexvel de identificar cadeias
de caracteres de interesse, como caracteres particulares, palavras ou padres de caracteres.
105
Nome do mtodo.
106
CamelCase a denominao em ingls para a prtica de escrever palavras compostas ou frases, onde cada
palavra iniciada com Maisculas e unidas sem espaos.
50
4.2.4.
O resultado dos testes pode ser acompanhado em tempo real pelo cliente, isto
, sempre que um teste for executado no Visual Studio, os resultados so enviados
automaticamente para o servidor do BDDPM no momento da execuo.
O mesmo resultado (Figura 44) obtido, no Visual Studio, pelo testador do projeto
ser enviado para o cliente (Figura 45) que ter acesso ao motivo das falhas, caso o
teste falhe. Esta informao til, tanto para acompanhamento, quanto para que o
cliente saiba quais funcionalidades foram implementadas e testadas com sucessos,
quanto as que esto com falhas e as que ainda no foram includas em seu sistema.
51
Um algoritmo uma sequncia finita de instrues bem definidas e no ambguas, cada uma das quais pode
ser executada mecanicamente em um perodo de tempo finito e com uma quantidade de esforo finita. Um
algoritmo no representa, necessariamente, um programa de computador, e sim os passos necessrios para
realizar uma tarefa. Sua implementao pode ser feita por um computador, por outro tipo de autmato ou
mesmo por um ser humano. Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto
diferenciado de instrues em mais ou menos tempo, espao ou esforo do que outros.
108
Charles Babbage foi um cientista, matemtico, filsofo, engenheiro mecnico e inventor ingls que originou
o conceito de um computador programvel. Ele mais conhecido e, de certa forma, referenciado como o
inventor que projetou o primeiro computador de uso geral, utilizando apenas partes mecnicas, a mquina
analtica. Ele considerado o pioneiro e pai da computao. Seu invento, porm, exigia tcnicas bastante
avanadas e caras na poca. Apenas em 1991, o museu de Cincia de Londres criou a mquina diferencial de
Babbage provando que suas teorias estavam corretas e teriam funcionado.
109
Na matemtica, os nmeros de Bernoulli so sequncias de nmeros racionais com profundas conexes na
teoria dos nmeros. So definidos como os coeficientes da Expanso de Taylor:
52
110
http://www.cs.umd.edu/~mvz/handouts/gqm.pdf
http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=43447
112
http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=37458
113
http://cmmiinstitute.com
114
Para a ABNT (1989) paper um pequeno artigo cientfico, elaborado sobre determinado tema ou resultados
de um projeto de pesquisa para comunicaes em congressos e reunies cientficas, sujeitos a sua aceitao por
julgamento.
111
53
Ainda de acordo com Basili e seus colegas, uma medio, para ser efetiva, deve
ser passvel de aplicao em todo o ciclo de vida115 de produtos, processos e
recursos. A proposta do GQM engloba esta perspectiva. A tcnica vem sendo utilizada
a dcadas (desde a dcada de 70). Inicialmente foi utilizada pela NASA, mais
especificamente pelo Centro de Voos Espaciais de Goddard116, quando Dr. David
Weiss e Victor Basili de depararam com um problema no qual tentavam entender os
tipos de mudanas que eram realizados nos projetos de software da instituio.
Mudanas eram comuns, mas eles se fizeram a seguinte pergunta: Como possvel
decidir o que deve ser medido para se atingir os objetivos?. Para trabalhar no
problema, eles decidiram levantar todos os objetivos (Goal) juntamente com uma srie
de questes (Question) relacionadas aos objetivos. Os questionamentos tornavam os
objetivos mais especficos e claros, e era mais fcil levantar mtricas (Metric)
relevantes para medi-los. Surgia ento, o GQM. "The Goal/Question/Metric Method: a
practical guide for quality improvement of software development" [Rini van Solingen,
Egon Berghout; 1999]
Com o passar dos anos, o GQM evoluiu e passou a ser utilizado em outros
ambientes e contextos, inclusive com contribuies significativas do Victor Basili que
publicou diversos artigos sobre estratgias de utilizao da tcnica. O GQM define um
modelo de medio baseado em mtricas para avaliao. Este modelo parte de metas
e objetivos organizacionais (e/ou de projeto), estabelecidos e bem claros. Uma grande
vantagem da tcnica que, embora ela tenha sido concebida para avaliao/medio
de software, seus conceitos tambm podem ser aplicados em uma situao onde
deseja-se avaliar se objetivos foram alcanados.
O BDDPM enquadra-se em um perfil que pode ser avaliado com o GQM:
encontra-se na fase de introduo de seu ciclo de vida e foi criado com objetivos claros
e especficos. A tcnica foi utilizada para "medir" o BDDPM. As prximas sees
descrevem o funcionamento da metodologia, bem como os resultados obtidos.
115
54
117
uma documentao sobre Service Level Agreement (SLA) ou Acordo de Nvel de Servio. Trata-se de um
documento detalhado que define os padres de um nvel de servio e a relao entre duas partes: solicitador e
o executor. um instrumento para a gesto das expectativas do cliente. Sua meta definir uma estrutura para
a gesto da qualidade e quantidade dos servios entregues e, por consequncia, atender demanda dos clientes
a partir de um entendimento claro do conjunto de compromissos.
57
Checklist uma palavra em ingls que significa "lista de verificaes". Esta palavra a juno de check
(verificar) e list (lista). Uma checklist um instrumento de controle, composto por um conjunto de condutas,
nomes, itens ou tarefas que devem ser lembradas e/ou seguidas. Uma checklist pode ser aplicada em vrias
atividades
58
5.3.1.1.
5.3.1.2.
O objetivo deste trabalho sempre foi muito claro: propor um conjunto de recursos
para facilitar a adoo do BDD no mercado; recursos estes que foram inseridos em
59
uma ferramenta que foi avaliada dentro de um ambiente de produo real atravs da
tcnica GQM. A ferramenta criada recebeu o nome de BDDPM (Behavior Driven
Development Plugin for Mantis).
5.3.1.3.
Estabelecimento
Avaliao do Projeto
da
Equipe
de
5.3.1.4.
A criao do Plano de Avaliao do Projeto foi feita pela Equipe GQM, ou seja,
Alvaro Magnum. Foi estabelecido um cronograma de dois meses para avaliao do
BDDPM quanto aos seus objetivos. Embora a aplicao do estudo j tivesse sido
autorizada pela PBprev para fins acadmicos; para estimular o rgo, bem como a
equipe de avaliao do projeto, que tambm uma equipe de desenvolvimento dentro
da Paraba Previdncia, foi feita uma apresentao geral do BDDPM como uma
ferramenta que poderia melhorar o processo de testes dentro da instituio atravs
da utilizao do Behavior Driven Development conforme proposto pelo plugin. Caso
os resultados da avaliao fossem promissores, toda a equipe j estaria treinada e
apta a utilizar o BDDPM dentro dos projetos do rgo e os prprios clientes dos
produtos de software a serem criados poderiam participar do processo de
desenvolvimento com a criao dos testes de aceitao para os mesmos.
Como o prprio gestor de TI da PBprev (Alvaro Magnum) participou de todo o
projeto, tanto como proponente, como acompanhador da avaliao, como
desenvolvedor, como gestor e como analista; os avanos e resultados eram
registrados e propagados semanalmente junto a alta gesto do rgo. Tambm foi
definido que o BDDPM seria utilizado em um projeto real dentro da instituio e seria
avaliado nessas condies. Por se tratar de uma primeira aplicao da metodologia
do GQM, pelo curto prazo para aplicao da avaliao e pelas incertezas dos riscos
envolvidos em relao ao GQM, ficou definido que todo e qualquer problema seria
tratado sob demanda, ou seja, a medida que acontecesse; seguindo, mais ou menos,
o modelo proposto pela tcnica do Just in Time (JIT119), isto , para reduzir os custos
de tempo relacionados ao levantamento de possveis problemas que pudessem
ocorrer no projeto, estabeleceu-se que as decises seriam tomadas na hora em que
119
Just in Time um sistema de administrao da produo que determina que nada deve ser produzido,
transportado ou comprado antes da hora certa. O termo just in time, vem do ingls e significa na hora certa.
O sistema "just in time" pode ser aplicado em qualquer organizao, e auxilia na reduo de custos.
60
ele ocorressem. Esta seria a forma de gesto dos riscos. Por fim, ficou estabelecido
um cronograma de dois dias para o treinamento da equipe de avaliao do projeto em
cima do GQM e que todas as comunicaes se dariam de forma oral, atravs de
reunies e encontros, para evitar rudos120 de comunicao.
5.3.1.5.
Treinamento e Promoo
120
Rudo so todas as interferncias que prejudicam o entendimento da mensagem pelo receptor durante o
processo da comunicao.
121
Brainstorming, ou "Tempestade de Ideias", o nome dado uma tcnica grupal ou individual na qual
potencialidades criativas so exploradas e colocadas a servio de objetivos pr-determinados. Em termos
simples, trata-se de uma reunio de trabalho em que as ideias devem fluir livremente e sem compromisso para
que a inovao possa emergir.
61
5.3.2.1.
122
Etapa dispensada uma vez que no h avaliao de processos de desenvolvimento e/ou de melhoria de
processos e/ou de qualidade de software, mas avaliao estrita de cumprimento de objetivos.
62
BDDPM
Impulsionar a aceitao e utilizao do BDDPM
Facilidade de Uso
Usurios do BDDPM
Projetos de desenvolvimento de software testes
BDDPM
Aplicao do BDD em testes de Software
Eficincia e Eficcia
Gestores, desenvolvedores e testadores de software
Projetos de desenvolvimento de software testes
BDDPM
Adoo da tcnica do Behavior Driven Development
Facilidade de Aplicao da tcnica
Clientes, gestores, desenvolvedores e testadores
Projetos de desenvolvimento de software testes
Tabela 9 Objetivo de medio 3: Facilitar a adoo do BDD
Objeto de Estudo
Objetivo
Enfoque
Ponto de Vista
Contexto
BDDPM
Criao de testes sem necessidade de conhecimento tcnico
Escrita de testes
Clientes de produtos de Software
Projetos de desenvolvimento de software testes
5.3.2.2.
63
Antes da aplicao das entrevistas, foi feita uma reunio para que todos os
envolvidos entendessem plenamente os objetivos levantados no passo anterior, pois
eles seriam o foco da avaliao. Vale a pena ressaltar que nem todas as medies
estaro presentes no Abstraction Sheet, apenas as mais importantes do ponto de
vista de cada colaborador. Conforme explanado anteriormente, foi decidido que todos
os integrantes da equipe de avaliao participariam de todas as etapas de aplicao
do GQM. Desta maneira, o questionrio foi respondido pelos trs membros:
Daniel de Oliveira:
Possveis Mtricas:
i. Poucas funes / opes em tela.
ii. Complexidade das funes / opes em tela (Nvel de dificuldade).
iii. Nota para nvel de facilidade.
iv. Nota em termos de facilidade de uso.
v. Quantidade de cliques para se chegar onde quer.
vi. Nota em termos de intuitividade de interface.
Expectativas de Medio:
i. Poucas funes / opes em tela: At 4.
ii. Complexidade das funes / opes em tela: 1 (3 Mais Difcil).
iii. Nota para nvel de facilidade: de 2 a 3 (3 Mais Fcil).
iv. Nota em termos de facilidade de uso: 3 (Mais Fcil).
v. Quantidade de cliques para se chegar onde quer: At 3.
vi. Nota em termos de intuitividade de interface: 3 (Mais Intuitivo).
Fatores de Impacto:
i. Complexidade da funcionalidade.
ii. Subjetividade da facilidade.
iii. Maturidade do usurio em relao a uso de Sistemas de Informao.
iv. Subjetividade da Pergunta
Impactos dos Fatores:
i. Normalmente, quanto mais complexa a funcionalidade, mais complexa a tela.
ii. O conceito de fcil e difcil subjetivo e depende do nvel de conhecimento de cada
pessoa.
iii. Quanto maior a maturidade do usurio, mais confivel ser o resultado da medio.
iv. Alguns usurios podem necessitar de maiores interaes (cliques) para alcanar seus
objetivos.
v. A valorao do atributo facilidade varia de pessoa para pessoa.
Tabela 11 Avaliao do BDDPM: Resultado da entrevista GQM
5.3.2.3.
Definio de questes/perguntas e
hipteses
Esta etapa inicia-se com o refinamento da etapa anterior para obteno das
perguntas GQM, que devem ser claras, objetivas e operacionais para que as mtricas
possam ser avaliadas/medidas a partir delas. Com a participao de todos os
membros envolvidos, foram levantadas diversas possveis perguntas e hipteses.
Ainda que as entrevistas tenham sido conduzidas individualmente, houve redundncia
de informao, provavelmente pela similaridade de perfis e pela alta expectativa em
relao ao BDDPM.
Aps dois dias de reunies, a equipe de avaliao do BDDPM, com a
participao de todos, chegou-se as seguintes concluses/definies:
5.
6.
7.
8.
Bitbucket um servio de hospedagem de repositrios para projetos que usam o Mercurial ou Git. O rgo
oferece planos comerciais e gratuitos, pblicos e privados.
69
5.3.2.4.
relao as mtricas avaliadas pelas respostas Sim e No, a avaliao seria feito
aps a verificao do quantitativo de pessoas que marcaram cada uma das respostas.
Para futuras referncias ficou estabelecido que as mtricas seriam referenciadas na
sequncia da lista acima, recebendo um prefixo M, de mtrica. Sendo assim, existem
25 mtricas de avaliao: da M01 at a M25.
5.3.2.5.
71
72
5.3.2.6.
73
5.3.2.7.
3.
4.
5.
6.
7.
78
Captulo 6 Concluso
Este o ltimo captulo do trabalho. Seu objetivo falar sobre as dificuldades
(Seo 6.1) encontradas no decorrer do projeto de criao de avaliao do BDDPM,
falar sobre alguns trabalhos futuros (Seo 6.2) que partiram de necessidades
identificadas no decorrer do projeto, elencar algumas contribuies (Seo 6.3)
advindas do BDDPM e fazer as consideraes finais (Seo 6.4) sobre o trabalho.
Trata-se de um objetivo sucinto e objetivo, dado que grande parte dos
comentrios e anlises foram feitos nos captulos anteriores.
Uma vez que todos esses trabalhos forem concludos o BDDPM ser novamente
analisado. No apenas com GQM, mas agora tambm com uma tcnica denominada
Grounded Theory124, que permite, atravs de uma anlise rigorosa e sistemtica,
entender determinada situao sem uma teoria a ser testada; apenas atravs da
anlise de dados que emergirem de um determinado evento
6.3. Contribuies
Entre as principais contribuies do trabalho, pode-se destacar:
1. Facilitou a adoo do BDD dentro de uma empresa real - entregar
valor aos clientes faz parte da vantagem competitiva de qualquer
empresa. Facilitar a adoo do BDD e permitir que clientes de projetos de
desenvolvimento de software participem mais ativamente dos projetos e
eles mesmos possam escrever os testes para os produtos que esto
comprando, entregar valor. O ferramental fruto deste trabalho garantiu,
dentro de um ambiente real, a PBprev, esta entrega.
2. Exemplificao real e prtica de como aplicar o GQM para avaliao
de software este documento descreve, em detalhes, como o GQM pode
ser aplicado de maneira prtica para avaliar um produto de software
quanto ao cumprimento de objetivos;
3. Definio dos requisitos bsicos para uma ferramenta BDD no
mercado aps pesquisa bibliogrfica e pesquisa com 56 profissionais
do mercado de TI, foi possvel estabelecer um conjunto de funes
mnimas para que uma ferramenta BDD permita, de fato, a utilizao e
adoo da tcnica;
4. Definio de um conjunto de funcionalidades para facilitar a adoo
do BDD no mercado dentre eles esto a possibilidade de criao de
124
http://www.groundedtheory.com
81
5.
6.
7.
8.
125
http://www2.cin.ufpe.br/site/secao.php?s=3&c=116
82
83
Referncias Bibliogrficas
Beck, K. Test Driven Development: By Example. Boston, MA, USA: Addison-Wesley
Longman Publishing Co., Inc., 2002. ISBN: 0321146530.
Solis, C and Xiaofeng Wang (2011). A Study of the Characteristics of Behaviour Driven
Development. In the proceedings of the 37th EUROMICRO conference on Software
Engineering and Advanced Applications (SEAA) (pp. 383 - 387). Oulu, Finland.
I. Necas. BDD as a Specification and QA Instrument. Diplomov prce. Masarykova
univerzita, Fakulta informatiky, 2011 [cit. 2014-01-30].
K. Beck, M. Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J.
Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R. C. Martin, S. Mellor,
K. Schwaber, J. Sutherland e D. Thomas. Manifesto for Agile Software Development.
Acessado em Novembro de 2014. URL: http://www.agilemanifesto.org.
D. Chelimsky, D. Astels, B. Helmkamp, Z. Dennis, D. North e A. Hellesoy. The Rspec
Book: Behaviour Driven Development With Rspec, Cucumber, and Friends. Pragmatic
Bookshelf Series. Pragmatic Programmers, LLC, 2010. ISBN: 9781934356371.
Naik, Kshirasagar, Tripathy, Priyadarshi. Software testing and quality assurance.
Wiley. 2008. ISBN 978-0-471-78911-6
C. Feduke. Instant RSpec Test - Driven Development How-to. Packt Publishing, 2013.
ISBN: 1782165223, 9781782165224.
Ye, Wayne. Instant Cucumber BDD How-to. Packt Publishing. 2013. ISBN 978-178216-348-0.
A. Hellesoy e M. Wynne. The Cucumber Book: Behaviour-Driven Development for
Testers and Developers. Pragmatic Programmers. Pragmatic Bookshelf, 2012. ISBN:
9781934356807.
D. North. Introducing BDD.
http://dannorth.net/introducing-bdd.
Acessado
em
Julho
de
2014.
URL:
85
R. Carvalho, R. Soares Manhes, and F.L. de Carvalho, Filling the Gap between
Business Process Modeling and Behavior Driven Development, CoRR, 2008.
Krzysztof Czarnecki, Generative Programming - Principles and Techniques of
Software Engineering Based on Automated Configuration and Fragment-Based
Component Models, 1998, Department of Computer Science and Automation.
Van Solingen, Rini; Egon Berghout (1999). The Goal/Question/Metric Method.
McGraw-Hill Education. ISBN 0-07-709553-7.
Basili, V.R.; J. Heidrich, M. Lindvall, J. Mnch, C.B. Seaman, M. Regardie, A.
Trendowicz (2009). "Determining the impact of business strategies using principles
from goal-oriented measurement". Business Services: Konzepte, Technologien,
Anwendungen. Internationale Tagung Wirtschaftsinformatik. Books OCG. Vienna,
Austria: sterreichische Computer Gesellschaft. ISBN 978-3-85403-246-5.
M.K. Daskalantonakis. A Practical View of Software Measurement and Implementation
Experiences within Motorola. IEEE Transactions on Software Engineering, Vol. 18, No.
11, 1992.
C. Differding, B. Hoisl, C. Lott. Technology Package for the Goal/Question Metric
Paradigm. Technical Report 281-96, University of Kaiserslautern, Department of
Computer Science, D-67653 Kaiserslautern, Germany, 1995.
Is TDD Dead? Acessado em Julho de 2014. URL: http://martinfowler.com/articles/istdd-dead.
Popular Bug Tracking Software. Acessado em Julho de
http://www.softwaretestinghelp.com/popular-bug-tracking-software.
2014.
URL:
Generative
Programming.
Acessado
em
Julho
de
2014.
URL:
http://www.programtransformation.org/Transform/GenerativeProgrammingWiki.
Jerkovic, John I. SEO Warrior. O'Reilly, 2009.ISBN: 978-0-596-15707-4.
Sommerville, Ian. Software Engineering. 9. ed. Harlow, England: Addison-Wesley,
2010. ISBN 978-0-13-703515-1.
Nagappan, N., Maximilien, E., Bhat, T., Williams, L.: Realizing Quality Improvement
through Test Driven Development: Results and Experiences of Four Industrial Teams.
Empirical Software Engineering, pp. 289-302 (2008).
Arnold, D., Corriveau, J., Shi, W.: Validation against Actual Behavior: Still a Challenge
for Testing Tools. Software Engineering Research and Practice (SERP). CSREA
Press. (2010).
86
Dezembro
de
2014.
URL:
You wont believe how old TDD is. Acessado em Dezembro de 2014. URL:
https://arialdomartini.wordpress.com/2012/07/20/you-wont-believe-how-old-tdd-is.
Selenium. Acessado em Dezembro de 2014. URL: http://www.seleniumhq.org.
87
88
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Em relao a facilidade de uso do BDDPM, que nota, de 1 a 4, voc atribui ferramenta? Considere uma
escala onde 1 significa "Difcil de Usar" e 4 "Fcil de Usar". As notas 2 e 3 representam nveis intermedirios
com aproximao dos conceitos de "Fcil" e "Difcil", respectivamente.
Para utilizar o BDDPM de maneira satisfatria, qual o nvel (de 1 a 4) de conhecimento tcnico empregado
por voc? Considere uma escala onde 1 significa "Nenhum Conhecimento Tcnico" e 4 significa "Muito
Conhecimento Tcnico". As notas 2 e 3 representam nveis intermedirios com aproximao dos conceitos de
"Nenhum" e "Muito", respectivamente.
Considerando o objetivo do BDDPM de permitir a utilizao da tcnica do BDD em um projeto de
desenvolvimento de software, bem como os recursos oferecidos pela ferramenta; classifique a interface da
ferramenta atribuindo uma nota de 1 a 4. Considere uma escala onde 1 significa "Pouco Intuitiva" e 4 significa
"Muito Intuitiva". As notas 2 e 3 representam nveis intermedirios com aproximao dos conceitos de "Pouco"
e "Muito", respectivamente.
Considerando os recursos do BDDPM, como voc classificaria sua interface considerando-a como um meio
de acesso eficaz e atraente a estes recursos? Considere uma escala onde 1 significa "Baixa Qualidade" e 4
significa "Alta Qualidade". As notas 2 e 3 representam nveis intermedirios com aproximao dos conceitos
de "Baixo" e "Alto", respectivamente.
Qual a mdia de tempo (em minutos) para execuo da fase de testes dos projetos de desenvolvimento de
software da empresa, sem a utilizao do BDDPM? (Pergunta de Suporte)
Qual a mdia de tempo (em minutos) para execuo da fase de testes dos projetos de desenvolvimento de
software da empresa, com a utilizao do BDDPM?
Qual a mdia de tempo (em minutos) de durao dos projetos de desenvolvimento de software da empresa,
sem a utilizao do BDDPM? (Pergunta de Suporte)
Qual a mdia de tempo (em minutos) de durao dos projetos de desenvolvimento de software da empresa,
com a utilizao do BDDPM?
Levando-se em considerao a utilizao do BDDPM no projeto de desenvolvimento de software, como voc
classifica (nota de 1 a 4) o impacto dos benefcios agregados ao projeto? Considere uma escala onde 1
significa "Baixo Impacto" e 4 significa "Alto Impacto". As notas 2 e 3 representam nveis intermedirios com
aproximao dos conceitos de "Baixo" e "Alto", respectivamente.
Considerando a tcnica do BDD, como voc classificaria (nota de 1 a 4) o nvel de alinhamento e atendimento
do BDDPM a ela? Considere uma escala onde 1 significa "Fraco" e 4 significa "Forte". As notas 2 e 3
representam nveis intermedirios com aproximao dos conceitos de "Fraco" e "Forte", respectivamente.
Qual o quantitativo mdio de falhas/bugs encontrados nos produtos dos projetos de desenvolvimento de
software da empresa, sem a utilizao do BDDPM? (Pergunta de Suporte)
Qual o quantitativo mdio de falhas/bugs encontrados nos produtos dos projetos de desenvolvimento de
software da empresa, com a utilizao do BDDPM?
Qual o seu nvel (nota de 1 a 4) de satisfao em relao a eficcia e utilizao do BDDPM em um projeto de
desenvolvimento de software? Considere uma escala onde 1 significa "Pouco Satisfeito" e 4 significa "Muito
Satisfeito". As notas 2 e 3 representam nveis intermedirios com aproximao dos conceitos de "Pouco" e
"Muito", respectivamente.
Ao utilizar o BDDPM no projeto de desenvolvimento de software, voc precisou recorrer outras ferramentas
para aplicao do BDD? Responda com Sim, ou No.
Voc pretende utilizar o BDDPM em outros projetos? Responda com Sim, ou No.
Considerando a forma de disponibilizao do BDDPM, como voc classificaria (nota de 1 a 4) sua
acessibilidade e visibilidade? Considere uma escala onde 1 significa "Pouca acessibilidade / visibilidade" e 4
significa "Muita acessibilidade / visibilidade". As notas 2 e 3 representam nveis intermedirios com
aproximao dos conceitos de "Pouco" e "Muito", respectivamente.
Quantas linguagens de programao devem ser suportadas, em sua opinio, para que BDDPM tenha grande
aceitao no mercado?
Qual o seu nvel de dificuldade (nota de 1 a 4) para criar um teste no BDDPM? Considere uma escala onde 1
significa "Fcil" e 4 significa "Difcil". As notas 2 e 3 representam nveis intermedirios com aproximao dos
conceitos de "Fcil" e "Difcil", respectivamente.
Quanto tempo, em mdia (minutos), voc leva para criar um teste no BDDPM?
89
AUTORIZAO
Eu, Alvaro Magnum Barbosa Neto, gestor de TI da Paraba Previdncia, matrcula
460.212-9, autorizo a utilizao do BDDPM (plugin para aplicao da tcnica de teste de
software denominada Behavior Driven Development) no projeto SISPROTO SSAC desta
instituio, para fins de avaliao acadmica (dissertao de mestrado de aluno da UFPE
Universidade Federal de Pernambuco).
A partir desta data, ficam disponveis para o projeto, 04 colaboradores e toda
infraestrutura de TI da PBprev para serem utilizados de acordo com as necessidades de
utilizao e avaliao do BDDPM at a data de finalizao do projeto.
Ressalte-se que, para todos os fins e sem ressalvas, que o SISPROTO SSAC de
propriedade da PBprev e foi utilizado apenas como suporte para avaliao do BDDPM. A
presidncia da PBprev no autoriza detalhamento de cdigos da ferramenta, apenas a
divulgao do nome da empresa, da avaliao dos resultados e da metodologia empregada.
________________________________________
ALVARO MAGNUM BARBOSA NETO
GESTOR DE TI PARABA PREVIDNCIA
MATRCULA 460.212-9
TELEFONE: (0xx83) 2107.1128
E-MAIL: alvaromagnum@pbprev.pb.gov.br
90
91