Testing implementasi sistem
This presentation is the property of its rightful owner.
Sponsored Links
1 / 76

TESTING & IMPLEMENTASI SISTEM PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Testing implementasi sistem

TESTING & IMPLEMENTASI SISTEM

Pertemuan 4

“Teknik-teknikpengujianperangkatlunak”

Diema HS,S. Kom


Testing implementasi sistem

  • WHITEBOX TESTING


Definisi white box testing

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.


Cakupan pernyataan cabang dan jalur cont

Cakupanpernyataan, cabangdanjalur(Cont.)

  • Cakupanpernyataan, cabangdanjaluradalahsuatuteknikwhite box testing yang menggunakanalurlogikadari program untukmembuattest cases.

  • Yang dimaksuddenganalurlogikaadalahcaradimanasuatubagiandari program tertentudieksekusisaatmenjalankan program.


Cakupan pernyataan cabang dan jalur cont1

Cakupanpernyataan, cabangdanjalur(Cont.)

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


Cakupan pernyataan cabang dan jalur cont2

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.


Cakupan pernyataan cabang dan jalur

Cakupanpernyataan, cabangdanjalur

  • Eksekusisuatutest casemenyebabkan program untukmengeksekusipernyataan-pernyaantertentu, yang berkaitandenganjalurtertentu, sebagaimanatergambarpadaflow graph.

  • Cakupancabang, pernyataandanjalurdibentukdarieksekusijalur program yang berkaitandenganpeninjauantitik, anakpanah, danjalurdalamflow graph


Cakupan pernyataan cabang dan jalur1

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


Cakupan pernyataan

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


Cakupan cabang cont

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.


Cakupan cabang

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 %.


Cakupan jalur cont

Cakupanjalur(Cont.)

  • Cakupanjalurditentukandenganmenilaiproporsieksekusijalur program yang diujiolehsekumpulantest cases yang telahditentukan.

  • Cakupanjalur 100 % adalahbilamanatiapjalurpada program dikunjungisetidaknya minimal sekalites.

  • Cakupanjalurberkaitandenganpeninjauanjalursepanjangflow graph.

  • Cakupan 100 % adalahbilamanasemuajalurdilaluiolehtest cases.


Cakupan jalur

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 %.


Perbedaan antara cakupan pernyataan cabang dan jalur cont

Perbedaanantaracakupanpernyataan, cabangdanjalur (Cont.)


Perbedaan antara cakupan pernyataan cabang dan jalur cont1

Perbedaanantaracakupanpernyataan, cabangdanjalur (Cont.


Perbedaan antara cakupan pernyataan cabang dan jalur

Perbedaanantaracakupanpernyataan, cabangdanjalur

  • Dari contoh, dapatdilihatbahwahanyadibutuhkan 2 jaluruntukmengunjungisemuaanakpanahcabang, dari 4 jalur yang adapadaflow graph.

  • Jadibilacakupanjalursebesar 100 %, makasecaraotomatiscakupancabangsebesar 100 % pula. Demikian pula bilacakupancabangsebesar 100 %, makasecaraotomatiscakupanpernyataansebesar 100 %.


Disain cakupan tes

Disaincakupantes

  • Untukmendisaincakupandarites, perludiketahuitahap-tahapsebagaiberikut:

    • Menganalisasource codeuntukmembuatflow graph.

    • Mengidentifikasijalurtesuntukmencapaipemenuhantesberdasarkanpadaflow graph.

    • Mengevaluasikondisites yang akandicapaidalamtiaptes.

    • Memberikannilaimasukandankeluaranberdasarkanpadakondisi.


Testing implementasi sistem

Basis Path Testing


Basis path testing

Basis Path Testing

  • Merupakanteknikwhite box testing yang dikenalkanoleh Tom McCabe [MC76].

  • Metodeidentifikasi yang berdasarkanpadajalur, strukturataukoneksi yang adadarisuatusisteminibiasadisebutjugasebagaibranch testing, karenacabang-cabangdarikodeataufungsilogikadiidentifikasidandites, ataudisebutjugasebagaicontrol-flow testing .


Basis path testing1

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.


Basis path testing2

Basis Path Testing

  • Notasi Flow Graph


Basis path testing3

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


Basis path testing4

Basis Path Testing


Cyclomatic complexity

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.


Cyclomatic complexity1

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


Cyclomatic complexity2

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


Cyclomatic complexity3

Cyclomatic Complexity

  • Tahapandalammembuattest casesdenganmenggunakancyclomatic complexity:

    • Gunakandisainataukodesebagaidasar, gambarlahflow graph

    • Berdasarkanflow graph, tentukancyclomatic complexity

    • Tentukankelompok basis darijalurindependensecara linier

    • Siapkantest cases yang akanmelakukaneksekusidaritiapjalurdalamkelompok basis


Cyclomatic complexity4

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].


