PĮ testavimas. Temos. Programos testavimas Į testavimą orientuotas programavimas (Test-driven development) Release testavimas Vartotojo testavimas

Similar documents
Įvadas į duomenų suvedimą ir apdorojimą

Architektūros projektavimas Pagal I.Sommerville Software Engineering, 9 leidimo 6 dalį

Kartojimas. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Nuotolin prekių sand lio kontrol s sistema

Duomenų tyrybos sistemų galimybių tyrimas įvairių apimčių duomenims analizuoti

INFORMACINIŲ SISTEMŲ PROJEKTAVIMO PAKETŲ GALIMYBĖS IR PRITAIKYMAS PRAKTIKOJE

Dvigubo elektroninio aukciono modelis ir programinė realizacija

KNORR-BREMSE. Techninio aptarnavimo terminalas ST03A. Naudotojo instrukcija

Netesybos, minimalūs nuostoliai, iš anksto sutarti nuostoliai. Privatinės teisės tyrimai 2013 m. vasario 4d. Vilnius Dr.

Dažniausiai užduodami klausimai (DUK) Europos regiono motyvacinė kelionė ir konferencija

Kompiuterių Architektūros konspektas Benediktas G. VU MIF, m (radus netikslumų, turint klausimų rašyti

CRIMINALISTIC CHARACTERISTICS OF SOME ARTICLES WITHDRAWN FROM PRISONERS AT RIGA CENTRAL PRISON. Assistant professor Vladimirs Terehovičs

ELEKTROS ENERGIJOS KAINŲ PALYGINIMO SISTEMOS VEIKIMO PRINCIPAI 1. SĄVOKOS

Vilniaus universitetas

Parengė ITMM Artūras Šakalys. Macromedia Flash MX

Nokia 5530 XpressMusic vartotojo vadovas leidimas

HP LaserJet M2727 mfp Vartotojo vadovas

UAB OKSVIDA siūlo įsigyti Paralelės, Eglutės arba "Karuselės" tipo melžimo aikšteles su Izraelio gamybos bandos valdymo sistema AfiMilk.

AMADEUS BASIC CONTENTS

Įvadas į kiekybinius metodus su R programa

Pa sau lio lie tu vį. Iš lai ky ki me. Šiame numeryje: pasaulio lietuvio svečias. lr seimo ir plb komisijoje. Tėvynėje. PLB kraš tų ži nios

D E F G. b Atminties kortelė (SD) kortelė)* c Gaminio kodo kortelė. d Priekinio stiklo laikiklis. e Dokumentacijos paketas

Uždaryto Mickūnų sąvartyno aplinkos vandens kokybė. ir jos kaita m.

VILNIAUS UNIVERSITETAS KAUNO HUMANITARINIS FAKULTETAS

KAS YRA ORP IR KODĖL VERTA APIE JĮ ŽINOTI

Kavos aparato JURA Z6 aptarnavimo instrukcija

Turinys. Jūsų saugumui... 3 Sveiki! Čia skaitmeninė palydovinė televizija! Viasat EPG Viasat Ticket ( Viasat bilietas)...

Kavos aparato WE8 naudojimo instrukcija. JURA Type 737

VYTAUTO DIDŽIOJO UNIVERSITETAS. Rita Natkevičienė. Magistro baigiamasis darbas

Neorganinės druskos protoplazmoje Pr. B. Šivickis

GAMINIO ATITIKTIES APLINKOSAUGOS REIKALAVIMAMS DEKLARACIJA. ECO PLATFORM EPD Nr ROCKWOOL

Švietimo panorama. Aka de mi niai skai ty mai. Pa si ra šė ben dra dar bia vi mo su tar tį

TARP MIR TIES IR SA VI RAIŠKOS

SAUGOS DUOMENŲ LAPAS

Kondensacijos šilumos nuvedimo nuo tarpfazinio paviršiaus į vandens gilumą tyrimas taikant termografinį metodą

Šiame numeryje: pasaulio lietuvio svečias. Tėvynėje. PLB valdyboje. plb kraštų žinios. susitikimai Dailininkė Meilė Sposmanytė...

Jūsų Europa, jūsų teisės. Praktinis vadovas piliečiams ir įmonėms apie jų teises ir galimybes ES bendrojoje rinkoje

Skaičiuoklė OpenOffice.org skaičiuoklė

Kavos aparato E8/E80 aptarnavimo instrukcija

Paleidimo ir techninės priežkiūros instukcija

Register your product and get support at 22PFL3805H/12. Vartotojo vadovas

VISUOMENĖS VAISTINĖSE DIRBANČIŲ FARMACIJOS SPECIALISTŲ PASIRENGIMAS TEIKTI FARMACINĖS RŪPYBOS PASLAUGAS

DAILYLENTĖS VIDAUS APDAILAI. [ Medis kuria namus]

a(an) Nežymimasis artikelis Indefinite article

