Skip to content

Releases: vmso/io.bdd_testing_frameworks

Release list

v2.0.1

Choose a tag to compare

@serhatozdursun serhatozdursun released this 02 Oct 14:34
bfcadb9

Release Notes — v2.0.1

We are excited to announce version 2.1.0 of the Modern BDD Testing Framework, bringing powerful new capabilities to improve test resilience and reduce flakiness in automation projects.

✨ New Features

🤖 Self-Healing Locators

  • Introduced a Self-Healing Engine to recover from failing locators automatically.
  • Captures screenshots and DOM snapshots upon failure for detailed diagnostics.
  • Generates heuristic candidates (alternative XPaths and CSS selectors) based on step text, attributes, and DOM context.
  • Integrates with OpenAI (via GPT models) to suggest corrected locators and fix typos or minor mismatches.
  • Uses AI-powered fallback when heuristic recovery fails.
  • Supports shadow mode: logs suggested locators without applying them, for safe evaluation.
  • Maintains a ModelStore cache to reuse previously healed locators for faster test execution.

⚡ Enhancements

  • Added de-duplication for locator candidates using LinkedHashSet to eliminate redundant retries.

  • Configurable via config.properties:

    selfheal.enabled=true
    selfheal.shadow_mode=false
    selfheal.ai.enabled=true
  • AI integration requires OPENAI_API_KEY in the environment. If missing, AI-based suggestions are skipped to avoid unnecessary failures.

  • Extended detailed decision logging into reports/self-heal/ including DOM snapshots, screenshots, and locator resolution traces.

🔧 Bug Fixes

  • Fixed incorrect retry handling when implicit waits were temporarily overridden.
  • Fixed issue where duplicate candidate locators caused unnecessary retries.
  • Improved error handling when AI responses are malformed or API is unavailable.

🚀 Migration Notes

  • No breaking changes.
  • If selfheal.enabled=false, the framework continues to behave as before.
  • Enable selfheal.ai.enabled=true only when OPENAI_API_KEY is available in the environment.

📝 Next Steps

  • Planned integration with OCR/visual heuristics for advanced self-healing.
  • Extend AI suggestions to multi-element lookups (findElements).

Modern BDD Testing Framework v2.1.0 brings reliability and intelligence to test automation by combining heuristics with AI. This dramatically reduces flakiness from minor UI changes, saving engineering time and stabilizing pipelines.

v.1.0.0

Choose a tag to compare

@serhatozdursun serhatozdursun released this 17 Jul 20:36

🚀 Release Notes — v1.0.0

Release Date: July 17, 2025
Repository: io.bdd_testing_frameworks


✨ Overview

This is the initial public release of the BDD Testing Frameworks Comparison Project, which showcases behavior-driven development in Java using various tools:

  • Cucumber
  • JBehave
  • Gauge
  • Spock

The goal is to help QA engineers and developers evaluate, compare, and learn BDD practices through real examples.


🔧 Features

  • ✅ Modular structure for each framework
  • ✅ Sample test suites with business-relevant scenarios
  • ✅ Shared business logic for consistency
  • ✅ Maven-based project setup
  • ✅ Individual README files for framework-specific instructions

📚 Use Cases

  • Compare BDD frameworks in Java ecosystems
  • Learn how step definitions, feature files, and test runners differ
  • Make informed decisions on framework adoption
  • Use as educational material or onboarding tool

🛠 Setup & Usage

git clone https://github.com/vmso/io.bdd_testing_frameworks.git
cd io.bdd_testing_frameworks

Navigate to the desired framework folder (gauge-tests, cucumber-tests, etc.), then:

mvn test

Each module includes its own instructions in the README.md.


📌 Known Issues

  • Requires relevant IDE plugins (e.g., Gauge plugin for IntelliJ)
  • Some frameworks may not support parallel execution out of the box
  • CI integration still in progress

🧭 What’s Next

  • 🧪 Spring Boot integration examples
  • 📊 Benchmark performance metrics
  • 🧰 Extend CI workflows for all test suites
  • 📦 Docker setup for isolated runs

🙌 Contributing

Contributions are welcome!
Please open issues for bugs or feature requests, and feel free to submit pull requests to expand or improve framework samples.


Thank you for checking out the project!
Let’s build better tests, together. 🧪✨