Perdi a Virgindade no BDD

Antes que comecem a pensar qualquer coisa: BDD = Behaviour-Driven Development. É considerado a evolução do TDD (Test-Driven Development). P/ resumir a diferença visível:

TDD => JUnit, NUnit
BDD => Cucumber, JBehave

O primeiro framework que conheci foi o Cucumber e, apesar de funcionar com o Python através da gem rubypython (p/ mim ela está no limbo, já que o rubyforge diz uma coisa e o site do provável desenvolvedor, outra), queria algo que não parecesse um "remendo".

Então, ontem, indo no oráculo, após rodar em umas 12 páginas de resultados (atenção, é "12 páginas de resultados de pesquisa" e não "12 páginas dentre os resultados da pesquisa"), encontrei o Pyccuracy. E fiquei feliz: o OpenSuse tem. Fiquei mais feliz ainda em ler isso:

We understand that there are non-english speakers out there doing amazing things, and we want to empower that (the team behind Pyccuracy 0.1 is composed only of Brazilians - but we encourage anyone anywhere to join).

Brasileiros!! \o/
Segui as instruções (foi só baixar o Selenium RC, descompactar e executar usando java -jar) e, de brincadeira, escrevi o seguinte (pseudo-)teste:

As a Anonymous User
I want to Open the homepage
So that I can browse the site

Scenario 1 - Opening the homepage
Given
 I go to "http://127.0.0.1:8000/"
Then
# I see the page loaded

Salvei o arquivo como first_test.acc no diretório testes_pyccuracy, na raiz do projeto Django e executei como segue:

isis@linux-45c9:~/public_html/django-projects/pimp_my_gedit_2/testes_pyccuracy> pyccuracy_console -R False
/usr/lib/python2.6/site-packages/pyccuracy/languages/__init__.py:32: DeprecationWarning: object.__new__() takes no parameters
  cls.__SINGLETON_INSTANCES__[key] = super(type, cls).__new__(cls, *args, **kw)
[000.00%] SUCCESS - Running first test...
[100.00%] SUCCESS - Scenario 1 of 1 <11.52s> - Opening the homepage
================
Test Run Summary
================
Status: SUCCESSFUL

Test Data Stats
---------------
Successful Stories......1 of 1 (100.00%)
Successful Scenarios....1 of 1 (100.00%)

Failed Stories..........0 of 1 (0.00%)
Failed Scenarios........0 of 1 (0.00%)

Total timing: 11.52 secs
Scenarios/Minute: 5.21 scenarios per minute

Não preciso ficar com neuroses como ocorria no RFT na Siemens: o navegador abre sozinho.

Lógico que teste unitário não é dispensável, mas que cliente normal quer ver ou se importa com teste unitário?

3 comentários:

Bernardo Heynemann disse...

Opa, sei que to um pouco atrasado, mas estou muito interessado em saber como foram (ou estão sendo) suas experiências com o Pyccuracy.

Abracos,
Bernardo Heynemann

isis disse...

Então, nos últimos meses não usei, mas me parece simples e direto o suficiente p/ mostrar a percepção do sistema e que ele funciona "a nível de usuário" (Ex: "mas a página não está carregando...").

Não consigo lembrar se foi no Pyccuracy ou no Cucumber, mas havia uma ação 'None', que eu procurei até dizer chega e não achei nada documentando isso. O desenvolvimento parou?

Alexandre Piau disse...

O desenvolvimento do Pyccuracy tá up and running desde a criacão. Esta semana mesmo fizemos vários releases. :) Obrigado pelo feedback.