testiranje softvera__radna verzija__

Upload: zeljko-pekic

Post on 30-May-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Testiranje Softvera__radna verzija__

    1/23

    FAKULTET ZA INFORMACIONE TEHNOLOGIJE

    PODGORICA

    SEMINARSKI RADOBEZBJEENJE KVALITETA I TESTIRANJE SOFTVERA

    TESTIRANJE SOFTVERA

    Profesor: Student:

    Student:

    Prof. Dr Radomir Vukasojevi Peki eljko

  • 8/14/2019 Testiranje Softvera__radna verzija__

    2/23

    Testiranje softvera

    M/09-09

    Podgorica, Decembar, 2009.

    Sadraj

    Sadraj ............................................................................................................................................................2

    Uvod ................................................................................................................................................................3Testiranje softvera ..........................................................................................................................................3

    Tehnike softverskog testiranja .......................................................................................................................7

    Vrste softverskog testiranja ............................................................................................................................9

    Strukturalno testiranje "White-box" .............................................................................................................9Funkcionalno testiranje ................................................................................................................................12

    Metoda crne kutije "Black-box" .................................................................................................................12

    Ekvivalentno particionisanje ........................................................................................................................16Cause Effect Graphing Techniques ...........................................................................................................17

    Testiranje putem grafikona ...........................................................................................................................18

    Error Guessing ..............................................................................................................................................18

    Testiranje performansi ..................................................................................................................................19Poboljanja procesa testiranja ......................................................................................................................21

    Instalaciono testiranje ...................................................................................................................................21

    Zakljuak ......................................................................................................................................................22Literatura .......................................................................................................................................................23

    eljko Peki Stranica 2

  • 8/14/2019 Testiranje Softvera__radna verzija__

    3/23

    Testiranje softvera

    Uvod

    Razvojem mikroelektronike, informatike i komunikacijske tehnologije, rjeenja

    zasnovana na raunarima primjenjuju se u svim podrujima ljudskog djelovanja.Izvravanje i najbizarnijih poslova postalo je danas zavisno od ispravnosti radaraunara. Raunar se sastoji od sklopovkse opreme, njegovog fizikog dijela iprogramske podrke, koja predstavlja uputstva fizikom dijelu kako da izvripostavljeni zadatak. Za ispravan rad neophodno je da su ispravna oba, odnosnosklopovski i programski dio. Kako bi se postigao eljeni kvalitet prije nego seprogramska rjeenja puste u eksploataciju, vre se zahtjevna testiranja sa ciljemuklanjanja to je mogue vie greaka.

    Testiranje programske podrke je proces traenja greaka. U njemu suobuhvaene sve aktivnosti potrebne za vrednovanje sposobnosti programa da izvipred njim postavljeni zadatak, kao i za tumaenje dobijenih rezultata. Programskapodrka nije poput drugih fizikih sistema koji za date ulazne veliine generiuodgovarajue izlazne veliine. Razlika je u nainu u kojem dolazi do pojave kvara.Kod veine fizikih sistema do kvara dolazi zbog odreenog i najee nerazboritogskupa stanja koja u sistemu mogu nastupiti usled spoljanjeg uticaja. Do pojavegreaka u programskoj podrci dolazi zbog mnogo bizarnih razloga. Detektovatisve razliite modove kvara kod programske podrke je opte neizvodljivo.

    Testiranje softvera

    Testiranje softvera (ili samo testiranje) je bio prvi softverski alat za osiguranjekvaliteta softvera koji se primjenjivao za kontrolu softverskih produkata prijenjihove isporuke ili instalacije kod klijenta. Na poetku, testiranje je biloogranieno na zavrnu fazu razvoja softvera. Kasnije, zbog vanosti ranijedetekcije softverskih defekata, a i da bi se ispunili koncepti osiguranja kvalitetasoftvera, SQA profesionalci su inicirali proirenje testiranja i na testiranje uprocesu kodiranja, to je dovelo do testiranja softverskih modula (unit testing) ikompletnog integracionog testiranja.

    Testiranje softvera je formalni proces koji se izvodi sa specifinim timom zatestiranje kojim se ispituju softverske jedinice ili cjelokupni softverski paketiizvravanjem programa na kompjuteru. Svi povezani testovi se izvravaju uskladu sa odobrenim test procedurama na odobrenim test sluajevima.

    Rijei i fraze u definiciji omoguavaju nam da poredimo glavne karakteristiketestiranja softvera sa d rugim alatima ivotnog ciklusa SQA:

    eljko Peki Stranica 3

  • 8/14/2019 Testiranje Softvera__radna verzija__

    4/23

    Testiranje softvera

    Formalni proces Planovi testiranja softvera su dijelovi razvoja projekta i planakvaliteta, sa unaprijed danim vremenskim rasporedom i aktivnostima postignutimdogovorom izmeu klijenta i razvojnih inenjera.Drugim rijeima, ad hocispitivanje softvera od strane kolega ili regularne provjereod strane tim lidera ne sainjavaju testiranje softvera.Specijalizirani tim za testiranje Nezavisni tim ili eksterni konsultanti koji suspecijalizirani u testiranju izvravaju testiranje uglavnom u namjeri da eliminirajupristranost i da garantiraju efektivno profesionalno testiranje. Generalno jeprihvaeno da testovi koji se izvravaju od strane developera koji su i pisalisoftverski kod, vode do siromanih rezultata jer je tako teko otkriti greke, jer seradi o grekama, koje sami developer nisu bili u mogunosti identifikovati ranije.Jo uvijek se testiranje, posebno testiranje programskih modula (unit) nastavljajuda izvravaju od strane developera u mnogim organizacijama.Izvravanje programa Bilo koja forma aktivnosti osiguranja kvalitetasoftvera koja ne ukljuuje izvravanje softvera, kao npr. inspekcije koda, ne mogu

    se smatrati testom.Odobrene test procedure Procesi testiranja se izvravaju u skladu sa testnimplanom i procedurama testiranja koje su odobrene i prilagoene od stranesoftverske kompanije i u skladu sa SQA procedurama.Odobreni test sluajevi Sluajevi testiranja (test cases) koji se ispituju se upotpunosti definiraju sa testnim planom. Izostavljanje ili dodavanje se ne oekujetokom procesa testiranja.

    Testiranje je aktivnost izvedena radi evaluacije kvaliteta proizvodnje i njegovogpoboljanja, putem identifikovanja defekata i problema. Ono nije aktivnost kojapoinje samo nakon kompletiranja faze kodiranja. Softversko testiranje se danas

    vidi kao aktivnost koja obuhvata cio proces razvoja i odravanja i predstavljavaan dio kompletne konstrukcije softvera. Planiranje testiranja treba da pone saranom fazom requirement procesa, i test planovi i procedure moraju bitisistematski i kontinualno razvijani i po potrebi redifinisani. Pravi stav premakvalitetu je prevencija, mnogo je bolje izbjei probleme nego ih ispravljati.

    Testiranje softvera i otkrivanje greaka

    Posebna panja danas se posveuje aktivnosti otkrivanja greaka. Ovo je bitnarazlika u odnosu na shvatanje da je vano potvrditi da program ili sistem radi. Ovadefinicija testiranja softvera je napisana u knjizi Glenford Majers "Umjetnosttestiranja softvera". Ovakvu definiciju je dao iz razloga to je tvrdio da je softverjedan od najkompleksnijih proizvoda ljudskog umnog rada. Nemogue je dokazatida je softver bez greke. A takoe je nemogue povinovati se prostom imperativui nai sve greke.

    eljko Peki Stranica 4

  • 8/14/2019 Testiranje Softvera__radna verzija__

    5/23

    Testiranje softvera

    Zato testiranje?

    Zato to su veliki gubici kompanija koje razvijaju softver upravo zbog velikog brojadefekata u isporuenom softveru. Prvenstveni zadatak test inenjera je otkrivanjeproblema u softveru sa ciljem da se oni otklone prije predaje softverskog proizvodakupcu.

    Od test inenjera se zahteva da otkrije to je mogue vie problema i to to vieonih, vrlo ozbiljnih ije posledice mogu biti katastrofalne sa materijalnog ibezbjednosnog aspekta. Zato je sa svih aspekata potrebno da se proces testiranjasoftvera uini to efikasnijim i uz to manje trokove ukoliko je to mogue.

    Testiranje softvera je proces verifikacije programa ili sistema sa ciljem otkrivanja i

    ispravljanja greaka i predstavlja integralni dio razvoja softvera. Primenjuje se usvakoj fazi razvojnog ciklusa,a obuhvata vie od 50% vremena potrebnog zarazvoj softvera.

    Vrijeme za testiranje?

    Ukoliko se uspostavi stroiji proces obezbijeenja kvaliteta softvera u pogleduefikasne prevencije i detekcije greaka, utoliko mijenjamo opte miljenje o tomekako se obezbjeuje visok kvalitet softverskog proizvoda. Drugi problem je taj, daskoro nikad nema dovoljno vremena za testiranje softvera. Zato treba damijenjamo odnos prema aktivnosti testiranja softvera i vremenu koje je planiranoza testiranje, tako to emo ga efikasnije utroiti u ranim fazama razvoja softvera.Potrebno je misliti o testiranju softvera ve prvog dana nakon poetka projekta, ane kao to je uobiajeno da se aktivnost testiranja softvera planira na krajurazvoja softvera.

    Otklanjanje greaka

    Pristup testiranju softvera na bazi otklanjanja greaka je takoe proces koji jepodloan grekama. Tester softver mora da identifikuje i proprati uoen problemdo mjesta nastanka (izvora) greke u softveru. Za otklanjanje greaka u softveruse moraju istraiti sve prethodne verzije i dokumentacija o aktivnostima u svimprethodnim fazama u razvoju softvera, ukoliko su raspoloivi. Cilj da se pokae dasoftver nema greaka, kroz otkrivanje i otklanjanje greaka, je loija od strategijeda se izvri analiza uzroka nastanka greaka, pa tek onda izvri uklanjanjegreaka.

    eljko Peki Stranica 5

  • 8/14/2019 Testiranje Softvera__radna verzija__

    6/23

    Testiranje softvera

    Trokovi otklanjanja greaka

    Trokovi otklanjanja uoenih greaka, umjesto sprijeavanja njihovog nastanka, suveliki i prouzrokuju veliki gubitak u poslovanju i nezadovoljstvo kupca zbog

    greaka u softveru. Prije nego to se eka zavretak faze implementacijekomponente softvera, pa tek onda testiranje komponente u clju otkrivanja iotklanjanja greaka u njjima, a koje su nastale u ranijim fazama procesa razvoja,potrebno je preventivno djelovati na nastanak tih greaka, kako bi se izbjeglakanjenja i uveali trokovi njihovog otklanjanja. Upravo je to cilj sprovoenjaaktivnosti prevencije nastanka greaka. U poslednje vrijeme je razvijen veliki brojmetoda u cilju sprijeavanja nastanka greaka u softveru, metod dokazivanjakorektnosti sofrvera, strategija projektovanja po Six Sigma i druge.

    Kada prestati testirati?Testiranje se praktino moe izvoditi beskrajno. Nikad se ne moe sa sigurnourei da su otkriveni i uklonjeni svi mogui defekti. Ali u jednom trenutku trebaprestati testirati. Pitanje je kada to uiniti? Realno posmatrano, testiranje jetrgovina izmeu cijene kotanja, vremena i kvaliteta. Stoga se, na nesreu,najee koristi pristup da se testiranje prekida kad god je jedan od resursa(vrijeme, novac ili broj testova) prekoraen. Bolji je pristup da se definie prekidtestiranja, kada je pouzdanost u zahtjevanim okvirima ili kad su dobici od daljnjegtestiranja manji od cijene testiranja. Ovo e obino zahtijevati upotrebu pouzdanihmodela da bi se vrednovala predviena pozdanost testirane programske podrke.Svaki proces vrednovanja zahtijeva ponavljanje izvoenja sledeih ciklusa:prikupljanja podataka koji dovode do greke, modeliranja i predvianje. Ovametoda nee biti najbolja ukoliko je rije o jako zavisnim sistemima i to zato, toje kod njih potrebno mnogo vremena i truda da bi se akumulirali stvarni podacikoji dovode do pojave greke.

    eljko Peki Stranica 6

  • 8/14/2019 Testiranje Softvera__radna verzija__

    7/23

    Testiranje softvera

    Tehnike softverskog testiranja

    Tehnike testiranja odnose se na razliite metode ispitivanja pojedine funkcijeraunarskog programa,sistema ili softverskog proizvoda. Svaki tip testiranja imasopstvenu tehniku testiranja,a neke tehnike kombinuju funkcije oba tipa. Vanostsoftverskog testiranja i njegovog uticaja na softver ne moe biti podcijenjena.Softversko testiranje je osnovna komponenta osiguranja softverskog kvaliteta ipredstavlja pregled specifikacija,dizajna i kodiranja. Vea vidljivost softverskihsistema i trokovi povezani sa softverskim neuspehom su motivirajui faktori zanapredno planiranje, putem testiranja. Veoma je neugodno za softverskuoganizaciju kada utroi vie od 40% svog rada na testiranje..

    Osnove softverskog testiranja

    Tokom testiranja softversko inenjerstvo izrauje seriju test sluajeva koji sekoriste rip apart (izdvajanje posebnih delova) softvera koji se proizvodi.Softverski inenjeri su obino stvaraoci koji poznaju unaprijed predviene konceptetestiranja i bave se pronalaenjem i ispravljanjem greaka kada one buduidentifikovane.

    Dizajn test sluaja

    Izrada dizajna softverskog testiranja moe biti izazovan proces. Softverski

    inenjeri testiranje esto vide kao zakanjelu misao (afterthought), meutim,prilikom izrade pravog test sluaja jo uvek nisu sigurni u njegovu kompletnost.Cilj testiranja je u pronalaenju najvie moguih greaka uz minimalni utoakvremena i napora za to. Razvijen je veliki broj metoda dizajna test sluajeva kojinude developer-u sistematian pristup testiranja. Metode nude pristup koji moeobezbijediti kompletnu analizu i ponuditi najvie mogunosti za otkrivanje greakau sofveru.

    Test protoka informacija

    Postoje dvije vrste tipa ulaznih koje se uzimaju pri testiranju protoka informacija Softverska konfiguracija i Test konfiguracije.

    Testiranja se obavljaju i svi rezultati testa se porede sa oekivanimrezultatima.Kada je pogrean podatak identifikovan, greka je podrazumijevana izapoinje se debugging. Postupak debugging-a (ispravljanja greke) je nepredvidivelement procesa testiranja. Identifikovanje i ispravak greke koja ukazuje na

    eljko Peki Stranica 7

  • 8/14/2019 Testiranje Softvera__radna verzija__

    8/23

    Testiranje softvera

    odstupanje od 0,01% izmeu stvarnih i oekivanih rezultata, moe trajati satima,danima ili mjesecima.

    Ciljevi softverskog testiranja

    Pravila koja deluju na cilj testiranja su: Testiranje je proces izvravanja programa, sa ciljem pronalaenja greaka Dobar test sluaj e imati dobre anse u pronalaenju neotkrivene greke Uspjean test sluaj otkriva novu greku

    Softverska konfiguracija Test konfiguracije

    Tip testiranja se bavi testiranjem cjelokupnog softvera, a tehnike testiranja se

    bave odreenim delovima softvera koje treba testirati. Drugim rijeima,mitestiranjem svake funkcije softvera moemo provjeriti da li je softver operativan, ilimoemo testirati interne komponente softvera kako bi provjerili njegovu internuposlovnost prema specifikaciji softvera. Sa druge strane, tehnike testiranjaobuhvataju niz metoda i naina koji se primjenjuju, kao i prorauna za testiranjeodreene funkcije nekog softvera (ponekad se testira interfejs, ponekad testiramosegmente, ponekad petlje i sl.)

    eljko Peki Stranica 8

  • 8/14/2019 Testiranje Softvera__radna verzija__

    9/23

    Testiranje softvera

    Vrste softverskog testiranja

    Vrste pristupa za identifikovanje greaka u softveru:

    Statiko Dinamiko

    Postoje razliite vrste pristupa testiranja (testiranje raunarskogprograma,testiranje sistema ili testiranje softverskog proizvoda). Dvije osnovnevrste pristupa suBlack box iWhite box testiranje. U novije vrijeme razvilesu seGrey box testiranje ili hibridno testiranje (ponekad nazvano kao staklena

    kutija glass box) , koje objedinjuje funkcije obije vrste pristupa testiranja.Testovi su osmiljeni i fokusirani na take gledita kupaca korisnika. Testerikombinacijom oba pristupa utvruju ispravnost i mogunost novogimplementiranja na osnovu korisnikih elja.

    Strukturalno testiranje "White-box"

    Bijela kutija (White Box) je model za sistem o kome sve znamo, tj. ije elemente,

    strukturu i ponaanje poznajemo.

    Ovo testiranje provjerava i analizira izvorni kod i zahtijeva dobro poznavanjeprogramiranja, odgovarajueg programskog jezika, kao i dizajna konkretnogsoftverskog proizvoda. Plan testiranja se odreuje na osnovu elemenataimplementacije softvera, kao to su programski jezik, logika i stilovi. Testovi seizvode na osnovu strukture programa. Kod ove metode postoji mogunost provjereskoro cjelokupnog koda, na primjer provjerom da li se svaka linija koda izvrava

    eljko Peki Stranica 9

  • 8/14/2019 Testiranje Softvera__radna verzija__

    10/23

    Testiranje softvera

    barem jednom, provjerom svih funkcija ili provjerom svih moguih kombinacijarazliitih programskih naredbi.To je objekat kod kojega su poznati zakoni ponaanja i procesa u njemu kaodinamikom sistemu, i na osnovu toga, saznata njegova funkcija i struktura.Specifinim testovima moe se provjeravati postojanje beskonanih petlji ili koda

    koji se nikada ne izvrava. Kodna pokrivenost je navedena u 6 sledeih koraka:

    Segment pokrivenost svaki segment koda u B/Wkontroli strukture seizvrava makar jednom

    Podruna rasprostranjenost ili vorno testiranje svaki ogranak ukodu se koristi u jednom moguem smjeru barem jednom

    Sloeno stanje rasprostranjenosti kada postoji vie uslova, mora setestirati ne samo svaki smer, ve i sve mogue kombinacije uslova, to seobino obavlja pomou kombinacijske tabele (Truth Table)

    Osnovni put testiranja svaka nezavisna staza kroz kod koristi prethodno

    definisan niz Testiranje toka podataka u ovom pristupu, skup srednjih staza kroz kod

    definie praenje specifinih promjenljivih kroz svaki mogui proraun.Praenje se zasniva na svakom odabranom pojedinanom dijelu koda. Iakoove staze smatraju nezavisnim, zavisnosti izmeu viestrukih staza zapravonisu testirane za ovaj pristup. DFT (engl. Data Flow Testing) tei da odravazavisnosti, ali to je uglavnom kroz manipulaciju sekvenci podataka. Ovajpristup prikazuje skrivene bagove i koristi ih kao promjenljive, deklarie ih-ali ih ne koristi.

    Put testiranja put testiranja definie i pokriva sve mogue puteve krozkod. Ovo testiranja su vrlo teka i dugotrajana.

    Testiranje petlje ove strategije se odnose na testiranju jedne petlje,grupnih petlji i ispletenih petlji. Zavisnost petlji je prilino jednostavnotestirati, osim ako postoji meu petlja ili kod sadri B/W petlju.

    U White box testingu, koristi se kontrola strukture proceduralnog dizajna zadobijanje test sluajeva. Korienjem White box testing metoda jedan tester moeizvui probne sluajeve koji:

    Garantuju da sve nezavisne staze u modulu budu istestirane barem jednom. Izvravaju sve logike odluke o njihovoj istinitosti ili lanoj vrijednosti Izvlae sve petlje na sopstvenim granicama i unutar svojih dozvoljenihoperativnih granica. Upotrebljava unutranje strukture podataka kako bi obezbijedio njihovu

    valjanost.

    eljko Peki Stranica 10

  • 8/14/2019 Testiranje Softvera__radna verzija__

    11/23

    Testiranje softvera

    Testiranje bijele kutije (staklene kutije)

    Ovu vrstu testiranja moe da obavlja ili programer koji je napisao program ili neko

    drugi kome je specijalnost testiranje softvera. Testiranje se naziva bela kutijazato to je onom ko testira poznat algoritam ili programski kod.

    Posmatrajmo sledei primer programa napisanog u pseudokodu:ifpodatak < 100 then

    print(Loa ocena)else

    ifpodatak

  • 8/14/2019 Testiranje Softvera__radna verzija__

    12/23

    Testiranje softvera

    Funkcionalno testiranje

    Analizira se samo izvravanje specificiranih funkcija i vri se provjera ulaznih iizlaznihpodataka. Tanost izlaznih podataka provjerava se na osnovu specifikacijezahtjeva za softver. U ovim testovima se ne vri analiza izvornog koda. Problemfunkcionalnog testiranja moe da se pojavi u sluaju dvosmislenih zahtjeva inemogunosti opisivanja svih naina korienja softvera. Skoro 30% svih greakau kodu posljedica su problema nepotpunih ili neodreenih specifikacija.

    Metoda crne kutije "Black-box"

    Sinonimi za black box ukljuuju: ponaanje, funckionalnost, neprozirnost i

    zatvorenost.

    Testiranjem se pokuavaju pronai greke u sledeim kategorijama: Neispravna ili nepotpuna funkcija Greka interfejsa Greka u strukturi podataka ili u pristupu spoljnoj bazi podataka Greka performanse Greka inicijalizacije i greka izvravanja

    Metoda crne kutije(Black Box Method) se esto upotrebljava u raznim strukama

    kad se eli saznati ponaanje nekoga sistema, jer ona slijedi osnovna podeavanjasistemskog pristupa. To je model za sistem iju unutranjost ne poznajemo ili uiju unutranjost ne moemo ili ne elimo ui. O svojstvima sistema zakljuujemona osnovu posmatranja ulaza i izlaza.

    Primenom metode crne kutije izrauje se skup test sluajeva koji ispunjavajuzahtjeve:

    Test sluaja koji smanjuju broj test sluaja na mogunost razumnogtestiranja

    Test sluaja koji e nam prikazati prisutnost ili odsutnost klase greaka

    Crnu kutiju predstavlja svaki neistraeni objekat ili pojava, ije ponaanje seistrauje kontrolisanim djelovanjem na taj objekat i prouavanjem reakcijaobjekata na ta djelovanja. Pod njom se podrazumijeva onaj objekat ili pojava kojase predstavlja na dinamiki sistem, odnosno sistem koji pod spoljnim uslovimamijenja svoja stanja, ali se ne raspoloe informacijama o procesu u crnoj kutiji,nepoznata je zakonitost ponaanja pojave. Najkrae, to je bilo koji objekat okojem se sudi na osnovu spoljnjih manifestacija bez poznavanja strukture objekta.

    eljko Peki Stranica 12

  • 8/14/2019 Testiranje Softvera__radna verzija__

    13/23

    Testiranje softvera

    Faze metode crne kutije su: Definisanje sistema Definisanje sistema kao crne kutije Odreivanje ulaza i izlaza Raslanivanje sistema Istraivanje ponaanja elemenata pomou neposredne primjene metode crne

    kutije Definisanje modela sistema Eksperimentisanje ili utvrivanje svojstva sistema pomou modela Definisanje rezultata.

    Definisanje sistema, se mora izvravati na osnovu postavljene svhe i ciljaistraivanja. Svrha i cilj istraivanja odreuju to e se smatrati karakteristikamasistema, a to okolinom sistema. Postoje sistemi koje je relativno jednostavno

    definisati(jedan ovjek, jedna porodica, jedno preduzee i sl.), i oni koje je teedefinisati (sistemi informisanja, sistemi obrazovanja, turistiki sistemi i sl.).

    Definisanje crne kutije. Odreivanjem elemenata i granicama sistema odreenoje i sve to spada u crnu kutiju. Sledei je problem definisanje uloge i funkcijesistema.

    Definisanje ulaza i izlaza. Ulaz u sistem predstavlja uticaj okoline na sistem.Kod metode crne kutije bitan je samo onaj ulaz u sistemu koji ima nekog odrazana izabrane reprezentantne funkcije (moe biti neki fenomen, agens ili raunskaveliina, koja dobra odraava funkciju i kvlaitet funkcionisanja sistema, a moe seili izmjeriti ili izraunati). Izlaz iz sistema predstavlja uticaj sistema na okolinu. Kodmetode crne kutije bitan je samo onaj izlaz koji ima nekog odraza nareprezentantne funkcije sistema. Ulazi i izlazi iz sistema mogu biti najrazliitijeprirode, ali je bitno da se njihove vrste, veliine i intenzitet mogu odrediti iustanoviti uticajem njihovih promjena na reprezentantne funkcije.

    Raslanivanje sistema, na podsisteme i elemente mora se vriti vrlo smiljeno ipostepeno i ono mora biti u punom smislu heuristiki postupak. Nespretnimraslanivanjem sistema moe se i relativno jednostavan problem uiniti nerjeivim.

    Istraivanje ponaanja elemenata i procesa. Nakon raslanjivanja sloenogdinamikog sistema i njegove razrade u obliku objektograma (moe biti dobraosnova za definisanje matematikog modela) i funkciograma (moe biti dobraosnova za utvrivanje vremenskih odnosa u sistemu) prelazi se na primjenumetode crne kutije za svaki proces i element. Imamo dvije vrste procesa usistemima, deterministiki (potpuno odreen) i stohastiki (na osnovu poznavanjavrste i veliine ulaza moe samo sa odreenom vjerovatnoom pretpostaviti vrsta ikoliina izlaza).

    eljko Peki Stranica 13

  • 8/14/2019 Testiranje Softvera__radna verzija__

    14/23

    Testiranje softvera

    Definisanje modela sistema. Da bi se mogao postaviti matematiki modeldinamikog sistema potrebno je uz pomo metode crne kutije definisati:

    Sve operatore transformacija svih procesa u sistemu Matematiki opisati sve veze u sistemu Istraiti vremenske odnose u sistemu.

    Eksperimentisanje ili utvrivanje svojstva sistema pomou modela. Nakonizrade matematikog modela vri se istraivanje svojstava sistemaeksperimentisanjem. Eksperimentisanje u matematikom smislu znai zadavanjeulaznih veliina i proraun izlaznih veliina pomou sistema jednaina. Sa njimmoemo da mijenjamo ulazne veliine, strukturu sistema i operatoretransformacija elemenata.

    Definisanje rezultata. Imamo dvije vrsta definisanja rezultata, analitikim i

    simulacijskim modelom. Analitikim modelom se sastavljaju od skupamatematikih jednaina koje se dobijaju matematikim izvoenjem. Konanirezultati dobiju se uvrtavanjem poetnih veliina u sistem jednaina.Simulacijskim modelom raunari simuliraju, tj. Oponaaju tokove procesa. Onizahtijevaju mnogo vie raunskih operacija od analitikih modela i njihov razvoj jevezan uz pojavu i mogunost raunara.

    Prednosti Black box testinga

    Testiranje moe biti ne tehniko Ovo testiranje e najverovatnije pronai one bagove koje je korisnik

    pronaao Testiranje pomae u identifikovanju nejasnoa i protivrjenosti funkcionalnih

    specifikacija Test sluajevi mogu biti izraeni po zavretku funkcionalnih specifikacija.

    Iako je osnovni cilj metode crne kutije transformisati predmet prouavanja ubijelu kutiju, taj cilj nije mogue nikada apsolutno ostvariti, jer u bilo kojojbijeloj kutiji ostvaje uvijek neto neobjanjeno, nepoznato. To je posledica, nesamo ogranienog znanja i motivacije istraivaa, raspoloivog vremena, nego i

    same prirode predmeta prouavanja.

    Cilj svake sistemske analize treba biti da svaki sistem koji za nas na poetkupredstavlja crnu kutiju pretvorimo u bijelu kutiju.

    Nedostatci Black box testinga

    anse za ponavljanje testova koje je ve odradio programer

    eljko Peki Stranica 14

  • 8/14/2019 Testiranje Softvera__radna verzija__

    15/23

    Testiranje softvera

    Test input zauzima veliki dio prostora Teko je utvrditi sva mogua testiranja ulaza u ogranienom vremenu.

    Pisanje test sluaja je prilino sporo i teko anse za posjedovanje neidentifikovanih staza tokom testiranja

    Alati koji se koriste u Black box testingu

    Osnovni funkcionalni alati testiranja izvode rezultate testova crne kutije u oblikuskripte. Jednom izvedene, ove skripte mogu koristiti u buduem razvoju softvera,kao aplikacija koja verifikuje novu funkcionalnost, a da ne onemogui prethodnu.

    Testiranje crne kutije

    Testiranje crne kutije se tako naziva jer je programski kod ili algoritam nevidljivosobi koja vri tetsiranje. test se sprovodi tako to se programu (crnoj kutiji) dajurazliiti podaci i posmatra ponaanje algoritma. Da bi se postigao efekat testiranja,kod ove vrste testova se test podaci pripremaju pre izrade programa, imajui naumu samo programske zahteve date u psecifikaciji programa.

    Za ovu vrstu testa se obino planiraju tri vrste testnih podataka : Ispravni podaci Neispravni podaci

    Granine vrednosti podatakaZa predhodni primer, ispravni podaci bi bili recimo 34, 150, 250, neispravni recimoako umesto cifara damo slova, a graninim sluajevima se mogu smatrati podaci99,100,101,199,200,201,299,300 i 301.

    eljko Peki Stranica 15

  • 8/14/2019 Testiranje Softvera__radna verzija__

    16/23

    Testiranje softvera

    Ekvivalentno particionisanje

    Ekvivalentno particionisanje je metoda testiranja crne kutije koja dijeli ulaznisoftverski domen u klasu podataka od kojih se izrauju test sluajevi. Idealan test

    sluaja otkriva klasu greaka prije nego to je greka detektovana. Ekvivalentnostparticionisanja pokuava da identifikuje naznaenu klasu greaka u test sluaju.Dizajn test sluaja za ekvivalentnost particionisanja je zasnovano na planiranjuekvivalentnih vrijednosti unosa (inputa). Ekvivalentne vrijednosti prikazuju skupvaeih i nevaeih ulaznih uslova (input conditions) u sistemu.Ekvivalentna vrijednost moe da se odreuje na osnovu sledeeg:

    Ako je ulazni uslov (input conditions) specifian niz, jedna vaea i dvijenevaee ekvivalentne vrijednosti su definisane

    Ako ulazni uslov (input conditions) zahtijeva specifinu vrijednost, jednavaea i dvije nevaee ekvivalentne vrijednosti su definisane

    Ako je ulazni uslov (input conditions) lan specifinog niza, jedna vaea i

    jedna nevaea ekvivalentna vrijednost je definisana Ako je ulazni uslov (input conditions) Bulova, jedna vaea i jedna nevaea

    ekvivalentna vrijednost je definisana.

    Analiza granine vrijednosti

    Veoma mnogo greaka se pojavljuje u granicama ulaznog domena i iz tog razlogase koristi analiza granine vrijednosti. Analiza granine vrijednosti pripada dizajnu

    test sluaja koji upotpunjuje ekvivalentnost particionisanja. Analiza graninevrijednosti izrauje test sluaja i za domen izlaza takoe.Analiza granine vrijednosti se odreuje na osnovu sledeeg:

    Ako ulazni uslov specfikuje stanje oivieno u rasponu od vrednosti A do B,dobijamo test sluajeve sa vrednostima A i B, samo iznad i ispod A i B

    eljko Peki Stranica 16

  • 8/14/2019 Testiranje Softvera__radna verzija__

    17/23

    Testiranje softvera

    Ako ulaz specifira stanje razliitih vrijednosti, test sluajevi treba da buduizraeni za vjebu sa minimalnim i maksimalnim brojkama

    Ove dvije stavke se primenjuju i na izlazne uslove (output conditions) Ako je softver interni, ije su strukture podataka u propisanim granicama,

    izrauje se test sluaja za vjebu strukture podataka u granicama.

    Cause Effect Graphing Techniques

    Cause Effect Graphing Techniques je pristup dizajna test sluaja koji nudi jedankoncizan opis logikih uslova i pridruenih akcija.Pristup ima etiri faze:

    Cause (ulazni uslov) i Effect (radnja) navedeni su za modul i identifikacija jedodjeljena za svaki

    Cause Effect graph je izraen Grafikon je izmijenio odluku u tabeli Tabela pravila odluke modifikovanja test sluajeva

    Pojednostavljena verzija Cause Effect graph simbola je prikazana ispod. U levojkoloni figura daje razliita logika udruenja meu causes i c i effect i e. Desnakolona pokazuje potencijalna prinudna (constraining) udruenja koja bi se moglaprimijeniti bilo na cause ili na effect.

    eljko Peki Stranica 17

  • 8/14/2019 Testiranje Softvera__radna verzija__

    18/23

    Testiranje softvera

    Testiranje putem grafikona

    Softversko testiranje zapoinje stvaranjem grafikona vanih objekata i njihovihveza i onda osmiljavanje niza testova koji e pokrivati grafikon, tako da svakiobjekat i veza budu iscrtan, a greka nepokrivena.

    Error Guessing

    Error Guessing dolazi sa iskustvom u tehnologiji i u projektu. Greka Guessing jeumijee gdje greke mogu biti sakrivene. Ne postoje specijalizovani alati i tehnikaza to, ali moe se pisati test sluaja u zavisnosti od situacije, da li prilikom itanjafunkcionalnog dokumenta ili prilikom testiranja pronai greku koja nije biladokumentovana.

    eljko Peki Stranica 18

  • 8/14/2019 Testiranje Softvera__radna verzija__

    19/23

    Testiranje softvera

    Testiranje performansi

    Testiranje performansi obuhvata pronalaenje i otklanjanje problema kojidegradiraju performanse softvera.

    Ispitivanje performansi najee obuhvata: iskorienje procesorskih resursa, protok podataka i vrijeme odziva.

    Tipini resursi koji se proveravaju su: propusni opseg, brzina procesora, iskorienje memorije, zauzetost prostora na disku.

    U real time sistemima i ugraenim sistemima, softver koji prua potrebne funkcijeponekad nije prihvatljiv u skladu sa performansama. Testiranje performansidizajnirano je za izvoenje run-time testa perfmormansi u softverskom okruenjujednog integrisanog sistema. Testiranje performansi se pojavljuje u svimprocesima testiranja. Na primjer, metoda White box testiranja pojedinanogmodula moe se ponaati kao test performanse modula. Izvoenje testaperformansi esto je povezano sa stress testom softvera i hardvera i

    proveravanjem i mjerenjem iskoritenosti resursa (na primjer ciklus radaprocesora) u extremnim sluajevima. Stres testovi su najkorisniji kada se sistemugrauje u vea okruenja, ili kada se prvi put implementira.

    Web sajt, kao dio velikog sistema koji zahtijeva vie pristupa i obrade podataka,sadri ranjive vorove koji moraju biti testirani prije implementacije. Naalost,veina stres testiranja mogu samo da simuliraju razliite vrste optereenja natake u sistemu, ali nemogu testirati cijelu mreu. Na sreu, jednom kada se uradistres testiranje i faktori optereenja budu uspjeno prevazieni, potreban ponovnistres testing se vri samo u sluaju kada doe do veih promjena. Mana testiranjaperformansi je ta to potvruje validnost sistema u oteanim uslovima obrade

    podataka,ali ne garantuje za njihovu tanost i ispravnost.

    eljko Peki Stranica 19

  • 8/14/2019 Testiranje Softvera__radna verzija__

    20/23

    Testiranje softvera

    Regresivno testiranje

    Regresivno testiranje potvruje da implementacija promena ne utie negativno narad ostalih funkcija. Regresivno testiranje se primjenjuje u svim fazama kada jepromjena napravljena.

    Osiguranje softverskog testiranja

    Postoje organizacije odravanja kvaliteta softvera, koje pruaju razliite takegledita, koriste razliite set testove, vre kompletan test softverskog okruenjaTe organizacije uestvuju u provjeri standarda u navedenim specifikacijama, uprovjeri kodiranja i dokumentovanja softvera. One provjeravaju dokumentovanjeoriginalnog zahtjeva, verifikuju implementaciju potrebnih funkcija i prosljeujuproizvod do krajnjeg korisnika.

    eljko Peki Stranica 20

  • 8/14/2019 Testiranje Softvera__radna verzija__

    21/23

    Testiranje softvera

    Poboljanja procesa testiranja

    Poboljanja procesa testiranja je konstantan proces zajedno sa svim drugimelementima razvoja softvera. Angauju se sve vei resursi, kako velikih, tako imalih kompanija u proces testiranja i njegovo unaprijeenje.

    Postoji vie aspekata koji doprinose poboljanju procesa testiranja: Obuka kadrova za proces testiranja, Automatizacija procesa testiranja, Razvoj novih modela testiranja, Integracije mjerenja parametara efikanosti i efektivnosti procesa testiranja, Analize slabih i jakih strana postojeeg procesa testiranja

    Identifikacije rizika i njihovih posljedica na uspjeh procesa razvoja.

    Instalaciono testiranje

    Instalaciono testiranje najvie je testirano u podruju testiranja. Ovaj tiptestiranja je predvien kako bi se osiguralo da su sve mogunosti i opcije pravilnoinstalirane. Takoe je predvieno da provjeri da li su sve komponente aplikacija

    pravilno instalirane. Kada je u pitanju vrlo mali sistem instalacija se moe postavitidirektno, dok kod veih sistema postoji nekoliko naina za instalaciju(implementiranje) sistema. Ako se eli zamijeniti postojei sistem, instalacijanovog sistema se vri u paralelnom modu. To znai da e oba sistema raditiistovremeno u jednom periodu.Programeri svakodnevno prate rad korisnika na ovakvom sistemu i kad se steknuuslovi (komforan i olakan rad korisnika novog sistema), stari sistem se uninstaliraili brie. Mnoge kompanije postavljaju nekoliko servera (multi server) na jedansistem, koji su nezavisni jedan od drugog. Jedan dobar nain za instaliranjesistema je probna instalacija na jednom odabranom serveru, posle provjere duinetrajanja, instalirati ga na drugom serveru...

    eljko Peki Stranica 21

  • 8/14/2019 Testiranje Softvera__radna verzija__

    22/23

    Testiranje softvera

    Instalaciono testiranje treba da vodi brigu o sledeem: Za provjeru instaliranog produkta provjeriti zavisnost softvera/zakrpe usluga

    SP3 Proizvod bi trebalo provjeriti verziju istog proizvoda na ciljanoj maini,

    prethodna verzija ne bi trebala biti postavljena prije nove verzije Installer bi trebao da da podrazumijevani put instalacije,na primjer:

    C:\Program Files\. Installer treba da dopusti korisniku instalaciju na drugu lokaciju od

    podrazumijevane Provjeriti da li se proizvod moe instalirati preko mree Trebalo bi se automatski pokrenuti CD kada se postavi u DVD ROM Installer treba da dopusti opciju REMOVE/REPAIR Pri deinstaliranju provjeriti da li su svi kljuevi registra, foldera, dll, preica,

    active X komponente uklonjene iz sistema

    Pokuati instaliranje softvera bez administrativne povlastice (login kao gost). Pokuati instaliranje na razliitom operativnom sistemu Pokuati instalaciju na slabijem raunaru koji ima manje memorije (non

    compliant), RAM, HDD

    Zakljuak

    Testiranje softvera je svaka aktivnost usmjerena na procjenu osobina ili

    sposobnosti programa i odreivanje onoga to vodi zahtijevanim rezultatima.Tekoe u razvoju programske podrke proizilaze iz sloenosti programskogrjeenja. Testiranje je vie od obinog debagiranja. Cilj testiranja nije samo uprovjeri, radi li program ispravno, nego i u procjeni kvalitetne sigurnosti, procjenepouzdanosti ili procjene performansi gotovih programskih rjeenja. Testiranje seizvodi u svim fazama ivotnog vijeka programa. Mogu se testirati gotovaprogramska rjeenja ili samo pojedini djelove.

    Tehnike koje se najee koriste kod testiranja su testiranje crnom kutijom,testiranje bijelom kutijom, testiranje stresa, testiranje izdrljivosti, kao i razniprogrami za testiranje performansi. Kako se zbog sloenosti gotovih programskih

    rjeenja nikad sa sigurnou ne moe kazati da su otkrivene i otklonjene svegreke unutar programske podrke, a samo testiranje predstavlja troak, pitanje jekad prestati sa testiranjem. Zato se moe zakljuiti da je testiranje programskepodrke trgovina izmeu raspoloivih novanih sredstava, vremena i eljenogkvaliteta.

    eljko Peki Stranica 22

  • 8/14/2019 Testiranje Softvera__radna verzija__

    23/23

    Testiranje softvera

    Literatura

    [1] Software Testing Guide Book - Fundamentals of Software Testing

    [2] The Importance of Software Testing - Compiled by JanErik Finlander

    [3] Software Engineering FIFTH EDITION Roger S. Pressman, Ph.D.

    [4] Software Testing: A Craftsmans Approach, second edition, P.C.Jorgenses

    [5] Test-Driven Development by Example, Addison-Wesley, K.Beck

    [6] Essential Software Testing A Use-Case Approach, Greg Fournier

    [7] Performance testing of software systemProceedings of the first international workshop onSoftware and performance, Vokolos, F.I.; Weyuker, E.J.

    [8] Software Testing Techniques Second edition, Beizer, B.

    eljko Peki Stranica 23