Gerador Automático de BDD em Ruby
Visão Geral
Ferramenta Ruby para gerar automaticamente arquivos Gherkin (.feature) e definições de passos (steps.rb) a partir de histórias em texto. Atende aos padrões ISTQB, suporta parametrização com blocos de exemplos e fornece relatórios de QA (rastreabilidade, backups e PDF).
Estrutura do projeto
bdd-generation/
├── .github/ # Workflows do GitHub Actions
│ └── workflows/
│ └── main.yml
├── bin/
│ └── console # Execução local (se necessário)
├── features/ # Gherkin gerados automaticamente
│ └── steps/ # Steps correspondentes
├── input/ # Histórias de entrada
│ ├── historia.txt
│ ├── historia_en.txt
│ └── ...
├── lib/
│ └── bddgenx/
│ ├── ia/ # Módulo de IA
│ │ ├── chatgpt_cliente.rb
│ │ └── gemini_cliente.rb
│ ├── generators/ # Responsável por geração
│ │ ├── generator.rb
│ │ ├── steps_generator.rb
│ │ └── runner.rb
│ ├── reports/ # Exportadores, backups e rastreabilidade
│ │ ├── pdf_exporter.rb
│ │ ├── backup.rb
│ │ └── tracer.rb
│ ├── support/ # Utilitários auxiliares
│ │ ├── gherkin_cleaner.rb
│ │ ├── remover_steps_duplicados.rb
│ │ ├── validator.rb
│ │ └── font_loader.rb
│ ├── parser.rb # Parse do .txt
│ ├── version.rb # Versão da gem
│ └── bddgenx.rb # Arquivo principal (require central)
├── reports/ # Saídas: PDF, backup, rastreabilidade
│ ├── pdf/
│ ├── backup/
│ └── rastreabilidade/
├── .env # Variáveis de ambiente
├── .gitignore
├── bddgenx.gemspec
├── bump_version.sh
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── Rakefile
├── README.md
└── VERSION
Instalação
Adicione ao seu Gemfile:
gem 'bddgenx'
Execute:
bundle install
Ou instale diretamente:
gem install bddgenx
Uso no Código
require 'bddgenx'
# Gera todas as features e steps a partir dos .txt em input/
Bddgenx::Runner.execute
Tarefa Rake (opcional)
Em um projeto Rails ou Ruby com Rake, adicione ao Rakefile:
require 'bddgenx'
require 'rake'
namespace :bddgenx do
desc 'Gera .feature e steps a partir de histórias em input/'
task :gerar do
Bddgenx::Runner.execute
end
end
Formato do Arquivo de Entrada (.txt)
# language: pt
Como um usuário do sistema
Quero fazer login
Para acessar minha conta
[SUCCESS]
Quando preencho <email> e <senha>
Então vejo a tela inicial
[EXAMPLES]
| email | senha | resultado |
| [email protected] | 123456 | login realizado |
| [email protected] | senha | credenciais inválidas |
Artefatos de QA
- Backup: versões antigas de
.featureemreports/backupcom timestamp - PDF: exporta features em P/B para
reports/pdfviaPDFExporter
Integração CI/CD
Exemplo de GitHub Actions:
jobs:
gerar_bdd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.x'
- run: bundle install
- run: bundle exec ruby -e "require 'bddgenx'; Bddgenx::Runner.execute(only_new: true)"
Licença
MIT © 2025 David Nascimento