PS Testavimas

Bendrieji dalykai

Temos

Web aplikacijų testavimas (įskaitant Web aplikacijų patikimumo ir saugos testavimą).

WS testavimas.

Objektiškai orientuotas testavimas: problemos, iššūkiai.

Objektiskai orientuoto testavimo lygmenys:

  1. Operation/Method Testing : Performed for classes, blocks and service packages. There are two ways of selecting units :
    1. Methods as Units
    2. Classes as Units
  2. Class Testing : Intra & Inter class testing is done, test interaction between previously tested methods.
  3. Integration Testing : Interaction between previously tested classes
    1. Execution Based Integration Testing :Reveals erroneous interaction of units by tracing their execution.
    2. Value Based Integration Testing : Boundary value testing and equivalence class partitioning done by employing action values.
    3. Function Based Integration Testing : Validate functionality of components.
  4. System Testing : Exercising the whole system is done in this testing. Testing conducted on the complete integrated products & solutions to evaluate system compliance on functional and non-functional requirements is called system testing.

Polimorfizmas: teoriškai reikėtų ištestuoti visus galimus susiejimus (bindings; dinaminio susiejimo atveju kodas, kuris realizuoja funkcionalumą, nėra žinomas iki jo vykdymo), bet tai – didelė apimtis, be to, sunku identifikuoti visus sąryšius(bindings);

Flattening inheritance:

Incremental testing: Apriboti testus tik naujoms / pakeistoms funkcijoms.

Inkapsuliacija: tikrinamos privačių kintamųjų reikšmės(ataskaita apie būseną); problema – derinimo (debug)metu nematomos kintamųjų reikšmės;

Objektiškai orientuotas testavimas: kaip testuoti, esant problemoms dėl paveldimumo.

Objektiškai orientuotas testavimas: kaip testuoti, esant problemoms dėl polimorfizmo.

Objektiškai orientuotas testavimas: yo yo metodas (paskirtis, taikymas, pateikti pavyzdį).

Automatizuotas testavimas. Apibūdinti. Kokie karkasai naudojami?

Testavimo automatizavimas – tai specialios programinės įrangos (kitos, nei testuojama) naudojimas testų atlikimui kontroliuoti bei gautų rezultatų palyginimui su laukiamais.

Automatizuotas testavimas naudojamas:

Testavimo karkasas - tai programinė įranga, sukonstruota integraciniam testavimui palengvinti. Tai testuojamos aplikacijos atžvilgiu išorinė programinė įranga, kuri imituoja servisus ir funkcionalumą, kurio testavimo aplinkoje nėra. Karkasai naudojami:

Testavimo karkasai automatizuotam testavimui:

Ciklų testavimas.

Ciklų testavimas – „baltosios dėžės“ principu paremtas struktūrizuotas testavimas, kai testuotojas dirba su programinės įrangos išeities tekstu, rengdamas testavimo atvejus (kelių testavimas, duomenų validavimas, sąlygų testavimas).

Ciklinis testavimas skirtas:

Testavimo aplinka. Testavimo specifika, naudojant debesijos paslaugas.

Testavimo aplinka – tai įdiegta ir atitinkamai sukonfigūruota programinės, techninės ir tinklo įrangos sąranka, skirta testavimo atvejų vykdymui.

Testinės aplinkos parengimas apima tokių komponentų paruošimą testavimui:

Testinės aplinkos parengimo procese dalyvauja sistemos administratoriai, naudotojų administratoriai, programinės įrangos kūrėjai ir testuotojai, techniniai specialistai, kartais – naudotojai.

Testavimo specifika naudojant debesijos paslaugas:

Statiniai testavimo atvejų kūrimo būdai. Apibūdinti kiekvieną.

Statinis testavimas - tai programinės įrangos tikrinimas rankiniu būdu arba naudojant įrankius. Statinis bandymas paprastai atliekamas pradiniame programinės įrangos kūrimo ciklo etape. Statinis testavimas yra naudingas bandant daugelį programinės įrangos aspektų, įskaitant pirminį kodą, funkcines ir reikalavimo specifikacijas bei projektavimo dokumentus ir modelius. Statinis bandymas gali būti toliau suskirstytas į dvi kategorijas, atsižvelgiant į tai, ar jis atliekamas rankiniu būdu, ar naudojant įrankius.

Dinaminiai testavimo atvejų kūrimo būdai. Apibūdinti kiekvieną.

