Please use this identifier to cite or link to this item:
|Title:||Validating Pragmatic Reuse Tasks|
|Abstract:||Disciplined 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.|
|Appears in Collections:||Electronic Theses|
Files in This Item:
|ucalgary_2015_Makady_Soha.pdf||7.29 MB||Adobe PDF||View/Open|
Items in The Vault are protected by copyright, with all rights reserved, unless otherwise indicated.