Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā Racerx salīdzina ar citiem MVVMCROSS lietotņu vienlaicības pārbaudes rīkiem


Kā Racerx salīdzina ar citiem MVVMCROSS lietotņu vienlaicības pārbaudes rīkiem


Salīdzinot Racerx ar citiem vienlaicīguma pārbaudes rīkiem, jo ​​īpaši MVVMCROSS lietotņu kontekstā, ir svarīgi izprast katra rīka unikālās funkcijas un ierobežojumus.

racerx

** Racerx ir plūsmas jutīgs statiskās analīzes rīks, kas paredzēts, lai atklātu vienlaicīguma jautājumus, piemēram, rases un strupceļu. Tas izceļas, pieprasot minimālu avota koda anotāciju, parasti nepieciešama tikai neliela tabula, kas norāda API, ko izmanto slēdzeņu iegūšanai un atbrīvošanai. Tas samazina lielo sistēmu anotēšanas slogu, padarot to efektīvāku izstrādātājiem, kas strādā ar sarežģītām lietojumprogrammām. Racerx no avota koda veido vadības plūsmas grafiku (CFG), kas ietver informāciju par funkciju zvaniem, koplietotu atmiņu un rādītāja izmantošanu. Pēc tam tas izmanto šo grafiku, lai identificētu iespējamās vienlaicības problēmas, analizējot, kā slēdzenes tiek izmantotas visā kodu bāzē [1].

Salīdzinājums ar šahu

** Šahs, vēl viens Microsoft Research izstrādātais vienlaicīgās pārbaudes rīks, izmanto modeļa pārbaudes un dinamiskās analīzes kombināciju. Atšķirībā no Racerx, šahs sistemātiski pēta pavedienu grafikus, lai atklātu vienlaicīguma kļūdas, piemēram, rases apstākļus, strupceļus un datu korupciju. Šahs nodrošina pilnībā atkārtojamu izpildes vidi, kas ir izdevīga atkļūdošanas nolūkos. Tomēr šahs paļaujas uz programmētāja apgalvojumiem stāvokļa pārbaudei un nerīkojas ar sinhronizāciju, izmantojot savstarpēji savienotas operācijas, kas varētu ierobežot tā piemērojamību noteiktos scenārijos [1].

Salīdzinājums ar citiem rīkiem

MVVMCROSS lietotņu kontekstā, kas galvenokārt ir savstarpēji savienotas un izmanto MVVM modeli, vienlaicības pārbaudes rīku izvēli var ietekmēt lietojumprogrammas īpašās vajadzības. Piemēram, ja lietojumprogramma ietver sarežģītas vītņošanas vai vienlaicīgas darbības, tādi rīki kā šahs vai racerx varētu būt izdevīgi. Tomēr pats MVVMCROSS nenodrošina vienlaicīguma pārbaudes rīkus; Tas koncentrējas uz starpplatformu izstrādes sistēmas nodrošināšanu, izmantojot MVVM modeli [9] [10].

apsvērumi MVVMCROSS lietotnēm

Izstrādājot MVVMCROSS lietotnes, galvenā uzmanība bieži tiek pievērsta tam, lai dalītos uzvedībā un biznesa loģikā visās platformās. Kaut arī MVVMCROSS nodrošina tādas funkcijas kā atkarības injekcija un spraudņu ietvari, tas tieši nerunā par vienlaicīguma pārbaudi. Tāpēc izstrādātājiem, iespējams, būs jāintegrē ārējie rīki, piemēram, Racerx vai šahs, testēšanas darbplūsmā, lai pārliecinātos, ka vienlaicīgas darbības to lietojumprogrammās tiek pareizi apstiprinātas.

Rezumējot, Racerx ir spēcīgs rīks vienlaicīgas problēmas atklāšanai ar minimālu koda anotāciju, padarot to piemērotu lielām un sarežģītām sistēmām. Tomēr tā piemērojamība MVVMCROSS lietotnēs būtu atkarīga no lietojumprogrammas īpašajām vienlaicīgajām prasībām, un tā, iespējams, būs jāizmanto kopā ar citiem testēšanas ietvariem, kas ir tiešāk integrēti ar MVVMCROSS ekosistēmu.

Atsauces:
[1.]
[2] https://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison
[3] https://testSigma.com/blog/android-testing-tools/
[4] https://www.mvvmcross.com/documentation/fundamentals/testing
[5] https://www.functionize.com/automated-testing/cross-lowser-testing-disools
[6] https://www.browserstack.com/guide/cross-platform-testing-disools
[7] https://stackoverflow.com/questions/17233922/mvvmcross-mvx-trace-usage
[8] https://stackoverflow.com/questions/25134716/should-i-choose-mvvmlight-or-mvvmcross-on-a-newprect-of-simple-to-medium-comp
[9] https://github.com/mvvmcross/mvvmcross
[10] https://www.mvvmcross.com