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 V-1
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-ResponsibilityCollaboration (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.
Req # 1.1 1.2
1.3
1.4
1.5
1.6
1.7
1.8
2.1
2.2
2.3
2.4
Tabel V-1 Pengujian Aspek Kebenaran Semantik Analisis Kebutuhan Refleksi dalam Model Sistem harus mampu Dapat dilihat pada asosiasi Operator dengan kelas boundary memeriksa otoritas pengguna LoginDialog (Gambar III-6). Peta kebisingan harus dibuat Tercermin dengan adanya asosiasi kelas boundary berdasarkan data pengukuran WizardGUI dengan kelas entity NoiseSource (Gambar III-10); dari suatu Project tertentu NoiseSource bergantung pada entitas Project (Gambar III-6). Pengguna harus menentukan Untuk melakukan simulasi pemetaan kebisingan diperlukan lokasi yang ingin dipetakan 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). Peta kebisingan dibuat melalui Dapat dilihat dengan adanya asosiasi antara kelas boundary simulasi yang melibatkan satu WizardGUI dengan kelas entity NoiseSource melalui kendali atau lebih sumber bising kelas StepControl (Gambar III-10). Pengguna dapat mengatur Pada kelas TContourPolygon terdapat atribut RangeColor; tampilan peta yang dihasilkan 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). Sistem harus menyediakan Atribut ContourLabel, ShowLegend pada kelas TNoiseMap fasilitas deskripsi objek peta (Gambar III-26) merupakan deskripsi yang memberikan informasi terkait objek peta. Pengguna dapat melakukan Direpresentasikan pada atribut-atribut dari kelas-kelas yang eksplorasi dan identifikasi berkaitan dengan peta, yaitu: kelas-kelas TContour, objek-objek pada peta TContourLine, TContourPolygon, dan TNoiseMap (Gambar III-26), fungsi IdentifyObject pada TNoiseMap. Pengguna dapat memuat Tercermin pada fungsi-fungsi LoadDeckMap, kembali peta yang pernah ShowDeckMap, ShowNoiseMap (Gambar III-25), dan fungsi dibuat LoadNoiseMap pada TNoiseMap (Gambar III-26). Sistem harus mampu Dapat dilihat pada fungsi IsExistNoiseMap pada kelas memastikan terdapatnya peta TNoiseMap (Gambar III-26). kebisingan aktif Pengguna dapat menentukan Tercermin pada fungsi PickPoint pada interface NoiseDose posisi titik-titik pengamatan (Gambar III-28), message SetNoiseDosePoint (Gambar IIIsecara interaktif 28), dan atribut-atribut pada kelas TNoiseDosePoint (Gambar III-29). Pengguna dapat menentukan Dapat dilihat pada atribut Regulation di kelas TNoiseDose regulasi dan waktu pengamatan dan atribut Minutes pada kelas NoiseDosePoint (Gambar III29). Pengguna dapat memuat Tercermin pada fungsi-fungsi dan atribut yang terdapat kembali data hasil hitungan 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 kartukartu 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 areaarea 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 useroriented 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. 1 2 3 4 5 6 7 8 9
Aktivitas mengaktivasi data Project mendefinisikan lokasi memuat peta dasar Deck mengaktifkan menu utama NoiseContouring memilih simulasi pemetaan kontur kebisingan menddefinisikan parameter model mengatur tampilan layer-layer kontur kebisingan menjalankan proses noise contouring memuat peta kebisingan
Aksi (Urutan Menu) Project > Browse>Select Record > SetAsActive comboPlatform: pilih Platform, comboDeck: Deck Klik icon Load DeckMap pada toolbar klik icon Contouring klik icon Contour, muncul FormNoiseContouring Wizard tahap1; entri-kan nilai-nilai parameter model bila data masih kosong tahap2; tentukan pewarnaan garis dan polygon kontur klik tombol Proses, sistem sedang mengeksekusi 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. 1 2
Aktivitas menyimpan peta kebisingan memuat peta kebisingan
Aksi (Urutan Menu) Klik icon Save, pada main menu NoiseContouring Klik icon Load, pada main menu NoiseContouring
3. Skenario Simulasi NoiseDose Tabel V-12 Skenario Simulasi NoiseDose
No. 1 2 3 4 5
Aktivitas memuat peta kebisingan membuat data simulasi baru mengaktifkan tool PickPoint plotting titik-titik NoiseDose menghitung ND dan TWA
Aksi (Urutan Menu) Klik icon Load NoiseMap, peta ditampilkan klik icon New, muncul form ; entri atribut NoiseDose klik icon Pick Point, mode berubah menjadi edit Klik di area peta untuk menggambarkan titik-titik ND klik icon CalculateNoiseDose, hasil ditampilkan
4. Skenario Simpan-Muat Simulasi NoiseDose Tabel V-13 Skenario Simpan-Muat Simulasi NoiseDose
No. 1 2
Aktivitas menyimpan simulasi NoiseDose saat ini memuat data simulasi NoiseDose
Aksi (Urutan Menu) Klik icon Save pada main menu 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.