Microsoft Researchi välja töötatud male on võimas tööriist mitmekeelsete programmide samaaegsete vigade tuvastamiseks, uurides süstemaatiliselt kõiki võimalikke lõimede põimimist. See suudab tõhusalt tuvastada selliseid probleeme nagu ummikseisud, elavad ja andmevõistlused, muutes selle samaaegse tarkvara testimisel väärtuslikuks varaks [1] [3] [4]. Kuid kas malet saab tõhusalt kasutada MVVMcrossiga samaaegsuse vigade tuvastamiseks, sõltub mitmest tegurist.
mvvmcross ülevaade
MVVMCROSS on raamistik platvormidevaheliste rakenduste ehitamiseks, kasutades mudeli-view-viewModel (MVVM) mustrit. See pakub tööriistu ja infrastruktuuri platvormideülese arengu keerukuse, sealhulgas sõltuvuse süstimise ja keermestamise utiliite haldamiseks [2] [5].
MVVMCROSSiga male kasutamine
MVVMCROSS -iga male kasutamiseks peate male integreerima oma testimisraamistikku. Siin on mõned sammud ja kaalutlused:
1. samaaegsus mvvmcrossis: MVVMCROSS -i rakendused hõlmavad sageli samaaegseid toiminguid, eriti asünkroonsete andmete laadimise või taustülesannete käsitlemisel. Male võib olla kasulik nende samaaegsete stsenaariumide testimisel.
2. Testi seadistamine: male kasutamiseks peaksite oma mvvmcrossi testid seadistama. See hõlmab testimeetodite loomist, mida saab male abil teostada, mis varieerub süstemaatiliselt lõime lükkamisi samaaegsete vigade tuvastamiseks. Võimalik, et peate oma katsetunde kohandama, et töötada koos Chessi ajakava mehhanismiga.
3. Atribuudid ja annotatsioonid: male kasutab samaaegse testimise meetodite tähistamiseks atribuute nagu `[ScheduleTestMethod]` ja `[dataraceTestMethod]`. Peaksite neid atribuute rakendama oma MVVMCrossi testimeetoditele malevõimaluste kasutamiseks [1].
4. Integreerimise väljakutsed: peamine väljakutse oleks male integreerimine MVVMcross Frameworki olemasoleva testimise infrastruktuuriga. MVVMCROSSi testid pärivad tavaliselt `mvxiocsupportingTestT” ja kasutavad MOQ -d sõltuvuste pilkamiseks [2]. Peaksite tagama, et male saaks nende komponentidega sujuvalt töötada.
5. REPRODREPREPREPREPRODREVAY: Üks male tugevusi on selle võime reprodutseerida samaaegsusvigu, mis on silumiseks ülioluline. Kui integreerite male edukalt MVVMCROSS -iga, peaksite saama tõhusamalt reprodutseerida ja siluda.
Järeldus
Kuigi male on võimas tööriist samaaegsuse vigade tuvastamiseks, nõuaks selle integreerimine MVVMCROSS -iga hoolikat seadistamist ja kohanemist. Kui suudate male edukalt integreerida oma MVVMCrossi testimise raamistikku, võib see olla tõhus viis platvormidevahelistes rakendustes samaaegsete probleemide tuvastamiseks ja silumiseks. Selle integreerimise keerukus võib siiski erineda sõltuvalt teie projekti arhitektuuri ja testimisnõuete eripäradest.
Tsitaadid:[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
]
]
]
]
[9] https://courses.cs.washington.edu/courses/cse503/10wi/readings/osdi2008-chess.pdf