Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ali se lahko učinkovito uporablja z mvvmcrossom za odkrivanje napak sočasnosti


Ali se lahko učinkovito uporablja z mvvmcrossom za odkrivanje napak sočasnosti


CHES, ki ga je razvil Microsoft Research, je močno orodje za odkrivanje napak v sočasnosti v večkratnih programih s sistematičnim raziskovanjem vseh možnih prepletanja niti. Učinkovito lahko prepozna vprašanja, kot so zastoji, žive in podatkovne dirke, zaradi česar je dragocena prednost pri testiranju sočasne programske opreme [1] [3] [4]. Vendar je, ali se lahko šah učinkovito uporablja z MVVMcross za odkrivanje napak v sočasnosti, odvisno od več dejavnikov.

MVVMcross Pregled

MVVMcross je okvir za gradnjo aplikacij za navzkrižno platformo po vzorcu modela-sview-ViewModel (MVVM). Ponuja orodja in infrastrukturo za upravljanje kompleksnosti razvoja med platformami, vključno z vbrizgavanjem odvisnosti in pripomočki [2] [5].

Uporaba šaha z mvvmcross

Če želite uporabljati šah z MVVMcross, bi morali v svoj okvir za testiranje vključiti šah. Tu je nekaj korakov in pomislekov:

1. Sočasnost v MVVMcross: MVVMcross Applications pogosto vključujejo sočasne operacije, zlasti pri obravnavi asinhronih nalaganja podatkov ali nalog v ozadju. Šah je lahko koristen pri testiranju teh sočasnih scenarijev.

2. Nastavitev preskusa: Če želite uporabiti šah, bi morali nastaviti teste MVVMCross. To vključuje ustvarjanje preskusnih metod, ki jih lahko izvede šah, ki sistematično spreminjajo preplete nit, da bi zaznali hroščene hrošče. Morda boste morali prilagoditi svoje testne razrede tako, da delate s šahovskim mehanizmom za načrtovanje.

3. Atributi in pripombe: šah uporablja atribute, kot sta `[ScheduleTestMethod]` in `[dataracetestMethod]` za označevanje metod za sočasno testiranje. Te atribute bi morali uporabiti pri preskusnih metodah MVVMcross, da izkoristite zmožnosti šaha [1].

4. Izzivi integracije: Glavni izziv bi bilo vključevanje šaha z obstoječo testno infrastrukturo MVVMcross Framework. MVVMcross testi običajno podedujejo iz `mvxiocSupportingTest" in uporabljajo MOQ za posmehljive odvisnosti [2]. Morali bi zagotoviti, da lahko šah brez težav deluje s temi komponentami.

5. Obnovljivost: Ena od šahovih prednosti je njegova sposobnost reproduciranja hkratnih napak, kar je ključnega pomena za odpravljanje napak. Če uspešno integrirate šah z MVVMcrossom, bi morali biti sposobni učinkoviteje reproducirati in odpravljanje napak.

Sklep

Medtem ko je šah močno orodje za odkrivanje hkratnih napak, bi njegova integracija z MVVMcross potrebovala skrbno nastavitev in prilagoditev. Če lahko uspešno integrirate šah v svoj okvir testiranja MVVMCross, je to lahko učinkovit način za prepoznavanje in odpravljanje napak v sočasnih težavah v vaših aplikacijah med platformami. Vendar pa se lahko zapletenost te integracije razlikuje glede na posebnosti vašega projektnega arhitekture in zahtev za testiranje.

Navedbe:
[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--link-to-the-viewModel/17602246
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2008/June/tools-and-techniques-to-identify-concurrency-issues
[7] https://stackoverflow.com/questions/689671/tool-for-retecting-concurrency-probles
[8] https://stackoverflow.com/questions/22122318/how-can-i-detek-the-platform-at-runtime-uporaba-mvvmcross
[9] https://courses.cs.washington.edu/courses/cse503/10wi/readings/osdi2008-chess.pdf