Turinys. Turinys Lietuvių k.

3.1 Membranos instaliavimas

PROJEKTO ŠVARUS VANDUO IR APLINKA SVEIKA VISUOMENĖ (LT-BY) CLEAN WATER AND ENVIRONMENT HEALTHY SOCIETY (LT-BY)

Mountain Trail Revitalization the Sign of the Times or a Significant Effect of the New Designed Forms on the Existing Nature

SAUGOJAMOJI SISTEMA LAISVOJO UGDYMO PARADIGMOS ĮGYVENDINIMO LIETUVOS MOKYKLOJE GALIMYBĖ

VEIKSNIAI, ĮTAKOJANTYS GAMYBINĖS VAISTINĖS RECEPTŪRĄ. KLAIDINGAI IŠRAŠYTŲ 1 FORMOS EKSTEMPORALIŲ RECEPTŲ ANALIZĖ VISUOMENĖS GAMYBINĖJE VAISTINĖJE

FARMACIJOS SPECIALISTŲ POŽIŪRIO Į FARMACINĖS PASLAUGOS KOKYBĘ, ETINĮ KLIMATĄ IR PASITENKINIMĄ DARBU TYRIMAS

1 SKYRIUS: medžiagos / mišinio ir bendrovės / įmonės identifikavimas

ECONOMIC IMPACTS OF RURAL TOURISM IN RURAL AREAS OF ISTRIA (CROATIA)

RCSC LAIKO ŽYMOS TEIKIMO VEIKLOS NUOSTATAI

SPA CENTRŲ TEIKIAMŲ PASLAUGŲ KOKYBĖS VERTINIMAS

Dvynių projekto biudžetas Vilnius Gintaras Makštutis

Vilniaus metro 8,0 km atkarpos Pilaitė Centras finansinio skaičiavimo santrauka

Kavos aparato J6/J600 naudojimo instrukcija

(N) Luminor Bank AB Kainynas privatiems klientams Galioja nuo

M. IŠVYKSTAMOJO TURIZMO IŠ NORVEGIJOS, ŠVEDIJOS IR SUOMIJOS Į LIETUVĄ ANALIZĖ

VĮ ORO NAVIGACIJA Oro navigacijos informacijos skyrius Rodūnios kelias Vilnius, Lietuva

Tadas Pocius MOBILE AIRLINE TO PASSENGER COMMUNICATION MOBILIOJI AVIAKOMPANIJŲ IR JŲ KELEIVIŲ KOMUNIKACIJA. Final master s dissertation

4 galimybių studijos

Navigacijos programinė įranga. Navitel Navigator. Naudotojo vadovas

Jūratė Markevičienė, ICOMOS narė

Ir at leisk mums mū sų kal tes...

Dujiniai prie sienos tvirtinami šildymo prietaisai

Amadeus Training. Reissue & Ticketing

BROMLEY CLINICAL COMMISSIONING GROUP INDIVIDUAL FUNDING REQUESTS ANNUAL REPORT

Aktualūs nustatyti naudojimo būdai: augalų apsaugos produktas, fungicidas

Montažo, techninio aptarnavimo ir naudojimo instrukcija

Studijos Pelenų, susidarančių šilumos tiekimo įmonėse deginant medieną, panaudojimas ataskaita

❷ s é ②s é í t é Pr ③ t tr t á t r ít. á s á rá. Pr ③ t t í t. t í r r t á r t á s ý. r t r é s②sté ②

APLINKOS APSAUGOS AGENTŪRA APLINKOS APSAUGOS AGENTŪROS 2007 METŲ VEIKLOS ATASKAITA

1 SKIRSNIS. Medžiagos arba mišinio ir bendrovės arba įmonės identifikavimas

Rokiškio rajono Juodymo durpių telkinyje planuojamos veiklos poveikio aplinkai vertinimo

Kaip Vaidas Šimaitis Šventąją žadina. Jonas Gelbėtojas. Premjerui Algirdui Butkevičiui patinka J. Basanavičiaus gatvė p p p.

APLINKOS APSAUGOS AGENTŪRA

Montažo, techninio aptarnavimo ir naudojimo instrukcija

BALASTINIO VANDENS VALYMO KAVITACIJA ANALIZĖ

Demokratinė civilinė ginkluotųjų pajėgų kontrolė Lietuvoje

CGS-20/160 CGS-24/200

Summi triumphum. & bc. w w w Ó w w & b 2. Qui. w w w Ó. w w. w w. Ó œ. Let us recount with praise the triumph of the highest King, 1.

PREVENCINĖS VANDENS TARŠOS MAŽINIMO PRIEMONĖS

MONSANTO Europe S.A. Page: 1 / 10 Roundup FL 540 Version: 1.0 Effective date:

myldtravel USER GUIDE

Projektuotojo ir montuotojo

CE 0694 Technical Specification RADIANT BRUCIATORI S.p.A. Montelabbate (PU) ITALY