Dinaminis testavimas apima bandomojo objekto (programos) vykdymą kompiuteryje. Įvesties duomenys įvedami į bandomąjį objektą (programą) ir programa vykdoma. Dinaminiuose bandymuose analizuojami įvairūs kiekiai, pvz., Atminties naudojimas, atsako trukmė, procesoriaus pajėgumo naudojimas ir bendras programinės įrangos našumas, lyginant su laukiama produkcija. Dinaminis bandymas atliekamas patvirtinimo proceso metu. Dinaminius bandymų projektavimo metodus galima toliau suskirstyti į:

Integracinis testavimas. Integracinio testavimo metodai/būdai (apibūdinti)

Integracijos testavimas – tai testavimo rūšis, kuri skirta patikrinti, ar visi reikiami komponentai įtraukti į sistemą, ar jų sąsajos yra suderintos ir tarpusavio sąveikos funkcionuoja korektiškai. Tipiškai jis atliekamas po vienetų/komponentų testavimo, prieš kokybės kontrolę - validavimą. Integracinio testavimo metu imami jau ištestuoti sistemos komponentai arba jų grupės. Integracinio testavimo rezultatas – išvada, kad integruota sistema (ne)parengta testavimui

Sąsajos testavimas – tai integracinio testavimo tipas, kuris koncentruojasi į sąsajos tarp komponentų arba sistemų testavimą arba tai apibrėžtos sąsajos su komponentu arba sistema testavimas.

Testavimo būdai:

Priėmimo testavimas, jo rūšys. Apibūdinti.

Priėmimo testavimas nustato, ar galutinis produktas atitinka naudotojo reikalavimus.

Mutavimo testavimas. Apibūdinti.

Mutavimo testavimas – tai mutavimo analizės naudojimas tam, kad sukurti naujus programinės įrangos testus arba įvertinti egzistuojančius testus (jų kokybę). Mutavimo testavimo metu nežymiai modifikuojama programinė įranga. Mutavusi programinės įrangos versija vadinama mutantu. Testai aptinka ir atmeta mutantus (angl. killing the mutant). Mutantai kuriami apibrėžtų mutavimo operatorių pagrindu. Mutavimo operatoriai imituoja programavimo klaidas (pvz., nurodomas klaidingas kintamojo pavadinimas) arba priverstinai sąlygoja naujų testų sukūrimą (pvz., dalybai iš nulio). Mutavimo testavimo tikslas – aptikti silpnas vietas testiniuose duomenyse arba programiniame kode, ypač tame, kuris retai naudojamas, taip sukuriant efektyvesnius testus. Jeigu, testuojant mutantą, kyla problemų, tai reiškia, kad originalios(nemustavusios) programinės įrangos atitinkamas kodas nebuvo naudojamas/testuojamas („miręs“ kodas), arba kad testų rinkinys buvo nepakankamos aprėpties.

Mutavimo testavimas gali būti skirstomas į programinio kodo sakinių/teiginių mutavimo testavimą (pvz., programuotojas įterpia kodo eilutę, kuri programiniame kode panaikina kai kuriuos sakinious/eilutes), sprendimo mutavimo testavimą (programiniame kode pakeičiami kontrolės sakiniai) ir reikšmių mutavimo testavimą (modifikuojamos parametrų reikšmės). Mutavimo testavimo pranašumai:

“Chaos monkey” testavimas. Apibūdinti.

„Chaos monkey“ vadovaujasi nuostata „geriausias būdas išvengti esminių trikių – nuolatos patirti trikius“

„Chaos monkey“ atsitiktiniu būdu užbaigia realioje aplinkoje funkcionuojančios žiniatinklio paslaugos egzempliorius, siekiant užtikrinti, kad įdiegtos žiniatinklio paslaugos yra atsparios tokio tipo egzempliorių trikiams. „Chaos Monkey“ programinė priemonė buvo sukurta „Netflix„ inžinierių tam , kad testuoti AMAZON žiniatinklio paslaugų atsparumą ir atstatomumą. Programinė priemonė gali būti konfigūruojama, nustatant egzempliorių uždarymo dažnį ir kitus parametrus (taip pat ir egzempliorių paleidimo dažnį).

Testuojant stengiamasi imituoti trikius tuo metu, kai jie gali būti operatyviai valdomi, tai yra kai jiems galima būti pasiruošus, nelaukiant, kol ištiks reali nuostolius nešanti katastrofa. Testavimo metu tikrinama, ar gerai valdomi/sprendžiami kilę incidentai/problemos.

Kokybės užtikrinimas; kokybės kontrolė; testavimas. Apibūdinti. Kokie skirtumai tarp šių trijų veiklų?

Testavimo scenarijai ir testavimo atvejai. Apibūdinti.

Testavimo atvejis – tai sąlygų ir kintamųjų aibė, kuria remiantis testuotojas sprendžia, ar sistema funkcionuoja korektiškai ir ar atitinka reikalavimus. Rengiant testavimo atvejus, taip pat aptinkamos klaidos reikalavimų specifikacijoje arba sistemos projekte.

Testavimo atvejį nusako testo atlikimo pradžios sąlygos (pre-conditions) ir testavimo įvesties pasekoje, atlikus testavimo atvejo žingsnius, grąžinti rezultatai, kai sistema/produktas pereina į būseną, nusakomą post-sąlygomis (post-conditions).

Testavimo scenarijus – tai testavimo veiklos struktūros aprašymas. Jis apima vaidmenų sąrašą bei vaidmenų atliekamas testavimo veiklas ( pvz., vaidmenys - buhalteris, kasininkas; testavimo veiklas – sukurti prekių realizavimo dokumentus).

Egzistuoja skirtumas tarp testavimo atvejo ir testavimo scenarijaus. Testavimo atvejis atsako į klausimą, kaip testuoti, o testavimo scenarijus – kas turi būti testuojama. Pagal testavimo scenarijų yra aprašomi testavimo atvejai.

Testavimo vertinimas. Testavimo metrikos, jų kategorijos pagal ISTQB. Kokiais aspektais vertinamas testavimo progresas (pagal kokias dimensijas)? Pateikti pavyzdžių, atitinkančių kiekvieną dimensiją. Kokios metrikos naudojamos testavimo procesui įvertinti? Pateikti pavyzdžių. Efekas ir efektyvumas.

Metrikų pavyzdžiai:

  1. Defekto paieškos kaina (Kiek laiko užtruko)
  2. Reikalavimų prieaugis
  3. Defektų tankis
  4. Perdarymo pastangų dydis
  5. Patikrinimo pastangų dydis

Testavimo vertinimas. Metrikų grupės/kategorijos/rūšys pagal testavimo proceso veiklas. Pateikti pavyzdžių.

Testavimo strategijos tipai pagal ISTQB. Apibūdinti.

Defektų gyvavimo ciklas. Defektų statusai. Defekto svarba ir prioritetas.

  1. New
  2. Assigned
  3. Open -> (Duplicate / Rejected / Defered / Not A Bug)
  4. Fixed
  5. Pending retest
  6. Retest -> Reopened (back to 3)
  7. Verified
  8. Closed

Defekto svarba yra susijusi su sunkumu. Paprastai sunkumas apibrėžiamas kaip finansiniai nuostoliai, žala aplinkai, įmonės reputacija.

Defekto prioritetas yra susijęs su tuo, kaip greitai klaida turėtų būti ištaisyta ir paleista įmonės veikiančiuose serveriuose. Kai defektas yra didelis, greičiausiai jis taip pat turės aukštą prioritetą. Panašiai ir su mažo sunkumo defektais, tada jie turi žemą prioritetą.

Testavimo planas. Skirtumai tarp testavimo plno ir strategijos.

Testavimo planas – tai dokumentas, aprašantis testavimo apimtį, resursus ir pateikiantis testavimo veiklų tvarkaraštį. Pagal ISTQB, testavimo planas – tai dokumentas, aprašantis testavimo apimtį, resursus ir pateikiantis testavimo veiklų tvarkaraštį. Tai formalus testavimo pagrindas programinės įrangos kūrimo projekte. Jame pateikti testuotini vienetai, savybės, kurias reikia testuoti, testavimo užduotys, kas užduotis atliks, testuotojų nepriklausomumo laipsnis, testavimo aplinkos aprašymas, testavimo atvejų projektavimo būdas, testavimo pradžios ir pabaigos kriterijai ir pagrindimas, kodėl tokie kriterijai pasirinkti, rizikos, kurios reikalauja testavimo veiklos atstatymo.

Agile testavimo specifika.

