Conformance Testing Multi-Threaded Software Event Serialization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current techniques for conformance testing of multi-threaded and distributed software systems are inadequate as they cannot directly observe a totally ordered sequence of system actions, making it difficult to validate the behavior of these systems against their specifications.
Innovation Solution
A tool that models system behavior as partially ordered events, generates fully serialized orderings, and multiplexes events from multiple agents into total orderings to facilitate conformance testing without perturbing the system's behavior, using an agent event log creator and multiplexing event serializer to create and validate serialized event listings against a system specification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing conformance testing techniques are applied to multi-threaded and distributed systems, then testing can be performed against specifications, but the techniques cannot directly observe totally ordered sequences of system actions due to concurrent execution
Solution Approach 1:
The system divides the observation task into segments by creating separate event logs for each thread or agent. Each log captures events in the local temporal order of that specific thread, avoiding the need to observe a global total order directly. This segmentation allows conformance testing to proceed by comparing individual thread behaviors against their respective specifications.
Solution Approach 2:
The patent introduces an intermediary component that collects and merges event logs from multiple threads into a combined view. This intermediary enables the testing framework to reconstruct potential global orderings from local thread perspectives without requiring direct observation of a total order, thus bridging the gap between concurrent execution and sequential specification verification.
2Ease of operation
If serialization is introduced to enable conformance testing, then event ordering can be established for comparison with specifications, but serialization may alter or perturb the original system behavior
Solution Approach 1:
The system performs preliminary recording of all thread events in their natural execution order before any serialization or reordering occurs. By capturing the complete event sequence from each thread as it naturally happens, the original system behavior is preserved intact. Subsequent serialization operations work on these pre-recorded logs rather than interfering with live system execution.
Solution Approach 2:
The patent creates copies of event data from the original system execution and stores them in event logs. These copies can then be manipulated, serialized, and compared against specifications without affecting the original system behavior. The testing framework operates on replicated event data rather than the live system state, ensuring fidelity to the original execution.
Data Source
AI summary
Techniques and tools for testing multi-threaded or distributed software systems are described. For example, a multi-threaded system is instrumented and executed to produce logs of events that are performed by each of its agents. The agent logs contain a totally ordered series of events per agent, as well as information about accesses to resources shared between the agents. With this information, a partial ordering of the events performed by all the agents is described for the execution. The agent logs are then multiplexed into one or more serialized event orderings, which can then be compared to a specification of the system in a conformance testing engine.


