Какие существуют инструменты для тестирования многопоточного .net-кода?

Существуют ли какие-либо инструменты, которые могут помочь найти условия гонки при тестировании многопоточного кода .net? Я ищу что-то с аналогичными возможностями для IBM ConTest инструмент для Java.

Ответы

Ответ 1

Typemock Racer может быть тем, что вы ищете, но я его не использовал - я только что вспомнил что-то о тупиках:)

Или это: Детектор тупиков

Ответ 2

Этот анонс от Microsoft Research звучит так, будто у них есть инструмент, который делает именно то, что я хочу. К сожалению, нет версии .net, но есть один запланированный. Чтобы процитировать сайт:

CHESS - это автоматизированный инструмент для поиска ошибки в многопоточном программном обеспечении систематическое исследование потока расписания. Он находит ошибки, такие как данные-расы, тупики, зависания и доступ к данным с коррупцией нарушения, которые чрезвычайно трудны для найти с помощью текущих инструментов тестирования. однажды CHESS обнаруживает ошибку, она обеспечивает полностью повторяемое выполнение программа, приводящая к ошибке, что значительно облегчает процесс отладки. Кроме того, CHESS предоставляет ценную и новое понятие тестового покрытия подходит для многопоточных программ. CHESS может использовать существующие параллельные тесты и поэтому их легко развернуть. Разработчики и тестеры должны найдите CHESS полезным.

Ответ 3

Вы видели Debug Inspector (www.debuginspector.com)?

Он управляет и неуправляемыми взаимоблокировками и охватывает как WaitForSingleObject, так и WaitForMultipleObjects и работает для XP и Vista​​p >

Ответ 4

Theres большое расширение windbg, написанное Стивом Джонсоном, называется sosex, у которого есть команда поиска тупика. Вы можете найти его на http://www.stevestechspot.com/downloads/sosex_32.zip, и вы можете узнать больше об этом здесь: http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx и здесь: http://www.stevestechspot.com/SOSEXUpdatedV11Available.aspx.