Testing implementasi sistem
Download
1 / 76

TESTING & IMPLEMENTASI SISTEM - PowerPoint PPT Presentation


  • 187 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' TESTING & IMPLEMENTASI SISTEM' - aderyn


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



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.



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



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.



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.


  • Sedangkantipeelemen yang mungkinadadalamsuatukondisiadalah:

    • Operator boolean

    • Variabelboolean

    • Sepasangbooleanparentheses (sebagaimana yang terdapatpadakondisisederhanaataupunkomplek)

    • Operator relasional

    • Ekspresiaritmatika.

  • Jikasuatukondisitidakbenar, maka paling tidaksatukomponendarikondisitersebuttidakbenar.


  • 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 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



Black box testing
Black-box testing

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

  • Program test case berbasiskanspesifikasi

  • Test planning dapatdimulaisejakawalprosespengembangansistem



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



ad