Você está na página 1de 16

02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas?

- Eduardo Pires

DDD, TDD, BDD, Afinal o que so essas


siglas?
Postado em 6 DE JUNHO DE 2012

Ol pessoal, Hoje vamos falar sobre DDD, TDD, BDD.

Muitas vezes pela internet em busca de novos conhecimentos nos deparamos com diversas
siglas, estando elas anunciadas em algum requisito para desenvolvimento de sistema ou
at mesmo citadas em alguma abordagem tcnica.

Afinal o que so e para que servem?


Abordaremos de forma prtica sua definio, muitos iro perceber que j esto usando e
nem sabiam.

DDD Domain-Driven Design (Desenvolvimento Guiado por Design ou


Desenvolvimento orientado a Domnio)

Erick Evans lanou em 2003 o Domain-Driven Design: Tackling Complexity in the Heart of
Software Mal imaginou que o livro tanto quanto o conceito alcanaria tal sucesso e
respeito.

Trata-se de uma abordagem de design de software de forma disciplinada, abordando uma


srie de conceitos e tcnicas sempre com foco no domnio do software.
Hoje em dia precisamos entender muitas tcnicas, OO, SOA, EntityFramework, NHibernate,
Injeo de Dependncia e etc O DDD no vem para substituir e tambm no uma
tecnologia, poderamos dizer uma filosofia, no algo super novo inventado e sim mais
uma compilao de muito que j sabemos e aplicamos.

Como dito anteriormente o foco no Domnio do Software, no propsito que o software


deve atender, a automatizao de um processo de negcio.
Domnio nada mais que do que voc j est imaginando, ou seja, atender completamente
um determinado negcio.

Ok! Mas todos os softwares corporativos no so desenvolvidos nesse propsito?


O DDD traz abordagens de como fazer isto, como atender um domnio complexo de
informaes. O pilar do DDD conceitualizar em forma de Modelo o seu domnio.

Quando pensamos em modelo nos vem cabea: UML, Diagrama de Sequncia, Diagrama
de Estados e todo arsenal que pudermos montar.
Mas no exatamente, o Modelo pode ser feito de qualquer forma que possa ser entendido,
Papel de po, UML, Lego ou Massa de modelar, No h padro para modelo. Se o seu

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 1/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

modelo expressar certo o funcionamento de negcio est perfeito!

E o que aborda o Modelo?


O modelo um universo composto por cinco itens principais:
Entidades, Objetos de Valor, Factories, Servios, Repositrios.
J comeou a ficar familiar, mas vamos entender mais um detalhe que o DDD aborda:

Ubiquitous Language:
Traduzindo, Linguagem Onipresente, a que est em todo lugar. a linguagem de quem
entende do negcio.
Ex. O seu cliente, por um acaso um banco, fala Amortizao (pagamento de parcelas).
Logo sua equipe tambm fala Amortizao, e isso se repete no modelo e no cdigo.
uma forma de todos falarem a mesma lngua, a lngua do negcio (Domnio).
Para se obter sucesso de um projeto DDD necessrio que todos os integrantes falem e
entendam completamente o domnio.

Separao das camadas:


Na hora de desenvolver as camadas necessrio cuidado, as camadas precisam ser
independentes, se duas camadas se misturam ento no so duas camadas. Se voc est
desenvolvendo um sistema Web orientado a um domnio e resolveu migrar para ASP.Net,
voc necessita mudar a camada de UI (User Interface) e nada mais, pois so camadas
independentes, o Core Domain (Dominio Principal) no depende da camada UI, e no s
necessariamente uma UI, podemos estar falando de um WebService por exemplo, imagine
que esta desenvolvendo um servio SOA e quem consome o Core Domain seja um outro
sistema.
Um software de negcios, com regras complexas pode ter N camadas, mas deve existir a
camada Domnio, ela o corao do sistema e a mais importante, afinal l esto as regras
de negcio que atendem ao domnio.

