Testiranje Softvera

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

Definicija testiranja Testiranje je aktivnost izvedena radi evaluacije kvaliteta proizvoda i njegovog poboljanja, putem identifikovanja defekata i problema.

Testiranje softvera se sastoji od dinamike verifikacije ponaanja programa na konanom skupu test sluajeva, prikladno izabranih iz obino beskonanog domena izvravanja, prema oekivanom ponaanju (izvor: Guide to the SWEBOK).

Znaenje pojedinih termina iz prethodne definicije blie je objanjeno u nastavku teksta:

Dinamiko - testiranje podrazumeva izvravanje programa sa validnim ulazima. Sama ulazna vrednost nije dovoljna, kompleksni sistemi mogu reagovati razliito na isti ulaz u zavisnosti od stanja sistema.

Konano - u vedini programa, mogude je postaviti toliko test sluajeva da iscrpno testiranje moe da zahteva vremenski dugotrajne periode (mesece ili godine).

Izabrano - mnoge predloene test tehnike razlikuju se po tome kako se bira skup testiranja, gde lei velika odgovornost na softver inenjeru, jer razliit izbor daje razliitu efikasnost. Kako identifikovati najprikladniji kriterijum selekcije je vrlo kompleksan problem.

Oekivano - kako odluujemo da li su posmatrani izlazi oekivani ili ne? Oekivano ponaanje moe biti provereno prema:

oekivanjima korisnika (testing for validation) specifikaciji (testing for verfication) Testiranje nije aktivnost koja poinje samo nakon kompletiranja faze kodiranja. Softversko testiranje se danas vidi kao aktivnost koja obuhvata ceo proces razvoja i odravanja i predstavlja vaan deo kompletne konstrukcije softvera. Planiranje testiranja treba da pone sa ranom fazom requirement procesa, i test planovi i procedure moraju biti sistematski i kontinualno razvijani i po potrebi redefinisani. Pravi stav prema kvalitetu je prevencija, mnogo je bolje izbedi probleme nego ih ispravljati.

Na osnovu gore navedenog, oblast softverskog testiranja tesno je vezana sa svim drugim oblastima Softverskog Inenjerstva.

Zahtevi za stalnim razvojem Postoji veliki nesklad izmeu sve sloenijih softverskih reenja i tehnika, alata koji se primenjuju u procesu razvoja softvera i procesa testiranja softvera. Zahtevi za softverskim reenjima u svim oblastima dramatino rastu uz konstantan zahtev: bre, bolje i jeftinije. Sa druge strane, i oekivanja korisnika softvera su nerealno velika. Zahtevi za razvoj i testiranje softverskog proizvoda daleko prevazilaze znanje i iskustvo programera i menadera na tritu.

Kvalitet softvera i testiranje Kvalitet softverskog proizvoda se usmerava ka obezbeenju to je mogude manje greaka u softveru, njegovoj funkcionalnosti koja zadovoljava ili prevazilazi oekivanje korisnika softvera. Aktivnost testiranja softvera se normalno izvodi kao sredstvo pronalaenja greaka sa ciljem njihovog odstranjivanja iz softverskog proizvoda.

Mitovi o testiranju softvera Neki od mitova u procesu razvoja softvera su:

"Testiranje softvera je proces kojim se demonstrira da defekti ne postoje u softveru razvijenom za datu aplikaciju."

"Testiranje softvera je aktivnost ili proces kojim se pokazuje ili demonstrira da program ili sistem izvrava sve predviene funkcije korektno."

"Testiranje softvera je aktivnost kojom se obezbeuje potreban nivo 'poverenja' u to da program ili sistem izvrava ono to je trebalo da uradi, na osnovu skupa zahteva koje je korisnik specificirao." Svi navedeni mitovi su opti za sve definicije testiranja softvera. U njima ima osnovnih pogrenih shvatanja koje spadaju u mitove o testiranju softvera. Problem je u tome to svi mitovi imaju pozitivistiki pristup u shvatanju definicije testiranja softvera. Drugim reima, svaki od navedenih mitova testiranja softvera, u nabrojanim definicijama tvrdi da je testiranje softvera aktivnost kojom se potvruje da program ili sistem neto radi dobro. Meutim, vrlo je lako dokazati da softver/sistem neto radi dobro, ali je teko dokazati da neto ne radi dobro.

Ustvari, skoro je nemogude dokazati da greke ne postoje. Ako neki konkretan test nije otkrio greku (defekt), to ne znai da defekti u softveru ne postoje. Postavlja se pitanje, ta znai to to taj test nije otkrio defekt?

Ovi mitovi nose uverenje da se testiranje softvera vidi kao izbegavanje sutine greaka u softveru. ta je onda testiranje softvera? Testiranje softvera je proces izvravanja programa/funkcije sistema sa ciljem da se otkriju greke".

Testiranje softvera i otkrivanje greaka Posebna panja danas se posveduje aktivnosti otkrivanja greaka. Ovo je bitna razlika u odnosu na shvatanje da je vano potvrditi da program ili sistem radi. Ova definicija testiranja softvera je napisana u knjizi Glenford Myers "Umetnost testiranja softvera". Ovakvu definiciju je dao iz razloga to je tvrdio da je softver jedan od najkompleksnijih proizvoda ljudskog umnog rada. Nemogude je otkriti sve greke u softveru. Nemogude je dokazati da je softver bez greke. Takoe je jasno da je nemogude pobediti prosto ubeenje o imperativu da se otkriju sve greke.

Zato testiranje? Zato to su veliki gubici kompanija koje razvijaju softver upravo zbog velikog broja defekata u isporuenom softveru kupcima. Zato je prvenstveni zadatak test inenjera otkrivanje problema u softveru sa ciljem da se oni otklone pre predaje softverskog proizvoda kupcu.

