Gauge

Estava dando uma olhada na documentação do Gauge, achei bacana, alguém da comunidade já usa em algum projeto real, e possa compartilhar sua experiência conosco.

Já usei em dois projetos…Pra mim foram bem bacanas, eu achei meio chato nas execuções, mas escrever de um modo mais “natural” resolveu alguns problemas de entendimento na hora de rodar a automação…

@ramses-saccol-de-almeida eu não cheguei a usar o gauge em projetos reais, só fiz algumas POCs e sempre fiquei com dúvida em relação a padronização.

Só você escrevia? Quem mais utilizava?

Usando Gherkin você tem algum nível de padronização no formato e quando tem mais pessoas envolvidas ajuda a manter essa padronização, como o Gauge é livre fico pensando se num projeto que várias pessoas escrevem não fica meio bagunçado.

Você passou por isso?

Samy

@Samanta-Cicilia , na verdade todo time escrevia. O que fazíamos era um “pré-check” antes de usar ela se a gente precisava ajustar algo para ser re-utilizavel. Então não rolava bagunça…Caso alguma feature escrita fugia “levemente” de algo já feito, rolava um ajuste e era isso.
A gente só teve esse “pré-check” pq conversamos exatamente esse ponto de “virar cada um escreve do jeito que quiser”…
Mas conforme ia se desenrolando a galera já seguia de boas…

@ramses-saccol-de-almeida vocês meio que faziam uma revisão dos cenários e isso acabou gerando um guideline do time então né

Samy

“ecxato”…

@Pedro-Ivo, eu não tinha conhecimento do gauge até semana passada. Porém, nesse final de semana tive um tempo e comecei a contribuir nos projetos que giram em torno do ecossistema do gauge, como o gauge-proto e o getgauge-python.

Dei uma fuçada bem legal nas libs e fiz algumas coisas aqui pra brincar. Ainda não conheço um case de sucesso do mesmo, porém com a simplicidade de integrar em todas as linguagem, usando proto, minha opinião é que talvez essa sejam a maneira mais simples de padronizar para todas as linguagem as mesmas funcionalidades. Pensando nisso, de certo fiquei extasiado no inicio. Poder padronizar as ferramentas e possibilidade em todas as linguagem. Porém, pela minha experiência com frameworks de BDD, tenho algumas coisas em mente, não são bem positivas, muito menos negativas. Mas, eu nativamente programo Python e em python temos dois frameworks incríveis, o Behave[1] e o Radish[2]. Os dois seguem uma proposta muito boa de seguir com o BDD, no radish temos uma coisa mais “cucumber-like”, embora o Behave tenha muitas funcionalidades que chegam a ser muito melhores e mais organizadas do que no cucumber. O Radish segue uma linha completamente diferente e insere funcionalidades no gherkin além das tags, podem ter um real active-tag-matcher, o que não existe em nenhum framework que eu conheço.

Mas sim, gostei bastante do gauge, tenho algumas dúvidas quanto a padronização, como a @Samanta-Cicilia disse. Acho que em essência o que torna o formato BDD tão espetacular na hora de escrever casos de testes é especificamente a linguagem redundante que ele traz (Dado, Quando, Então, …) pois os steps são bem definidos. Um como pré-requisito, outro como ação e um para fazer a assertiva. É um formato muito consistente e trazendo para o gauge eu tive algumas dificuldades no começo, principalmente pela liberdade que ele traz da não formatação redundante dos steps.

Enfim, acho que seria excelente padronizar as mesmas ferramentas com as mesmas opções em todas as linguagem (Java, Ruby, Python, C#, …), porém o que as mesmas trazem de diferente em sua arquitetura fazem uma falta grande quando comparadas com uma única ferramenta que implementa tudo da mesma maneira. Com isso eu meio que esbarro em alguns conceitos do Apache spark, fazendo um comparativo. Ele implementa o mesmo framework para Scala, Java e Python. Certas funções são mais performáticas e idiomáticas em algumas linguagens, mas outras ficam semanticamente desagradáveis em outras linguagens. Bom, fui bem prolixo, desculpe.

1 - https://github.com/behave/behave
2 - https://github.com/radish-bdd/radish

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.