Voltando aos itens principais do modelo, comearemos com a Entidade:


Tudo que tenha valor ao domnio (regra de negcio) deve possuir uma entidade.
Voltando ao exemplo do banco, uma entidade seria o Cliente, toda entidade possui uma
identidade nesse caso a Entidade Cliente possui uma Identidade (CPF).
Devemos escrever nesta camada todas as entidades ligadas ao domnio da forma mais
simples, que seja implementada facilmente sem algum tipo de interface ou etc.

Objetos de valor:
So objetos reconhecidos por seus atributos e geralmente so imutveis.
Por ex: Tipos de Conta so do tipo Corrente, Investimento, Crdito, Transitria e etc.
Sendo assim na hora de referenciar esse objeto de valor em sua entidade voc necessita
que ele possua estes tais atributos, pois fazem parte do domnio de seu negcio,
chamamos isso de Agregao.

Servios:
So ferramentas, pois no so entidades nem possuem objetos de valor.
Se por exemplo voc precisa enviar um relatrio de contas correntes ao Banco Central, sua

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 2/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

entidade bem como os objetos de valor no esto preparados para isso, voc precisa que
um servio execute essa tarefa, e por isso eles esto presentes no modelo de domnio do
DDD.

Factories:
Em portugus Fbricas, Factories criam objetos, existem cenrios quais so impossveis
de definir um objeto sem a criao dele atravs de uma Factory, sugiro para quem no
entende direito o conceito de Factory, a leitura deste exemplo.

Repositrio:
No importa onde esteja alocado seu repositrio, em algum momento voc vai precisar
guardar e recuperar um conjunto de informaes como um objeto.
Repositrios no tem regra de negcios, eles fazem a intermediao da sua camada de
domnio e sua camada de mapeamento de dados. Pode ser usado NHibernate, Entity
Framework entre outros, escolha bem o seu.

Enfim, qualquer abordagem de DDD muito bem aceito numa metodologia gil.
Receber os feedbacks dos donos do negcio ao tempo todo fundamental para uma
entrega assertiva. Dentro de uma metodologia gil programar pequenas entregas uma
boa prtica, pois no se inicia no 0% e entrega-se 100% com grandes chances de conter
desvios de entendimento.
Sprints, entregas particionadas, diminuem o risco de desvio do entendimento do domnio,
assim como do retrabalho.

Lembrando que uma metodologia gil no faz parte exatamente de uma abordagem de
DDD, mas muito bem vinda.

O DDD indicado ao meu projeto?


O DDD indicado para seu projeto caso ele possua um conjunto de regras complexas de
negcio, para um sistema simples no aconselhado o uso de DDD.
Na maioria dos sistemas corporativos so encontradas diversas regras de negcio e cada
uma com sua particularidade e complexidade. Iniciar um projeto usando a abordagem de
DDD previne que o sistema cresa cada vez mais de uma forma no orientada ao domnio.

TDD Test-Driven Development (Desenvolvimento Orientado a Testes)

Baseado no DDD e defendido pelo Extreme Programming XP (outra abordagem de


programao gil) o Desenvolvimento de Software orientado a Testes.

uma abordagem que oferece muita agilidade dentro do ciclo de desenvolvimento, a ideia
codificar um sistema com 100% de cobertura dos testes.

O processo de desenvolvimento do TDD seria:


Red, Green, Refactor.

1. Escrever um teste, sem mesmo ter escrito o cdigo real a ser testado (Figure o que

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 3/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

deseja testar).
2. Executar os testes e acompanhar a falha (Pode ser um cdigo falso que retorne o
erro) (Red)
3. Escrevemos a funcionalidade do sistema que iremos testar.
4. Testar novamente, agora para passar (Se no passou algo saiu errado, faa
novamente o passo 3) (Green)
5. Refatore sua funcionalidade e a escreva por completo (o teste tambm) (Refactor)
6. Passe para o prxima estria ou caso de uso e inicie novo teste.

