Abstract
The amount of data collected from software use facilitated systematic inquiries about users' expectations and reactions to software systems. The most well-known practice for continuous experimentation is A/B tests, in which two or more versions of a feature are compared based on users' metrics when exposed to these options. The literature shows that A/B tests are spread in the industry, but companies usually rely on in-house software platforms based on traffic split. However, these approaches are better suitable for feature tests and not implementation options, besides increasing technical debt and maintenance effort. We aim to develop a model as a guide to frameworks for introducing experiments at class and component levels without coupling this concern to business rules. To reach this goal, we followed an iterative approach based on Design Science Research. In this process, we developed a reference im-plementation of this model by creating a framework for the Java language. We evaluated the experimentation framework usage in a web project that simulates a realistic scenario for applying A/B tests. The evaluation study showed that the framework provides the functional features needed to perform A/B tests at component and class level, collecting relevant information for decision-making. Moreover, it was possible to instantiate the framework without any coupling to code related to business rules. The proposed model could guide the development of experimentation frameworks that perform A/B tests at class and component levels, even for other languages and platforms. It captured the main elements of the experimentation domain, proposing appropriate extension points and a decoupled approach to be plugged into the application.