Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako se Racerx primerja z drugimi orodji za testiranje sočasnosti za aplikacije MVVMcross


Kako se Racerx primerja z drugimi orodji za testiranje sočasnosti za aplikacije MVVMcross


Če primerjamo Racerx z drugimi orodji za testiranje sočasnosti, zlasti v okviru aplikacij MVVMcross, je nujno razumeti edinstvene lastnosti in omejitve vsakega orodja.

Racerx

** Racerx je orodje za statično analizo, ki je občutljivo na tok, zasnovano za odkrivanje vprašanj sočasnosti, kot so dirke in zastoje. Izstopa tako, da zahteva minimalno pripisovanje izvorne kode, ki običajno potrebuje le majhno tabelo, ki določa API -je, ki se uporabljajo za pridobivanje in sproščanje ključavnic. To zmanjšuje breme pripisov velikih sistemov, zaradi česar je bolj učinkovit za razvijalce, ki delajo s kompleksnimi aplikacijami. Racerx iz izvorne kode gradi graf krmilnega toka (CFG), ki vključuje informacije o funkcijskih klicih, skupnem pomnilniku in uporabi kazalcev. Nato uporabi ta graf za prepoznavanje potencialnih vprašanj sočasnosti z analizo, kako se uporabljajo ključavnice v celotni bazi [1].

Primerjava s šahom

** Šah, drugo orodje za testiranje sočasnosti, ki ga je razvil Microsoft Research, uporablja kombinacijo preverjanja modela in dinamične analize. Za razliko od Racerxa sistematično raziskuje urnike niti, da bi zaznali hkratne napake, kot so dirke, zastoje in korupcija podatkov. Šah ponuja popolnoma ponovljivo izvajanje okolja, ki je koristno za odpravljanje napak. Vendar se CHES za preverjanje stanja opira na trditve programerja in ne obravnava sinhronizacije z zaklenjenimi operacijami, kar lahko omeji njegovo uporabnost v določenih scenarijih [1].

Primerjava z drugimi orodji

V okviru aplikacij MVVMcross, ki so predvsem navzkrižno platforma in uporabljajo vzorec MVVM, lahko na izbiro orodij za testiranje sočasnosti vplivajo posebne potrebe aplikacije. Na primer, če aplikacija vključuje zapletene navoje ali sočasne operacije, bi lahko bila koristna orodja, kot sta šah ali dirkač. Vendar MVVMcross sam po sebi ne zagotavlja orodij za testiranje sočasnosti; Osredotoča se na zagotavljanje okvira za razvoj navzkrižnih platform z uporabo vzorca MVVM [9] [10].

Upoštevanje za aplikacije MVVMcross

Pri razvoju aplikacij MVVMCross je glavni poudarek pogosto na deljenju vedenja in poslovni logiki na platformah. Medtem ko MVVMcross zagotavlja funkcije, kot so vbrizgavanje odvisnosti in okvirji vtičnikov, se ne obravnava neposredno testiranja sočasnosti. Zato bodo morda morali razvijalci v svoj testirni potek dela vključiti zunanja orodja, kot sta Racerx ali šah, da bi zagotovili pravilno potrjeno sočasne operacije v njihovih aplikacijah.

Če povzamemo, je Racerx močno orodje za odkrivanje sočasnih težav z minimalnim pripomb kode, zaradi česar je primeren za velike in zapletene sisteme. Vendar pa bi bila njegova uporabnost za aplikacije MVVMcross odvisna od posebnih sočasnih zahtev aplikacije, morda pa bi jo bilo treba uporabiti skupaj z drugimi preskusnimi okviri, ki so bolj neposredno integrirani z MVVMcross ekosistemom.

Navedbe:
[1] https://learn.microsoft.com/en-us/archive/msdn-magazine/2008/June/tools-and-techniques-to-idenfy-concurrency-issues
[2] https://www.palmmedia.de/blog/2011/8/30/ioc-container-bechmark-performance-comparison
[3] https://testsigma.com/blog/android-testing-tools/
[4] https://www.mvvmcross.com/documentation/fundamentals/testing
[5] https://www.funcyize.com/automated-testing/cross-browser-testing-tools
[6] https://www.browestack.com/guide/cross-platform-testing-tools
[7] https://stackoverflow.com/questions/17233922/mvvmcross-mvx-trace-usage
[8] https://stackoverflow.com/Questions/25134716/should-i-choose-mvvmlight-or-mvvmcross-on-a-new-Project-Of-to-Medium-Comp
[9] https://github.com/mvvmcross/mvvmcross
[10] https://www.mvvmcross.com