Virtual Machine Forking for Automated Software Bug Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The process of debugging software is hindered by the vast number of possible input combinations, making manual testing time-consuming and difficult, especially for applications with multiple input pages.
Innovation Solution
A method involving virtual machine forking to generate multiple test scenarios, applying inputs, recording outputs, and comparing them to 'happy path' outputs to identify potential bugs, utilizing crowdsourced inputs and advanced output analysis techniques.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual testing of all possible input combinations is performed, then complete bug detection coverage is achieved, but time consumption and testing difficulty increase significantly
Solution Approach 1:
The patent segments the testing process by forking the virtual machine at different fork points to create multiple test scenarios. Each fork point represents a decision node where different input paths diverge. By segmenting the test execution into parallel forked scenarios, the system can efficiently explore multiple input combinations without manually testing each one sequentially, thus maintaining comprehensive bug detection coverage while significantly reducing testing time.
2Productivity
If the number of test inputs is reduced, then testing efficiency improves, but bug detection coverage may be compromised
Solution Approach 1:
The patent creates copies of the virtual machine at each fork point to generate multiple test scenarios. Instead of manually creating and managing numerous test inputs, the system automatically copies the VM state and diverges along different input paths. This copying mechanism allows efficient exploration of reduced but strategically selected input sets while maintaining comprehensive bug detection coverage through automated scenario generation.
3Extent of automation
If automated testing with virtual machine forking is implemented, then testing efficiency and automation improve, but system complexity increases
Solution Approach 1:
The patent introduces an intermediary analysis layer that compares test outputs against expected outputs to automatically identify bugs. This intermediary comparison mechanism mediates between the complex automated forking process and the simple goal of bug detection. By inserting this output analysis intermediary, the system achieves high automation through virtual machine forking while managing complexity through automated comparison and bug identification, preventing the need for manual analysis of complex test scenarios.
Data Source
AI summary
Techniques for automated bug detection. A set of inputs are collected and a snapshotting feature is used to apply each input to a test application. Outputs from the test application are gathered and compared to determine whether the outputs are associated with bugs. Comparison can be done with one or more of many different techniques that quantify difference between outputs associated with test inputs and outputs associated with a “happy path input.” Outputs can be grouped together based on these quantifications and the groups can be used to identify outputs most likely to be associated with bugs. The output groups may also be used to group associated inputs to the set of inputs to be used for testing in the future. When a bug is identified, a report could be automatically generated that includes a scoring value as well as recorded output information and could be presented to a user.


