KUnit: nauja „Linux“ branduolio testavimo sistema

Tuksas

Praeitą antradienį, „Google“ inžinierius Brendanas Higginsas, pristatydamas „KUnit“, paskelbė eksperimentinį 31 pleistrų rinkinį kaip naują „Linux“ branduolio vieneto testavimo sistemą, padedančią išsaugoti ir pagerinti branduolio kodo kokybę.

Šis pleistrų rinkinys siūlo, kad „KUnit“ yra „Linux“ branduolio testavimo sistema.

Skirtingai nuo „Autotest“ ir „kselftest“, „KUnit“ yra tikra testavimo sistema, kuriai nereikia įdiegti branduolio į bandomąją ar virtualiąją mašinas taip pat nereikalaujama, kad bandymai būtų parašyti pagrindiniame kompiuteryje esančioje vartotojo erdvėje.

Apie „KUnit“

„KUnit“ yra lengva diskų modeliavimo ir testavimo sistema, sukurta „Linux“ branduoliui. Vieneto testai būtinai yra smulkesni, jie sugeba išbandyti visus kodo kelius, lengvai išsprendžiant klasikinę problemą, susijusią su klaidų tvarkymo kodu.

KUnit tai labai įkvėpė „JUnit“, „Python's unittest.mock“ ir „Googletest / Googlemock“ C ++. „KUnit“ suteikia galimybę apibrėžti vienetinius bandymų atvejus, sugrupuoti susijusius bandymo atvejus į bandomuosius rinkinius, suteikia bendrą bandymų vykdymo, maketų, šnipinėjimo ir daug daugiau infrastruktūros.

Kaip tai apibūdina Brendanas Higginsas:

Vieneto testas turėtų patikrinti atskirai vieną kodo vienetą, taigi ir pavadinimą. Testas neturi priklausyti nuo priklausomybės; tai reiškia, kad nėra išorinių priklausomybių, todėl užsakomi dydžių testai yra greitesni.

Be to, kadangi nėra išorinių priklausomybių, nėra ratų, į kuriuos reikėtų pereiti, kad būtų galima atlikti bandymus. Be to, tai daro determinantinius vieneto testus - nepavykęs vieneto testas visada rodo problemą.

Galiausiai, kadangi vieneto testai būtinai yra smulkesni, jie gali išbandyti visus kodo kelius, lengvai išspręsdami klasikinę problemą.

Sunkumai naudojant klaidų tvarkymo kodą.

Išbandykite branduolį

Brende rašo:

„Be to,„ KUnit “yra greitas: nuo iškvietimo iki užbaigimo„ KUnit “gali atlikti kelias dešimtis bandymų per mažiau nei sekundę. Šiuo metu visas „KUnit“ bandomasis „KUnit“ rinkinys veikia mažiau nei per sekundę nuo pradinio iškvietimo (išskyrus kompiliavimo laiką).

Paklaustas, ar „KUnit“ pakeis kitas „Linux“ branduolio bandymo sistemas, Brendenas tai paneigė sakydamas:

„Dauguma esamų„ Linux “branduolio bandymų yra nuo galo iki galo atliekami bandymai, kurie turi savo vietą. Gerai patikrintoje sistemoje yra daug vienetinių bandymų, pagrįstas integravimo testų skaičius ir keli „nuo vieno iki kito“ bandymai.

„KUnit“ bando išspręsti tik disko bandymo vietą, kuri šiuo metu nėra sprendžiama.

KUnit „Linux“ testavimo sprendimą 

KUnit išsprendžia problemą kad būtų galima atlikti bandymus be virtualios mašinos ar tikros aparatinės įrangos, tokios kaip ARM, x86, X64, be kitų.

Tačiau, skirtingai nei kitos architektūros, jis yra sudarytas į atskirą programą, kurią galima paleisti kaip ir bet kurią kitą programą tiesiogiai pagrindinėje operacinėje sistemoje; Kad būtų aišku, tam nereikia jokios virtualizacijos palaikymo; Tai tik eilinis pasirodymas.

„KUnit“ yra greitas. Išskyrus kompiliavimo laiką, nuo vykdymo iki užbaigimo, „KUnit“ gali atlikti kelias dešimtis bandymų tik per 10–20 sekundžių.

Kai kuriems žmonėms tai gali neatrodyti didelė problema, tačiau taip greitai ir lengvai atliekami testai iš esmės pakeičia būdą kur pirmiausia atliekamas testavimas ir netgi kodo rašymas.

Už KUnito ribų šiuo metu nėra branduolio bandymų sistemų, kurios nereikalautų, kad branduolys būtų įdiegtas bandymo mašinoje arba VM ir visi jie reikalauja, kad testai būtų parašyti vartotojo erdvėje, veikiančioje branduolyje; Tai pasakytina apie „Autotest“ ir „kselftest“, atmetant bet kurį iš jų nelaikant vieneto testavimo sistemomis.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.