KUnit: uusi yksikkötestauskehys Linux-ytimelle

Tux

Viime tiistaina, Google-insinööri Brendan Higgins ilmoitti kokeellisesta 31-korjaustiedostosta esitellessään KUnitiä uutena Linux-ytimen yksikkötestauskehyksenä ydinkoodin laadun säilyttämiseksi ja parantamiseksi.

Tämä joukko laastareita ehdottaa, että KUnit on Linux-ytimen testauskehys.

Toisin kuin Autotest ja kselftest, KUnit on todellinen testikehys, joka ei vaadi ytimen asentamista testikoneeseen tai virtuaalikoneeseen eikä se myöskään vaadi testien kirjoittamista isäntäkoneella toimivaan käyttäjätilaan.

Tietoja KUnitista

KUnit on kevyt aseman simulointi- ja testauskehys, joka on suunniteltu Linux-ytimeen. Yksikkötesteillä on välttämättä tarkempi tarkkuus, ne pystyvät testaamaan kaikki koodipolut helposti ratkaisemalla klassisen vaikeusongelman virhekäsittelykoodin käyttämiseksi.

KUnit se on innoittamana JUnitista, Pythonin unittest.mockista ja Googletest / Googlemockista C ++: lle. KUnit tarjoaa mahdollisuuden määritellä yksikkötestitapaukset, ryhmitellä niihin liittyvät testitapaukset testipaketteihin, tarjota yhteinen infrastruktuuri testien suorittamiseen, mallintamiseen, vakoiluun ja paljon muuta.

Kuten Brendan Higgins kuvaa:

Yksikkötestin on tarkoitus testata yksi yksikkö koodia erikseen, joten nimi. Testin hallinnassa ei saa olla riippuvuuksia; tämä tarkoittaa, että ulkoisia riippuvuuksia ei ole, mikä nopeuttaa suuruustestien tilaamista.

Koska ulkoisia riippuvuuksia ei ole, ei ole vanteita, joihin hypätä suorittamaan testejä. Lisäksi se tekee yksikötestit deterministisiksi - epäonnistunut yksikötesti osoittaa aina ongelman.

Lopuksi, koska yksikkötesteillä on välttämättä tarkempi tarkkuus, ne pystyvät testaamaan kaikki koodireitit helposti ratkaistakseen klassisen ongelman.

Virheiden käsittelykoodin käyttäminen on vaikeaa.

Testaa ydin

Brende kirjoittaa:

”Lisäksi KUnit on nopea: kutsusta loppuun saakka KUnit voi suorittaa useita kymmeniä testejä alle sekunnissa. Tällä hetkellä koko KUnit-testipaketti KUnitille kestää alle sekunnissa alkuperäisestä kutsusta (kääntöaika pois lukien) «.

Kysyttäessä korvaako KUnit muut Linux-ytimen testikehykset, Brenden kielsi sen sanoen:

"Suurin osa Linux-ytimen nykyisistä testeistä on end-to-end-testejä, joilla on paikkansa. Hyvin testatussa järjestelmässä on paljon yksikkötestejä, kohtuullinen määrä integraatiotestejä ja joitain end-to-end-testejä.

KUnit yrittää puuttua vain aseman testitilaan, jota ei tällä hetkellä käsitellä.

KUnit ratkaisu Linux-testaukseen 

KUnit ratkaisee ongelman pystyä suorittamaan testejä ilman virtuaalikonetta tai todellista laitteistoa, kuten ARM, x86, X64, muun muassa.

Toisin kuin muut arkkitehtuurit, se kootaan erilliseksi ohjelmaksi, joka voi toimia kuten mikä tahansa muu ohjelma suoraan isäntäkäyttöjärjestelmässä; Selkeyden vuoksi se ei vaadi virtualisointitukea; Se on vain säännöllinen esitys.

KUnit on nopea. Lukuun ottamatta kääntöaikaa, suorittamisesta loppuun, KUnit voi suorittaa useita kymmeniä testejä vain 10-20 sekunnissa.

Tämä ei ehkä näytä olevan iso asia joillekin ihmisille, mutta testien tekeminen niin nopeasti ja helposti suoritettaviksi muuttaa pohjimmiltaan tapaa missä testaus ja jopa koodin kirjoittaminen tehdään ensin.

KUnitin ulkopuolella, Ytimelle ei tällä hetkellä ole käytettävissä testikehyksiä, jotka eivät vaadi ytimen asentamista testikoneeseen tai virtuaalikoneeseen ja ne kaikki edellyttävät testien kirjoittamista ytimessä olevaan käyttäjätilaan; Tämä pätee Autotest- ja kselftest-testeihin, jolloin jompikumpi niistä hylätään yksikkötestikehyksinä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.