Cyclomatic complexity5

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].


Cyclomatic complexity6

Cyclomatic Complexity

  • Catatan : Beberapajalurmungkinhanyadapatdieksekusisebagaibagiandarites yang lain.

  • Direkomendasikan agar jangansampaikompleksitastiap unit / komponenterkecilsistemmelebihinilai 10 [V(G)]. Beberapapraktisimenggunakannilai rata-rata V(G) daritiap unit / komponennterkeciluntukmemberikanpenilaiankompleksitas


Graph matrix

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.


Graph matrix1

Graph Matrix


Control structure testing

Control Structure Testing

  • Control structure testingmeliputi:

    • Testing kondisi (Condition Testing)

    • Testing alur data (Data Flow Testing)

    • Testing loop (Loop Testing)


Testing kondisi condition testing

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.


Testing implementasi sistem

  • Sedangkantipeelemen yang mungkinadadalamsuatukondisiadalah:

    • Operator boolean

    • Variabelboolean

    • Sepasangbooleanparentheses (sebagaimana yang terdapatpadakondisisederhanaataupunkomplek)

    • Operator relasional

    • Ekspresiaritmatika.

  • Jikasuatukondisitidakbenar, maka paling tidaksatukomponendarikondisitersebuttidakbenar.


Testing implementasi sistem

  • Tipeerrorpadakondisiadalahsebagaiberikut:

    • Kesalahan operator boolean

    • Kesalahanvariabelboolean

    • Kesalahanbooleanparentheses

    • Kesalahan operator relasional

    • Kesalahanekspresiaritmatika.


Testing kondisi condition testing1

Testing Kondisi (Condition Testing)

  • Metodeteskondisiberfokuspada testing tiapkondisidalam program. Strategiteskondisimempunyaiduakeuntunganyaitu:

    • Pengukurancakupankondisi yang ditesadalahsederhana.

    • Cakupankondisi program yang ditesmenyediakantuntunanuntukpembuatantestambahanbagi program.

  • Tujuanteskondisidisampinguntukmendeteksierrordarikondisi program jugauntukkesalahanlainnyadari program.


Testing kondisi condition testing2

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.


Testing kondisi condition testing3

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).


Testing kondisi condition testing4

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.


Testing kondisi condition testing5

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.


Testing kondisi condition testing6

Testing Kondisi (Condition Testing)

  • Untuksuatuekspresibooleandengan n variabel, dibutuhkansemuakemungkinantes 2n (n>0).

  • Strategiinidapatmendeteksierrordari operator danvariabelbooleansertabooleanparenthesis, namuninihanyadipraktekkanjika n adalahkecil.


Testing kondisi condition testing7

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} .


Testing kondisi condition testing8

Testing Kondisi (Condition Testing)

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


Testing kondisi condition testing9

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).


Testing kondisi condition testing10

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.


Testing kondisi condition testing11

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.


Testing kondisi condition testing12

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.


Testing kondisi condition testing13

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.


Testing kondisi condition testing14

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.


Testing kondisi condition testing15

