Возможный дубликат:
Как мне unit test код с резьбой?
Классическое модульное тестирование в основном просто помещает x в и ожидает y out и автоматизирует этот процесс. Так что это хорошо для тестирования всего, что не связано с временем. Но тогда большинство нетривиальных ошибок, с которыми я столкнулся, имели какое-то отношение к времени. Потоки повреждают данные друг друга или вызывают взаимоблокировки. Недетерминированное поведение происходит - за один миллион. Жесткий материал.
Есть ли что-нибудь полезное для "модульного тестирования" частей многопоточных параллельных систем? Как работают такие тесты? Разве вам не нужно долгое время изучать предмет таких тестов и каким-то умным образом изменять среду, чтобы стать разумно уверенным в том, что она работает правильно?