Digital Resources for Aegean languages

Thomas Tallis Mass for 4 voices

II. ŠIUOLAIKINĖS SPORTININKŲ RENGIMO TECHNOLOGIJOS 4. Antanas Skarbalius. Trenerio filosofija 13

Nr SPALIS L I E T U v o S v A N D E N S T I E K ė j Ų A S o c I A c I j o S I N f o r m A c I N I S L E I D I N Y S

Imkis veiksmų pavojingoms medžiagoms išvengti: patarimai, kaip nustatyti pavojingas medžiagas pramonėje naudojamuose chemikaluose

Kiekybinių duomenų internetiniuose archyvuose analizė. Doc. dr. Eglė Butkevičienė Dokt. Aida Vaicekauskaitė

EUROPOS SĄJUNGA KURKIME ATEITĮ DRAUGE! JŪRINĖ TECHNOLOGIJA. Mokymo medžiaga vadovėlis jūreiviui I DALIS LAIVO SANDARA

Optiniai reiškiniai ir akustika prie žemės paviršiaus

CAPTIVA SAVININKO VADOVAS

I. Skirmantaitë* L. Ðeputytë**

Laisvai statoma SMS 68MI04E. *Rekomenduojama mažmeninė kaina su PVM. Produkto charakteristikos

VONIOS KAMBARIO ĮRANGA

Transcription:

PĮ testavimas Pagal I.Sommerville Software Engineering, 9 leidimo 8 dalį 1 Temos Programos testavimas Į testavimą orientuotas programavimas (Test-driven development) Release testavimas Vartotojo testavimas 2

Programos testavimas Testavimo metu siekiama parodyti, kad programa daro tą, ko iš jos tikimasi, bei surasti klaidas anksčiau, negu programą pradeda naudoti jos galutiniai vartotojai. Kai testuojame programą, jos vykdymui naudojame specialiai testavimui sugalvotus duomenų rinkinius. Tikriname testavimo ataskaitų rezultatus, pasteb tas anomalijas ir nefunkcinių reikalavimų tenkinimą. Galime išvengti pernelyg dažno klaidų pasikartojimo, bet ne jų nebuvimo. Testavimas yra dalis platesnio patikros ir atestacijos proceso, į kurį dar įeina ir statin programos patikra. 3 Programos testavimo tikslai Pademonstruoti programuotojams ir užsakovams, kad PĮ atitinka jai iškeltus reikalavimus: Tai reiškia, kad užsakomojo pobūdžio PĮ testo plane turi būti bent po vieną testą kiekvienam reikalavimui. Bendro pobūdžio PĮ turi tur ti po testą kiekvienai sistemos savybei bei tų savybių kombinacijoms. Surasti tokias situacijas, kada programa veikia neteisingai, nepageidaujamai ar neatitinka reikalavimų specifikacijos: Defektų testavimas susideda iš sistemos lūžimų (crash), nepageidaujamos sąveikos su kitomis sistemomis, neteisingo skaičiavimo ar duomenų praradimo paieškos. 4

Atestavimas ir defektų radimas Pirmas tikslas yra atlikti/praeiti atestacijos testą Jūs tikit s, kad sistema veiks teisingai su duotais testavimo duomenimis, parinktais pagal tai, kaip mes tikim s, kad programa turi veikti. Antras tikslas yra atlikti defektų radimo testą Testus projektuojame taip, kad rastume kaip galima daugiau defektų (t.y. laužiame programą). Defektų radimo testuose duomenis tyčia parenkame įtartinus bei neatitinkančius normaliame sistemos darbe naudojamų duomenų. 5 Testavimo procesų tikslas Atestacijos testas Pademonstruoti programuotojams ir užsakovams, kad PĮ atitinka jai iškeltus reikalavimus Testas bus s kmingas, jeigu parodysime, kad sistema veikia taip, kaip ir tik jom s Defektų radimo testas Reikia rasti klaidas ir defektus, rodančius, kad sistemos veikimas yra klaidingas arba neatitinka reikalavimų specifikacijos dokumento Testas bus s kmingas, jeigu pavyks priversti sistemą dirbti neteisingai ar ne pagal specifikaciją 6

Įvedimo-išvedimo duomenų modelis programos testavimui Įvesti testavimo duomenys I Duomenys, sukeliantis nenormalų elgesį. Sistema Sistema Išvesti testavimo rezultatai O Rezultatai, kurie parodo defektų buvimą. 7 Patikra ir atestavimas (Verification & Validation) Patikra (verification): Ar mes gerai kuriame produktą PĮ turi atitikti specifikaciją Atestavimas (validation): Ar mes kuriame gerą produktą PĮ turi daryti tą, ko iš tikrųjų reikia PĮ vartotojui 8

