Validating Pragmatic Reuse Tasks
ClassificationPragmatic software reuse
Empirical Software Engineering
Test suite reuse
MetadataShow full item record
AbstractDisciplined software development involves the ad hoc reuse of source code that was not designed for that reuse. Such pragmatic reuse tasks have long been criticized due to a lack of systematic support, and an inability to validate that the reused code still provides its functionality of interest within the target system. Although recent work has successfully systematized support for pragmatic reuse tasks, validating those reuse tasks has not been tackled yet. Current approaches to validating reuse tasks require the developer to rely on automated test generation techniques which could miss serious defects, or to create his own test suite—a time consuming process whose correctness would be questioned due to the developer’s limited knowledge about the reused code. A third alternative would be to modify the originating system’s test suite to only exercise and validate the reused code. But such a manual editing process can result in injecting more defects into the originally high quality source code and its corresponding test suite. The thesis of this dissertation is that, by providing developers with tool support to reuse test cases within pragmatic reuse scenarios, we can leverage the quality of the pragmatically reused code, while reducing the needed manual intervention. To validate this claim, we have proposed a novel approach and tool to semi-automatically reuse and transform relevant portions of the test suite associated with pragmatically reused source code, as a means to validate that the relevant constraints from the originating system continue to hold, while minimizing the needed developer intervention. We have evaluated various aspects of our proposed approach, through a series of empirical studies, and using a variety of source systems and tasks. The results show that, relative to the manual approach, our approach reduces task completion time and improves the correctness of the reused test cases. Furthermore, our proposed approach can make the process of finding and fixing errors within pragmatic reuse tasks faster, and its transformed test cases can be maintained.
CitationMakady, S. (2015). Validating Pragmatic Reuse Tasks (Unpublished doctoral thesis). University of Calgary, Calgary, AB. doi:10.11575/PRISM/28625
University of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission.