Reachability testing of asynchronous message-passing programs
Kuo‐Chung Tai · 2002
An execution of a message-passing program P with input X exercises a sequence of send and receive events, called a send-receive sequence (or SR-sequence). Assume that every execution of P with input X terminates. Reachability testing of P with input X is to execute all possible SR-sequences of P with input X. To perform reachability testing of P with input X, we first execute P with input X to collect one or more SR-sequences. For each collected SR-sequence, we identify its race conditions and derive its race-variants by modifying the outcome of race conditions. These race-variants are prefixes of other SR-sequences of P with input X. We use these race-variants to force P with input X to produce additional SR-sequences. By repeating this process, we eventually collect all possible SR-sequences of P with input X and thus can determine the correctness of P with input X. In this paper, we show derivation of race-variants of SR-sequences based on asynchronous communication and give an algorithm for reachability testing of asynchronous message-passing programs.