Patikros ir atestavimo svarbumo laipsnis P & A tikslas yra parodyti, kad sistema atitinka iškeltus tikslus Priklauso nuo sistemos tikslų, vartototjo lūkesčių bei verslo aplinkos PĮ tikslas Svarbumo laipsnis priklauso nuo to, kiek ta kuriama PĮ yra svarbi mūsų įmonei. Vartotojo lūkesčiai Vartotojai gali ned ti didelių vilčių kada nors sulaukti tam tikros rūšies programin s įrangos. Verslo aplinka Produkto atidavimas rinkai gali būti daug svarbiau, negu visų defektų radimas ir ištaisymas. 9 Peržiūros ir testavimas PĮ peržiūros susijusios su statine programos kodo peržiūra siekiant rasti klaidas kode (statin patikra) Gali būti naudojami tam tikri įrankiai ir procedūros PĮ testavimas atliekamas su pačia programa (dinamin patikra) Sistema tikrinama su iš anksto paruoštais testavimo duomenimis ir stebima, kaip sistema veikia. 10

Peržiūros ir testavimas 11 PĮ peržiūros Žmon s peržiūri PĮ kodą ir bando surasti anomalijas ir klaidas. Peržiūroms nereikia veikiančios programos, tik jos kodo, tod l galima atlikti dar prieš sukuriant pilnai veikiančią programą. Peržiūros gali būti atliekamos bet kuriai programos tadijai(reikalavimų dokumentas, projektavimo dokumentas, testavimo dokumentas ir t.t.). Įrodyta, kad tai labai efektyvi klaidų radimo technika. 12

Peržiūrų privalumai Testuojant veikiančią programą, vienos klaidos gali pasl pti kitas klaidas. Kadangi peržiūra yra statin, tai n ra jokio ryšio tarp dviejų klaidų ir jos viena kitos nepasl ps. Galima tikrinti dar nebaigtą programą be papildomų išlaidų. Jei programa nepilna, tai ruošiame testus tik toms programos dalims, kurios jau yra prieinamos. Be to, kad peržiūra padeda rasti klaidas, tai tuo pačiu galima patikrinti, ar programos kodas atitinka įmon s iškeltus programavimo standartus, galimybę panaudoti programos kodą pakartotinai bei būsimus palaikymo kaštus. 13 Peržiūros ir testavimas Peržiūra ir testavimas yra viena kitą paildančios patikros technikos. Patikros ir atestavimo procese būtina naudoti abi technikas. Peržiūros leidžia patikrinti PĮ atitikimą specifikacijai, bet neleidžia patikrinti, ar PĮ atitinka tikrus vartotojo reikalavimus. Peržiūros nepatikrina tokių nefunkcinių charakteristikų, kaip veikimo greitis, panaudojamumas ir pan. 14

PĮ testavimo modelis Testavimo Testavimo atvejai atvejai Testavimo Testavimo duomenys duomenys Testavimo Testavimo rezultatai rezultatai Testavimo Testavimo ataskaitos ataskaitos Suprojektuoti Suprojektuoti testavimo testavimo atvejus atvejus Paruošti Paruošti testavimo testavimo duomenis duomenis Paleisti Paleisti programą programąsu su test. test. duom. duom. Palyginti Palyginti rezultatus rezultatus su su testavimo testavimo atvejais atvejais 15 PĮ testavimo etapai Kūrimo/programavimo testavimas, kurio metu sistema testuojama siekiant rasti klaidas ir defektus. Versijos (Release) testavimas, kurio metu nepriklausoma testavimo komanda testuoja pilnai užbaigtą sistemą prieš ją atiduodant galutiniam vartotojui. Vartotojo testavimas, kurio metu vartotojai (arba potencialūs vartotojai) testuoja sistemą savo darbin je aplinkoje. 16

Kūrimo testavimas Apima visas testavimo veiklas, kurias atlieka programos kūr jai (programuotojai). Vieneto testavimas: atskirai testuojami programos moduliai, funkcijos ar kals s. Vieneto testavimas fokusuojasi į testuojamų objektų funkcionalumo patikrinimą. Komponentų testavimas: tikrinama, kaip veikia keli tarpusavyje tarpusavyje apjungti moduliai. Tikrinama, ar gerai veikia apjungtų komponentų sąsaja. Sistemos testavimas: tikrinama, ar gerai veikia jau pilnai baigta sistema, t.y. Kai visi jos moduliai jau pilnai integruoti į sistemą. Testavimo metu akcentuojama apjungtų modulių tarpusavio sąveika. 17 Vieneto testavimas Vieneto testavimo proceso metu atskirai tikrinami individualūs programos komponentai. Tai yra defektų radimo procesas. Vienetais gali būti laikomi: Atskiros funkcijos ir metodai Objektų klas s, atributai ir metodai Atskiri moduliai su apibr žta sąsaja, leidžiančia prieiti prie komponento atliekamų funkcijų. 18

