Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Можно ли эффективно использовать шахматы с MVVMcross для обнаружения ошибок параллелистики


Можно ли эффективно использовать шахматы с MVVMcross для обнаружения ошибок параллелистики


Шахматы, разработанные Microsoft Research, представляют собой мощный инструмент для обнаружения ошибок параллелистики в многопоточных программах путем систематического изучения всех возможных перерывов потока. Он может эффективно выявить такие проблемы, как тупики, живые и данные о данных, что делает его ценным активом в тестировании одновременного программного обеспечения [1] [3] [4]. Однако, можно ли эффективно использовать шахматы с MVVMcross для обнаружения ошибок параллелистики, зависит от нескольких факторов.

MVVMcross Обзор

MVVMcross-это структура для построения кроссплатформенных приложений с использованием шаблона модели-View-ViewModel (MVVM). Он предоставляет инструменты и инфраструктуру для управления сложностью кроссплатформенного развития, включая инъекцию зависимостей и утилиты потока [2] [5].

Использование шахмат с mvvmcross

Чтобы использовать шахматы с MVVMcross, вам нужно будет интегрировать шахматы в структуру тестирования. Вот несколько шагов и соображений:

1. Параллель в MVVMcross: приложения MVVMcross часто включают одновременные операции, особенно при работе с асинхронной загрузкой данных или фоновыми задачами. Шахматы могут быть полезны для тестирования этих параллельных сценариев.

2. Настройка теста: вам нужно настроить тесты MVVMcross для использования шахмат. Это включает в себя создание методов испытаний, которые могут быть выполнены в шахматах, что систематически изменяет переодевания потока для обнаружения ошибок параллелистики. Возможно, вам придется адаптировать ваши тестовые классы для работы с механизмом планирования шахмат.

3. Атрибуты и аннотации: в шахматах используются такие атрибуты, как `[wareduletestmethod]` и `[dataracetestmethod]` для обозначения методов одновременного тестирования. Вам нужно будет применить эти атрибуты к вашим методам испытаний MVVMcross, чтобы использовать возможности шахмат [1].

4. Проблемы интеграции: основной задачей будет интеграция шахмат с существующей инфраструктурой тестирования MVVMcross. Тесты mvvmcross обычно наследуют от `mvxiocsupportingtest` и используют MOQ для насмешливых зависимостей [2]. Вам нужно гарантировать, что шахматы могут беспрепятственно работать с этими компонентами.

5. Воспроизводимость: одной из сильных сторон шахмат является его способность воспроизводить ошибки параллелизма, что имеет решающее значение для отладки. Если вы успешно интегрируете шахматы с MVVMcross, вы сможете более эффективно воспроизводить и отлаживать проблемы параллелистики.

Заключение

В то время как шахматы являются мощным инструментом для обнаружения ошибок параллелистики, его интеграция с MVVMcross потребует тщательной настройки и адаптации. Если вы можете успешно интегрировать шахматы в свою структуру тестирования MVVMcross, это может быть эффективным способом выявления и отладки вопросов параллелизма в ваших кроссплатформенных приложениях. Однако сложность этой интеграции может варьироваться в зависимости от специфики архитектуры проекта и требований к тестированию.

Цитаты:
[1] https://github.com/leesanderson/chess
[2] https://www.mvvmcross.com/documentation/fundamentals/testing
[3] https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2007-149.pdf
[4] https://www.microsoft.com/en-us/download/details.aspx?id=52619
[5] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-this-view-get-linked-the-the-viewmodel/17602246
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2008/june/tools-and-techniques-ty-ide-udify-concurrency-issues
[7] https://stackoverflow.com/questions/689671/tool-for-detecting-concurrence-problems
[8] https://stackoverflow.com/questions/22122318/how-can-i-detect-the-platform-atruntime-using-mvvmcross
[9] https://courses.cs.washington.edu/courses/cse503/10wi/readings/osdi2008-chess.pdf