Laikomasi taisyklės, kad jokioje iteracijoje sukurtos ir įdiegtos savybės (angl. features) nelaikomos baigtomis kurti iki tol, kol neatliekama visų sistemos dalių integracija ir neatlikti sistemos testai. Gera praktika taip pat laikoma tai, kad ankstesnėje iteracijoje nebaigti taisyti defektai baigiami ištaisyti sekančios iteracijos pradžioje.

Pateikti tradicinio V, viengubo V, dvigubo VV, trigubo VVV modelio apibūdinimą testavimo požiūriu. Ką modeliai nusako? Koks skirtumas tarp jų?

Testavimo veiklų integracija į bendrą sistemos kūrimo gyvavimo ciklą pagal ISTQB spiralinio, Agile, iteratyvaus augančio, nuoseklaus modelio atvejais.

Valstybės informacinių sistemų kūrimo būdai pagal 2015 m. balandžio mėn. 1 d. IVPK direktoriaus įsakymą „Dėl valstybės informacinių sistemųgyvavimo ciklo valdymo metodikos patvirtinimo“.

  1. Valstybės informacinių sistemų kūrimo būdai yra nuoseklusis, modulinis ir iteracinis-inkrementinis.
  2. Nuoseklusis (angl. waterfall) valstybės informacinės sistemos kūrimo būdas susideda iš vienas po kito vykdomų realizavimo stadijos etapų (detali analizė, projektavimas, konstravimas ir integravimas, testavimas, diegimas), kurie nepersidengia ir nesikartoja. Valstybės informacinė sistema realizuojama, nuosekliai įgyvendinant atskirus realizavimo stadijos etapus vieną kartą nuo pirmojo iki paskutiniojo. Po paskutiniojo etapo patvirtinamas priėmimo ir tinkamumo eksploatuoti aktas ir įteisinama valstybės informacinė sistema.
  3. Moduliniu (angl. modular) valstybės informacinės sistemos kūrimo būdu valstybės informacinė sistema realizuojama, išskaidant ją į atskiras sudedamąsias dalis (posistemius, modulius ir pan.), kurioms įmanoma nustatyti atskirus veiklos reikalavimų rinkinius, kuriuos realizavus šią sudedamąją valstybės informacinės sistemos dalį galima naudoti kaip savarankišką vienetą. Šis kūrimo būdas susideda iš nuosekliai vykdomų realizavimo stadijos etapų, kurie yra taikomi kiekvienos tokios valstybės informacinės sistemos dalies kūrimui. Valstybės informacinės sistemos dalys gali būti vystomos lygiagrečiai arba persidengiančiai laiko atžvilgiu. Pirmoji sėkmingai įdiegta ir atitinkanti jai valstybės informacinės sistemos techniniame aprašyme (specifikacijoje) (toliau – Specifikacija) apibrėžtus veiklos reikalavimus sudedamoji valstybės informacinės sistemos dalis gali būti įteisinama, patvirtinant priėmimo ir tinkamumo eksploatuoti aktą, kuriame nurodoma, kokia valstybės informacinės sistemos dalis laikoma priimta ir tinkama eksploatuoti gamybinėje aplinkoje. Kiekviena vėliau baigta kurti dalis integruojama į jau veikiančią valstybės informacinę sistemą. Analogiškai gali būti patvirtinamas priėmimo ir tinkamumo eksploatuoti aktas, nurodant, kiek ir kokios Specifikacijoje nurodytos valstybės informacinės sistemos dalys tinkamos eksploatuoti. Visa valstybės informacinė sistema baigiama įteisinti, realizavus visas Specifikacijoje nurodytas dalis ir patvirtinus priėmimo ir tinkamumo eksploatuoti aktą, nurodant, kad visa valstybės informacinė sistema yra sukurta ir tinkama eksploatuoti.
  4. Iteracinis-inkrementinis (angl. agile) valstybės informacinės sistemos kūrimo būdas vadinamas toks būdas, kai valstybės informacinės sistemos realizavimas vykdomas prieaugiais, kurie sudaromi iš vieno ar daugiau valstybės informacinės sistemos panaudojimo atvejų (angl. use case), siekiant per kuo trumpesnį laiką valstybės informacinę sistemą naudojantiems asmenims pateikti bent vieną tinkamą eksploatuoti valstybės informacinės sistemos funkciją, veikiančią gamybinėje arba valstybės informacinės sistemos valdytojo sutikimu testinėje aplinkoje su visomis valstybės informacinės sistemos priėmimui būdingomis pateiktimis: programinės įrangos kodu, diegimo paketais, diegimo ir naudojimo instrukcijomis, kita technine dokumentacija ir patvirtintu priėmimo ir tinkamumo eksploatuoti aktu. Specifikacijoje įvardijami prieaugiai, numatomi jų funkcionalumai, prieaugiai prioretizuojami ir sudaromas jų diegimo planas. Kiekvienam prieaugiui realizuoti nuosekliai taikomi realizavimo stadijos etapai. Realizavimo stadijos detalios analizės etape analizuojami ir apibrėžiami tik einamuoju momentu realizuojamo prieaugio veiklos reikalavimai. Įdiegus vieną prieaugį, gali būti peržiūrėti Specifikacijoje apibrėžtų kitų prieaugių prioritetai, kiekvienam naujam prieaugiui vykdoma detali analizė, formuluojami realizavimo reikalavimai, gali būti patikslinti jau įdiegtų prieaugių realizavimo reikalavimai, pakartotinai naudojami sukurti moduliai. Visa valstybės informacinė sistema baigiama įteisinti, realizavus visus Specifikacijoje nurodytus prieaugius ir patvirtinus priėmimo ir tinkamumo eksploatuoti aktą, nurodant, kad visa valstybės informacinė sistema yra sukurta ir tinkama eksploatuoti.