Para a criao de testes em .Net bem recomendado o uso de NUnit.


Abaixo um exemplo de caso de teste desenhado:

1 using System;
2 using NUnit.Framework;
3
4 namespace TDD.ClienteBanco
5 {
6 [TestFixture]
7 public class ContaTests
8 {
9 [Test]
10 public void TestAporte()
11 {
12 Conta conta = new Conta("Test");
13 conta.Deposito(500.0);
14 conta.Deposito(70.0);
15 Assert.AreEqual(570.0, conta.Balanco);
16 }
17 }
18 }

Resumindo, uma prtica bem utilizada e entende que o desenvolvimento feito do teste
para o cdigo.
Teste unitrio no tarefa do Tester e sim do desenvolvedor, em muitas empresas um
cdigo sem testes unitrios nem sobe no repositrio. Pense em cdigo, pense em teste de
cobertura de cdigo.

Para criao dos testes bem eficaz a utilizao de Mock, Dummy, Fake, Stub, que so
considerados dubls de teste, pois se passam por objetos reais sem a necessidade de
codificao dos mesmos na etapa da escrita do teste.

Posso utilizar TDD com DDD?


Sim.
Posso utilizar TDD em processos no geis?
Sim.
TDD til para design de software?
Sim.
Escrever testes aps desenvolvimento TDD?
No.

BDD Behavior Driven Development (Desenvolvimento Guiado por


Comportamento ou Desenvolvimento Orientado a Comportamento)

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 4/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Foi originalmente concebido em 2003, por Dan North, como uma resposta ao TDD, tem se
expandido muito assim como DDD e TDD.

uma abordagem que funciona tambm muito bem com uma metodologia gil,
encorajando desenvolvedores, pessoas de qualidade, no tcnicas e de negcios em um
projeto de software. Tambm defende o uso da ubiquitous language como explicado acima
facilitando a conversao entre toda equipe envolvida.

Como comea a prtica do BDD:

1. Envolver as pessoas no processo atravs de Outside-in


Development (Desenvolvimento de Fora pra Dentro)
2. Usar exemplos para descrever o comportamento de uma aplicao ou unidades de
cdigo
3. Automatizar os exemplos para prover um feedback rpido e testes de regresso
4. Usar deve na hora de descrever o comportamento de software para ajudar
esclarecer responsabilidades e permitir que funcionalidades do software sejam
questionadas
5. Usar dubls de teste (mocks, stubs, fakes, dummies) para auxiliar na colaborao
entre mdulos e cdigos que ainda no foram escritos.

Como o BDD guiado pelo comportamento do negcio uma maneira de perceber o


benefcio produzido pela interface grfica, produzindo um feedback rpido para saber se
os requisitos descritos atravs dos comportamentos esto funcionais.Escrevendo um
requisito de comportamento do sistema:
Em BDD, um desenvolvedor, ou profissional do setor de qualidade ou at mesmo o cliente
podem escrever os testes que basicamente so compostos em duas partes, a definio da
funcionalidade a ser implementada (User storie) e os cenrios de uso que iro validar este
requisito.
A funcionalidade escrita segundo um padro:
Funcionalidade : [Nome]

Para [ Valor ao Negcio ]


Eu, como [ Papel ]
Desejo poder realizar [ Funcionalidade ]

Dessa forma fica muito claro a todos quais so os objetivos que uma funcionalidade deseja
atingir e de muito fcil entendimento.
Os cenrios acompanham a funcionalidade de forma que demonstram comportamentos
para atend-la:
Cenrio : [ Nome ]

Dado que [ Estado inicial do sistema ]


Quando [ Ao a ser realizada no sistema ]
Ento [ Coisas que o sistema deve fazer aps a ao do Quando ]

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 5/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

As palavras Dado que, Quando e Ento (Given, When e Then em ingls) so quase
sempre usadas para guiar os cenrios, no so obrigatrias.

