In April 2018, Pandy Knight joined PrecisionLender as the company’s first Software Engineer in Test. His first major project was to develop an end-to-end test automation solution for the PrecisionLender web app. Pandy and the team developed Boa, a .NET solution written in C# using SpecFlow, Selenium WebDriver, and RestSharp.

The team originally used page objects to model Web UI interactions. Unfortunately, page objects became long and repetitive as the team added more tests to the project. Waiting for race conditions was cumbersome. Page objects also did not provide a pattern for handling service API calls.

Pandy wanted to solve these problems by switching from page objects to the Screenplay Pattern. Unfortunately, at that time, there were no major Screenplay implementations in C#. The most popular test framework using the Screenplay Pattern was Serenity BDD, which supports Java and JavaScript. So, Pandy decided to implement the Screenplay Pattern in C# as part of the Boa test solution.

The Screenplay Pattern helped PrecisionLender automate hundreds of Boa tests quickly, reliably, and with minimal code duplication. It truly became the cornerstone of the Boa test solution. After battle-hardening the basic Web UI and REST API interactions, Pandy and the team separated the Screenplay code into its own standalone project: Boa Constrictor.

Knowing that a .NET implementation of the Screenplay Pattern could benefit others, PrecisionLender and its parent company Q2 released Boa Constrictor publicly as an open source project in October 2020. Q2 continues to support Boa Constrictor’s development. Tia Nieland from Q2’s Brand and Design team designed Boa Constrictor’s awesome logo.

Boa Constrictor’s main goal is to provide a better way to model interactions for automation. It can be extended for any type of interaction, not just Web UI and REST API. Everyone is welcome to become part of Boa Constrictor’s story by using it and even contributing to its development!