Objektų klasių testavimas Pilnas klas s testas apima Visų su objektu susietų operacijų testavimą Visų objekto atributų reikšmių pakeitimą ir patikrinimą Visų galimų objekto būsenų keitimą ir tikrinimą Paveldimumas gali apsunkinti klasių testavimą, nes ne visa informacija mums yra prieinama. 19 Meteorologin s stoties objektas WeatherStation identifier reportweather () calibrate (instruments) test () startup (instruments) shutdown (instruments) 20

Meteorologin s stoties būsenų kaitos diagrama Operation calibrate () Calibrating calibration OK Shutdown startup () Waiting test () Testing shutdown () transmission done test complete clock Collecting collection done Summarising reportweather () Transmitting weather summary complete Meteorologin s stoties objekto testavimas Testiniai atvejai reikalingi visoms operacijoms Naudojantis sistemos būvio modeliu nustatyti: kuriuos būsenos pasikeitimus reikia testuoti kokia įvykių seka sukelia tuos pasikeitimus Testavimo sekų pavyzdžiai: Shutdown -> Waiting -> Shutdown Waiting -> Calibrating -> Testing -> Transmitting -> Waiting 22

Automatinis testavimas Visur, kur tikįmanoma, testavimą reikia automatizuoti. Vieneto testavimo automatizavimui galima naudoti testų automatizavimo karkasą (pvz. JUnit) Tokie vieneto testavimo automatizavimo karkasai sukuria testines klases, kurias jūs v liau užpildote specialiu testavimui skirtu kodu. Tokiu būdu jūs iš karto dar tik rašydami klasę sukuriate jai testą, kurį galite leisti kiek tik norite kartų ir atlikti gautų klaidų analizę. 23 Automatinio testo komponentai Inicializacijos dalis, kur jūs nurodote į jimo ir laukiamus iš jimo duomenis. Vykdymo dalis, kur iškviečiamas testuojamas objektas ar metodas. Lyginimo dalis, kur jūs lyginate gautus rezultatus su planuotais rezultatais. Jei jie sutampa, testas laikomas s kmingai pra jusiu, jei ne testas laikomas nepra jusiu ir reikia ieškoti, d l ko atsirado klaidos. 24

Vieneto testo efektyvumas Testo metu reikia parodyti, kad jei komponentas naudojamas taip, kaip tikimasi, tai ir jo duoti rezultatai yra tokie, kokių tikimasi. Jei komponentas turi klaidų, jos būtinai tūri būti surandamos mūsų paruoštais testais Galima išskirti du vieneto testavimo atvejų tipus: Pirmasis turi atspind ti normalų sistemos legesį ir parodyti, kad testuojamas komponentas elgiasi taip, kaip ir tikimasi. Antras testų tipas remiasi programuotojo patirtimi rasti tipines klaidas ir ruošiamas naudojant nenormalius įvedimo duomenis siekiant patikrinti, ar programa sugeba korektiškai apdoroti klaidas. 25 Testavimo strategijos Ekvivalentinis sudalinimas, kurio metu jūs nustatote tas pačias charakteristikas turinčiųįvedimo duomenų grupes, kurias programa tur tų apdoroti taip pat. Testus ruošiame kiekvienai tokių ekvivalentiniųįvedimo duomenų grupei. Tam tikromis gair mis paremtas testavimas, pagal kurį jūs ruošiate savo testinius atvejus. Gair s remiasi ankstesne programuotojų patirtimi ir anksčiau padarytų klaidų sąrašu. Galima sudaryti tipinius klaidų sąrašus ir po to juos naudoti programos kodo tikrinimui. 26

Ekvivalentinis sudalinimas Įvedami duomenys ir išvedami rezultatai paskirstomiįatskiras klases, kuriose esantys nariai yra panašūs. Kiekviena iš šių klasių yra ekvivalentinio sudalinimo rezultatas, kur programos elgesys su kiekvienu klas s nariu yra toks pat (ekvivalentiškas). Testavimo atvejai ruošiami kiekvienai ekvivalentinio sudalijimo aibei. 27 Ekvivalentinis sudalijimas Duomenų klas s Sistema Sistema Rezultatų klas s 28

Ekvivalentinis sudalijimas ir ribin s reikšm s Padalinti sistemos į jimų ir iš jimų reikšmes į ekvivalentiškas aibes ir iš jų paimti ribines. Jei įvedamas 5 skaitmenų sveikas skaičius tarp 10000 ir 99999, ekvivalentinio sudalinimo aib s yra <10000, 10000-99999 ir > 99999. Išrinkti aib ms testinius atvejus 09999, 10000, 99999, 100000. Ekvivalentinis sudalijimas 3 4 7 11 10 Mažiau nei nei 4 Tarp Tarp 4 ir ir 10 10 Daugiau nei nei 10 10 Įvedamas 5-10 skaitmenų skaičius 9999 10000 50000 100000 99999 Mažiau nei nei 10000 10000 Tarp Tarp 10000 10000 ir ir 99999 99999 Daugiau nei nei 99999 99999 Įvedamas 5 skaitmenų skaičius tarp 10000 ir 99999 30

