Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kādas ir iespējamās nepilnības, lai visu pārbaudītu


Kādas ir iespējamās nepilnības, lai visu pārbaudītu


Pārmācot visu testos, var izraisīt vairākas iespējamās nepilnības, kas var negatīvi ietekmēt jūsu testēšanas stratēģijas efektivitāti un uzticamību. Šeit ir daži no galvenajiem jautājumiem, kas saistīti ar pārmērīgu ņirgāšanos:

1. trauslie testi un stingra savienošana **

Ņirgājoties par katru atkarību, jūsu testi tiek cieši saistīti ar pārbaudāmā koda ieviešanas informāciju. Tas nozīmē, ka pat nelielas izmaiņas koda iekšējā darbībā var pārkāpt testus, pat ja ārējā uzvedība paliek nemainīga. Šādi testi ir trausli un kuriem ir nepieciešami bieži atjauninājumi, kas var būt laikietilpīgi un nomākti [6] [9].

2. Viltus pārliecība un slēptās kļūdas **

Pārmērīga ņirgāšanās var izraisīt nepatiesu pārliecību par koda uzticamību. Izolējot komponentus ar izspēlēm, jums varētu pietrūkt reālās pasaules problēmas, kas izpaužas tikai tad, kad visi komponenti mijiedarbojas. Tas var izraisīt kļūdas, kas tiek atklātas ražošanā, nevis testēšanas laikā, graujot testēšanas mērķi [1] [9].

3. Pārmērīga sarežģītība un uzturēšanas problēmas **

Izveidošana un uzturēšana, īpaši sarežģītām sistēmām, var būt izaicinoša un laikietilpīga. Sistēmai attīstoties, var būt jāatjaunina ņirgāšanās, lai atspoguļotu izmaiņas atkarībā vai uzvedībā, kas var būt apgrūtinošas un pakļautas kļūdām [9] [11].

4. Grūtības pārbaudīt reālās pasaules uzvedību **

Ņirgāšanās visu var apgrūtināt pārbaudīt, kā sistēma uzvedas reālās pasaules scenārijos. Integrācijas testi, kas ietver mazāk izspēles, bieži ir labāk piemēroti šim nolūkam. Pārmērīga paļaušanās uz izspēlēm var izraisīt testus, kas precīzi neatspoguļo reālās pasaules mijiedarbību [9] [11].

5. Neefektīva resursu izmantošana **

Pārmērīga ņirgāšanās var izraisīt neefektīvu resursu izmantošanu. Izspēles konfigurēšana var patērēt vairāk laika nekā faktiskās testa loģikas rakstīšana, it īpaši datu bāzes smagās vai sarežģītās sistēmās [2] [11]. Šī neefektivitāte var palēnināt attīstības procesu un palielināt testēšanas izmaksas.

6. Pārklāšanās ar integrācijas testiem **

Kad vienības testi aptver scenārijus, kurus arī pārbauda ar integrācijas testiem bez izspēlēm, tas rada jautājumus par šo vienības testu pievienoto vērtību. Integrācijas testi bieži nodrošina visaptverošāku sistēmas uzvedības atspoguļojumu bez nepieciešamības pēc plašas ņirgāšanās [2] [7].

7. Nepareizas izspēles uzvedības potenciāls **

Ja izspēles precīzi neatdarina viņu aizstājošo reālo objektu izturēšanos, testi var izturēt pat tad, ja faktiskā sistēma neizdosies. Tas var izraisīt nepatiesu drošības sajūtu un nokavētās kļūdas [5] [9].

Rezumējot, kaut arī ņirgāšanās var būt noderīgs rīks testēšanā, tā pārmērīga izmantošana var izraisīt trauslu testus, nepatiesu pārliecību un neefektivitāti. Ir svarīgi saprātīgi izmantot ņirgāšanos un, ja iespējams, apsvērt alternatīvas, piemēram, integrācijas testus.

Atsauces:
[1] https://cs-syd.eu/posts/2021-10-22-why-mocking-is-a-bad-dea
[2] https://softwareEngineering.stackexchange.com/questions/454887/how-to-avoid-too-much-mocking-in-init-pi-in-a-atabase-heavy-metod
[3] https://ryanclements.dev/posts/you-probibly-dont-need-mocking
.
[5] https://softwareEngineering.stackexchange.com/questions/382087/how-exactly-should-unit-tests-be-written-without-mocking- ekstensīvi
[6] https://pytest-with-eric.com/mocking/pytest-common-mocking-problems/
[7] https://www.reddit.com/r/typescript/comments/1ei9f4a/is_it_me_or_mocking_everything_everywher_in/
[8] https://stackoverflow.com/questions/38181/when-should-i-mock
[9] https://www.qodo.ai/blog/mock-testing/
[10] https://hynek.me/articles/what-to-mockin-in-5-mins/
[11] https://vinted.engineering/2023/10/02/mocking-frameworknow-nownSide/