Test inenjer mora i eli da otkrije to je mogude vie problema i to to vie onih, vrlo ozbiljnih ije posledice mogu biti katastrofalne sa materijalnog i bezbednosnog aspekta. Tako postaje kritian zahtev da se proces testiranja softvera uini to efikasnijim i uz to manje trokove ukoliko je to mogude.

Negativan prizvuk testiranja Osnovni aksiom testiranja softvera u okviru razvojnog ciklusa softvera je "Izvreni test koji otkrije problem u softveru je uspeh?" Znai, imamo problem koji nazivamo uspehom? Doprinos aktivnosti testiranja softvera je programski kod visoke pouzdanosti, velike otpornosti (robustan), vrlo stabilan i da potvrdi da softver zadovoljava skoro sve zahteve krajnjeg korisnika ili one koje je obavezno zahtevao. Zato se aktivnost testiranja softvera smatra destruktivnom prema programskom kodu, mada se na kraju pokazuje da je ta aktivnost vrlo konstruktivna. Testiranje softvera je aktivnost za koju se vezuje negativan prizvuk iako je njen krajnji cilj, stvaranje boljeg softverskog proizvoda, jer je operativno usmerena na slabe karike' procesa razvoja kao i ka kvalitetu samog softverskog proizvoda.

Vreme za testiranje Ukoliko se uspostavi stroiji proces obezbeenja kvaliteta softvera u pogledu efikasne prevencije i detekcije greaka, utoliko menjamo opte miljenje o tome kako se obezbeuje visok kalitet softverskog proizvoda. Drugi problem je taj, da skoro nikad nema dovoljno vremena za testiranje softvera. Zato treba da menjamo odnos prema aktivnosti testiranja softvera i vremenu koje je planirano za testiranje, tako to demo ga efikasnije utroiti u ranim fazama razvoja softvera. Potrebno je misliti o testiranju softvera ved prvog dana nakon poetka projekta, a ne kao to je uobiajeno da se aktivnost testiranja softvera planira na kraju razvoja softvera.

Otklanjanje greaka Pristup testiranju softvera na bazi otklanjanja greaka je takoe proces koji je podloan grekama. Tester softvera mora da identifikuje i proprati uoen problem do mesta nastanka (izvora) greke u softveru. Za otklanjanje greaka u softveru se moraju istraiti sve prethodne verzije i dokumentacija o aktivnostima u svim prethodnim fazama u razvoju softvera, ukoliko su raspoloivi. Cilj da se pokae da softver nema greaka, kroz otkrivanje i otklanjanje greaka, je loija od strategije da se izvri analiza uzroka nastanka greaka pa tek onda izvri uklanjanje greaka.

Prevencija greaka Mnogo je efikasnije spreiti nastanak greaka nego detektovati i otkloniti iste. To znai da treba testirati svaku proceduru ili modul odmah nakon njegovog pisanja. Testiranje u fazi integracije sistema se mora izvriti odmah nakon integracije komponenti softvera u sistem.

Trokovi otklanjanja greaka Trokovi otklanjanja uoenih greaka, umesto spreavanja njihovog nastanka, su veliki i prouzrokuju veliki gubitak u poslovanju i nezadovoljstvo kupca zbog greaka u softveru. Pre nego to se eka zavretak faze implementacije komponente softvera, pa tek onda testiranje komponente u cilju otkrivanja i otklanjanja greaka u njima, a koje su nastale u ranijim fazama procesa razvoja, potrebno je preventivno delovati na nastanak tih greaka kako bi se izbegla kanjenja i uvedali trokovi njihovog otklanjanja. Upravo je to cilj sprovoenja aktivnosti prevencije nastanka greaka. U poslednje vreme je razvijen veliki broj metoda u cilju spreavanja nastanka greaka u softveru (engl. Cleanroom Software Engineering, Zero Defect Software i dr.), metod dokazivanja korektnosti softvera, (engl. Failure Mode Analysis (FMA)), strategija projektovanja po Six Sigma i dr.

Testiranje i kvalitet Gene Krinz, direktor svemirskog programa u NASI je konstatovao da postoji problem u softverskom inenjerstvu po pitanju kvaliteta softvera tvrdnjom da: "Ne moete testiranjem ugraditi kvalitet softvera". Ne moe se ugraditi kvalitet, niti otkloniti problemi u kvalitetu softvera samo aktivnostima testiranja softvera. Ovo postaje oigledno ukoliko zahtevi za kvalitetom nisu postavljeni u zahtevima za projekat softvera, u fazi analize, dizajna ili implementacije, tako da se testiranjem softvera ne moe ni ugraditi niti otkloniti problemi kvaliteta softvera kroz klasian pristup testiranja softvera. Jedan od ciljeva uspenih procesa razvoja je evaluacija kvaliteta softverskog proizvoda. Dok se nekoliko atributa kvaliteta softvera moe oceniti aktivnostima u sklopu testiranja, dobar deo njih mora se ugraditi kroz dizajn softverskog proizvoda.

Poboljanja procesa testiranja

Poboljanja procesa testiranja je konstantan proces zajedno sa svim drugim elementima razvoja softvera. Angauju se sve vedi resursi kako velikih tako i malih kompanija u proces testiranja i njegovo unapredjenje. Postoji vie aspekata koji doprinose poboljanju procesa testiranja:

obuka kadrova za proces testiranja automatizacija procesa testiranja razvoj novih alata razvoj novih modela testiranja integracije procesa merenja parametara efikasnosti i efektivnosti procesa testiranja analize slabih i jakih strana postojedeg procesa testiranja identifikacije rizika i njihovih posledica na uspeh procesa razvoja

You might also like