A criao de requisitos para teste podem ser automatizados, existe uma ferramenta
chamada SpecFlow, que se adapta ao Visual Studio e suporta o idioma portugus.
Atravs do SpecFlow no Visual Studio necessrio adicionar um arquivo do tipo Feature
File .feature e nele seria escrever uma estria.

Um exemplo bem simples de estria de uma aplicao de vendas poderia ser: Venda de
balas na doceria.

#language: pt-br
Funcionalidade: Vender doces
Para quando uma doce for vendido
Eu, como vendedor
Desejo decrementar um item no estoque

Cenrio: Baixa 1 bala do estoque


Dado que cliente pede 1 bala
E tenho 10 balas em estoque
Quando ele compra realiza a compra
Ento eu fico com 9 balas em estoque

Dado esta descrio o SpecFlow ir gerar um arquivo .feature.cs que ser usado para
testes, se rodar os testes aps o momento da criao do arquivo com certeza vo falhar,
afinal no existe a classe escrita nem a interface desenhada.

possvel fazer testes de interface e end to end sem muito esforo, usando ferramentas
como o Watin e tambm Mock, Dummy, Fake ou Stub como dubls de objetos.

nesse momento que entra o desenvolvimento da sua aplicao utilizando DDD e/ou TDD
(por que no?) e aps desenvolvida deve-se complementar o seu arquivo .feature.cs com
as chamadas da interface para reproduo do requisito desenhado, ento voc poder
acompanhar o funcionamento do seu negcio com base nesses testes.

Esta a abordagem do BDD, estimulando os todos envolvidos da equipe, tcnicos ou no a


escreverem um sistema baseado em comportamentos atravs de requisitos,
estrias, funcionalidades e cenrios.

isso ai pessoal, espero ter abordado o DDD, TDD e BDD de forma clara e que tenha
conseguido explicar cada um deles, suas diferenas entre si e como podem ser trabalhados
juntos.

Referncias:

.netarchitects

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 6/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Wikipedia
MSDN
Learning Test Driven Development

