Konsep Verifikasi dan Validasi Perangkat Lunak
RL302
Tim Dosen
Konsep Verifikasi dan Validasi Perangkat Lunak
Dian Anggraini, M.T.
Ruang Prodi RPL Lt. II, Gedung Akademik dian.anggraini@upi.edu
Hendriyana, ST., M. Kom
Ruang Prodi RPL Lt. II, Gedung Akademik hendriyana@upi.edu
Level Testing PL
Konsep Verifikasi dan Validasi PL
Problem
Jamil, M. A., Arif, M., Abubakar, N. S. A., & Ahmad, A. (2016, November).
Software testing techniques: A literature review. In 2016 6th international conference on information and communication technology for the Muslim world (ICT4M) (pp. 177-182). IEEE.
Software Testing
Proses evaluasi sistem melalui metode tertentu untuk menentukan kebutuhan spesifikasi dengan hasil
kesesuaian dengan tujuan awal.
Verifikasi dan Validasi ?
Actual X Ekspektasi
Konsep Verifikasi dan Validasi Perangkat Lunak
Level Testing PL
❏ Target Pengujian - Satu Modul
- Sekelompok Modul (tujuan, penggunaan, prilaku atau struktur) - Keseluruhan Sistem
❏ Tahap Pengujian - Unit Testing
- Integrasi Testing - Sistem Testing
Unit Testing
Konsep Verifikasi dan Validasi Perangkat Lunak
Definisi Unit Testing
❏ Unit testing merupakan jenis pengujian yang dilakukan untuk menguji komponen yang ada pada perangkat lunak yang bertujuan untuk
memvalidasi bahwa setiap komponen perangkat lunak berfungsi seperti yang diharapkan.
❏ Komponen atau unit yang akan diuji dapat berupa fungsi, metode, prosedur, modul dan objek
❏ Pengujian unit dilakukan sebelum integration dan system testing
Komponen Unit Testing
❏ Algoritma dan Logika
❏ Struktur data (global dan local)
❏ Interface
❏ Independent paths
❏ Boundary conditions
❏ Error handling
Konsep Verifikasi dan Validasi Perangkat Lunak
Tujuan Unit Testing
❏ Memahami fungsionalitas kode
❏ Mengidentifikasi bug dan memperbaiki bug diawal dengan cepat
❏ Meningkatkan kecepatan pengujian
❏ Menghemat waktu dan biasa
❏ Membantu pengembang untuk memahami basis kode pengujian dan memungkinkan untuk membuat perubahan yang cepat
❏ Membantu penggunaan kembali kode pada projek yang baru
❏ Sebagai dokumentasi proyek
Teknik Pengujian Unit
❏ Black box testing
❏ White Box testing
❏ Grey Box testing
Konsep Verifikasi dan Validasi Perangkat Lunak
BlackBox Testing
Black box testing merupakan pengujian terhadap fungsional dari perangkat lunak tanpa perlu mengetahui detail struktur dan internal program. Blackbox testing akan meninjau input dan output suatu perangkat lunak
Jenis Pengujian Blackbox
❏ Functional Testing: Pengujian kebutuhan fungsional dari perangkat lunak bedasarkan dokumen analisis dan dilakukan oleh software tester
❏ Non-Functional Testing: Pengujian performa, stabilitas, dan kehandalan aplikasi
❏ Regression Testing: Pengujian kembali setelah perbaikan aplikasi dilakukan. Tujuannya adalah untuk memastikan perbaikan aplikasi sudah benar, dan tidak mempengaruhi fungsionalitas atau performa bagian-bagian aplikasi lain.
Konsep Verifikasi dan Validasi Perangkat Lunak
Tahapan Pengujian Black Box
1. Melakukan inspeksi dokumen requirement dan spesifikasi 2. Menentukan input yang valid dan tidak valid
3. Membuat test case dari setiap inputan valid dan tidak valid 4. Pengujian sesuai dengan test case yang telah dibuat
5. Membandingkan hasil pengujian dengan luaran yang diharapkan 6. Menyusun dokumen hasil testing
7. Setelah proses perbaikan aplikasi selesai, tester kembali melakukan pengujian pada perangkat lunak
White Box Testing
❏ White Box Testing merupakan pengujian yang dilakukan terhadap struktur dan internal program. Selain itu pengujian white box juga melakukan
pengujian terhadap desain, fungsi dan detail implementasi dari perangkat lunak
❏ Fokus pengujian terutama pada aliran input output sistem, keamanan, desain, struktur, loop dan data flow
Konsep Verifikasi dan Validasi Perangkat Lunak
Tahapan Pengujian White Box
1. Pahami source code 2. Membuat Test Case
3. Pengujian sesuai dengan test case yang telah dibuat
4. Membandingkan hasil pengujian dengan luaran yang diharapkan 5. Menyusun dokumen hasil testing
6. Setelah proses perbaikan aplikasi selesai, tester kembali melakukan pengujian pada perangkat lunak
Grey Box Testing
Konsep Verifikasi dan Validasi Perangkat Lunak
Tujuan Pengujian Gray Box
❏ Memberikan manfaat gabungan dari pengujian white box dan black box testing
❏ Mengabungkan masukan dan sudut pandang dari pengembang dan penguji sehingga memiliki tujuan yang sama
❏ Menghindari konflik antara penguji dan pengembang
❏ Meningkatkan kualitas secara keseluruhan
❏ Mengurangi overhead dari proses pengujian fungsional dan non fungsional
❏ Memberikan waktu yang cukup panjang kepada pengembang untuk memperbaiki kesalahan
Teknik Pengujian Gray Box
❏ Pengujian Matriks
Pengujian terhadap risiko bisnis dan teknis yang ditentukan oleh pengembang dalam perangkat lunak
❏ Pengujian Pola
Pengujian dengan menggunakan dokumen analisis untuk menentukan penyebab kegagalan dengan melihat internal kode
❏ Pengujian Orthogonal Array
Pengujian yang memanfaatkan teknik black box testing
❏ Pengujian Regresi
Pengujian yang dilakukan untuk memastikan bahwa perbaikan kesalahan tidak mempengaruhi fungsionalitas perangkat lunak lainnya
Konsep Verifikasi dan Validasi Perangkat Lunak
Tools Unit Testing
❏ JUnit: Pengujian untuk bahasa pemrograman Java. jUnit menguji data terlebih dahulu kemudian dimasukkan ke dalam potongan kode.
❏ NUnit: Pengujian untuk bahasa pemrograman .net. NUnit adalah alat open source yang memungkinkan penulisan skrip secara manual. Ini mendukung tes berbasis data yang dapat berjalan secara paralel.
❏ JMockit: Pengujian Unit berbasis open source. JMockit adalah cakupan kode dengan metrik garis dan jalur.
❏ EMMA: menganalisis dan melaporkan kode dalam bahasa pemrograman Java. Emma
Integration Testing
Konsep Verifikasi dan Validasi Perangkat Lunak
Definisi Integration Testing
❏ Tahapan selanjutnya setelah Unit Testing.
❏ Integration Testing disebut juga dengan kombinasi.
❏ Pengujian dari hasil pengabungan unit-unit (sekelompok modul) yang ada di dalam software diuji secara bersama.
❏ Fokus pada pengujian komunikasi data antar modul.
❏ “I & T” → String Testing atau Thread Testing.
Tujuan
● Melakukan Verifikasi dan memastikan tiap-tiap modul dapat berkerja secara kesuluruhan.
● Memastikan hubungan antar tiap modul-modul berfungsi dengan baik.
● Dirancang untuk menemukan kesalahan atau bug antar modul dan fungsinya
● Memastikan kesesuaian antara Interface pada modul dan database.
● Pengujian perangkat keras pada modul.
● Perubahaan baru yang terjadi pada modul, memungkinkan dapat melawati Unit Testing, namun tidak dapat melewati Integration Testing.
Konsep Verifikasi dan Validasi Perangkat Lunak
Skenario Pada Sistem
MODUL 2
MODUL 1
MODUL 2 MODUL 3
Metode Integration Testing
o Big Bang
o Incremental Testing
o Bottom-up Integration Testing o Top-down Integration Testing
Konsep Verifikasi dan Validasi Perangkat Lunak
Big Bang
Suatu pengujian dilakukan dengan cara menghubungkan
seluruh modul yang ada pada suatu sistem dan dilakukan
pengujian menjadi satu kesatuan.
Big Bang Testing
Kelebihan
● Cocok digunakan pada pengembangan sistem dengan skala kecil.
● Waktu uji lebih sedikit.
Kekurangan
● Sulit menemukan kesalahan pada modul.
● Terdapat beberapa interface yang perlu diuji, sehingga dapat terlewatkan.
● Sistem dapat diuji setelah semua modul telah dibangun.
● Waktu pengembangan akan memakan waktu yang lama.
● Pengujian secara keseluruhan pada modul, tidak ada prioritas modul.
Konsep Verifikasi dan Validasi Perangkat Lunak
Incremental Testing
Pengujian dilakukan dengan cara menghubungkan dua atau lebih modul yang erat saling berhubungan secara logis kemudian setelah itu diuji berdasarkan fungsi modul tesebut.
Bottom-up Integration Testing
Strategi dilakukan dimulai dari modul yang memilki level paling rendah ke level paling tinggi.
Top-Down Integration Testing
Kebalikan dari metode bottom-up, yaitu pengujian diawali dari level paling tingi
Bottom-Up Integration Testing
Kelebihan
● Kesalahan dapat mudah ditemukan
● Hemat Waktu Kekurangan
● Level tetinggi modul pada suatu sistem teruji terakhir menyebabkan modul rentan terhadap fungsi yang tidak sesuai atau error
● Prototipe tidak dapat dirancang lebih diawal MODUL 2MODUL
1
MODUL 2
MODUL 3
MODUL 4
MODUL 5
MODUL 6
MODUL 7
Konsep Verifikasi dan Validasi Perangkat Lunak
Top-Down Integration Testing
Kelebihan
● Kesalahan dapat mudah ditemukan
● Prototipe Sistem dapat dirancang diawal
● Kesalahan atau error pada sistem dapat ditemukan lebih dahulu Kekurangan
● Diperlukan lebih banyak modul untuk diuji
● Modul dengan level paling rendah diuji tidak secara maximal MODUL 2MODUL
1
MODUL 2
MODUL 3
System Testing
Konsep Verifikasi dan Validasi Perangkat Lunak
System Testing
❏ System testing merupakan pengujian yang melakukan validasi terhadap produk perangkat lunak untuk memeriksa apakah perangkat lunak yang dibangun sudah dapat dijalankan sesuai dengan tujuan
❏ Pengujian sistem biasanya digunakan untuk menilai fungsional dan non fungsional seperti keamanan, kecepatan, akurasi, dan keandalan
❏ Pengujian sistem menguji desain, perilaku sistem dan juga harapan pelanggan
Konsep Verifikasi dan Validasi Perangkat Lunak
Tujuan System Testing
❏ Mengevaluasi spesifikasi sistem end to end
❏ Memastikan semua kebutuhan fungsional perangkat lunak terpenuhi
❏ Memastikan kinerja perangkat lunak telah sesuai dengan kebutuhan
❏ Pengujian pengalaman pengguna dengan aplikasi
❏ Verifikasi pengujian menyeluruh dari setiap input dalam aplikasi untuk memeriksa output yang diinginkan
❏ Memastikan kebutuhan lain seperti transportability, compatibility, error recovery, maintainability sudah terpenuhi
Metode Pengujian Sistem
❏ Black box testing
❏ White Box testing
Konsep Verifikasi dan Validasi Perangkat Lunak
Jenis Pengujian Sistem
❏ Usability Testing : Pengujian ini berfokus pada kemudahan pengguna dalam menggunakan aplikasi.
❏ Load Testing: Pengujian untuk mengetahui bahwa solusi perangkat lunak akan bekerja di bawah beban nyata.
❏ Regression Testing: Pengujian yang dilakukan untuk memastikan bahwa tidak ada kesalahan yang terjadi ketika sudah dilakukan perubahan
❏ Recovery Testing: Pengujian untuk menunjukkan solusi perangkat lunak dapat diandalkan, dapat dipercaya, dan dapat berhasil menutup kemungkinan terjadinya crash.
❏ Migration Testing: Pengujian untuk memastikan bahwa perangkat lunak sistem dapat dipindahkan dari infrastruktur sistem lama ke infrastruktur infrastruktur sistem saat ini tanpa
Jenis Pengujian Sistem
❏ Functional Testing: Pengujian ini memerlukan pemikiran mengenai kemungkinan terjadinya
fungsi yang hilang. Penguji membuat daftar fungsional tambahan yang bisa dikembangkan oleh suatu produk selama proses pengujian fungsional.
❏ Hardware/ Software Testing: Pengujian ini terjadi ketika penguji fokus pada interaksi antara perangkat keras dan perangkat lunak sistem selama proses pengujian sistem.
Konsep Verifikasi dan Validasi Perangkat Lunak
Referensi
• Hidayat, T., & Muttaqin, M. (2020). Pengujian sistem informasi pendaftaran dan pembayaran wisuda online menggunakan black box testing dengan metode equivalence partitioning dan boundary value analysis.
• Salamah, U., & Khasanah, F. N. (2017). Pengujian Sistem Informasi Penjualan Undangan Pernikahan Online Berbasis Web Menggunakan Black Box Testing.
INFORMATION MANAGEMENT FOR EDUCATORS AND PROFESSIONALS: Journal of Information Management, 2(1), 35-46.
• Cahyono, Andhik Budi. "Pengujian Integrasi dengan Menggunakan Metode Buttom- up Testing Untuk Sistem Informasi Sekolah." SENTIA 2019 11, no. 1 (2019).
• https://www.softwaretestinghelp.com/system-testing/
Konsep Verifikasi dan Validasi Perangkat Lunak