Automação de testes - Ruby - Capybara

Sou beginner em automação de testes. Seguindo as dicas dos participantes do site comecei fazer os script utilizado o Ruby, framework Capypara e DSL Site Prism. Estou indo no caminho certo? O que precisa ser melhorado? Agradeço desde já.

https://github.com/davidsonjacob/minhaloja

Atualizei o projeto seguindo as sugestões abaixo.

Salve Davidson!

Dá um liga nesse post da Rafa Azzevedo, falando sobre BDD: https://azevedorafaela.wordpress.com/2017/05/01/bad-practices-when-writing-your-bdd-scenarios/

Nessa outro sobre Bdd and PageObject: http://hy1984427.github.io/BDD-with-PageObject/

@davidson-jacob pelo que vi, você está escrevendo as features de forma imperativa. Isso vai de cada um, vou te dizer o que eu penso, você pode concordar ou não, ok?

Enfim, eu já não sou muito fã de BDD, mas quando lido com BDD, acho muito mais fácil entender e manter cenários declarativos, em vez de imperativos. Leia mais sobre a diferença nesse ótimo post do Alister Scott: https://watirmelon.blog/2010/12/10/cucumber-imperative-or-declarative-that-is-the-question/

Exemplo: não curto cenários de BDD com um passo pra preencher cada campo de um form. Prejudica a legibilidade, dificulta a manutenção, e expõe detalhes da interface no cenário, sem necessidade. A especificação deve esclarecer como o negócio funciona, quem sabe de detalhes da interface é o seu page object associado.

@davidson-jacob Bom dia rapaz, tudo certo?

Como você, também criei um projeto no github para aprender mais sobre Ruby, e já digo que me ajudou muito.

Sobre seu projeto, primeiramente sobre as features, sugiro dar uma refatoada nelas, de cara da de ver que tem muita regra de negócio em um cenário apenas. Deixo aqui dois artigos do pessoal da Resultados Digitais que li (dentre os vários que achei sobre Cucumber) e que darão um norte na forma de escrever cenários melhores

Outro ponto seria sobre a organização do projeto, vi que você colocou as classes page’s dentro de cucumber/features/support/. Eu particularmente gosto de organizar da seguinte forma:

features
  |
  | -- pages (as pages do meu projeto)
         | -- client
                | -- client_page.rb
  | --specifications (aqui vão as features e steps)
         | -- client
                | -- step_definitions (steps das minhas features)
                       | -- client_steps.rb
                | --- client.feature
  | -- support 

Não sei se é um padrão correto, mas para meu projeto ficou organizado. Acredito que existam pessoas mais experiêntes aqui que possam nos tirar essa duvida hehe.

Tentarei dar uma olhada no projeto e comentar lá no GitHub mesmo o que acredito que de para melhorar.

Deixo aqui o link do meu projeto (em desenvolvimento) e fico a disposição para ajudar, visto que estamos ai para aprender hehe

Projeto atualizado em fase de melhorias.

Log in to reply

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