A novel test case generation technique for data race coverage adequacy criterion
MetadataShow full item record
In recent years, processor architecture is facing a transition from single cores to multiple cores on a single die. The software industry is not isolated from the shift to multicore architecture. As a result, we witness a rising demand for multithreaded software which can utilize the performance boost offered by multicore architecture. However, Multi threaded applications lead to difficulties in software testing process due to inherent non determinism in execution of programs. In the presence of con- currency bugs, a test case may pass and fail in two different executions due to non determinism in thread scheduling. Many such concurrency bugs are induced by data races. In spite of the advancements in deterministic record-replay mechanisms for debugging multithreaded applications, exploring all thread interleavings exhaustively for identification of potentially harmful data races is an intractable problem. In this thesis, we propose a hierarchy of data race coverage adequacy criteria and a novel approach for generating set of thread schedules which explore possible- happens-before data races in compliance with each data race coverage criterion. Each generated thread schedule specifies an execution order which exercises a subset of possible-happens-before data races in multithreaded application. The multithreaded application is validated for data races under the execution order specified by the generated set of thread schedules using deterministic replay mechanism. Thread schedules which result in failing test cases are used for debugging data races.