Like other sciences and engineering disciplines, software engineering requires a cycle of model building, experimentation, and learning. Experiments are valuable tools for all software engineers who are involved in evaluating and choosing between different methods, techniques, languages and tools. The purpose of Experimentation in Software Engineering is to introduce students, teachers, researchers, and practitioners to empirical studies in software engineering, using controlled experiments. The introduction to experimentation is provided through a process perspective, and the focus is on the steps that we have to go through to perform an experiment. The book is divided into three parts. The first part provides a background of theories and methods used in experimentation. Part II then devotes one chapter to each of the five experiment steps: scoping, planning, execution, analysis, and result presentation. Part III completes the presentation with two examples. Assignments and statistical material are provided in appendixes. Overall the book provides indispensable information regarding empirical studies in particular for experiments, but also for case studies, systematic literature reviews, and surveys. It is a revision of the authors’ book, which was published in 2000. In addition, substantial new material, e.g. concerning systematic literature reviews and case study research, is introduced. The book is self-contained and it is suitable as a course book in undergraduate or graduate studies where the need for empirical studies in software engineering is stressed. Exercises and assignments are included to combine the more theoretical material with practical aspects. Researchers will also benefit from the book, learning more about how to conduct empirical studies, and likewise practitioners may use it as a “cookbook” when evaluating new methods or techniques before implementing them in their organization.
So I've mostly skimmed this book, and emphasised on reading the first couple of chapters.
This is a very in depth look at the formal methods needed to apply to create a successful Software Engineering Experiment. I've read it as part of my dissertation thesis, and could concur it helped me a bit. It is very technical, even for what i deem necessary for just a dissertation. However, as it tries to cover a topic not only niche, but one of the few niches that is less formal in one of the most formalised scientific domains. The volatility of best practices in the subject's domain, also doesn't help this book age well. Sure, the agile practices described here are still in practice as they were mostly when the book was written. But it fails to properly address integrating Cloud services and modern CI/CD in the experimentation framework.
Overall, a great book to skim for an introduction on how to formalise something that it is not quite made for formal research.