1 / 76

TESTING & IMPLEMENTASI SISTEM

TESTING & IMPLEMENTASI SISTEM. Pertemuan 4 “ Teknik-teknik pengujian perangkat lunak ” Diema HS,S. Kom. WHITEBOX TESTING. Definisi White Box Testing.

aderyn
Télécharger la présentation

TESTING & IMPLEMENTASI SISTEM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TESTING & IMPLEMENTASI SISTEM Pertemuan 4 “Teknik-teknikpengujianperangkatlunak” Diema HS,S. Kom

  2. WHITEBOX TESTING

  3. Definisi White Box Testing • Kadangdisebutjugaglass box testing atauclear box testing, adalahsuatumetodedisaintest case yang menggunakanstrukturkendalidaridisainprosedural. • Metodedisaintest caseinidapatmenjamin: • Semuajalur (path) yang independen / terpisahdapatditessetidaknyasekalites. • Semualogikakeputusandapatditesdenganjalur yang salahdanataujalur yang benar. • Semualoopdapatditesterhadapbatasannyadanikatanoperasionalnya. • Semuastruktur internal data dapatditesuntukmemastikanvaliditasnya.

  4. Cakupanpernyataan, cabangdanjalur(Cont.) • Cakupanpernyataan, cabangdanjaluradalahsuatuteknikwhite box testing yang menggunakanalurlogikadari program untukmembuattest cases. • Yang dimaksuddenganalurlogikaadalahcaradimanasuatubagiandari program tertentudieksekusisaatmenjalankan program.

  5. Cakupanpernyataan, cabangdanjalur(Cont.) • Alurlogikasuatu program dapatdirepresentasikandenganflow graph, yang akandibahaslebihlanjutpada sub babberikutnya (basis path testing). Sebagaicontohdapatdilihatpadagambardibawahini.

  6. Cakupanpernyataan, cabangdanjalur(Cont.) • Suatu flow graph terbentukdari: • Nodes (titik), mewakilipernyataan (atau sub program) yang akanditinjausaateksekusi program. • Edges (anakpanah), mewakilijaluralurlogika program untukmenghubungkansatupernyataan (atau sub program) dengan yang lainnya. • Branch nodes (titikcabang), titik-titik yang mempunyailebihdarisatuanakpanahkeluaran. • Branch edges (anakpanahcabang), anakpanah yang keluardarisuatucabang • Paths (jalur), jalur yang mungkinuntukbergerakdarisatutitikkelainnyasejalandengankeberadaanarahanakpanah.

  7. Cakupanpernyataan, cabangdanjalur • Eksekusisuatutest casemenyebabkan program untukmengeksekusipernyataan-pernyaantertentu, yang berkaitandenganjalurtertentu, sebagaimanatergambarpadaflow graph. • Cakupancabang, pernyataandanjalurdibentukdarieksekusijalur program yang berkaitandenganpeninjauantitik, anakpanah, danjalurdalamflow graph

  8. Cakupanpernyataan, cabangdanjalur • Cakupanpernyataanditentukandenganmenilaiproporsidaripernyataan-pernyataan yang ditinjauolehsekumpulantest cases yang ditentukan. • Cakupanpernyataan 100 % adalahbilatiappernyataanpada program ditinjausetidaknya minimal sekalites. • Cakupanpernyataanberkaitandengantinjauanterhadaptitik (node) padaflow graph. • Cakupan 100 % terjadibilamanasemuatitikdikunjungiolehjalur-jalur yang dilaluiolehtest cases

  9. Cakupanpernyataan Padacontohgambarflow graph diatasterdapat 10 titik. Misalsuatujalureksekusi program melewatititik-titik A, B, D, H, K. Berartiada 5 titikdari 10 titik yang dikunjungi, makacakupanpernyataansebesar 50 %. Karenasatutitikpadaflow graphdapatmerupakankelompokdaribeberapapernyataan, olehkarenaitutingkatcakupanpernyataan yang sebenarnyaberbedadengantingkatcakupantitik (nodes), tergantungdaricarapendefinisianflow graph

  10. Cakupancabang(Cont.) • Cakupancabangditentukandenganmenilaiproporsidaricabangkeputusan yang diujiolehsekumpulantest cases yang telahditentukan. • Cakupancabang 100 % adalahbilamanatiapcabangkeputusanpada program ditinjausetidaknya minimal sekalites. • Cakupancabangberkaitandenganpeninjauananakpanahcabang (branch edges) dariflow graph. • Cakupan 100 % adalahbilamanasemuaanakpanahcabangditinjauolehjalur-jalur yang dilaluiolehtest cases.

  11. Cakupancabang Berdasarkanpadacontohgambarflow graph diatas, terdapat 6 anakpanahcabang. Misalsuatujalureksekusi program melawatititik-titik A, B, D, H, K, makajalurtersebutmeninjau 2 dari 6 anakpanahcabang yang ada, jadicakupannyasebesar 33 %.

  12. Cakupanjalur(Cont.) • Cakupanjalurditentukandenganmenilaiproporsieksekusijalur program yang diujiolehsekumpulantest cases yang telahditentukan. • Cakupanjalur 100 % adalahbilamanatiapjalurpada program dikunjungisetidaknya minimal sekalites. • Cakupanjalurberkaitandenganpeninjauanjalursepanjangflow graph. • Cakupan 100 % adalahbilamanasemuajalurdilaluiolehtest cases.

  13. Cakupanjalur Berdasarkancontohflow graph diatas, terdapat 4 jalur. Bilasuatueksekusijalurpada program melaluititik-titik A, B, D, H, K, makaeksekusitersebutmeninjau 1 dari 4 jalur yang ada, jadicakupannyasebesar 25 %.

  14. Perbedaanantaracakupanpernyataan, cabangdanjalur (Cont.)

  15. Perbedaanantaracakupanpernyataan, cabangdanjalur (Cont.

  16. Perbedaanantaracakupanpernyataan, cabangdanjalur • Dari contoh, dapatdilihatbahwahanyadibutuhkan 2 jaluruntukmengunjungisemuaanakpanahcabang, dari 4 jalur yang adapadaflow graph. • Jadibilacakupanjalursebesar 100 %, makasecaraotomatiscakupancabangsebesar 100 % pula. Demikian pula bilacakupancabangsebesar 100 %, makasecaraotomatiscakupanpernyataansebesar 100 %.

  17. Disaincakupantes • Untukmendisaincakupandarites, perludiketahuitahap-tahapsebagaiberikut: • Menganalisasource codeuntukmembuatflow graph. • Mengidentifikasijalurtesuntukmencapaipemenuhantesberdasarkanpadaflow graph. • Mengevaluasikondisites yang akandicapaidalamtiaptes. • Memberikannilaimasukandankeluaranberdasarkanpadakondisi.

  18. Basis Path Testing

  19. Basis Path Testing • Merupakanteknikwhite box testing yang dikenalkanoleh Tom McCabe [MC76]. • Metodeidentifikasi yang berdasarkanpadajalur, strukturataukoneksi yang adadarisuatusisteminibiasadisebutjugasebagaibranch testing, karenacabang-cabangdarikodeataufungsilogikadiidentifikasidandites, ataudisebutjugasebagaicontrol-flow testing .

  20. Basis Path Testing • Basis pathhadirdalam 2 bentuk, yaitu: • Zero Path: Jalurpenghubung yang tidakpentingataujalurpintas yang adapadasuatusistem. • One Path: Jalurpenghubung yang pentingatauberupaprosespadasuatusistem. • Konseputamabasis path: • Tiapbasis pathharusdiidentifikasi, tidakbolehada yang terabaikan (setidaknyadites 1 kali). • Kombinasidanpermutasidarisuatubasis pathtidakperludites.

  21. Basis Path Testing • Notasi Flow Graph

  22. Basis Path Testing • Contoh 1 Do while records remain read record; 2 Calculate proses; 3 If record field 1 = 0 4 Then process record; 5 Store in buffer; Increment counter; 6 Else If record field 2 = 0 7Then reset counter; 8 Else process record; Store in file; 9Endif 10 Endif 11 Enddo End

  23. Basis Path Testing

  24. Cyclomatic Complexity • Adalahpengukuransoftware yang memberikanpengukurankuantitatifdarikompleksitaslogika program. • Padakonteksmetodebasis path testing , nilai yang dihitungbagicyclomatic complexitymenentukanjumlahjalur-jalur yang independendalamkumpulan basis suatu program danmemberikanjumlahtes minimal yang harusdilakukanuntukmemastikanbahwasemuapernyataantelahdieksekusisekurangnyasatu kali. • Jalurindependenadalahtiapjalurpada program yang memperlihatkan 1 kelompokbarudaripernyataanprosesataukondisibaru.

  25. Cyclomatic Complexity • Berdasarkanurutanalurnya, didapatkansuatukelompok basis flow graph (Contoh) • Jalur 1 : 1–11 • Jalur 2 : 1-2-3-4-5-10-1-11 • Jalur 3 : 1-2-3-6-7-9-10-1-11 • Jalur 4 : 1-2-3-6-8-9-10-1-11

  26. Cyclomatic Complexity • [Region / Complexity] V(G) = E (edges) – N (nodes) + 2 LihatFlow Graph (Contoh) V(G) = 11 – 9 + 2 = 4 • V(G) = P (predicate node) + 1 LihatFlow Graph (Contoh) V(G) = 3 + 1 = 4

  27. Cyclomatic Complexity • Tahapandalammembuattest casesdenganmenggunakancyclomatic complexity: • Gunakandisainataukodesebagaidasar, gambarlahflow graph • Berdasarkanflow graph, tentukancyclomatic complexity • Tentukankelompok basis darijalurindependensecara linier • Siapkantest cases yang akanmelakukaneksekusidaritiapjalurdalamkelompok basis

  28. Cyclomatic Complexity • Contoh Test Case (lihat flow graph contoh) • Test case jalur (Path) 1 • Nilai(record.eof) = input valid, dimana record.eof = true • Hasil yang diharapkan : Sistemkeluardari loop dan sub program. • Test case jalur (Path) 2 • Nilai(field 1) = input valid, dimana field 1 = 0 • Nilai(record.eof) = input valid, dimana record.eof = false • Nilai(counter) = Nilai(counter) + 1 • Hasil yang diharapkan : Sistemmelakukan [process record], [store in buffer] dan [increment counter].

  29. Cyclomatic Complexity • Test case jalur (Path) 3 • Nilai(field 2) = input valid, dimana field 2 = 0 • Nilai(record.eof) = input valid, dimana record.eof = false • Nilai(counter) = 0 • Hasil yang diharapkan : Sistemmelakukan [reset counter]. • Test case jalur (Path) 4 • Nilai(field 2) = input valid, dimana field 2 <> 0 • Nilai(record.eof) = input valid, dimana record.eof = false • Hasil yang diharapkan : Sistemmelakukan [process record] dan [store in file].

  30. Cyclomatic Complexity • Catatan : Beberapajalurmungkinhanyadapatdieksekusisebagaibagiandarites yang lain. • Direkomendasikan agar jangansampaikompleksitastiap unit / komponenterkecilsistemmelebihinilai 10 [V(G)]. Beberapapraktisimenggunakannilai rata-rata V(G) daritiap unit / komponennterkeciluntukmemberikanpenilaiankompleksitas

  31. Graph Matrix • Adalahmatrikberbentuksegiempatsamasisi, dimanajumlahbarisdankolomsamadenganjumlahnode, danidentifikasibarisdankolomsamadenganidentifikasinode, sertaisi data adalahkeberadaanpenghubungantarnode (edges). • Beberapaproperti yang dapatditambahkansebagaipembobotanpadakoneksiantarnodedidalamgraph matrix, sebagaiberikut: • Kemungkinanjalur (Edge) akandilalui / dieksekusi. • Waktuproses yang diharapkanpadajalurselamaproses transfer dilakukan. • Memori yang dibutuhkanselamaproses transfer dilakukanpadajalur. • Sumberdaya (resources) yang dibutuhkanselamaproses transfer dilakukanpadajalur.

  32. Graph Matrix

  33. Control Structure Testing • Control structure testingmeliputi: • Testing kondisi (Condition Testing) • Testing alur data (Data Flow Testing) • Testing loop (Loop Testing)

  34. Testing Kondisi (Condition Testing) • Suatumetodedisaintest case yang memeriksakondisilogika yang terdapatpadamodul program. • Berikutiniadalahbeberapadefinisi yang berkaitandengan testing kondisi: • Kondisisederhanaadalahvariabelbooleanatauekspresirelasional, yang mungkindiprosesdengansatu operator NOT (­). • Ekspresioperasionalberbentuk E1<operator-relasional>E2, dimana E1 dan E2 adalahekspresiaritmatikadan <operator-relasional> adalahsalahsatudari : < , ≤ , = , ≠ (pertidaksamaan), ≥ ,>. • Kondisikomplek (compound condition) tersusunolehduaataulebihkondisisederhana, operator boolean, danparentheses. • Operator boolean yang dapatdigunakandalamsuatukondisikomplekadalah OR (׀), AND (&) dan NOT (­). • Suatukondisitanpaekspresirelasionaldapatdireferensikansebagaisuatuekspresiboolean.

  35. Sedangkantipeelemen yang mungkinadadalamsuatukondisiadalah: • Operator boolean • Variabelboolean • Sepasangbooleanparentheses (sebagaimana yang terdapatpadakondisisederhanaataupunkomplek) • Operator relasional • Ekspresiaritmatika. • Jikasuatukondisitidakbenar, maka paling tidaksatukomponendarikondisitersebuttidakbenar.

  36. Tipeerrorpadakondisiadalahsebagaiberikut: • Kesalahan operator boolean • Kesalahanvariabelboolean • Kesalahanbooleanparentheses • Kesalahan operator relasional • Kesalahanekspresiaritmatika.

  37. Testing Kondisi (Condition Testing) • Metodeteskondisiberfokuspada testing tiapkondisidalam program. Strategiteskondisimempunyaiduakeuntunganyaitu: • Pengukurancakupankondisi yang ditesadalahsederhana. • Cakupankondisi program yang ditesmenyediakantuntunanuntukpembuatantestambahanbagi program. • Tujuanteskondisidisampinguntukmendeteksierrordarikondisi program jugauntukkesalahanlainnyadari program.

  38. Testing Kondisi (Condition Testing) • Merupakanstrategiteskondisi yang paling sederhana. Untukkondisikomplek C, cabangbenardansalahdari C dantiapkondisisederhanadalam C harusdieksekusisetidaknyasekali [MYE79]. • Sebagaicontohilustrasipenggunaan, diasumsikanterdapatpenggalankodeberikut: IF (X=1) AND (Y=1) AND (Z=1) then [Do Something] END IF • Bila testing pernyataankode program dapatdipuaskandengansekalites, yaitudenganmemberikannilai (X,Y,Z) = (1,1,1). Dan hasilkondisi yang diharapkanadalahtrue.

  39. Testing Kondisi (Condition Testing) • Namununtukbranch testingdibutuhkanduates, yaitu • Denganmemberikannilai (X, Y, Z) = (1,1,1), untukmengevaluasidengankondisibenar (true). • Dan denganmemberikannilai (X,Y,Z) = (2,1,1), sebagaiwakiluntukmengevaluasidengankondisisalah (false).

  40. Testing Kondisi (Condition Testing) • Membutuhkantigaatauempattes yang dilaksanakanuntuksuatuekspresirelasional. • Untuksuatuekspresirelasionaldalambentuk: E1<operator-relasional>E2 • tigatesdibutuhkannilai-nilai, agar E1 lebihbesar, samadengan, ataulebihkecildari E2 [HOW82]. Jika <operator-relasional> tidakbenardan E1dan E2benar, makatigatesinimenjamindeteksierror operator relasional. • Untukmendeteksikesalahanpada E1dan E2, suatutesterhadapnilai-nilai, agar E1lebihbesarataulebihkecildari E2, dimanaselisihdarinilai-nilaiinidiusahakansekecilmungkin.

  41. Testing Kondisi (Condition Testing) • Contoh: If (X + 1) > (Y – Z) then [Do Something] End if • Dimana E1diwakilioleh (X + 1) dan E2diwakilioleh (Y – Z). • Adatigates yang dilakukan, yaitu: • Tespertamadenganmewakilkan E1dan E2dengannilai 5 dan 2, yang didapatdarimasukan (X,Y,Z) = (4,5,3), agar E1 > E2. Dan hasilkondisi yang diharapkanadalahtrue. • Teskeduadenganmewakilkan E1dan E2dengannilai 2 dan 2, yang didapatdarimasukan (X,Y,Z) = (1,4,2), agar E1 = E2. Dan hasilkondisi yang diharapkanadalahfalse. • Tesketigadenganmewakilkan E1dan E2dengannilai 1 dan 2, yang didapatdarimasukan (X,Y,Z) = (0,4,2), agar E1 < E2. Dan hasilkondisi yang diharapkanadalahfalse.

  42. Testing Kondisi (Condition Testing) • Untuksuatuekspresibooleandengan n variabel, dibutuhkansemuakemungkinantes 2n (n>0). • Strategiinidapatmendeteksierrordari operator danvariabelbooleansertabooleanparenthesis, namuninihanyadipraktekkanjika n adalahkecil.

  43. Testing Kondisi (Condition Testing) • Contoh: IF X AND Y THEN [Do Something] END IF • Dimana X dan Y adalahvariabelboolean, makaakandilakukantessebanyak 22 = 4, yaitudenganmemberikannilai X dan Y {(t,f), (f,t), (f,f), (t,t)} denganhasilkondisi yang diharapkandari operator booleanAND {f,f,f,t} .

  44. Testing Kondisi (Condition Testing) • Untuksuatuekspresiboolean yang tunggal (suatuekspresibooleandimanatiapvariabelbooleanhanyaterjadisekali) dengan n variabelboolean (n > 0), kitadapatdenganmudahmembuatsuatukumpulantes yang kurangdari 2ntesdimanasekumpulantesinimenjamindeteksierror multiple operator booleandanjugaefektifuntukmendeteksierror yang lain.

  45. Testing Kondisi (Condition Testing) • Contoh: IF X = TRUE AND Y = TRUE THEN [Do Something] END IF • Maka domain testing tidakmembutuhkan 22 = 4 tes, namuncukup 2 tes, yaitu • Denganmemberikannilai (X,Y) = (t,t), untukevaluasikondisibenar (true). • Dan (X,Y) = (f,t), sebagaiwakildarisisakemungkinanmasukanuntukevaluasikondisisalah (false).

  46. Testing Kondisi (Condition Testing) • Teknikinimenjamindeteksierrordari operator cabangdanrelasionaldalamsuatukondisi yang adadimanasemuavariabelbooleandan operator relasional yang terdapatdidalamkondisiterjadihanyasekalidantidakadavariabel yang dipakaibersama. • StrategiBRO testingmenggunakanbatasankondisiuntuksuatukondisi C. Suatubatasankondisiuntuk C dengan n kondisisederhanadidefinisikansebagai (D1,D2,…,Dn), dimana Di (0 < i ≤ n) adalahsuatusimbol yang me-spesifikasi-kansuatubatasan yang adapadakondisisederhanakeipadasuatukondisi C.

  47. Testing Kondisi (Condition Testing) • Suatubatasankondisi D untukkondisi C telahdicakupdengansuatueksekusi C jika, selamaeksekusi C ini, hasildaritiapkondisisederhanapada C memuaskanbatasan yang dikorespondesikandalam D. • Untukvariabelboolean, B, kita me-spesifikasi-kansuatubatasanhasildari D yang menyatakanbahwa B bernilaitrue (t) ataufalse (f).samahalnya, untukekspresi relational, simbol <, =, > digunakanuntuk me-spesifikasi-kanbatasanhasildariekspresi.

  48. Testing Kondisi (Condition Testing) • Sebagaiilustrasidiberikancontoh-contohsebagaiberikut: • Contoh 1: Suatukondisi C1: B1 &B2 • Dimana B1dan B2adalahvariabelboolean. • Batasankondisi C1dalambentuk (D1, D2), dan D1dan D2adalah t atau f. • Nilai (t,f) adalahsuatubatasankondisi C1dandicakupolehtes yang membuatnilai B1menjaditruedannilai B2menjadifalse. • StrategiBRO testingmembutuhkansekumpulanbatasan {(t,t), (f,t), (t,f)} dicakupoleheksekusidari C1. • Jika C1tidakbenarterhadapsatuataulebiherror operator boolean, setidaknyasatudarisekumpulanbatasanakanmembuat C1salah.

  49. Testing Kondisi (Condition Testing) • Contoh 2: Suatukondisi C2 : B1 &(E3 = E4) • Dimana B1 adalahekspresiboolean, E3dan E4adalahekspresiaritmatika. • Batasankondisi C2dalambentuk (D1, D2 ), dan D1adalah t ataufdan D2 adalah >, =, <. • Bila C2 = C1, kecualikondisisederhanakeduapada C2adalahekspresi relational, dapatdibangunsuatukumpulanbatasanuntuk C2denganmemodifikasisekumpulanbatasan {(t,t), (f,t),(t,f)} yang didefinisikanuntuk C1. • Dimana t untuk (E3 = E4) melambangkan = dan f untuk (E3 = E4) melambangkan < atau >. • Denganmengganti (t,t) dan (f,t) dengan (t,=) dan (f,=), dandenganmenggantikan (t,f) dengan (t,<) dan (t,>), menghasilkansekumpulanbatasanuntuk C2yaitu {(t,=), (f,=), (t,<), (t,>)}. • Cakupanuntuksekumpulanbatasandiatasakanmenjamindeteksierrordari operator booleandan relational pada C2.

  50. Testing Kondisi (Condition Testing) • Contoh 3: Suatukondisi C3: (E1 > E2) & (E3 = E4) • Dimana E1, E2, E3, dan E4adalahekspresiaritmatika. • Batasankondisi C3 dalambentuk (D1, D2), dan D1dan D2 adalah >, =, <. • Bila C3samadengan C2kecualikondisisederhanapertamapada C3adalahekspresi relational, dapatdibangunsekumpulanbatasanuntuk C3denganmemodifikasikumpulanbatasanuntuk C2denganmenggantikan t dengan >, dan f dengan =, dan <, sehinggadidapat {(>,=),(=,=),(<,=),(>,>),(>,<)} • Cakupankumpulanbatasaniniakanmenjamindeteksierrordari operator relational pada C3.

More Related