Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Môže byť šach efektívne použitý s MVVMCross na detekciu chýb súbežnej hodnoty


Môže byť šach efektívne použitý s MVVMCross na detekciu chýb súbežnej hodnoty


Chess, vyvinutý spoločnosťou Microsoft Research, je výkonným nástrojom na detekciu chýb súbežnosti v viacnásobných programoch systematickým skúmaním všetkých možných prekladov vlákien. Dokáže efektívne identifikovať problémy, ako sú patoviny, živobytie a dátové preteky, čo z neho robí cenný prínos pri testovaní súbežného softvéru [1] [3] [4]. Či sa však šach môže efektívne používať s MVVMCross na detekciu chýb súbežnosti, však závisí od niekoľkých faktorov.

MVVMCross Prehľad

MVVMCROSS je rámec pre budovanie aplikácií viacerých platforiem pomocou vzoru modelu-view-viewModel (MVVM). Poskytuje nástroje a infraštruktúru na zvládanie zložitosti rozvoja viacerých platforiem vrátane injekčných injekcií závislosti a závitov [2] [5].

Používanie šachu s mvvmcrossom

Ak chcete použiť šach s MVVMCross, musíte integrovať šach do svojho testovacieho rámca. Tu je niekoľko krokov a úvah:

1. Súbežnosť v MVVMCross: Aplikácie MVVMCross často zahŕňajú súbežné operácie, najmä pri riešení asynchrónnych načítaní údajov alebo úloh na pozadí. Šach môže byť prospešný pri testovaní týchto súbežných scenárov.

2. Nastavenie testu: Na použitie šachu by ste museli nastaviť svoje testy MVVMCross. Zahŕňa to vytváranie testovacích metód, ktoré je možné vykonať pomocou šachu, ktoré systematicky mení prekladanie vlákna na detekciu bugov súbežnosti. Možno budete musieť prispôsobiť svoje testovacie triedy tak, aby pracovali s mechanizmom plánovania spoločnosti Chess.

3. Atribúty a anotácie: Šach používa atribúty ako `[ScheduleTestMethod]` a `[DataReTestMethod] 'na označenie metód súbežného testovania. Tieto atribúty by ste mali použiť na svoje testovacie metódy MVVMCross, aby ste využili schopnosti šachov [1].

4. Výzvy v integrácii: Hlavnou výzvou by bolo integrácia šachu s existujúcou testovacou infraštruktúrou MVVMCross Framework. Testy MVVMCross zvyčajne zdedia z `mvxiocSupportingTest` a používajte MOQ na zosmiešňovacie závislosti [2]. Museli by ste zabezpečiť, aby šach mohol s týmito komponentmi bezproblémovo pracovať.

5. Reprodukovateľnosť: Jednou zo silných stránok šachu je jej schopnosť reprodukovať chyby súbežnosti, čo je rozhodujúce pre ladenie. Ak úspešne integrujete šach s MVVMCross, mali by ste byť schopní efektívnejšie reprodukovať a ladiť súbežné problémy.

Záver

Aj keď je šach výkonným nástrojom na zisťovanie chýb súbežnosti, jej integrácia s MVVMCross by vyžadovala starostlivé nastavenie a prispôsobenie. Ak dokážete úspešne integrovať šach do svojho rámca testovania MVVMCross, mohlo by to byť efektívny spôsob, ako identifikovať a ladiť problémy súbežnosti vo vašich aplikáciách medzi platformami. Zložitosť tejto integrácie sa však môže líšiť v závislosti od špecifík vašej projektovej architektúry a požiadaviek na testovanie.

Citácie:
[1] https://github.com/leesanderson/chess
[2] https://www.mvvmcross.com/documentation/funmamentals/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-his-view-get-get-t-the-the-viewmodel/17602246
[6] https://learn.microsoft.com/en-us/archive/msdnmagazine/2008/june/tools-and-techniques-to-Identify-concurrency-isesuesu
[7] https://stackoverflow.com/questions/689671/tool-for-detecting-concurrency-problems
[8] https://stackoverflow.com/questions/22122318/how-can-i-detect-the-platform-at-retime-using-using-mvvmcross
[9] https://courses.cs.washington.edu/courses/cse503/10wi/readings/osdi2008-chess.pdf