Software Regression and Migration Assistance Using Dynamic Instrumentation

Companies and organizations use the legacy software for decades to serve various purposes. During this journey, the software system travels through several change requests and amendments of functionalities due to the changing nature of business and other requirements. As a result, different methodologies and implementations employed over the time are often not at all documented. So, modifying or migrating those software systems become difficult due to lack of technical knowledge about their behavior. This difficulty is even more when there is no Subject-Matter Expert (SME). Here, we propose a technique to verify the unchanged functionalities of untouched modules of the modified application by comparing with the older version of the application. Sometimes, the number of functional behaviors become irrelevant as they are no longer required by the business. However, significantly large portions of legacy applications continue executing, untouched by any modification or customization, to serve tiny yet critical purposes. Stakeholders also remain reluctant to cleanup or migrate because only for finding out the active part or functionals scope of the application is very tedious and consumes lot of effort due to lack of knowledge or documentation. Here, we have devised a mechanism to assist the migration specialists to identify the active part of an application, associated files, and data used by the active code that help in building the new one with similar functionalities. We can also assist the performance engineer by detecting the resource leakage in the application.

[1]  Rajiv Gupta,et al.  Path profile guided partial dead code elimination using predication , 1997, Proceedings 1997 International Conference on Parallel Architectures and Compilation Techniques.

[2]  Doug Abbott Eclipse integrated development environment , 2013 .

[3]  Sun-Myung Hwang,et al.  Design and Implementation of Java Dynamic Testing Tool using Instrumentation , 2015 .

[4]  Partha Pratim Das,et al.  Dynamic Weaving of ASPECTs in C/C++ using PIN , 2017, HP3C-2017.

[5]  M.L. Soffa,et al.  Demand-driven structural testing with dynamic instrumentation , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[6]  Wei-Tek Tsai,et al.  Business rule extraction from legacy code , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.