Experimental design methodologies in software science

Abstract Experiments on the programming process and on software science are aimed at understanding and improving development, testing, and maintenance. In this paper the general issues of experiment design and how they apply to designing programming experiments will be examined. Some pitfalls to avoid in designing valid experiments will be discussed. Some methods for avoiding these pitfalls will be illustrated by reviewing how they were dealt with in an experiment taken from the literature. The issues presented will include subject selection, material selection, subject assignment, data collection, and statistical techniques.