bab v pengujian program · pdf filememeriksa otoritas pengguna dapat dilihat pada asosiasi...
TRANSCRIPT
V-1
Bab V
Pengujian Program NoiseMapping
Pada bab ini akan diuraikan hasil pengujian yang dilakukan terhadap
program NoiseMapping. Metode pengujian yang digunakan adalah metode
pengujian berorientasi objek meliputi uji model hasil pada tahap analisis dan
perancangan, pengujian terintegrasi pada tahap implementasi, dan melalui
skenario kasus uji. Pengujian dilakukan secara manual tidak menggunakan
tools software testing. Untuk pengujian dengan skenario uji digunakan
sample data.
V.1 Pengujian Model Hasil Analisis dan Perancangan
Pengujian dilakukan pada tahap analisis kebutuhan dan perancangan.
Pengujian pada tahap analisis kebutuhan bertujuan untuk mengukur nilai
kebutuhan dan nilai interpretasi terhadap kebutuhan. Pengujian ini akan
meningkatkan kemungkinan pendefinisian kebutuhan dengan baik. Melalui
pengujian ditentukan kekurangan sistem sehingga dapat dilakukan tinjauan
manajemen.
Pengujian pada tahapan perancangan bertujuan untuk mengukur sejauh
mana perancangan dilakukan sesuai dengan kebutuhan, selain itu, untuk
menganalisis karakteristik unjuk kerja dari struktur program. Pengujian
bermanfaat untuk meningkatkan kemungkinan sistem dapat diimplementasi
dengan baik.
Model yang telah dibentuk pada tahap proses analisis dan perancangan akan
diuji meliputi aspek kebenaran (correctness) dan konsistensi (consistency)
dari hasil tahapan analisis dan perancangan. Aspek kebenaran meliputi
aturan sintaks penulisan dan semantik. Sedangkan aspek konsistensi
meliputi pengujian terhadap hubungan antara entitas (objek/relasi) satu
dengan yang lain dalam model (Pressman, 2001).
Kebenaran notasi dan sintaks penulisan untuk merepresentasikan model
analisis dan perancangan terikat kepada metode analisis dan perancangan
Pengujian Program NoiseMapping ___________________________________________ V-2
yang diterapkan. Kebenaran semantik dilihat dari kebenaran model yang
telah dibangun pada waktu analisis dan perancangan atau dengan kata lain
apakah model tersebut telah dapat dengan tepat, merefleksikan spesifikasi
masalah (Pressman, 2001).
Pemeriksaan konsistensi dengan menggunakan model Class-Responsibility-
Collaboration (CRC) atau model relasi periksa keterkaitan antar objek.
Model CRC ini biasanya menggunakan kartu indeks CRC. Setiap kartu
diberi nama kelas, responsibility; operasi dalam kelas, dan collaborators;
kelas lain yang menerima pesan dan tergantung pada operasi-operasi
tersebut (Pressman, 2001).
Untuk mengevaluasi kelas-kelas yang telah dianalisis dan dirancang, ada
beberapa tahapan yang harus dilakukan, yaitu (Pressman, 2001):
1. Dengan menggunakan kartu indeks CRC lakukan pemeriksaan silang
terhadap relasi antar objek, apakah relasi tersebut telah terdefinisi
secara lengkap dan benar pada dua objek yang saling berhubungan?
2. Periksa untuk setiap operasi pada suatu kelas A yang memerlukan
kelas B, apakah pada kelas B terdapat layanan yang memungkinkan
kelas tersebut dapat digunakan oleh kelas A?
3. Periksa balik bahwa layanan di B akan selalu menerima pesan yang
valid dari kelas A.
4. Nilai pengelompokkan layanan berdasarkan pesan yang harus
dilayani objek. Jika belum bagus pindahkan layanan ke kelas lain
atau buat kelas yang baru.
5. Gabungkan layanan jika sering harus melayani secara bersamaan.
6. Tahap 1 s.d 5 dilakukan berulang untuk setiap kelas. Hasilnya
mungkin akan mengubah hasil analisis atau perancangan.
V.1.1 Aspek Kebenaran (Correctness)
Model yang dibentuk pada tahap analisis dan perancangan telah mengikuti
pola (notasi atau simbol) aturan well-formed seperti yang disyaratkan bahasa
pemodelan visual UML. Hal tersebut dapat dilihat pada sub bab 3.1.7 untuk
model analisis. Sedangkan model perancangan dapat dilihat pada sub bab
3.2.1 dan 3.2.1.5. Dengan melihat model yang telah terbentuk pada tahap
Pengujian Program NoiseMapping ___________________________________________ V-3
analisis dan perancangan dan membandingkannya dengan pola pada
rujukan (Rumbaugh, et al., 2005) maka model tersebut telah sesuai dengan
notasi standard UML.
Aspek kebenaran semantik diuji dengan cara evaluasi analisis kebutuhan
dikaitkan dengan model yang telah terbentuk. Model merupakan refleksi
dari kebutuhan yang dispesifikasikan dalam SRS (Tabel III-2). Secara rinci,
pengujian kebenaran semantik dijelaskan seperti pada Tabel V-1, berikut ini.
Tabel V-1 Pengujian Aspek Kebenaran Semantik
Req # Analisis Kebutuhan Refleksi dalam Model
1.1 Sistem harus mampu memeriksa otoritas pengguna
Dapat dilihat pada asosiasi Operator dengan kelas boundary LoginDialog (Gambar III-6).
1.2 Peta kebisingan harus dibuat berdasarkan data pengukuran dari suatu Project tertentu
Tercermin dengan adanya asosiasi kelas boundary WizardGUI dengan kelas entity NoiseSource (Gambar III-10); NoiseSource bergantung pada entitas Project (Gambar III-6).
1.3 Pengguna harus menentukan lokasi yang ingin dipetakan
Untuk melakukan simulasi pemetaan kebisingan diperlukan data yang termuat pada kelas entity NoiseSource dimana entity ini dependent terhadap entity SourcePoint (Gambar III-10, III-6). SourcePoint dependent terhadap kelas boundary NoiseLocation, dimana lokasi direpresentasikan oleh entity Platform dan Deck (Gambar III-8).
1.4 Peta kebisingan dibuat melalui simulasi yang melibatkan satu atau lebih sumber bising
Dapat dilihat dengan adanya asosiasi antara kelas boundary WizardGUI dengan kelas entity NoiseSource melalui kendali kelas StepControl (Gambar III-10).
1.5 Pengguna dapat mengatur tampilan peta yang dihasilkan
Pada kelas TContourPolygon terdapat atribut RangeColor; hal ini dimaksudkan untuk menampilkan kontur polygon kebisingan dengan pewarnaan tertentu berdasarkan pada standard yang digunakan, atribut lainnya terdapat pada kelas TNoiseMap (Gambar III-26).
1.6 Sistem harus menyediakan fasilitas deskripsi objek peta
Atribut ContourLabel, ShowLegend pada kelas TNoiseMap (Gambar III-26) merupakan deskripsi yang memberikan informasi terkait objek peta.
1.7 Pengguna dapat melakukan eksplorasi dan identifikasi objek-objek pada peta
Direpresentasikan pada atribut-atribut dari kelas-kelas yang berkaitan dengan peta, yaitu: kelas-kelas TContour, TContourLine, TContourPolygon, dan TNoiseMap (Gambar III-26), fungsi IdentifyObject pada TNoiseMap.
1.8 Pengguna dapat memuat kembali peta yang pernah dibuat
Tercermin pada fungsi-fungsi LoadDeckMap, ShowDeckMap, ShowNoiseMap (Gambar III-25), dan fungsi LoadNoiseMap pada TNoiseMap (Gambar III-26).
2.1 Sistem harus mampu memastikan terdapatnya peta kebisingan aktif
Dapat dilihat pada fungsi IsExistNoiseMap pada kelas TNoiseMap (Gambar III-26).
2.2 Pengguna dapat menentukan posisi titik-titik pengamatan secara interaktif
Tercermin pada fungsi PickPoint pada interface NoiseDose (Gambar III-28), message SetNoiseDosePoint (Gambar III-28), dan atribut-atribut pada kelas TNoiseDosePoint (Gambar III-29).
2.3 Pengguna dapat menentukan regulasi dan waktu pengamatan
Dapat dilihat pada atribut Regulation di kelas TNoiseDose dan atribut Minutes pada kelas NoiseDosePoint (Gambar III-29).
2.4 Pengguna dapat memuat kembali data hasil hitungan
Tercermin pada fungsi-fungsi dan atribut yang terdapat pada kelas TNoiseDose (Gambar III-29).
Pengujian Program NoiseMapping ___________________________________________ V-4
V.1.2 Aspek Konsistensi (Consistency)
Pengujian aspek konsistensi dilakukan hanya pada kelas-kelas utama, yaitu
kelas-kelas yang terdapat pada use-case MappingNoise (lihat Gambar III-26).
Pengujian dilakukan menggunakan Kartu Indeks CRC. Berikut ini adalah
kartu CRC untuk setiap kelas yang dibuat dan dengan menggunakan kartu-
kartu tersebut dilakukan tahap pengujian.
Tabel V-2 Kartu Indeks CRC Kelas TSource
NO KARTU 1
NAMA KELAS TSource
No Responsibilities Collaborators
1 SetSource() TSimulation
Tabel V-3 Kartu Indeks CRC Kelas TReceiver
NO KARTU 2
NAMA KELAS TReceiver
No Responsibilities Collaborators
1 SetReceiver() TSimulation
Tabel V-4 Kartu Indeks CRC Kelas TSimulation
NO KARTU 3
NAMA KELAS TSimulation
No Responsibilities Collaborators
1 CreateNoiseSimulated() TKriging
Tabel V-5 Kartu Indeks CRC Kelas TKriging
NO KARTU 4
NAMA KELAS TKriging
No Responsibilities Collaborators
1 CreateDataGrid() TContour
Tabel V-6 Kartu Indeks CRC Kelas TContour
NO KARTU 5
NAMA KELAS TContour
No Responsibilities Collaborators
1 ContourPoints() TContourLine
Tabel V-7 Kartu Indeks CRC Kelas TContourLine
NO KARTU 6
NAMA KELAS TContourLine
No Responsibilities Collaborators
1 CreateContourPolyline() TContourPolygon, TNoiseMap
Tabel V-8 Kartu Indeks CRC Kelas TContourPolygon
NO KARTU 7
NAMA KELAS TContourPolygon
No Responsibilities Collaborators
1 BuildContourPolygon() TNoiseMap
Pengujian Program NoiseMapping ___________________________________________ V-5
Hasil pemeriksaan dapat dilihat pada Tabel V-9.
Tabel V-9 Pengujian Hubungan Antar Kelas
Hubungan Dependensi
No. Kelas - Collaborator Dilayani oleh Atribut Collaborator
1 TSource - TSimulation SetSource() SourceData
2 TReceiver - TSimulation SetReceiver() ReceiverData
3 TSimulation - TKriging CreateNoiseSimulated() NoiseSimulated
4 TKriging - TContour CreateDataGrid() ContourPoints
Hubungan Agregasi
5 TContour - TContourLine ContourPoints() ContourPoints
6 TContourLine - TContourPolygon CreateContourPolyline() ContourPolyline
Hubungan Generalisasi
No. Kelas - Collaborator Dilayani oleh Atribut Collaborator
7 TContourPolygon - TNoiseMap BuildContourPolygon() ContourPolygon
8 TContourLine - TNoiseMap CreateContourPolyline() ContourPolyline
Berdasarkan pemeriksaan setiap kartu indek CRC dan evaluasi terhadap
hubungan antar kelas, terlihat bahwa setiap kelas yang memiliki hubungan
dengan kelas lain memiliki Responsibilities (operasi) dan Collaborators, yang
sesuai.
V.2 Pengujian Unit dan Terintegrasi
Strategi klasik dalam pengujian perangkat lunak biasanya dimulai dari
“pengujian bagian yang terkecil” dan diteruskan ke “pengujian bagian yang
menyeluruh”. Pada pelaksanaannya, pengujian dimulai dari pengujian unit,
kemudian dilanjutkan ke pengujian terintegrasi, diakhiri dengan pengujian
sistem dan validitas (Pressman, 2001).
Konsep pengujian unit pada lingkup pengujian berorientasi objek adalah
pengujian kelas yang meliputi pengujian terhadap operasi-operasi yang ada
didalam kelas, dimana operasi-operasi itu dapat mengakibatkan perubahan
pada atribut yang terdapat pada kelas dimaksud atau yang ada di kelas
lainnya (Pressman, 2001).
V.2.1 Pengujian Kelas dan Keterkaitan antar Kelas
Pengujian Kelas dilakukan dengan cara memeriksa setiap operasi pada kelas
tersebut secara acak (Random Testing for OO Classes) (Pressman, 2001).
Setiap operasi (procedure atau function) diperiksa dengan cara melakukan
Pengujian Program NoiseMapping ___________________________________________ V-6
evaluasi berdasarkan status awal (Initial State) dan status akhir (Final
State) dari setiap operasi.
Jika status awal dari satu operasi telah diketahui maka dibuat kondisi
pengujian yang sesuai dengan status awal tersebut. Pada operasi yang akan
diujikan disisipkan satu perintah untuk memeriksa status akhir; apakah
sesuai dengan status akhir yang diharapkan atau tidak sesuai? Penyisipan
perintah tersebut, dalam hal ini Borland Delphi, menyediakan perintah
pengujian dengan sintaks penulisan: Assert(kondisi,[pesan]), diberikan di
akhir dari procedure atau function. Salah satu pengujian kelas yang akan
diuraikan yaitu kelas TNoiseMap.
Kelas TNoiseMap diimplementasikan memiliki 4 operasi, yaitu: Contour,
Save, Load, dan Close. Pemeriksaan dilakukan secara berturut-turut untuk
operasi: Contour Save Load Close. Berikut ini akan diperlihatkan
operasi dalam kelas TNoiseMap beserta keterangan untuk status awal (I.S),
status akhir (F.S), dan perintah Assert. Isi program tidak ditampilkan.
Procedure TNoiseMap.Contour(ProjectID,DeckID:integer);
{I.S : Project dan Deck telah didefinisikan, peta dasar (DeckMap) telah
dimuat pada panel MapViewer
F.S : layer ContourLine dan ContourPolygon terbentuk dan dimuat ke
panel MapViewer; di-overlay-kan dengan DeckMap
}
begin
.............................. {isi program tidak ditampilkan}
//periksa identifier Project
Assert(ProjectID > 0); //default value = -999
//periksa identifier Deck
Assert(DeckID > 0); //default value = -999
//periksa eksistensi DeckMap
Assert(MapViewer.IsEmpty);
//periksa apakah layer-layer NoiseContour telah dimuat di MapViewer
lyrContLine := TGISLayer.MapViewer.Get(‘ContourLine’);
lyrContPoly := TGISLayer.MapViewer.Get(‘ContourPolygon’);
Assert(lyrContLine <> Nil);
Assert(lyrContPoly <> Nil);
end;
Program V-1 Pengujian Prosedur TNoiseMap.Contour
Pengujian Program NoiseMapping ___________________________________________ V-7
Pengujian Program V-1 dilakukan dengan melihat hasilnya pada panel data
penyaji peta (MapViewer). Hasilnya, tergambar garis-garis kontur dan area-
area kontur kebisingan bertumpang susun (overlay) dengan peta dasar Deck.
Procedure TNoiseMap.Save(ProjectID,DeckID:integer);
{I.S : layer ContourLine, ContourPolygon, dan DeckMap telah tergambar
pada panel MapViewer
F.S : objek-objek spasial pada layer ContourLine dan ContourPolygon
di-insert-kan ke masing-masing tabel sebagai record-record baru
}
begin
.............................. {isi program tidak ditampilkan}
//periksa eksistensi active Map
Assert(MapViewer.IsEmpty);
//periksa apakah layer-layer NoiseContour telah dimuat di MapViewer
lyrContLine := TGISLayer.MapViewer.Get(‘ContourLine’);
lyrContPoly := TGISLayer.MapViewer.Get(‘ContourPolygon’);
Assert(lyrContLine <> Nil);
Assert(lyrContPoly <> Nil);
{periksa apakah pada tabel sudah terdapat data yang sama:
jika ada, lakukan Update..Set, jika kosong lakukan Insert..Into
}
Assert(TblContLine(ProjectID,DeckID).RecordCount > 0);
Assert(TblContPoly(ProjectID,DeckID).RecordCount > 0);
end;
Program V-2 Pengujian Prosedur TNoiseMap.Save
Pengujian Program V-2 dilakukan dengan melihat data pada fisik database
server untuk tabel: NoiseMap, ContourLine, dan ContourPolygon. Hasil
pemeriksaan ketiga tabel tersebut telah terisi data ketika operasi Save telah
dilaksanakan dengan sukses.
Operasi Load diuji untuk membuktikan bahwa data hasil operasi Save benar.
Hal ini dilakukan dengan pemeriksaan tampilan data pada panel MapViewer
setelah operasi Load dilaksanakan. Hasilnya menunjukkan data layer-layer
kontur kebisingan dan peta dasar Deck disajikan kembali pada MapViewer
setelah sebelumnya dilakukan terminasi program; untuk lebih meyakinkan.
Pada Program V-3 berikut ini dideskripsikan pengujian untuk operasi Load.
Pengujian Program NoiseMapping ___________________________________________ V-8
Procedure TNoiseMap.Load(ProjectID,DeckID:integer);
{I.S : jumlah data pada tabel ContourLine dan ContourPolygon untuk
Project dan Deck aktif lebih dari nol; data ada
F.S : panel MapViewer akan memuat NoiseMap, dimana layer-layer kontur
adalah data dari tabel ContourLine dan ContourPolygon untuk
Project dan Deck masukan; parameter prosedur
}
begin
.............................. {isi program tidak ditampilkan}
//periksa identifier Project
Assert(ProjectID > 0); //default value = -999
//periksa identifier Deck
Assert(DeckID > 0); //default value = -999
//periksa apakah pada tabel ContourLine,ContourPolygon tidak null
Assert(TblContLine(ProjectID,DeckID).RecordCount > 0);
Assert(TblContPoly(ProjectID,DeckID).RecordCount > 0);
//lakukan pemuatan peta (map loading)
ShowNoiseMap;
end;
Program V-3 Pengujian Prosedur TNoiseMap.Load
V.2.2 Pengujian Terintegrasi
Pengujian terintegrasi diterapkan untuk 2 proses utama, yaitu: pemetaan
kontur kebisingan dan hitungan takaran kebisingan. Pada kedua proses
utama tersebut terjadi keterkaitan antar kelas. Sebelum proses di-run, pada
setiap operasi yang melayani keterkaitan antar kelas diberikan perintah
pengujian Assert, dimana kondisinya disesuaikan dengan skenario uji.
Proses pengujian pada fungsi pemetaan kontur kebisingan dilakukan dengan
cara mengubah-ubah data sumber bising yang dilibatkan pada simulasi.
Sedangkan untuk fungsi hitungan takaran kebisingan, pengujian dilakukan
dengan cara mengubah lokasi simulasi dan plotting titik-titik pengamatan
dicoba di berbagai area lokasi dengan tingkat kebisingan yang berbeda-beda.
Berdasarkan hasil pengujian maka NoiseMapping telah berhasil membuat
peta kontur kebisingan. Penggambaran garis-garis kontur dan area kontur
mengikuti fenomena hukum ISL (Intensity Square Law); bahwa tingkat
kebisingan berbanding terbalik terhadap jarak sumber ke titik penerima.
Demikian juga dengan simulasi NoiseDose; menghasilkan nilai yang sama
dengan hitungan manual.
Pengujian Program NoiseMapping ___________________________________________ V-9
V.3 Pengujian Dengan Kasus Uji
Pendekatan menyeluruh untuk perancangan kasus uji dikemukakan oleh
Berard, bahwa (Pressman, 2001):
1. Setiap uji kasus harus diidentifikasi dengan unik dan dapat
dinyatakan dengan kelas yang akan diuji.
2. Kegunaan tes harus jelas
3. Tahap pengujian dibangun dan harus mengandung:
a. Daftar status objek yang akan diuji
b. Daftar pesan dan operasi yang akan disimak dan konsekuensi yang
diharapkan
c. Daftar kejadian khusus yang mungkin terjadi
d. Daftar kondisi di luar sistem
e. Informasi pelengkap yang dapat membantu dalam memahami atau
merealisasikan pengujian.
Pengujian NoiseMapping dengan kasus uji menggunakan pendekatan user-
oriented atau dengan kata lain berorientasi pada interaksi pengguna dengan
sistem. Berikut ini diberikan skenario untuk pengujian NoiseMapping.
1. Skenario Simulasi Paparan Kebisingan
Tabel V-10 Skenario Simulasi Paparan Kebisingan
No. Aktivitas Aksi (Urutan Menu)
1 mengaktivasi data Project Project > Browse>Select Record > SetAsActive
2 mendefinisikan lokasi comboPlatform: pilih Platform, comboDeck: Deck
3 memuat peta dasar Deck Klik icon Load DeckMap pada toolbar
4 mengaktifkan menu utama NoiseContouring
klik icon Contouring
5 memilih simulasi pemetaan kontur kebisingan
klik icon Contour, muncul FormNoiseContouring Wizard
6 menddefinisikan parameter model
tahap1; entri-kan nilai-nilai parameter model bila data masih kosong
7 mengatur tampilan layer-layer kontur kebisingan
tahap2; tentukan pewarnaan garis dan polygon kontur
8 menjalankan proses noise contouring
klik tombol Proses, sistem sedang mengeksekusi
9 memuat peta kebisingan Setelah Proses selesai, kontur kebisingan dimuat
Pengujian Program NoiseMapping _________________________________________ V-10
2. Skenario Simpan-Muat Peta Kebisingan
Tabel V-11 Skenario Simpan-Muat Peta Kebisingan
No. Aktivitas Aksi (Urutan Menu)
1 menyimpan peta kebisingan Klik icon Save, pada main menu NoiseContouring
2 memuat peta kebisingan Klik icon Load, pada main menu NoiseContouring
3. Skenario Simulasi NoiseDose
Tabel V-12 Skenario Simulasi NoiseDose
No. Aktivitas Aksi (Urutan Menu)
1 memuat peta kebisingan Klik icon Load NoiseMap, peta ditampilkan
2 membuat data simulasi baru klik icon New, muncul form ; entri atribut NoiseDose
3 mengaktifkan tool PickPoint klik icon Pick Point, mode berubah menjadi edit
4 plotting titik-titik NoiseDose Klik di area peta untuk menggambarkan titik-titik ND
5 menghitung ND dan TWA klik icon CalculateNoiseDose, hasil ditampilkan
4. Skenario Simpan-Muat Simulasi NoiseDose
Tabel V-13 Skenario Simpan-Muat Simulasi NoiseDose
No. Aktivitas Aksi (Urutan Menu)
1 menyimpan simulasi NoiseDose saat ini Klik icon Save pada main menu NoiseDose
2 memuat data simulasi NoiseDose klik icon Browse pada main menu ND
Semua skenario tersebut telah dicoba dan hasilnya memenuhi semua status
akhir yang diinginkan.
Sample data dan hasil pengujian diperlihatkan pada bagian Lampiran B.