Testing Kondisi (Condition Testing)

  • Contoh 4: Padacontohini, diberikansebagaicontohpenerapansebenarnya, denganmenampilkanpenggalankodeberikut:

    IF (X = TRUE) AND (Y = TRUE) AND (Z = TRUE) THEN

    [Do Something]

    END IF

    • Dimana X, Y dan Z adalahvariabelboolean. Makadapatdituliskankembali, menurutBranch and relational operator testing (BRO), yang diterdapatpada [TAI89]: C4: X & Y & Z

    • Dengan C4 adalahidentitasdarikondisi yang mewakilipredicatedaripenggalankodediatas.

    • Dibutuhkandelapantesdenganbatasankondisi C4, sebagaiberikut: {(t,f,f), (t,f,t), (t,t,f), (t,t,t), (f,f,f), (f,f,t), (f,t,f), (f,t,t)}, denganhasilkondisi C4 yang diharapkanadalah (f, f, f, t, f, f, f, f).


Testing kondisi condition testing16

Testing Kondisi (Condition Testing)

  • Untukmendapatkanjumlahpemenuhancakupankondisipadasuatumodul program, dapatdigunakanflow graph, sebagaimana yang telahdijelaskandalambasis path testing, dimanaakandiwakiliolehjumlahpredicate (P).


Data flow testing cont

Data Flow Testing(Cont.)

  • Adalahtidakrealistisuntukmengasumsikanbahwadata flow testingakandigunakansecaraekstensifbilamelakukantessuatusistem yang besar. Namunbiasanyaakandigunakanpadadaerahtertentu yang ditargetkansebagaipenyebabkesalahandarisoftware.


Data flow testing cont1

Data Flow Testing(Cont.)

  • Metodedata flow testingmemilihjalur program berdasarkanpadalokasidaridefinisidanpenggunaanvariabel-variabelpada program.

  • Sebagaiilustrasipendekatandata flow testing, diasumsikanbahwatiappernyataandalamsuatu program ditandaidengansuatupenomoranpernyataan yang uniksifatnya, sebagaiidentitasdaritiappernyataantersebut, dimanatiapfungsitidakmemodifikasi parameter atauvariabelglobalnya.


Data flow testing cont2

Data Flow Testing(Cont.)

  • Untuksuatupernyataandengan S sebagainomorpernyataannya:

    • DEF(S) = [X | pernyataan S mengandungsuatudefinisi X]

    • USE(S) = [X | pernyataan S mengandungsuatupenggunaan X]

  • Jikapernyataan S adalahsuatupernyataan IF atau LOOP, makabagian DEF akankosongdanbagian USE didasarkanpadakondisidaripernyataan S. Definisidarivariabel X padapernyataan S dinyatakan “tinggal” didalampernyataan S’ jikaadasuatujalurdaripernyataan S kepernyataan S’ yang tidakmengandungdefinisi X tersebut.


Data flow testing cont3

Data Flow Testing(Cont.)

  • IkatanDefinition-Use (DU) dari X ditulisdalambentuk [X,S,S’], dimana S dan S’ adalahnomorpernyataan, haliniberarti X adapada DEF(S) dan USE(S’), dandefinisi X padapernyataan S tinggaldidalampernyataan S’.

  • Suatustrategidata flow testingsederhanaharusmencakuptiapikatan DU setidaknyasekali. Olehkarenaitudata flow testing disebutjugastrategiDUtesting.


Data flow testing cont4

Data Flow Testing(Cont.)

  • DUtesting tidakselalumenjaminpemenuhancakupanseluruhcabangdari program. Namunhaliniadalahsuatusituasi yang jarangterjadi, bilamanasuatucabangtidakmenjadicakupandariDU testing, sepertikonstruksi IF-THEN-ELSE, dimanabagian THEN tidakmempunyaidefinisivariabelapapun, danbagian ELSE tidakada. Padasituasiini, cabang ELSE daripernyataan IF tidakperludicakupolehDU testing.

  • Strategidata flow testingsangatbergunauntukmenentukanjalurtespada program yang berisipernyataannested if danloop.


Data flow testing cont5

Data Flow Testing(Cont.)

Proc x

B1;

Do while C1

If C2 Then

If C4 Then B4;

