170 likes | 413 Views
Testing & Implementasi Sistem. Pertemuan 3. Testing kondisi (Condition Testing) Testing alur data (Data Flow Testing ) Testing loop ( Loop Testing). Control Structure Testing. Suatu metode disain test case yang memeriksa kondisi logika yang terdapat pada modul program.
E N D
Testing & ImplementasiSistem Pertemuan 3
Testing kondisi (Condition Testing) • Testing alur data (Data Flow Testing) • Testing loop (Loop Testing) Control Structure Testing
Suatumetodedisaintest case yang memeriksakondisilogika yang terdapatpadamodul program. • Beberapadefinisi 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 booleanyang dapatdigunakandalamsuatukondisikomplekadalah OR (׀), AND (&) dan NOT (–). • Suatukondisitanpaekspresirelasionaldapatdireferensikansebagaisuatuekspresiboolean. 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 • Bilatesting pernyataankode program dapatdipuaskandengansekalites, yaitudenganmemberikannilai (X,Y,Z) = (1,1,1). Dan hasilkondisi yang diharapkanadalahtrue. • Namununtukbranch testing dibutuhkanduates, yaitu • Denganmemberikannilai (X, Y, Z) = (1,1,1), untukmengevaluasidengankondisibenar (true). • Dan denganmemberikannilai (X,Y,Z) = (2,1,1), sebagaiwakiluntukmengevaluasidengankondisisalah (false). Branch Testing
Untuksuatuekspresirelasionaldalambentuk: E1<operator-relasional>E2, tigatesdibutuhkannilai-nilai, agar E1 lebihbesar, samadengan, ataulebihkecildari E2 [HOW82]. • Jika<operator-relasional> tidakbenardan E1 dan E2 benar, makatigatesinimenjamindeteksi error operator relasional. Domain Testing
Untukmendeteksikesalahanpada E1 dan E2, suatutesterhadapnilai-nilai, agar E1 lebihbesarataulebihkecildari E2, dimanaselisihdarinilai-nilaiinidiusahakansekecilmungkin. If (X + 1) > (Y – Z) then [Do Something] End if • Dimana E1 diwakilioleh (X + 1) dan E2 diwakilioleh (Y – Z). • Ada tigates yang dilakukan, yaitu: • Tespertamadenganmewakilkan E1 dan E2 dengannilai 5 dan 2, yang didapatdarimasukan(X,Y,Z) = (4,5,3), agar E1 > E2. Dan hasilkondisi yang diharapkanadalah true. • Teskeduadenganmewakilkan E1 dan E2 dengannilai 2 dan 2, yang didapatdarimasukan (X,Y,Z) = (1,4,2), agar E1 = E2. Dan hasilkondisi yang diharapkanadalah false. • Tesketigadenganmewakilkan E1 dan E2 dengannilai 1 dan 2, yang didapatdarimasukan(X,Y,Z) = (0,4,2), agar E1 < E2. Dan hasilkondisi yang diharapkanadalah false. Domain Testing EkspresiAritmatika
Untuksuatuekspresibooleandengan n variabel, dibutuhkansemuakemungkinantes2^n (n>0). • Strategiinidapatmendeteksierror darioperator danvariabelbooleansertaboolean parenthesis, namuninihanyadipraktekkanjika n adalahkecil. IF X AND Y THEN [Do Something] END IF • Dimana X dan Y adalahvariabelboolean, makaakandilakukantessebanyak2^2 = 4, yaitudenganmemberikannilai X dan Y {(t,f), (f,t), (f,f), (t,t)} denganhasilkondisi yang diharapkandari operator booleanAND {f,f,f,t} . Domain Testing Ekspresi Boolean n Variabel
Untuksuatuekspresibooleanyang tunggal (suatuekspresibooleandimanatiapvariabelbooleanhanyaterjadisekali) dengan n variabelboolean(n > 0), kitadapatdenganmudahmembuatsuatukumpulantes yang kurangdari2^n tesdimanasekumpulantesinimenjamindeteksierror multiple operator booleandanjugaefektifuntukmendeteksierror yang lain. IF X = TRUE AND Y = TRUE THEN [Do Something] END IF • Maka domain testing tidakmembutuhkan2^2 = 4 tes, namuncukup 2 tes, yaitu • Denganmemberikannilai (X,Y) = (t,t), untukevaluasikondisibenar (true). • Dan (X,Y) = (f,t), sebagaiwakildarisisakemungkinanmasukanuntukevaluasikondisisalah (false). Domain Testing EkspresiBoolean Tunggal
Teknikinimenjamindeteksierror dari operator cabangdanrelasionaldalamsuatukondisi yang adadimanasemuavariabelbooleandan operator relasional yang terdapat di dalamkondisiterjadihanyasekalidantidakadavariabel yang dipakaibersama. BRO (Branch and Relational Operator) Testing
Suatukondisi C1: B1 &B2 • DimanaB1 dan B2 adalahvariabelboolean. • Batasankondisi C1 dalambentuk (D1, D2), dan D1 dan D2 adalah t atau f. • Nilai(t,f) adalahsuatubatasankondisi C1 dandicakupolehtes yang membuatnilai • B1 menjaditrue dannilai B2 menjadifalse. • StrategiBRO testing membutuhkansekumpulanbatasan {(t,t), (f,t), (t,f)} dicakupoleheksekusidari C1. • JikaC1 tidakbenarterhadapsatuataulebiherror operator boolean, setidaknyasatudarisekumpulanbatasanakanmembuat C1 salah. BRO Boolean & Boolean
Suatukondisi C2 : B1 &(E3 = E4) • DimanaB1 adalahekspresiboolean, E3 dan E4 adalahekspresiaritmatika. • Batasankondisi C2 dalambentuk (D1, D2 ), dan D1 adalah t atauf dan D2 adalah >, =, <. • Bila C2 = C1, kecualikondisisederhanakeduapada C2 adalahekspresi relational, dapatdibangunsuatukumpulanbatasanuntuk C2 denganmemodifikasisekumpulanbatasan {(t,t), (f,t),(t,f)} yang didefinisikanuntuk C1. • Dimanat 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 C2 yaitu {(t,=), (f,=), (t,<), (t,>)}. • Cakupanuntuksekumpulanbatasandiatasakanmenjamindeteksierror dari operator booleandan relational pada C2. BRO Boolean & Aritmatika
Suatukondisi C3: (E1 > E2) & (E3 = E4) • DimanaE1, E2, E3, dan E4 adalahekspresiaritmatika. • Batasankondisi C3 dalambentuk (D1, D2), dan D1 dan D2 adalah >, =, <. • BilaC3 samadengan C2 kecualikondisisederhanapertamapada C3 adalahekspresi relational, dapatdibangunsekumpulanbatasanuntuk C3 denganmemodifikasikumpulanbatasanuntuk C2 denganmenggantikan t dengan >, dan f dengan =, dan<, sehinggadidapat {(>,=),(=,=),(<,=),(>,>),(>,<)} • Cakupankumpulanbatasaniniakanmenjamindeteksierror dari operator relational pada C3. BRO Aritmatika& Aritmatika
Padacontohini, diberikansebagaicontohpenerapansebenarnya, denganmenampilkanpenggalankodeberikut: IF (X = TRUE) AND (Y = TRUE) AND (Z = TRUE) THEN [Do Something] END IF • DimanaX, Y dan Z adalahvariabelboolean. Makadapatdituliskankembali, menurutBranch and relational operator testing (BRO), yang diterdapatpada [TAI89]: C4: X & Y & Z • DenganC4 adalahidentitasdarikondisi yang mewakilipredicate daripenggalankodedi atas. 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). • Untukmendapatkanjumlahpemenuhancakupankondisipadasuatumodul program, dapatdigunakanflow graph, sebagaimana yang telahdijelaskandalambasis path testing, dimanaakandiwakiliolehjumlahpredicate (P). BRO Terapan