Precise and Reproducible Testing of Concurrent Software

1
03/30/06 Precise and Reproducible Testing of Concurrent Software Tejasvi Aswathanarayana, Noah Watkins, Douglas Niehaus ([email protected]) Concurrency issues are difficult to test and debug The difficulty arises from a lack of precise control over the execution of computations This lack of control results in an inability to reliably reproduce problem scenarios and to perform verifiable testing of concurrent software Current techniques of test scenario coverage depend on the probabilistic assumption that stress testing of a software system will cover all scenarios Test results show that probabilistic stress testing does not always cover all relevant scenarios and even when it does, the time required is highly variable Deterministic Control Overview Variability of Time in Concurrency Testing Guided Execution of 3 Threads Group Scheduling under KURT-Linux creates an environment in which precise control of every computation is possible We can use precise and customized control to guide a computation through specific scenarios This establishes a debugging and testing framework providing deterministic test case coverage Waypoints describe locations in the code where thread execution is interleaved in some scenario

Transcript of Precise and Reproducible Testing of Concurrent Software

Page 1: Precise and Reproducible Testing of Concurrent Software

03/30/06

Precise and Reproducible Testing of Concurrent Software

Tejasvi Aswathanarayana, Noah Watkins, Douglas Niehaus ([email protected])

● Concurrency issues are difficult to test and debug● The difficulty arises from a lack of precise control over the execution of computations● This lack of control results in an inability to reliably reproduce problem scenarios and to perform verifiable testing of concurrent software● Current techniques of test scenario coverage depend on the probabilistic assumption that stress testing of a software system will cover all scenarios● Test results show that probabilistic stress testing does not always cover all relevant scenarios and even when it does, the time required is highly variableDeterministic Control

Overview Variability of Time in Concurrency Testing

Guided Execution of 3 Threads• Group Scheduling under KURT-Linux creates

an environment in which precise control of every computation is possible • We can use precise and customized control to guide a computation through specific scenarios● This establishes a debugging and testing framework providing deterministic test case coverage• Waypoints describe locations in the code where thread execution is interleaved in some scenario • Specialized scheduler controls execution according to a specified scenario schedule under group scheduling