---
title: Why Serenity/JS?
layout: handbook.hbs
---
# Why Serenity/JS?

As the applications we develop become even more sophisticated and business-critical,
the priorities for test automation systems change as well.
The responsibility of automated tests is no longer limited to simple, functional verification of the system, but rather,
they are often expected to capture the business language and intent behind its various features, act as its living documentation,
and a communication medium between the various stakeholders.

Furthermore, the advent of [shift-left testing](https://en.wikipedia.org/wiki/Shift-left_testing)
has also changed who is responsible for writing and maintaining the tests.
What historically used to be the job of a single person now became a responsibility of the entire team.
This means that even though the quality of the automated tests themselves might not have been the primary concern in the past,
they're now a first-class citizens in any mission-critical codebase and need to be designed with the same amount of scrutiny
as production code.

The goal of Serenity/JS is to give you free open-source tools to address many of those challenges
and help you create high-quality, reliable automated acceptance tests.
No matter if you're new to test automation or have years of experience under your belt.

## Who uses Serenity/JS?

Serenity/JS is used by many Fortune 500 companies, top-tier investment banks and financial institutions as well as insurance, e-commerce and airline companies
who rely on it to automate verification of complex user workflows and require the in-depth reporting that satisfies their audit requirements.

However, Serenity/JS is also used by start-ups and small teams who need to make their test suites accessible to team members with mixed skill sets and keep the maintenance costs down.

## Features

Serenity/JS helps you write high-quality, user-centred acceptance tests that are easy to extend and maintain.

In particular, Serenity/JS enables:

- Web and cross-browser testing
- HTTP(s) and REST API testing
- Workflow testing
- Multi-actor testing
- In-depth reporting and automatic screenshots
- An easy way to introduce and follow [SOLID design](https://en.wikipedia.org/wiki/SOLID) principles
- An effortless integration with popular test and collaboration tools, such as [Cucumber.js](https://github.com/cucumber/cucumber-js) and [Jasmine](https://jasmine.github.io/).
- An easy way of sharing the test code across projects and teams

Read on to find out more!
