Kun verrataan Racerxia muihin samanaikaisesti testaustyökaluihin, etenkin MVVMCross -sovellusten yhteydessä, on välttämätöntä ymmärtää kunkin työkalun ainutlaatuiset ominaisuudet ja rajoitukset.
Racerx
** Racerx on virtausherkkä staattinen analyysityökalu, joka on suunniteltu havaitsemaan samanaikaisuuskysymykset, kuten rodut ja umpikujat. Se erottuu vaatimalla lähdekoodin minimaalisen merkinnän, joka tyypillisesti tarvitsee vain pienen taulukon, jossa määritetään sovellusliittymät, joita käytetään lukkojen hankkimiseen ja vapauttamiseen. Tämä vähentää suurten järjestelmien merkitsemisen taakkaa, mikä tekee siitä tehokkaamman kehittäjille, jotka työskentelevät monimutkaisten sovellusten kanssa. Racerx rakentaa ohjausvirtakaavion (CFG) lähdekoodista, joka sisältää tietoja toimintopuheluista, jaetusta muistista ja osoittimen käytöstä. Sitten se käyttää tätä kuvaajaa mahdollisten samanaikaisuusongelmien tunnistamiseen analysoimalla kuinka lukkoja käytetään koodipakassa [1].
Vertailu shakkiin
** Shakki, toinen Microsoft Researchin kehittämä samanaikaisuuden testaustyökalu, käyttää yhdistelmää mallin tarkistusta ja dynaamista analyysiä. Toisin kuin Racerx, shakki tutkii systemaattisesti ketjuaikatauluja samanaikaisuusvirheiden, kuten kilpailuolosuhteiden, umpikujan ja tietojen korruption, havaitsemiseksi. Shakki tarjoaa täysin toistettavan toteutusympäristön, josta on hyötyä virheenkorjaustarkoituksiin. Shakki riippuu kuitenkin ohjelmoijan väitteistä valtion todentamiseksi eikä käsittele synkronointia lukittujen toimintojen kautta, mikä saattaa rajoittaa sen sovellettavuutta tietyissä skenaarioissa [1].
Vertailu muihin työkaluihin
Sovelluksen erityistarpeet voivat vaikuttaa MVVMCross-sovellusten yhteydessä, jotka ovat ensisijaisesti alustoja ja käyttävät MVVM-mallia samanaikaisuuden testaustyökalujen valintaan. Esimerkiksi, jos sovellukseen sisältyy monimutkainen lanka tai samanaikaiset toiminnot, työkalut, kuten shakki tai racerx, voivat olla hyödyllisiä. Itse MVVMCross ei kuitenkaan luontaisesti tarjoa samanaikaisuutta testaustyökaluja; Se keskittyy puitteiden tarjoamiseen alustojen väliseen kehitykseen käyttämällä MVVM-mallia [9] [10].
MVVMCROSS -sovellusten näkökohdat
Kehitettäessä MVVMCross -sovelluksia ensisijaisena painopisteenä on usein käyttäytymisen ja liiketoimintalogiikan jakamiseen alustojen välillä. Vaikka MVVMCross tarjoaa ominaisuuksia, kuten riippuvuusinjektio- ja laajennuskehykset, se ei osoita suoraan samanaikaisuutta. Siksi kehittäjien on ehkä integroitava ulkoiset työkalut, kuten Racerx tai shakki, testata työnkulku varmistaakseen, että niiden sovellusten samanaikaiset toiminnot validoidaan asianmukaisesti.
Yhteenvetona voidaan todeta, että Racerx on tehokas työkalu samanaikaisten ongelmien havaitsemiseen minimaalisella koodin merkinnällä, mikä tekee siitä sopivan suurille ja monimutkaisille järjestelmille. Sen sovellettavuus MVVMCross -sovelluksiin riippuu kuitenkin sovelluksen erityisistä samanaikaisuusvaatimuksista, ja sitä on ehkä käytettävä muiden testauskehysten rinnalla, jotka ovat integroituneempia MVVMCross -ekosysteemiin.
Viittaukset:.
[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
.
[6] https://www.browserstack.com/guide/cross-platform-testing-tools
[7] https://stackoverflow.com/questions/17233922/mvmcross-mvx-trace-usage
.
[9] https://github.com/mvvmcross/mvvmcross
[10] https://www.mvvmcross.com