Else B5;

Endif;

Else

If C3 Then B2;

Else B3;

Endif;

Endif;

Enddo;

B6;

End proc;

  • SebagaiilustrasidaripenerapanDU testinguntukmemilihjalurtes PDL sebagaiberikut:


Data flow testing cont6

Data Flow Testing(Cont.)

  • UntukmenggunakanstrategiDU testingdalammemilihjalurtesdari diagram control flow, perlumengetahuidefnisidanpenggunaandarivariabelditiapkondisiataublokpada PDL.

  • Diasumsikanbahwavariabel X didefinisikanpadapernyataanakhirdariblok B1, B2, B3, B4, dan B5 dandigunakanpadapernyataanpertamadariblok B2, B3, B4, B5, dan B6.


Data flow testing cont7

Data Flow Testing(Cont.)

  • StrategiDU testingmembutuhkansuatueksekusijalurterpendekdaritiap Bi, 1 < i 5, ketiapBj, 2 < j  6. (Suatu testing tertentujugamencakuppenggunaantiapvariabeldari X dalamkondisi C1,C2, C3, dan C4.)

  • Walaupunada 25 ikatan DU darivariabel X, hanyadibutuhkan lima jalurtesuntukmencakupikatan DU ini. Alasannyaadalahkelimajalurinidibutuhkanuntukmencakupikatan DU X dari Bi, 1 < i 5, ke B6 danikatan DU lainnyadapatdicakupdenganmembuatkelimajaluriniberiterasisesuaidenganloop.


Data flow testing cont8

Data Flow Testing(Cont.)

  • Jikamenggunakanstrategibranch testinguntukmemilihjalurtesdari PDL, sebagaimanadisebutkandiatas, tidakdibutuhkaninformasitambahan.

  • Untukmemilihjalurtesdari diagram untukBRO testing, dibutuhkanpengetahuanakanstrukturdaritiapkondisiataublok. (Setelahpemilihanjalur program, perlumenentukanapakahjalurfisibeluntuk program; yaitusetidaknyasatumasukanada yang melaluijalur.)

  • Sejakpernyataan-pernyataanpadasuatu program dihubungkansatusama lain berdasarkanpadadefinisidanpenggunaanvariabel, pendekatandata flow testing akanefektifuntukmendeteksierror.

  • Bagaimanapunjuga, masalah-masalahpengukurancakupantesdanpemilihanjalurtesuntukdata flow testingakanlebihsulitdaripadamasalah yang berkaitandengan testing kondisi.


Loop testing

Loop Testing

  • Loop testingadalahsuatuteknikwhite box testing yang berfokuspadavaliditaskonstruksiloopsecaraeksklusif. Gambar 3.10 memperlihatkanempatkelas yang berbedadariloop [BEI90], yaitu:

    • Simple Loops

    • NestedLoops

    • ConcatenatedLoops

    • UnstructuredLoops


Loop testing1

Loop Testing


Loop testing2

Loop Testing

  • Simple Loops.Sekumpulantesberikutinidapatdigunakanuntuksimple loops, dimana n adalahjumlahmaksimum yang dapatdilewatkanpadaloop:

    • Lompatiloopsecarakeseluruhan, takadaiterasi / lewatanpadaloop.

    • Lewatkanhanyasatu kali iterasipadaloop.

    • Lewatkandua kali iterasipadaloop.

    • Lewatkan m kali iterasipadaloopdimana m<n.

    • Lewatkan n-1, n, n+1 kali iterasipadaloop.


Loop testing3

Loop Testing

  • Nested Loops. Jikapendekatantesuntuksimple loopsdikembangkanpadanested loops, jumlahkemungkinantesakanberkembangsecarageometrissearahdengansemakintingginyatingkatdarinested loops.

    • Beizer [BEI90], memberikansuatupendekatan yang akanmenolonguntukmengurangijumlahtes.

    • Mulailahdariloop yang paling dalam. Set semualoops lainnyadengannilai minimum.

    • Lakukantessimple loopsuntukloop yang paling dalam, dengantetapmempertahankanloops yang adadiluarnyadengannilai parameter iterasi yang minimum. Tambahkanteslainnyauntuknilai yang diluardaerahatautidaktermasukdalambatasannilai parameter iterasi.

    • Kerjakandaridalamkeluar, lakukantesuntukloop berikutnya, tapidengantetapmempertahankansemualoop yang beradadiluarpadanilai minimum dannested looplainnyapadanilai yang umum.

    • Teruskanhinggakeseluruhandariloopstelahdites.