Testavimo gair s testavimo duomenų sekoms Testuoti programą su seka, kuri turi tik vieną elementą Naudoti skirtingo dydžio duomenų sekas. Paruošti testus taip, kad būtų apdorojamas pirmas, paskutinis ir vidurinis testavimo sekos elementas. Testuoti su nulinio ilgio seka. 31 Bendros testavimo taisykl s Paruošti testavimo duomenis taip, kad būtų aporojami visi klaidų pranešimai Paruošti testavimo duomenis taip, kad visi fiksuoto ilgio masyvai persipildytų Kartoti testus su tais pačiais duomenimis keletą kartų Sugalvoti, kaip gauti blogus rezultatus Sugalvoti tokius testavimo duomenis, kad skaičiavimai vyktų labai ilgai arba labai trumpai. 32

Komponentų testavimas PĮ komponentai paprastai yra sudaryti iš kelių tarpusavyje sąveikaujančių objektų. Kiekvieno objekto funkcionalumas yra pasiekiams per tam tikrą to komponento sąsają. Tikrinant keletą komponentų reik tų akcentuotis į tai, ar tie komponentai tarpusavyje sąveikauja pagal specifikaciją. Daroma prielaida, kad į komponentąįeinatys vienetai jau pilnai ištestuoti. 33 Pavyzdys paieškos procedūra procedure Search (Key : ELEM ; T: ELEM_ARRAY; Found : in out BOOLEAN; L: in out ELEM_INDEX) ; Pre-condition -- the array has at least one element T FIRST <= T LAST Post-condition -- the element is found and is referenced by L ( Found and T (L) = Key) or -- the element is not in the array ( not Found and not (exists i, T FIRST >= i <= T LAST, T (i) = Key ))

Paieškos procedūra įvedimo duomenys Duomenys, atitinkantys pradines sąlygas Duomenys, neatitinkantys pradinių sąlygų Duomenys, į kuriuos įeina raktinis elementas Duomenys, į kuriuos neįeina raktinis elementas Paieškos procedūra rekomendacijos masyvams Testuoti programinęįrangą kai masyvas turi tik vieną elementą. Skirtingiems testams naudoti skirtingo dydžio masyvus. Parinkti testus taip, kad būtų nagrin jamas pirmas, vidurinis ir paskutinis masyvo elementas. Testuoti nulinio ilgio masyvus.

Testai paieškos procedūrai Array Single value Single value More than 1 value More than 1 value More than 1 value More than 1 value Element In sequence Not in sequence First element in sequence Last element in sequence Middle element in sequence Not in sequence Input sequence (T) Key (Key) Output (Found, L) 17 17 true, 1 17 0 false,?? 17, 29, 21, 23 17 true, 1 41, 18, 9, 31, 30, 16, 45 45 true, 7 17, 18, 21, 23, 29, 41, 38 23 true, 4 21, 23, 29, 33, 38 25 false,?? Sąsajos testavimas Testo atvejai A B C 38

Sąsajos testavimas Sąsajų tipai Parametrų sąsajos: duomenys perduodami iš vienos procedūros ar metodo į kitą. Bendrai naudojamos atminties sąsaja: tam tikri atminties blokai yra bendri kelioms funkcijoms ar procedūroms.. Procedūrin s sąsajos: tam tikros posistem s kviečia kitas procedūras, naudojamas dar kitose posistem se. Žinučių perdavimo sąsajos: vienos posistem s prašo tam tikrų paslaugų iš kitos posistem s ir tam naudoja žinučių perdavimą 39 Sąsajos klaidos Klaidingai naudojama sąsaja pakviestas komponentas iškviečia kitą komponentą ir daro klaidas jo naudojamoje sąsajoje, pvz.: neteisinga parametrų tvarka Neteisingas sąsajos interpretavimas: kviečiantis komponentas remiasi prielaida apie kiekvieno komponento elgesį, kuris yra neteisingas. Sinchronizacijos klaidos: pakviestas ir kviečiantysis komponentai dirba skirtingais greičiais ir nebegaliojanti informacija vis dar būna prieinama. 40

Sąsajos testavimo gair s Visada testuokite nuorodos parametrus su nuline rodykle. Sukurkite testus, kurie priverstų komponentą suklysti. Naudokite stresinį testavimą (stress) žinučių perdavimo sistemoje. Bendrai naudojamos atminties sistemose keiskite tvarką, kuria komponentai yra aktyvuojami. 41 Sistemos testavimas Sistemos testavimo metu tikrinama iš atskirų komponentų sudaryta sistema. Tikrinama, kaip tie integruoti komponentai veikia tarpusavyje. Sistemos testavimo metu nustatoma, ar komponentai yra suderinami, ar jie sąveikauja korektiškai, ar jie atiduoda vienas kitam teisingus duomenis ir tada, kada jų reikia Sistemos testavimo testai turi patikrinti visus nenumatytus sistemos veikimo atvejus. 42

