Analysis and Maintainability of Complex Industry Test Code Using Clone Detection
Wafa Hasanain · 2020
Many companies, including Ericsson, experience increased software verification costs.Agile cross-functional teams find it easy to make new additions of test cases for every change and fix.The consequence of this phenomenon is the duplications of test code [2], which is often referred to as (test) code clone.In this thesis, we attempt to understand the prevalence of test code clones, thus contributing to the clone detection and software testing fields, and we then study how test code can be refactored to remove clones, therefore improving software testing activities.In this thesis, we aim to achieve the following goals.Firstly, we aim to detect clones in industry test codes.We found, in the subjects shared by our industry partner, that 49% of lines of code of the entire C test code are clones, which is also equivalent to 36% of all the test cases; We found that 73% of lines of code of the entire Java test code is a clone, amounting to 94% of all the test cases.The results we report on in our study include figures about clone frequencies, types, similarity, fragments, size distributions, and the number of line differences in cloned test cases.Secondly, following standard definitions of clone types, if the source code contains fragments that are in a Type-1 clone class, we theoretical argue and empirically confirm that those fragments also belong to a Type-2 clone class; Further, assuming the source code includes fragments that belong to a Type-2 consistent clone class, these fragments will also appear in a Type-2 blind clone class; Such inclusions also occur with Type-3 clone classes, with different threshold values to detect differences.When one relies on standard definitions of source code clone types, they are therefore running a risk of overlapping information being returned for different types of clone classes.Further, if one interprets Labiche, for his valuable advice, guidance, support, and various ideas.His great ideas have guided me to conduct my research properly.This thesis would not have completed without him.I would also like to thank Dr. Sigrid Eldh from