Loop testing4

Loop Testing

  • Concatenated Loops. Concatenated loopsdapatditesdenganmenggunakanpendekatan yang didefinisikanuntuksimple loops, jikatiaploopsindependen (tidaksalingbergantung) antarasatudengan yang lainnya. Dikatakandualoopstidakindependen, jikadualoopsmerupakanconcatenated loops, dannilailoop counterpadaloop 1 digunakansebagainilaiawaluntukloop 2. Bilaloopstidakindependen, direkomendasikanmemakaipendekatansebagaimana yang digunakanpadanested loops.

  • Unstructured Loops. Tidakdapatditesdenganefektif. Dan bilamemungkinkanloops jenisiniharusdidisainulang.


Lines of code

Lines of Code

  • Pengukuransederhana: menghitungjumlahbariskodedalam program danmenggunakanperhitunganiniuntukmengukurkompleksitas.

  • Berdasarkanstudi yang telahdilakukan [LIP82a]:

    • Program kecilmempunyaierror rata-rata 1,3 % sampai 1,8 %.

    • Program besarmempunyaikenaikanerror rata-rata dari 2,7 % sampai 3,2 %.


Halstead s metrics

Halstead’s Metrics

  • Halstead’s metric adalahpengukuran yang berdasarkanpadapenggunaan operator-operator (sepertikatakunci) danoperan-operan (sepertinamavariabel, obyek database) yang adadalamsuatu program.

    • n1 = jumlah operator yang unik (distinct) dalam program

    • n2 = jumlahoperan yang unik (distinct) dalam program.

    • Panjang program: H = n1 log2 n1 + n2 log2 n2.

    • N1 = perhitunganjumlahkeseluruhan operator program.

    • N2 = perhitunganjumlahkeseluruhanoperan program.

  • Prediksibug: B = (N1 + N2) log2 (n1 + n2) / 3000


Testing implementasi sistem

  • BLACKBOX TESTING


Black box testing

Black-box testing

  • Pendekatanpengujiandimana program dianggapsebagaisuatu ‘black-box’ (‘kotakhitam’)

  • Program test case berbasiskanspesifikasi

  • Test planning dapatdimulaisejakawalprosespengembangansistem


Black box testing1

Black-box testing


Black box testing2

Black-box testing

  • Pengujian black box berusahamenemukankesalahandalamkategori :

    • Fungsi-fungsi yang tidakbenaratauhilang

    • Kesalahan interface

    • Kesalahandalamstruktur data atauakses database eksternal

    • Kesalahankinerja

    • Inisialisasi dan kesalahan terminasi


Partisi ekivalensi equivalensi partition

PartisiEkivalensi (equivalensipartition)

  • Input data dan output hasilterdapatdiklas yang berbeda yang sesuaidenganklasinputnya

  • Masing-masingklasequivalensi partition diprosresdimana program akanmemprosesanggota klas-klas tersebut secara equivale.

  • Test cases dipilihdarimasing-masingpartisi


Partisi ekivalensi equivalence partitioning

PartisiEkivalensi (Equivalencepartitioning)


Partisi ekivalensi equivalence partitioning1

PartisiEkivalensi (Equivalencepartitioning)

  • Partition system inputs and outputs into ‘equivalence sets’

    • If input is a 5-digit integer between 10000 and

      99999, equivalence partitions are <10000, 10000-99999

      and > 100000

  • Choose test cases at the boundary of these sets

    • 00000, 9999, 10000, 99999, 100001


Equivalence partitions

Equivalence partitions


  • Login