Dor Ma'ayan, M.Sc. Thesis Seminar
Wednesday, 28.3.2018, 12:30
The quality of unit tests gains substantial importance in modern software systems. We explore the way in which Junit tests are written in real world Java systems. We analyse 112 Java repositories and measure the quality of unit tests by finding patterns which indicate good practices of coding. Our results show that the quality of real world unit tests is low, and that in many cases, unit tests don’t follow the well-known recommendations for writing unit tests. These results demonstrate the need for more tools and techniques for refactoring of tests.
We also introduce the notion of Linear Execution Algebra (LEA). LEA is a mathematical structure with multiplication and addition operations, which obey most of the arithmetical rules present in fields. LEAs are applicable for modelling unit tests, such as present in JUnit. They are also useful for modelling constructors, and even simple methods. The theoretical modelling is useful for the classification of tests, presenting the semantics of JUnit, and for rational refactoring of tests.