Serenity/JS is a free and open-source acceptance testing framework that can help you establish a clear link between the expected business functionality and the actual working state of your software system.
I've designed Serenity/JS to make it easier for you to create test scenarios that build a shared understanding and trust between your business sponsors and delivery teams and to help you prove that your system meets and continues to meet its requirements.
To help you achieve all that, Serenity/JS enables you to:
- Follow the Serenity/JS Screenplay Pattern to define your own domain-specific test language that everyone on your team can read, understand, and reason about - including your business sponsors and domain experts.
- Create single- and multi-actor test scenarios that interact with any interface of your system, including web UIs, REST APIs, mobile apps, and pretty much anything a Node.js program can integrate with.
- Turn your test automation code into test automation libraries that are easy to share across projects and teams, so your whole company can benefit from your automation work and avoid code duplication and wasted effort.
- Support Continuous Integration, Testing, and Delivery, so that your automated tests are as easy to run on your machine as they are as part of your CI/CD pipelines.
- Abstract away the low-level implementation details and use the same consistent API to develop portable web tests that work just as well with remote Selenium grids as with local Playwright or Puppeteer installations.
- Introduce world-class reporting and living documentation to demonstrate not only what tests are executed but, more importantly - what business requirements are verified and what business features and workflows are working as expected.
In summary, Serenity/JS can help you and your team create high-quality, reliable automated acceptance tests that are a pleasure to work with. The modular and extensible architecture of the framework will let you use as much or as little of it as you wish, take advantage of your existing automation tools and processes, and introduce the new ideas and patterns brought by Serenity/JS gradually even to an existing codebase.
This handbook will help you get started with Serenity/JS and offers plenty of practical examples, exercises, and reference implementations you can explore to become successful with test automation.
Jan Molak and the Serenity/JS Team