In chapter 14, you learned how following the layered architecture pattern can support you in designing scalable test automation systems. You’ve also seen how introducing a Specification layer can help you capture information about the business context and its rules, workflows, and scenarios, as well as the actors interacting with the system and the goals they’re trying to accomplish.
In this chapter, we’ll continue to explore the idea of layering the architecture of our test automation system. We’ll investigate ways to reflect the concepts and vocabulary from the business domain in our test automation code. We’ll also study patterns that help to focus our implementation on modeling the business process and abstracting the lower-level test integration tools.
In our exploration, we’ll identify Serenity/JS APIs to help to make our test code portable. You’ll also see how designing with portability in mind helps to create reusable test code that can be used in different contexts and scale to support not only multiple test suites within your project, but also multiple teams across your organization.