Mis on lõime testimine tarkvara testimises?
⚡ Nutikas kokkuvõte
Lõimetestimine kontrollib ühe äriülesande peamist funktsionaalset võimekust selle liikudes läbi integreeritud süsteemi ning seda tehakse integratsioonitestimise alguses, mitte pärast iga komponendi valmimist.

Mis on lõime testimine?
Lõimede testimine on tarkvara testimise tüüp, mis kontrollib konkreetse ülesande, mida nimetatakse lõimeks, peamist funktsionaalset võimekust. Tavaliselt viiakse see läbi algstaadiumis. integratsiooni testimine etapp. Lõimepõhine testimine on üks süsteemiintegratsiooni testimisel kasutatavatest järkjärgulistest strateegiatest. Sel põhjusel on lõimepõhine testimine õigem kirjeldada kui lõime interaktsiooni test.
Lõim ei ole siin ainult operatsioonisüsteemi lõim. tarkvaraarendus terminites on lõim üks terviklik äritehing – näiteks „klient esitab tellimuse” – tracläbib iga moodulit, millega see kokku puutub. Lõimede testimine küsib, kas see üks tee toimib ikka õigesti, kui moodulid on omavahel ühendatud.
Allolev diagramm näitab, kuidas üksikud niidid integreeritakse ja harjutatakse alamsüsteemina enne kogu süsteemi kokkupanekut.
Keerme testimise tüübid
Lõimepõhine testimine liigitatakse kahte kategooriasse ja see erinevus määrab nii testiandmed kui ka defektid, mida tõenäoliselt leiate.
- Ühe lõime testimine: Ühe lõimega test hõlmab korraga ühte rakenduse tehingut. Teenindatakse ainult ühte päringut, seega on vastuse käitumine etteaimatav ning testi on lihtne skriptida ja korrata.
- Mitmelõimeline testimine: Mitmelõimeline test hõlmab korraga mitut aktiivset tehingut. Sama teenuse jaoks valmistatakse ette eraldi lõimed, et samaaegse koormuse korral saaks jälgida reageerimisvõimet ja jagatud oleku käsitlemist.
Tehing, mis ühelõimelises testimises veatult läbib, võib mitmelõimelises testimises siiski nurjuda, sest teine testimine lisab konkurentsi samade kirjete, ühenduste ja mälu pärast.
Kuidas teha lõime testimist
Lõimeprotsess keskendub pigem integratsioonitegevustele kui kogu arendustsüklile. Praktikas toimib lähenemisviis järgmiselt.
- Lõimepõhine testimine on seansipõhise testimise üldistatud vorm, kuna seansid on lõime vorm, kuid lõim ei pruugi olla seanss.
- Lõim või programm (väike funktsionaalsus) integreeritakse ja testitakse järk-järgult alamsüsteemina ning seejärel käivitatakse kogu süsteemi jaoks.
- Madalaimal tasemel annab see integraatoritele paremad teadmised testitava ulatuse kohta.
- Tarkvarakomponentide otsese testimise asemel peavad integraatorid keskenduma loogiliste teostusradade testimisele kogu süsteemi kontekstis.
Kuna tööüksus on pigem äritee kui komponent, paikneb lõimede testimine loomulikult nende vahel. moodulite testimine ja täis süsteemi testimine.
Näpunäiteid mitme lõime testimiseks
Mitmelõimelised defektid sõltuvad ajastusest, seega üks puhas käivitamine ei tõesta suurt midagi. Allolevad näpunäited suurendavad nende pinnaletuleku võimalust.
- Testi oma mitmelõimelist programmi, käivitades seda korduvalt erinevate rakenduste kombinatsiooniga.
- Testi oma mitmelõimelist programmi, käivitades korraga mitu programmi eksemplari.
- Käivita oma mitmelõimelist programmi erinevatel riistvaramudelitel, millel on erinev koormus ja pinge.
- Kasutage koodi kontrollimist, kuna mõningaid sünkroniseerimisvigu on lihtsam lugeda kui taasesitada.
- Koguge ainult vigu ja tõrkeid, mis ilmnesid muudes lõimedes peale peamise.
Keermete testimisel leitud levinumad defektid
Samaaegsusvead annavad endast harva märku puhta pinu korral trace. Allolevad kategooriad kajastavad suurema osa sellest, mida mitmelõimeline käivitamine paljastab, ja igal neist on erinev sümptom, mida tasub ära tunda.
- Võistlustingimused: Kaks lõime loevad ja kirjutavad sama väärtust järjestuseta, seega sõltub lõpptulemus sellest, kumb lõim esimesena lõpetas. Sümptom: mõnel käivitamisel õiged ja teistel valed summad.
- Patiseis: Kaks lõime hoiavad kumbki teise jaoks vajalikku lukku ja kumbki ei jätka. Sümptom: tehing hangub lõputult, selle asemel et ebaõnnestuda veaga.
- Ressursi vaidlus: Lõimed ootavad sama ühendust, failikäepidet või kirjet ning läbilaskevõime langeb juba ammu enne riistvaralise piirangu saavutamist.
- Andmete rikkumine: Osaliselt kirjutatud jagatud struktuurid jätavad dokumendid olekusse, mida ükski kehtiv tehing ei suudaks luua.
- Nälgimine: Madala prioriteediga lõim ei saa kunagi vajalikku ressurssi, seega ühe kasutaja tee aegub, samal ajal kui ülejäänud süsteem näib terve olevat.
Igaüks neist vajab logidesse jäädvustatud ebaõnnestunud katset, sest defekti, mis kordub üks kord viiekümne katse jooksul, on muidu võimatu selle kaudu tõsta. defektide haldamise protsess.
Lõimede testimine vs samaaegsuse testimine vs integratsioonitestimine
Need kolm terminit kattuvad ja neid aetakse testimisplaanides sageli segi. Tabelis on need eraldatud kavatsuse järgi.
| Aspekt | Lõimede testimine | Samaaegsuse testimine | Integratsiooni testimine |
| Testitav üksus | Üks äritehing moodulite vahel | Mitu kasutajat või teemat tegutsevad korraga | Kahe või enama komponendi vahelised liidesed |
| Esmane küsimus | Kas see võtmetee töötab otsast lõpuni? | Mis katki läheb, kui juurdepääs on samaaegne? | Kas moodulid suhtlevad omavahel korrektselt? |
| Tüüpiline etapp | Varajane integratsioonitestimine | Süsteemi või jõudluse testimine | Pärast ühiktestimist |
| Sihitud defektid | Katkised täitmisteed, puuduvad üleandmised | Pattiseisud, võidujooksu tingimused, lukustuskonflikt | Liidese mittevastavus, vale andmesidetracts |
| Suhe | Mitmelõimeline variant kattub samaaegsuse testimisega | Laiem kui lõimede testimise mitmelõimeline osa | Lõimede testimine on üks selle sees olev järkjärguline strateegia |
Lühidalt samaaegsuse testimine küsib, mida samaaegne juurdepääs süsteemile teeb, samas kui lõimetestimine küsib, kas üks oluline tee üldse integratsiooni üle elab. Meeskonnad, kes käitavad mõlemat, ajastavad lõimetestimise tavaliselt esimesena.
Keermetestimise eelised
See tehnika teenib oma koha integratsiooniplaanis mitmel praktilisel põhjusel.
- Peamised äriteed valideeritakse varakult, seega leitakse katkised üleandmised enne kogu süsteemi kokkupanekut.
- Integraatorid saavad ulatuse kohta selge pildi, kuna testiüksus on äratuntav tehing, mitte tühi objekt.tract-komponendi piir.
- Loogiliste teostusradade testimine süsteemi kontekstis paljastab vead, mis isoleerisid komponentide testimine ei näe.
- Mitmelõimeline töötlemine tekitab pinnapealseid samaaegsusdefekte – ummikseisusid, võidujooksutingimusi ja ressursikonflikte –, mis muidu jõuaksid tootmiskeskkonda.
- Inkrementaalne integratsioon hoiab silumispinna väikesena, kuna korraga lisatakse ainult üks niit.
- Tulemused kajastuvad otse regressioonitest, sest mööduv lõim on ilmne kandidaat regressioonikomplekti jaoks.
Keerme testimise puudused
- Mitmelõimelise testimise puhul on suurimaks väljakutseks ühiktesti jaoks reprodutseeritava testi programmeerimine.
- Mitmelõimelise koodi jaoks ühiktestide kirjutamine on keeruline ülesanne.
- Mitmelõimelise testimise kriteeriumid erinevad ühelõimelise testimise kriteeriumidest. Mitmelõimelise testimise puhul varieeruvad tegurid, nagu mälu suurus, salvestusmaht ja ajastusprobleemid, kui koodi kutsutakse erineval riistvaral.
- Lõime ei saa testida enne, kui moodulid, mida nad läbivad, on saadaval, seega sõltub ajastamine integreerimise järjekorrast.
- Vahelduvaid rikkeid on lihtne keskkonnamüraks pidada, mistõttu on distsiplineeritud logimine hädavajalik.

