State Machine Simulator for Software Testing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The computer industry faces challenges in providing adequate quality assurance and testing of computer systems and networks, especially for large and complex applications, as it is difficult to emulate the spatial and execution characteristics of customer-specific applications without the actual application or data flow, making it hard to test systems under realistic conditions before customer deployment.
Innovation Solution
A method and system using a portable framework with a finite state machine simulator that generates a simulated load, allowing for the modeling of resource demands of software applications, including call processing applications, by configuring work daemons with static and dynamic portions to exercise system components like memory and communication channels, thus enabling performance analysis without requiring extensive code rewriting.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If actual customer applications are used for testing, then testing accuracy and realism are improved, but testing complexity and cost increase significantly
Solution Approach 1:
The patent creates virtual copies of customer applications as state machines that replicate their essential behavior patterns without requiring the actual applications. These virtual applications model the spatial and execution characteristics of real applications, enabling accurate performance testing while avoiding the complexity of running actual customer software suites.
Solution Approach 2:
The patent segments complex applications into discrete state machines with defined states and transitions. Each state machine represents a simplified model of application behavior, allowing the system to test individual components and their interactions independently while maintaining overall system accuracy.
2Measurement precision
If actual customer applications are deployed for testing, then performance measurement accuracy is improved, but time required for testing increases
Solution Approach 1:
The patent performs preliminary modeling of application behavior into state machines before actual testing. By pre-defining the virtual applications' state transitions and resource consumption patterns, the system can quickly execute tests without needing to wait for actual application deployment and execution, significantly reducing testing time while maintaining performance measurement accuracy.
3Adaptability or versatility
If customer-specific applications are used for testing, then testing relevance is improved, but ease of setup and execution deteriorates
Solution Approach 1:
The patent creates a universal testing framework where virtual state machines can model various customer applications across different domains. The same state machine infrastructure can represent telephony applications, database systems, or any other software by configuring appropriate states and transitions, making the system highly adaptable while easy to setup.
4Productivity
If complex application suites are simulated, then testing comprehensiveness is improved, but system resource requirements increase
Solution Approach 1:
The patent extracts only the essential behavioral characteristics of complex applications into virtual state machines, separating the critical testing information from the bulk of actual application code and resources. This allows comprehensive testing of multiple applications simultaneously while consuming far fewer system resources than running the actual application suites.
Data Source
AI summary
A method for simulating running a software application having a plurality of processes on a computer system being tested. The method includes providing a number of work daemons on the test system, with the number being chosen to be substantially equal to the number of processes in the simulated software application. The method continues with configuring each of the work daemons with a static portion that performs functions on or exercises memory of the test system when the work daemon is run. Each of the work daemons is also configured with a dynamic portion including text segments that are selectively executable when the work daemon is run. The static and dynamic portions simulate operations performed by a corresponding one of the modeled software application processes. The method includes running at least a portion of the configured work daemons on the test system and monitoring performance of the test system.