Publicado em .NET GERAL, ALM, ARQUITETURA por EDUARDO PIRES. Marque LINK
PERMANENTE [HTTP://EDUARDOPIRES.NET.BR/2012/06/DDD-TDD-BDD/] .

34 IDEIA S SOBRE DDD, TDD, BDD, A FINA L O QUE S O ESSA S SIGLA S?

Pingback: Os principais conceitos geis explicados - Bizstart

Danilo Miranda
em 13 de agosto de 2015 s 07:28 disse:

Muito bom!

Ricardo
em 8 de julho de 2015 s 02:22 disse:

Ol Eduardo,

Trabalho com DDD e Fluent NHibernte, no qual gosto muito e acho muito seguro,
posso manipular toda a arquitetura e querys.
Meu DDD em Fluent Nhibernate, tenho aplicaes em Win, Web, e Servios.
Minha duvida ? aplicaes onde toda microsoft.
Vale apena mudar para EF Code First, por mais que esteja imatura?

Paulo Viana
em 7 de julho de 2015 s 11:25 disse:

Muito bom. Muito obrigado pelo post.


http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 7/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Paulo Henrique
em 10 de junho de 2015 s 18:23 disse:

Eduardo,

Estava estudando seu material que por sinal est muito mbom, e me surgiu a
seguinte dvida, em relao ao domnio, que est em relao ao idioma utilizado
para as classes, exemplo a entidade empresa poderia ser chamada de Company.

Neste caso como ficaria a questo do entendimento que enfatizado em

Ubiquitous Language:
Traduzindo, Linguagem Onipresente, a que est em todo lugar. a linguagem
de quem entende do negcio.

[]s

Guilherme
em 8 de agosto de 2016 s 16:04 disse:

Paulo, boa tarde

Acredito que sua resposta est no vdeo abaixo


Vale pena conferir

https://www.youtube.com/watch?v=V8XoOzaxApM

Abrao

Angelo Ribeiro
em 9 de maio de 2015 s 11:20 disse:

Boa Eduardo. Material claro e objetivo. Comecei a acompanhar seu site a poucos

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 8/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

dias e estou gostando muito. Quando crescer quero ser igual a voc (hhaha).
Parabns pelo trabalho!

wilson
em 27 de abril de 2015 s 14:46 disse:

Boa tarde.
Eduardo, Estou iniciando um pequeno projeto, qual destes modelos seria o ideal?

Felipe Rocha
em 18 de novembro de 2014 s 09:42 disse:

Muito bom Eduardo como sempre

Voc tem exemplos, ou sabe onde eu posso encontrar projetos-exemplo da


aplicao de DDD e TDD no github por exemplo? Estou me aprofundando em design
patterns para comear a utilizar nos projetos da minha empresa

abraos!

Eduardo Pires
em 13 de janeiro de 2015 s 23:21 disse:

Fala Felipe!

Muito obrigado pelo feedback!


http://eduardopires.net.br/2014/10/tutorial-asp-net-mvc-5-ddd-ef-
automapper-ioc-dicas-e-truques/

Abs!

Wanderlei Silva

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 9/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

em 1 de abril de 2015 s 01:01 disse:

Parabns, muito bem explicado. Ajudou muito!

Vanessa Martins
em 18 de outubro de 2014 s 17:44 disse:

Adorei o artigo muito legal, vale a pena mesmo irei comear a implementar

Eduardo Pires
em 27 de outubro de 2014 s 23:02 disse:

Obrigado pelo feedback Vanessa!

Boa sorte
Abs!

Jordan Pedro
em 29 de junho de 2014 s 18:28 disse:

Muito esclarecedor, mas possuo uma dvida com relao a TDD.


Estou iniciando agora na utilizao deste conceito que o TDD e gostaria de saber,
quando crio meus testes, eu devo criar um projeto dentro do meu projeto principal
apenas para fazer testes?
Se eu crio meus mtodos de teste no prprio projeto principal, as tags de teste
[test] ,[TestFixture] , podem ser enviadas no cdigo de produo ?

Sei que so perguntas meio amadoras mas estou comeando nesta parte.
Agradeo ateno.
E mais uma vez parabns pelo seu Site. Tenho muitos colegas que acompanham
bastante suas postagens.

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 10/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Eduardo Pires
em 29 de julho de 2014 s 19:20 disse:

Jordan,

Sempre crie tudo num projeto de testes separadamente, sempre!

Um projeto de teste para cada projeto, por ex, cada class library (camada)
tem seu prprio projeto de testes, isole tudo.

Abs!

Sousa
em 26 de abril de 2014 s 18:37 disse:

Parabns pelo post.

Eduardo Pires
em 29 de abril de 2014 s 09:17 disse:

Obrigado pelo feedback Sousa!

Abs!

Ana Ferraz
em 25 de abril de 2014 s 14:39 disse:

Parabns pelo post. Muito bom. Obrigada!

Ana Ferraz

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 11/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Eduardo Pires
em 29 de abril de 2014 s 09:12 disse:

Obrigado pelo feedback Ana!

Abs!

Ana Silagi
em 18 de fevereiro de 2014 s 11:20 disse:

Parabns Eduardo!

Alm de deixar muito claro os conceitos tambm apresentou ferramentas para


ajudar na implementao.

Muito Obrigada,
Ana

Eduardo Pires
em 18 de fevereiro de 2014 s 22:36 disse:

Obrigado pelo feedback Ana!

Em breve vou disponibilizar um modelo arquitetonico de projeto com estas


3 abordagens entre outras.

Abraos.

Leandro Ribeiro
em 21 de janeiro de 2014 s 20:43 disse:

Excelente post. Vou at utilizar ele como sntese de DDD, TDD e BDD para a minha

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 12/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

equipe. Abs.

Eduardo Pires
em 21 de janeiro de 2014 s 23:00 disse:

Obrigado Leandro!

Abraos.

Fabio Marques
em 8 de janeiro de 2014 s 14:00 disse:

Excelente post! Claro, sucinto e preciso. Parabns!

Eduardo Pires
em 8 de janeiro de 2014 s 15:11 disse:

Obrigado Fbio!

Abraos.

Reginaldo
em 20 de agosto de 2013 s 15:21 disse:

Ol Eduardo!
Minha pergunta est fora do contexto apresentado, mas seria para elogiar seu
blog, ficou bem clean, voc usou qual ferramenta para desenvolver, foi
WordPress?

Eduardo Pires
em 20 de agosto de 2013 s 16:27 disse:

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 13/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Ol Reginaldo,

Uso WordPress Self Host (pois assim posso customizar 100% do site).

Qualquer dvida me escreva em falecom@eduardopires.net.br

Adriano RC
em 7 de maio de 2013 s 20:25 disse:

Ol Eduardo! Excelente matria, estava precisando exatamente disso pra um


seminrio na faculdade. Agora minha dvida : Como poderiam se integrar essas 3
prticas?

Eduardo Pires
em 9 de maio de 2013 s 16:32 disse:

Adriano, o uso das trs prticas algo normal, mas para isso necessrio
o domnio e entendimento de cada uma para no fazer confuso na hora
de usar.

Aconselho estudar cada uma delas separadamente e com o tempo ir


integrando o uso, um processo natural, cada uma possuem
caractersticas especficas logo o uso das trs em conjunto torna-se
natural.

Obrigado por postar e precisado de algo deixe sua pergunta.

Abraos.

Alexandre Rech
em 2 de maio de 2013 s 16:45 disse:

Primeiramente, parabns pelo artigo. Muito Legal.

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 14/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Estou tentando aplicar BDD no projeto que estou trabalhando, porm estou com
uma dvida:
Em qual camada eu aplico BDD?
O que estou fazendo hoje BDD na interface com o usurio e TDD nas camadas de
Aplicao, Domnio e Infra-estrutura. Estou muito errado?

Eduardo Pires
em 2 de maio de 2013 s 17:23 disse:

Ol Alexandre, obrigado por escrever.

Eu costumo pensar em BDD como especificaes executveis.


Voc pode usar BDD e TDD juntos na sua camada de Domnio e na
interface (principalmente Web) tambm comum.

BDD na interface = Outside-In Development (Desenvolvimento de Fora pra


Dentro)
O mtodo BDD guiado pelos benefcios trazidos para o negcio, a melhor
maneira de perceber os benefcios de software atravs de interfaces
grficas de usurio (de fora), pois garantem imediato feedback.

A tcnica outside-in prope iniciar pelas interface grficas e ir entrando


cada vez mais nas camadas de cdigo e componentes que a interface
precisa para atingir plenamente seus objetivos.

No est errado, s precisaria entender a forma que voc est usando o


BDD, se no est criando nenhuma limitao desnecessria.

Abraos.

Armando Janson
em 4 de abril de 2013 s 16:18 disse:

Eduardo,

Parabns pelo artigo, conseguiu explicar de forma simples e clara esses trs
conceitos que muitos muitas vez trabalham e desconhecem.Irei repassar.

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 15/16
02/11/2016 DDD, TDD, BDD, Afinal o que so essas siglas? - Eduardo Pires

Eduardo Pires
em 15 de abril de 2013 s 20:54 disse:

Muito obrigado Armando!

Continue visitando

Robson Monteiro
em 6 de junho de 2012 s 02:41 disse:

Estava justamente pesquisando essas definies para mostrar aqui no meu


trabalho. Consegui sacar a ideia, muito obrigado!
[ ]s

http://eduardopires.net.br/2012/06/ddd-tdd-bdd/ 16/16

Você também pode gostar