Text of PRIMERJAVA ORODIJ ZA TESTIRANJE SPLETNIH STORITEV
Diplomska nalogaRobi Kuserbanj Diplomska naloga PRIMERJAVA ORODIJ ZA TESTIRANJE SPLETNIH STORITEV Študent: Robi Kuserbanj Smer: Informatika SoMentor: viš. pred. mag. BOŠTJAN KEMAH Maribor, november Zahvaljujem se svojemu mentorju dr. Marjanu Heriku, somentorju Boštjanu Kemahu, ter Urošu Goljatu za pomo, strokovne nasvete ter potrpeljivo pregledovanje diplomske naloge. Za vso pomo in nasvete bi se rad še zahvalil Andreju Krajncu. Na koncu se še zahvaljujem svojim staršem, kateri so mi omogoili študij. Primerjava orodij za testiranje spletnih storitev Klju ne besede: programska oprema, spletne storitve, testiranje, primerjava orodij UDK: 004.415.53:004.777(043.2) Povzetek: V diplomskem delu smo opisali in primerjali orodja za testiranje spletnih storitev. Testiranje sodi k najpomembnejšim stvarem današnjega sveta, predvsem v sedanji dobi raunalništva. Tako ima danes e skoraj vsako gospodinjstvo svoj raunalnik, s katerim opravlja in dostopa do razlinih stvari in od katerih priakuje, da bodo vedno delovale brezhibno. Prav zaradi tega je testiranje tako pomembno, kajti s testiranjem prepreimo morebitne napake in druge nepotrebne teave. Tako smo v zaetnih poglavjih spoznali razlike med programsko opremo oz. testiranjem le-te in testiranje spletnih storitev. Da bi bilo testiranje programske opreme in spletnih storitev im enostavnejše, uporabljamo pri tem razlina orodja. Tako smo v ospredje te diplomske naloge postavili orodja, s katerimi testiramo spletne storitve, jih primerjamo med sabo itd. Predvsem smo hoteli prikazati, kaj nekatera orodja imajo in esa druga nimajo. S tem, ko smo jih primerjali, testirali itd., smo prišli do zanimivih dejstev, katera so prikazana in komentirana v razlinih tabelah. Comparison of Tools for Web-Services Testing Key words: computer software, web services, testing, tool-comparison UDK: 004.415.53:004.777(043.2) Abstract: In diplome work we described and compared web-services testing tools. Testing is nowadays one of the most important things, especialy in the present computer era. Almost every household has its own computer, with which it manages and accesses different things and expects that they will always work perfectly. That is why testing is so important, we can namely prevent future mistakes and other unimportant problems. In the first few chapters we aknowledged the differences between computer software and the testing of it and web services and their testing. To make the testing of computer software and web services easier, we use specific tools. The main stress in the Diploma is on tools, with which we test web services, compare them with each other and so on. We wanted to present the advantages and disadvantages of individual tools. By comparing and testing them, we came to interesting facts, which have been presented and commented in different tables. KAZALO: 1 UVOD....................................................................................................................... 1 2 TESTIRANJE.......................................................................................................... 3 2.2.1 Referenna meritev............................................................................................4 2.2.3 Uspešnost testiranja ........................................................................................... 5 2.4 Pri testiranju je dobro vedeti.............................................................................. 6 3.1. Testiranje ........................................................................................................... 7 3.1.1 Funkcionalnost .................................................................................................. 8 3.2.1 Testiranje modulov.......................................................................................... 12 3.2.2 Integracijsko testiranje..................................................................................... 12 3.3.4 Primerjava testiranja po metodi ''bele škatle'' in ''rne škatle''......................... 16 4 SPLETNE STORITVE............................................................................................ 17 4.6 Storitveno usmerjena arhitektura SOA............................................................ 26 4.6.2 Naslednja generacija SOA............................................................................... 28 5.2 Testiranje strenikov........................................................................................ 31 5.6 Faze testiranja spletnih storitev ....................................................................... 36 5.7 SOA testiranje z uporabo rne, bele in sive škatle .......................................... 39 5.7.1 Testiranje po metodi rne škatle...................................................................... 39 5.7.2 Testiranje po metodi bele škatle ...................................................................... 39 5.7.3 Testiranje po metodi sive škatle ...................................................................... 40 5.8 Testna orodja so kljuna za uspeh spletnih storitev ........................................ 40 6 ORODJA ZA TESTIRANJE SPLETNIH STORITEV........................................... 42 6.1 Opis orodij ....................................................................................................... 42 6.1.2 Orodje GreenHat.............................................................................................. 43 6.1.4 Orodje itko LISA 4 SOA................................................................................. 44 6.1.8 Orodje Altova XmlSpy.................................................................................... 47 7 ZNAILNOSTI ORODIJ ....................................................................................... 50 7.3.9 Podpora (dokumentov, baz, itd.) ..................................................................... 58 7.4 Uporabniške znailnosti orodij....................................................................... 59 RFC - Request for Comments UDDI - Universal Descripton, Discovery and Integration SMTP - Simple Mail Transfer Protocol XMPP - Extensible Messaging And Presence Protocol MIME - Multipurpose Internet Mail Extensions EDA - Event Driven Architecture HTML - Hypertext Markup Language JDBC - Java Database Connectivity EJB - Enterprise Java Beans DTD - Data Transfer Device IMAP - Internet Message Access Protocol SSL - Secure Sockets Layer Slika 2: Uporabnost karakteristik kakovosti po ISO 9126 Slika 3: Intenzivnost odpovedi Slika 6: UDDI in SOAP Slika 7: Sklad tehnologij spletnih storitev Slika 8: Arhitektura SOA Slika 9: Opredelitev URI Slika 10: Arhitektura REST Slika 12: Arhitektura spletnih storitev Slika 13: Delovanje orodja SOAPSonar Slika 14: Prikaz IT tveganja in zanesljivosti SOA Slika 15: Arhitektura orodja itko LISA 4 SOA Slika 16: Arhitektura orodja TestMaker SEZNAM TABEL Tabela 1: Primerjava testiranja po metodi ''bele škatle'' in ''rne škatle'' Tabela 2: Prikaz znailnosti posameznih orodij Tabela 3: Osnovna primerjava orodij Tabela 4: Podrobna primerjava orodij Tabela 5: Uporabniške znailnosti orodij Primerjava orodij za testiranje spletnih storitev 1 1 UVOD Še pred nekaj leti spletne storitve niso bile dovolj zanimive za uporabo, saj so bile zelo poasne. To se je zaradi prizadevanja razlinih razvijalcev spremenilo. Danes se uveljavljajo kot kljuna tehnologija za elektronsko poslovanje. Prav tako omogoajo povezljivost med informacijskimi sistemi ne glede na platformo, programski jezik in operacijski sistem. O spletnih storitvah govorimo kot o revolucionarni tehnologiji, kot o neem esar na podroju informatike še ni bilo. Perea tema je testiranje spletnih storitev, ki postajajo vedno bolj kompleksne in jih je posledino teje testirati. Prav zato bomo v diplomskem delu podrobno raziskali podroje testiranja spletnih storitev. V zaetku diplomske naloge smo opisali testiranje in ga v splošnem opredelili na vse pomembnejše pojme, s katerimi se sreamo pri testiranju. Ko smo spoznali posamezne pojme testiranja in se zavedli kako pomembno je testiranje, nadaljujemo s predstavitvijo programske opreme. Nato smo opisali vse faze razvoja programske opreme ter testiranje le-te. Testiranje programske opreme je proces, ki se uporablja za 'merjenje' kvalitete pri razvijanju raunalniške programske opreme. Tukaj se najprej osredotoimo na samo kvaliteto testiranja in prikaemo vse njegove najpomembnejše lastnosti, kot so pravilnost, popolnost, varnost itd. Ko spoznamo te pomembne osnove, zanemo s spoznavanjem metod testiranja po beli, rni in sivi škatli, ki so najpomembnejše metode testiranja programske opreme. Po opisu testiranja programske opreme opišemo spletne storitve in na zaetku prav tako predstavimo celoviten pogled na spletne storitve. Zanemo z zgodovino in nadaljujemo s predstavitvijo vseh pomembnejših lastnosti spletnih storitev. Predstavimo arhitekturo, specifikacije, opišemo storitveno usmerjene arhitekture, spletno usmerjene arhitekture ter princip REST (ang. Representational State Transfer je arhitektura programske opreme za hipermedijske sisteme, kot je svetovni splet). Po opisu spletnih storitev preidemo na testiranje spletnih storitev, ki predstavlja glavni del diplomske naloge. Testiranje spletnih storitev smo razdelili na tri dele, in sicer na testiranje strenikov, testiranje odjemalcev in na druge monosti testiranja. Ta razdelitev se nam zdi dokaj Primerjava orodij za testiranje spletnih storitev 2 pomembna, saj se moramo najprej odloiti, kateri del bomo testirali in katero testiranje bomo izbrali. Vse smo dodatno prikazali skozi faze testiranja, ko smo asovno prikazali, kako je potekalo oz. kako poteka samo testiranje. Prav tako kot pri testiranju programske opreme se tudi tukaj pojavijo pomembne metode testiranja in sicer testiranje po metodi bele, rne in sive škatle. Ker je rono testiranje spletnih storitev zamudno opravilo, smo raziskali monosti uporabe orodij za avtomatizirano testiranje spletnih storitev. Prav tako smo poizkušali najti orodje, ki bi bilo najprimernejše za našo nalogo, saj so razlina orodja pri testiranju spletnih storitev bistvenega pomena. Uporabili smo nekaj najbolj uveljavljenih orodij za testiranje spletnih storitev, ki smo najprej jih najprej opisali, predstavili njihove karakteristike in jih na koncu medsebojno primerjali. V zadnjem poglavju smo s pomojo najpomembnejših karakteristik, ki smo jih predstavili v prejšnjih poglavjih, primerjali orodja. Najprej smo oblikovali osnovno primerjalno tabelo, nato pa nadaljevali s podrobno primerjavo. Tako smo dobili veliko tabelo z najpomembnejšimi primerjalnimi podatki o orodjih. Na koncu smo dodali tudi tabelo z uporabniškimi znailnostmi orodij, v kateri podamo lastno mnenje o uporabnosti posameznih orodij. 2 TESTIRANJE 2.1 Glavni mejniki Ko zanemo spoznavati testiranje, se moramo najprej ustaviti pri letu 1956, ko je bilo razhroševanju (ang. debugging) v vzponu. Z besedo razhroševanje se je v tistem asu oznaevalo testiranje. To se je med letoma 1957 in 1978 spremenilo in vsaka od besed je dobila svoj pomen. Prve razlike med razhroševanjem in testiranjem je predstavil Glenforda J. Myersa leta 1979. V obdobju 1979–1982 se je raunalniška miselnost nekoliko spremenila in glavni namen testiranja je postalo iskanje napak. Prav tako so ljudje med letoma 1983 in 1987 zaeli razmišljati, kako pregledati oz. meriti kvaliteto izdelka v asu njegovega delovanja. Od leta 1988 naprej pa se sprašujemo, ali programska oprema zadoša specifikacijam, ki so bile napisane prav za njo [2]. Gelperin je prvi izdal standard IEEE 829-1989 skupaj s Hetzlom pa je izdal knjigo z naslovom Celotni vodi skozi testiranje. Oba veljata za pionirja testiranja programske opreme in še v današnjem asu testiranje v veliki meri temelji na njunih teorijah [1]. 2.2 Kaj je testiranje? Ko pridemo do tega vprašanja, se moramo zavedati, da nanj ne moremo odgovoriti kar tako, saj moramo poznati veliko dejstev. Eno od njih je doloanje glavne vloge pri testiranju, ki jo ima najvekrat preizkuševalec (ang. tester). To je oseba, ki je zadolena za testiranje programske ali strojne opreme. Pred letom 1950 se je beseda preizkuševalec, uporabljala splošno. Kasneje pa je zaela oznaevati razline osebe kot na primer testnega vodja, preizkuševalca, oblikovalca testov, razvijalca avtomatinih testov in administratorja testov. Testiranje je analiza celotnega ali le dela programa, ki se izvaja z namenom preverjanja ustreznosti programa oz. iskanjem odstopanj od priakovanih vrednosti. Osnovni namen testiranja je dokazati prisotnost ene ali ve napak, ne pa lokacije napak [3]. Primerjava orodij za testiranje spletnih storitev 4 Poznamo tudi stopnje testiranja. Pri sestavni stopnji testiranje izvede veja skupina programerjev. Tukaj so vse komponente kombinirane med seboj. Druga takšna stopnja testiranja je sistemska stopnja, kjer proizvajalci ali neodvisni razvijalci testirajo produkte ali storitve z enim ali ve zmogljivostnimi testi in e je le mogoe z enim ali ve programi za testiranje referennih meritev. Referenna meritev (ang. benchmarking ) je referenca, s katero odmerimo doloeno stvar. Lahko jo opišemo tudi kot vrsto pogojev, s katerimi se lahko proizvod ali sistem odmeri, oz. vrsto kriterijev, ki naj bi jih izdelek imel. Tako Eric Raymond [4] o referenni meritvi govori kot o nenatannem merilu in pravi: »Stari hekerji govorijo, da obstajajo v raunalniški industriji tri vrste lai, to so lai, velike lai in referenne meritve«. Metoda testiranja je nekakšen proces, ki nam da testne rezultate. Testiranje in eksperimentiranje sodita med t.i. znanstvene metode, ki potrdijo ali ovrejo doloena priakovanja. Za testnega preizkuševalca lahko reemo, da je to oseba, ki validira in verificira kvaliteto programske opreme. 2.2.2 Verifikacija in validacija Ko govorimo o verifikaciji, govorimo o procesu, pri katerem preverjamo ali produkt tekoe faze ustreza zahtevam, postavljenim v predhodni fazi. Za verifikacijo lahko reemo, da je sinonim za vse vrste preverjanj. Za razumevanje besede verifikacija si lahko pomagamo tako, da se vprašamo, ali smo naredili ustrezen izdelek oz. izdelek, skladen s specifikacijo [5, str. 12–15]. Drugi takšen proces je validacija, o kateri govorimo, ko vrednotimo programsko opremo na koncu njenega razvoja z namenom, da ugotovimo njeno skladnost z zahtevami. Za razumevanje besede validacija si lahko pomagamo tako, da se vprašamo, ali smo naredili ustrezen izdelek oz. ali je to izdelek, ki ga hoe stranka [5, str. 12–15]. Primerjava orodij za testiranje spletnih storitev 5 2.2.3 Uspešnost testiranja Testiranje je uspešno, e uspemo dokazati prisotnost napak. Testiranje predstavlja destruktiven proces, razvoj programske opreme pa oznaujemo kot konstruktiven proces [5]. Ena izmed pomembnejših trditev je, da naj oseba, ki doloen proizvod razvija, tega ne testira sama. Odpravljanje napak se pogosto zamenjuje s testiranjem. V bistvu pa gre za postopek, pri katerem vnaprej vemo, da je v programu napaka (ena ali ve). Naloga razhroševanja pa je, da na primer ugotovimo, na katerih mestih so napake oz. kje se te napake pojavljajo itd. Najveje teave se pojavijo pri vprašanju, kdaj prenehati s testiranjem. Pri tem nam pomaga kriterijska funkcija, s katero predpišemo, kdaj konati s preverjanjem. Ta funkcija je zelo pomembna, kajti od nje so odvisni stroški preverjanja. Sestavljajo jo razlini parametri kot npr. testni as, število uporabljenih testnih vzorcev itd. 2.3 Kdo nadzoruje preizkuševalca ? Pri testiranju se pojavlja klasino latinsko vprašanje ''Quis Custodiet Ipsos Custodes'' oz. kdo nadzoruje preizkuševalca. Bistvo je v tem, da je nadzorovanje neka vrsta delovanja, ki ima posledice za testiranje. Na to, ali je tak nadzor dober ali slab, vpliva veliko dejavnikov. V praksi preizkuševalec testira programsko opremo z drugimi programskimi rešitvami in sistemi. V procesu testiranja lahko celotna zadeva propade in ne dobimo nobenega poroila o napakah v sistemu, lahko pa se te napake pojavijo pri naših orodjih za testiranje [9]. Zato se razvijajo metrike, na podlagi katerih se ocenjuje uinek nekega testiranja. Z merjenjem števila napak v programu in s primerjanjem le-teh s podobnimi projekti, dobimo priblino sliko testiranja. Pri testiranju se lahko pojavljajo tudi napake, ki so bile namenoma povzroene. Za dokazovanje teh namernih napak ni posebne metode in jih je sila teko dokazati. 2.4 Pri testiranju je dobro vedeti Obstaja kar nekaj zadev, ki jih moramo pri testiranju upoštevati. Prva od njih je ta, da je proizvod nemogoe testirati v celoti. Naslednja je ta, da je nemogoe kakovostno testirati lasten program. Prav tako je pri testiranju teko dokazati oz. pokazati, da napak ni. im ve napak najdemo, toliko ve napak še ostane. In vse te napake, ki jih najdemo, ne bodo popravljene iz razlinih razlogov, itd. [60]. Testiranje naj opravljajo najbolj kreativni ljudje v podjetju. Za vsak testni primer moramo obvezno e pred testiranjem ugotoviti pravilne rezultate. O tem, kdaj je testiranje konano, se moramo odloati na podlagi vnaprej doloenih kriterijev. Primerjava orodij za testiranje spletnih storitev 7 3 TESTIRANJE PROGRAMSKE OPREME 3.1. Testiranje Testiranje je informacijska rešitev, ki se uporablja za merjenje kvalitete pri razvijanju programske opreme. Ponavadi je kvaliteta omejena na razline zadeve, kot so pravilnost (ang. correctness), ki je doseena, ko se algoritem ujema z zahtevami specifikacije, popolnost (ang. completeness), ki doloa, da je program popoln, e mu ni treba niesar dodati, kar pa se v praksi le redko zgodi. Zato uporabljamo formalni sistem, ki je lahko maksimalno, ekstremno in mono popoln, kot zadnja je tukaj še varnost (ang. security), ki je lahko rona ali avtomatina [10]. Zraven vseh teh pomembnih stvari testiranje programske opreme vkljuuje tudi bolj tehnine zahteve (ISO 9126) (Slika 1), kot so npr. funkcionalnost, zanesljivost, uporabnost, uinkovitost, vzdrevalnost in prenosljivost. 3.1.1 Funkcionalnost Kako proizvod deluje, da zadovolji potrebe uporabnika se sprašujemo pri funkcionalnosti (ang. functionality). Tukaj so pomembni pojmi ustreznost (govori o prisotnosti in primernosti posameznih funkcij), natannost (govori o priakovanih natannih rezultatih), kompatibilnost (govori o tem, kako se proizvod povezuje z navedenim okoljem glede na prejšnje verzije), skladnost (govori o skladnosti z zakonodajo, standardi, poroili itd.) in zašita (nanaša se na onemogoanje neavtorizirane uporabe programske opreme) [11, 12]. 3.1.2 Zanesljivost Zanesljivost (ang. reliability) je sposobnost osebe ali sistema, da izvaja in vzdruje svoje delovanje v razlinih okolišinah. Loimo podatkovno zanesljivost (lastnost nekaterih diskovnih razporeditev in raunalniških diskov) in inenirsko zanesljivost (zagotavlja, da bo sistem zanesljiv, ko bo deloval v doloenih nainih) [11]. 3.1.3 Uporabnost Uporabnost (ang. usability) se ponavadi nanaša na prefinjenost in jasnost, pri em se delovanje kae v raunalniških programih in spletnih straneh. O uporabnosti govorimo tudi tedaj, ko se pogovarjamo o uporabnosti nekega izdelka, ki je povezan z uporabniških vmesnikom. Besedo uporabnost lahko prav tako uporabljamo v kontekstu z besedno zvezo uporabniku prijazno. Uporabnost lahko ugotovimo tako, da se vprašamo, kdo so uporabniki, kaj hoejo, kaj potrebujejo, kaj se lahko nauijo itd. [11]. 3.1.4 Uinkovitost Uinkovitost (ang. efficiency) razdelimo na dva dela, in sicer na hitrost in prostor. 1. Hitrost (as potreben za konanje operacije) Primerjava orodij za testiranje spletnih storitev 9 Hitrost algoritma se lahko meri na razline naine. Najpogosteje uporabljena metoda je ta, da uporabljanje asovne zapletenosti za doloitev Big-O algoritma. Tako lahko poveamo hitrost našega algoritma. Big-O se uporablja za opisovanje, kako velikost vhodni podatkov vpliva na hitrost algoritma (ponavadi tekoi as ali as pomnilnika) [11, 12]. 2. Prostorsko zahtevnost (disk oz. pomnilnik porabljen pri procesiranju ) Prostor algoritma dejansko delimo na dva loena, vendar podobna vidika. Prvi del algoritma je prostor s strani delovanja diska. Tega lahko pogosto zmanjšamo z ocenitvijo asa izvajanja. Drugi del algoritma predstavlja as pri procesiranju zaasnega pomnilnika. Optimizacija celotnega algoritma za zmogljivost je v veini primerov odvisna od tega, na kakšnem raunalniku bo algoritem deloval [11, 12]. 3.1.5 Vzdrevalnost Vzdrevalnost (ang. maintainability) pomeni kako dolgo lahko programsko ali strojno opremo spreminjamo, v smislu da bo delovala brez napak, pri emer skušamo poveati zmogljivost, prilagodljivost, vstavljanje novih atributov itd. [11]. 3.1.6 Prenosljivost Prenosljivost (ang. portability) pomeni prilagajanje programske opreme tako, da se lahko prilagodi program, ki je drugaen od tistega, za katerega je bil v prvi vrsti namenjen (operacijski sistemi, razline knjinice itd.). Glavni namen prenosljivosti je uporabnost programske in strojne opreme v razlinih raunalniških okoljih [11]. Primerjava orodij za testiranje spletnih storitev 10 Slika 2 prikazuje uporabo tehninih zahtev ISO 9126 v praksi. Iz nje je razvidno, da predstavlja funkcionalnost in zanesljivost najpomembnejši del razvoja programske opreme, najmanjši pa uporaba prenosljivosti. Slika 2: Uporabnost karakteristik kakovosti po ISO 9126 [45] Tako lahko reemo, da je testiranje proces tehnine raziskave v prid nepristranske osebe, katere namen je ugotoviti kakovost oz. skladnost proizvoda, z upoštevanjem priakovanj o delovanju našega proizvoda [10]. To vkljuuje programe in aplikacije z njihovo namero, da najdejo napake. Tako je najbolje, da testiranje programske opreme opravljajo razline ustanove kot enota, oddelek, skupina za SQA, katere obseg dela zajema vse procese, ne le testiranja. SQA (Software Quality Assurance) – zagotavljanje kvalitete programske opreme V današnjem asu se programska oprema razvija zelo hitro, kar lahko opazimo v vsej njeni zapletenosti in velikosti. Vsa ta programska oprema se mora tako hitro razvijati zaradi vse vejih sistemskih zahtev. Vsak programski proizvod ima svojo ciljno skupino. Zato mora industrija, ki razvija programsko opremo, biti posebej pazljiva v kaj vlaga denar, kajti proizvod mora biti na koncu dostopen oz. dovolj dober, da bo zadovoljil kupce. Prav tukaj nam testiranje zelo pomaga. Testiranje ne pomeni samo iskanja napak in ''hrošev'' v proizvodu, ampak lahko ovrednotimo kvaliteto proizvoda oz. programske Primerjava orodij za testiranje spletnih storitev 11 opreme. Programska oprema pa lahko deluje pravilno ali deluje nepravilno (je v stanju odpovedi). Programsko opremo delimo na programsko opremo z napako in programsko opremo, katera ima napake. O napaki programske opreme govorimo tedaj, ko programska oprema ne deluje tako, kot eli uporabnik. O programski opremi, ki ima napake, pa govorimo tedaj, ko delamo popravke v smislu semantinih popravkov in kot rezultat namesto delovanja programa dobimo napako (error). Najpogostejša praksa testiranja programske opreme je, da je ta testirana s strani razlinih skupin programerjev inenirjev (preizkuševalec). Z vsemi popravki se lahko podaljša izdaja izdelka in posledino lahko s tem prekoraimo proraun, predviden za ta izdelek. Zato tudi velja, da prej ko najdemo napako v proizvodu, ceneje nas bo stalo njeno odpravljanje. Programi brez napak so zelo redki. Takšne programe imenujemo korektni programi. Korektni program je tak program, ki nikoli ne odpove [10]. Slika 3 prikazuje intenzivnost odpovedi, ki jo izraunamo tako, da število odpovedi delimo s asovno enoto. Primerjava orodij za testiranje spletnih storitev 12 3.2 Stopnje testiranja programske opreme 3.2.1 Testiranje modulov Pri testiranju modulov (ang. unit testing) gre za testiranje manjših programskih delov ali modulov. Vsak modul proizvoda je testiran tako, da se pogleda, e je bil pravilno implementiran. Ponavadi se to testiranje izvaja v sami kodi programa na t.i. razredih in pri konstruktorjih in destruktorjih. Loimo tri tipe modulov. To so navadni moduli, reemo jim lahko kar moduli, krmilni moduli, ki imajo nalogo, da prenesejo izbrane testne vzorce v modul, ki ga potem testiramo, in dobimo izhodne podatke, in nadomestni moduli, ki simulirajo delovanje originalnega modula, ki jih je zahteval klicani modul [5, str. 46–78]. 3.2.2 Integracijsko testiranje Po opravljenem testiranju modulov lahko zanemo s testiranjem integracije (ang. integration testing). To testiranje razkrije pomanjkljivosti oz. napake v samem vmesniku in interakcije med integriranimi moduli. Enostavno reeno je testiranje integracije faza, v kateri se posamezne programske enote testirajo v skupinah [5, str. 50–51]. Poznamo razline tipe testiranja integracije.…