Šahs, kuru izstrādājis Microsoft Research, ir spēcīgs rīks vienlaicīgas kļūdu noteikšanai daudzpavedienu programmās, sistemātiski izpētot visus iespējamos pavedienu starpposmus. Tas var efektīvi noteikt tādas problēmas kā strupceļi, dzīvnieki un datu sacīkstes, padarot to par vērtīgu priekšrocību vienlaicīgas programmatūras pārbaudē [1] [3] [4]. Tomēr tas, vai šahu var efektīvi izmantot ar MVVMCross, lai noteiktu vienlaicīguma kļūdas, ir atkarīgs no vairākiem faktoriem.
mvvmcross pārskats
MVVMCROSS ir ietvars dažādu platformu lietojumprogrammu veidošanai, izmantojot modeļa-View-ViewModel (MVVM) modeli. Tas nodrošina instrumentus un infrastruktūru, lai pārvaldītu starpplatformu attīstības sarežģītību, ieskaitot atkarības injekciju un vītņošanas komunālos pakalpojumus [2] [5].
Izmantojot šahu ar mvvmcross
Lai izmantotu šahu ar MVVMCross, jums būs jāintegrē šahs jūsu testēšanas sistēmā. Šeit ir daži soļi un apsvērumi:
1. MVVMCROSS vienlaicība: MVVMCROSS lietojumprogrammas bieži ietver vienlaicīgas darbības, it īpaši, ja tiek galā ar asinhronu datu ielādi vai fona uzdevumiem. Šahs var būt izdevīgs, pārbaudot šos vienlaicīgos scenārijus.
2. Testa iestatīšana: šaha lietošanai būs jāiestata MVVMCROSS testi. Tas ietver testa metožu izveidi, kuras šahs var izpildīt, kas sistemātiski maina pavediena savstarpējo vērtību, lai noteiktu vienlaicības kļūdas. Jums, iespējams, būs jāpielāgo savas testa nodarbības darbam ar šaha plānošanas mehānismu.
3. Atribūti un anotācijas: Šahs izmanto tādus atribūtus kā `[ScheduleTestMethod]` un `[DataraceTestMethod]`, lai atzīmētu vienlaicīgas pārbaudes metodes. Šie atribūti būtu jāpiemēro savām MVVMCROSS testa metodēm, lai izmantotu šaha iespējas [1].
4. Integrācijas izaicinājumi: Galvenais izaicinājums būtu šaha integrēšana ar MVVMCROSS ietvara esošo testēšanas infrastruktūru. MVVMCROSS testi parasti manto no `mvxiocSupportingTest` un izmantojiet MOQ ņirgāšanās atkarībām [2]. Jums būtu jāpārliecinās, ka šahs var nemanāmi strādāt ar šiem komponentiem.
5. Reproducējamība: Viena no šaha stiprajām pusēm ir tā spēja reproducēt vienlaicīguma kļūdas, kas ir būtiska atkļūdošanai. Ja jūs veiksmīgi integrējat šahu ar MVVMCross, jums vajadzētu būt iespējai efektīvāk reproducēt un atkļūdot vienlaicības jautājumus.
Secinājums
Kaut arī šahs ir spēcīgs rīks vienlaicības kļūdu noteikšanai, tā integrācijai ar MVVMCross būtu nepieciešama rūpīga iestatīšana un pielāgošana. Ja jūs varat veiksmīgi integrēt šahu savā MVVMCROSS testēšanas sistēmā, tas varētu būt efektīvs veids, kā identificēt un atkļūdot vienlaicības problēmas savstarpējās platformas lietojumprogrammās. Tomēr šīs integrācijas sarežģītība var atšķirties atkarībā no jūsu projekta arhitektūras un testēšanas prasību specifikas.
Atsauces:[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-brinked-to-the-viewmodel/17602246
[6.]
[7] https://stackoverflow.com/questions/689671/tool-for-detecting-concurrency-problems
[8] https://stackoverflow.com/questions/22122318/how-can-i-detect-the-platform-at-runtime-using-mvmcross
[9] https://courses.cs.washington.edu/courses/cse503/10wi/readings/osdi2008-chess.pdf