In a message-passing system (MPS), components communicate through messages. However, both the time and order in which messages are delivered depend on the execution environment. The resulting nondeterminism may lead to concurrency defects such as message races, making it difficult to thoroughly test and debug MPS. This paper presents a new framework for testing components of an MPS for faults that involve the violation of any implicit user-intended receiving order of messages. The framework purposefully assesses possible interleavings by reordering incoming messages before delivering them to the tested target component. We evaluate three methods to support the reordering process: the blocking method intercepts and blocks each message until all its dependencies have occurred, the buffering method buffers a message until either its dependencies are observed or a predefined timeout expires, and the adaptive buffering dynamically adjusts its flushing period. All three methods are implemented inside QNX Neutrino, a popular embedded real-time operating system. The evaluation shows a 4x speedup over random testing with minimal run time overhead and only a few kilobytes of memory overhead. These results confirms the effectiveness and capability of the framework to uncover faults in real-world applications.