Statinis testavimas, jo tipai. Apibūdinti.

Statinis testavimas - programinės įrangos testavimo metodas, kuriame programinė įranga yra išbandyta nevykdant kodo. Jame yra dvi dalys:

Dinaminis testavimas, jo tipai. Apibūdinti.

Dinaminis testavimas yra tam tikra programinės įrangos testavimo technika, pagal kurią analizuojamas dinaminis kodo elgesys.

Norint atlikti dinamiką, programinė įranga turėtų būti išbandyta ir vykdoma, analizuojami tokie parametrai kaip atminties naudojimas, procesoriaus naudojimas, atsako trukmė ir bendras programinės įrangos veikimas.

Dinaminis testavimas apima programinės įrangos, skirtos įvesties vertei išbandyti, ir išvesties verčių analizę. Dinaminis testavimas yra verifikavimo ir validacijos dalis.

Dinaminiai testavimo metodai yra plačiai suskirstyti į dvi kategorijas:

Dinaminio testavimo lygiai:

Testavimo būdai pagal ISTQB. Apibūdinti.

AGILE testavimo metodologijos pagal ISTQB. Apibūdinti.

Įvesties-išvesties testavimas. Apibūdinti.

Įvesties/išvesties duomenų analizė atliekama, siekiant sumažinti testavimo atvejų skaičių tose situacijose, kurioms esant testavimo atvejų skaičius labai didelis:

Testavimo įvesties informacijos ir rezultatų analizė atliekama tokiais būdais:

Modeliu paremtas testavimas (ioco testavimas).Paaiškinti, atskleisti esmę, naudojantis literatūra, paskaitos medžiaga.

Modeliu paremtas testavimas yra testavimo būdas, naudojantis modelius. Jis praplečia bei papildo klasikinus testavimo būdus: ekvivalentaus padalinimo, būsenų perėjimo, „use case“ testavimo, ribinių reikšmių testavimo, sprendimų lentelių ir kt. Jo idėja – laikantis projekto testavimo tikslų, patobulinti testavimo projekto kokybę ir efektyvumą, sukuriant modelį programinėmis priemonėmis, taip pat pateikti modelį kaip testavimo projekto specifikaciją. Modelis formalizuotas ir pateikia detalios informacijos, kurios pakanka iš jo (modelio) automatiškai generuoti testavimo atvejus. Kuriant modeliu paremto testavimo modelį, svarbu aptarti testavimo tikslus, kadangi jie apsprendžia testavimo objektą ir tai, į ką bus labiausiai kreipiamas dėmesys testuojant.

Naudotojo sąsajos testavimas. Apibūdinti. Ką jis apima? Kas yra panaudojamumo (angl. usability) testavimas?

Naudotojo sąsajos testavimas – tai aplikacijos naudotojo sąsajos defektų aptikimo aplikacijos kūrimo metu procesas.

Naudotojo sąsajos testavimas apima:

Kaip skirstomas testavimo proceso valdymas pagal ISTQB. Ką jis apima? Produkto ir projekto rizikos – apibūdinti, pateikti pavyzdžių.