Vartotojo scenarijų testavimas Vartotojo scenarijai gali būti naudojami kaip pagrindas sistemos testavimui Kiekvienas vartotojo scenarijus paprastai apima keletą sistemos komponentų, tod l vartotojo scenarijų testavimas priverčia tuos komponentus suklysti, jei jie apjungti nekorektiškai. Sekos diagramos parodo, kokia seka reik tų tikrinti sąveiką tarp atskirų komponentų 43 Meteorologinių duomenų surinkimo sekos diagrama :CommsController :WeatherStation :WeatherData request (report) acknowledge () report () summarise () reply (report) send (report) acknowledge () 44

Testavimo politika Pilnas sistemos testavimas iš principo n ra įmanomas, tod l paprastai stengiamasi ruošti tokius testus, kad su kaip galima mažesniu testų kiekiu gal tume patikrinti kaip galiam didesnę programos dalį. Pavyzdžiai: Patikrinti visas sitemos funkcijas, kurios yra pasiekiamos per meniu. Funkcijų, kurios pasiekiamos per tuos pačius meniu, kombinacijos taip pat turi būti tikrinamos (pvz. format text) Visas funkcijas, į kurias vartotojas paduoda savo duomenis, turi būti testuojamos tiek su teisingais, tiek su klaidingais duomenimis. 45 Į testus orientuotas programavimas Į testus orientuotas programavimas (Test-driven development (TDD)) yra programų kūrimo strategija, apjungianti ir programavimą, ir žemiausio lygio testavimą. Testai ruošiami dar prieš pradedant programavimo darbus. Jūs kuriate kodo gabaliuką ir testuojate pagal paruoštą testą, nesiimate programuoti kito kodo gabalo tol, kol jūsų šiuo metu kuriamas kodas nepraeina iš anksto paruošto testo. TDD yra ekstremalaus programavimo dalis. 46

Į testus orientuotas programavimas 47 Į testus orientuoto programavimo proceso veiklos Pirmiausia identifikuojame nedidelę funkcionalumo dalį, kurią tur sime suprogramuoti, o v liau ir testuoti. Pvz. kelias kodo eilutes. Paruošiame testą toms kodo eilut ms ir įtraukiame į automatizuotus testus. Paleidžiame testą kartu su kitais anksčiau paruoštais testais. Kadangi pats programos kodas dar neparašytas, tai šis testas duos klaidą. Parašome programos kodą ir iš naujo paleidžiame testą. Jei testas pra jo, tai ruošiame testus kitoms funkcijoms programuoti ir testuoti, jei ne ieškome klaidų. 48

Į testus orientuoto programavimo privalumai Kodo perdengimas Kiekvienas kodo segmentas, kurį mes rašome, turi bent vieną su juos susietą testą, o visas mūsų parašytas kodas yra praktiškai pilnai pratestuotas. Regresinis testavimas Periodiškai testas papildomas kartu su programos kūrimu įd jus naują kodo gabalą, kartu įdedamas ir jį atitinkantis testas. Supaprastintas debugging as Jei testas nepraeina, tai iš karto yra aišku, kurioje vietoje yra klaida tikriname naujai parašytą kodą. Sistemos dokumentacija Tokiu būdu paruošti testai kartu yra ir sistemos dokumentacija, parodanti, ką mūsų sistema turi daryti. 49 Regresinis testavimas Regresijos testas tikrina, ar nauji pakeitimai nesugadino anksčiau parašyto ir patikrinto programos kodo. Testuojant rankiniu būdu, regresinis testas yra brangus, bet jį automatizavus, jis yra paprastas ir labai veiksmingas. Visi testai atliekami po kiekvieno programos pakeitimo. Visi testai turi praeiti s kmingai prieš patvirtinant kątik padarytus pakeitimus. 50

Versijos (Release) testavimas Versijos testavimas yra procesas, kurio metu tikrinama programa yra beveik paruošta išoriniam naudojimui. Pirminis versijos testavimo tikslas yra parodyti vartotojui, kad sistema yra pakankamai gera, kad gal tume ją prad ti naudoti. Versijos testavimo metu parodome, kad sistema turi reikiamą funkcionalumą, veikimo greitį ir nelūžta atlikdama savo pagrindines funkcijas. Versijos testavimas yra juodos d ž s tipo, kai testus ruošiame tik pagal reikalavimų specifikaciją, o ne pagal programos logiką. 51 Versijos ir sistemos testavimas Versijos testavimas yra tam tikra prasme ir sistemos testavimas. Skirtumai: Sistemos testavimą atlieka ne programavimo komanda, o visai su sistemos kūrimu nesusijusi komanda, pvz. testuotojai. Sistemos testavimo metu programuotojų komanda siekia užtikrinti, kad programoje liktų kuo mažiau nesurastų klaidų. Versijos testavimo metu pagrindinis uždavinys yra parodyti, kad sistema atlieka savo funkcijas ir yra tinkama išoriniam vartojimui. 52

