testing implementasi sistem
Download
Skip this Video
Download Presentation
TESTING & IMPLEMENTASI SISTEM

Loading in 2 Seconds...

play fullscreen
1 / 76

TESTING & IMPLEMENTASI SISTEM - PowerPoint PPT Presentation


  • 188 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
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 E1E2, dimana E1 dan E2 adalahekspresiaritmatikadan adalahsalahsatudari : < , ≤ , = , ≠ (pertidaksamaan), ≥ ,>.
    • Kondisikomplek (compound condition) tersusunolehduaataulebihkondisisederhana, operator boolean, danparentheses.
    • Operator boolean yang dapatdigunakandalamsuatukondisikomplekadalah OR (׀), AND (&) dan NOT (­).
    • Suatukondisitanpaekspresirelasionaldapatdireferensikansebagaisuatuekspresiboolean.
slide35
Sedangkantipeelemen yang mungkinadadalamsuatukondisiadalah:
    • Operator boolean
    • Variabelboolean
    • Sepasangbooleanparentheses (sebagaimana yang terdapatpadakondisisederhanaataupunkomplek)
    • Operator relasional
    • Ekspresiaritmatika.
  • Jikasuatukondisitidakbenar, maka paling tidaksatukomponendarikondisitersebuttidakbenar.
slide36
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:

E1E2

    • tigatesdibutuhkannilai-nilai, agar E1 lebihbesar, samadengan, ataulebihkecildari E2 [HOW82]. Jika 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
    • 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 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