Kooditason tekniikoiden vertailu jatkuvaa ajonaikaista kokeilua varten

Hemilä, Mikko · Aaltodoc (Aalto University) · 2021

Context: The world is increasingly reliant on software and therefore to speed up development processes, software companies are moving towards continuous software development practices. One such practice is continuous experimentation where different versions of the software are compared through experiments to find out which of the alternatives is the most relevant for a given context. The two main approaches within the continuous experimentation field are code-level techniques and deployment-based techniques. Objective: The goal of this thesis is to gain an understanding of such code-level techniques that can be used to implement experiments as part of continuous experimentation. Method: The research method of this thesis is based on a design science framework. First, the requirements for code-level techniques to implement experiments continuously are considered. Second, three simple techniques suitable for the current study are chosen from those classified in software variability field. The chosen techniques are conditional execution, inheritance, and aggregation/delegation. Third, to gain an understanding of their usability for continuous experimentation, three experiments are implemented with each of the chosen techniques. Fourth, the implementations are compared using evaluation criteria based on the experiment life cycle stages. Findings: In the thesis three findings are discussed. First, a guideline on how an experiment can be considered as a special case of software variability is formulated. Then, the evaluation criteria, which categorized qualities on the basis of the experiment life cycle stages, are presented. Using the criteria, the three techniques mentioned above are evaluated. Out of these three techniques, aggregation/delegation appears the most useful.

Read the paper · More papers on PaperTik