One-Click Dynamic Analysis Of Your Arbitrary C# Code


AutoIsolator helps you understand the behavior of your code by automatically identifying relevant inputs for the unit of analysis utilizing Microsoft IntelliTest. AutoIsolator handles external dependencies without the need of defining mocks and stubs.

Find out more

Dynamic analysis with fully isolated units


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

Approach


1. Definition of Units

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.

2. Transformations

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).

3. Sandbox Generation

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.

4. Dynamic Analysis

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.

Demos


Publications


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]

Contact us


Give us feedback, and tell us what do you think about the project! Also, if you would like to request further demos or try the tool itself, do not hesitate to contact.