Program comprehension is a key aspect of software development and evolution. However, understanding large, complex methods can be cumbersome due to external dependencies. In these cases AutoIsolator can help to alleviate this process by automatically isolating the code in the unit of analysis. The tool utilizes Microsoft IntelliTest to provide concrete values for each input of the unit (including the parameters, the return values of external invocations and properties, and the state changing side effects effects of these external calls as well). In the end, AutoIsolator shows these generated values for the user using an easily readable format in the code editor.See the details
In the first step, the user defines the unit where the analysis will be performed. Anything found outside this scope will be handled as external, and will be isolated automatically from the unit.
In the background, AutoIsolator automatically replaces the invocations and types in the code that are defined outside of the unit being analyzed. With the help of this approach, our tool avoids the issues mocking frameworks regularly face (unmockable code).
AutoIsolator automatically generates a parameterized sandbox around the analyzed unit that remains hidden from the user. Microsoft's IntelliTest generates values for your code by filling the parameters of this sandbox.
The transformed code of the unit and the generated sandbox is compiled runtime via Roslyn and emitted into a DLL, which is analyzed by IntelliTest. Until this point, the steps were transparent to the user. In the end, AutoIsolator presents the values generated by IntelliTest in Visual Studio's code editor.
Honfi, D., Micskei, Z.,"User-defined Sandbox Behavior for Dynamic Symbolic Execution",
Proceedings of the 24th PhD Mini-Symposium, Budapest, Budapest University of Technology and Economics, Department of Measurement and Information Systems, 03/2017. [PDF]
Honfi, D., Micskei, Z., "Supporting Unit Test Generation via Automated Isolation",
Periodica Polytechnica, Electrical Engineering and Computer Science, 02/2017. [PDF]
Honfi, D., Micskei, Z., "Generating Unit Isolation Environment Using Symbolic Execution",
Proceedings of the 23rd PhD Mini-Symposium, Budapest, Budapest University of Technology and Economics, Department of Measurement and Information Systems, 2016. [PDF]