Reikalavimais paremtas testavimas Reikalavimais paremtas testavimas apima kiekvieno reikalavimo testavimą ir testų ruošimą tam reikalavimui. MHC-PMS reikalavimai: Jei žinome, kad pacientas yra alergiškas tam tikrai medžiagai, tai tą medžiagą turinčių vaistų skyrimas tur tų vartotojui išmesti atskirąįsp jimą. Jei vaistus skiriantis asmuo pranešimą ignoruoja, tai jis turi įvesti priežastį, kod l jis taip daro. 53 Reikalavimų testas Suformuokite kliento įrašą be atžymų apie alergiją. Priskirkite jam visus galimus alergenus. Patikrinkite, ar sistema tikrai išmeta pranešimus kiekvienam alergenui. Suformuokite kliento įrašą su kokiu nors žinomu alergenu. Paskirkite tam klientui vaistų, turinčių tą alergeną. Patikrinkite, ar sistema išmeta pranešimą. Suformuokite kliento įrašą su bent dviem ar dugiau alergenų. Paskirkite jam vaistų iš pradžių su vienu, o po to su kitu alergenu, pažiūr kite, ar sistema išmes pranešimus abiem atvejais. Sukurkite kliento įrašą su dviem alergenais, patikrinkite, ar sistema teisingai apdoroja abu alergenus. Klientui, turinčiam įrašą apie alergiją, skirkite vaistų, kurie turi tą medžaigą. Pranešimą ignoruokite, patikrinkite, ar sistema teisingai apdorojo paaiškinimą, kod l klientuo buvo skirti tokie vaistai. 54

Savyb s, tikrinamos remiantis vartotojo scenarijais Autorizacija jungiantis prie sistemos Tam tikrų duomenų atsisiuntimas arba įk limas į kompiuterį Paciento lankymo namuose tavrkaraščio sudarymas Kliento duomenų perk limas į mobilią priemonę Pri jimas prie įrašo ir jo modifikavimas Sąryšis su alergenų duomenų baze Kaip sistema apdoroja skambučius 55 Vartotojo scenarijus MHC-PMS sistemai Kate is a nurse who specializes in mental health care. One of her responsibilities is to visit patients at home to check that their treatment is effective and that they are not suffering from medication side -effects. On a day for home visits, Kate logs into the MHC-PMS and uses it to print her schedule of home visits for that day, along with summary information about the patients to be visited. She requests that the records for these patients be downloaded to her laptop. She is prompted for her key phrase to encrypt the records on the laptop. One of the patients that she visits is Jim, who is being treated with medication for depression. Jim feels that the medication is helping him but believes that it has the side -effect of keeping him awake at night. Kate looks up Jim s record and is prompted for her key phrase to decrypt the record. She checks the drug prescribed and queries its side effects. Sleeplessness is a known side effect so she notes the problem in Jim s record and suggests that he visits the clinic to have his medication changed. He agrees so Kate enters a prompt to call him when she gets back to the clinic to make an appointment with a physician. She ends the consultation and the system re-encrypts Jim s record. After, finishing her consultations, Kate returns to the clinic and uploads the records of patients visited to the database. The system generates a call list for Kate of those patients who she has to contact for follow-up information and make clinic appointments. 56

Našumo testavimas Versijos testavimo metu testuojamas sistemos našumas ir patikimumas. Testai turi atititkti realią vartotojo aplinką Našumas (greitis) paprastai testuojamas palaipsniui didinant sistemos apkrovimą tol, kol jos veikimas pasidaro nebepriimtinas. Sistemos testavimas virš jos maksimaliai suprojektuoto krūvio yra vadinamas stresiniu testavimu. 57 Vartotojo testavimas Vartotojo ar užsakovo testavimo metu sistemą tikrina jos galutiniai vartotojai. Vartotojo testavimas atliekamas tik tada, kai sistemos ir versijos testavimai yra pilnai baigti. 58

Vartotjo testavimo tipai Alpha testas Vartotojai dirba kartu su programuotojais ir padeda testuoti programą iš programuotojų pozicijų. Beta testas Beta versija leidžia vartotojams eksperimentuoti su sistema ir rasti klaidas, kurias pražiopsojo alfa testuotojai. Pri mimo testas Vartotojai testuoja, ar sistema jau paruošta darbui ir ar tinkama kliento funkcijoms atlikti. Papastai šis testas aliekamas užsakomojo pobūdžio PĮ. 59 Pri mimo testo procesas 60

Pri mimo testo proceso žingsniai Pri mimo kriterijaus nustatymas Pri mimo testo planavimas Pri mimo testų ruošimas Pri mimo testų leidimas Derybos d l gautų rezultatų Sistemos pri mimas ar atmetimas 61