38
Konsep Verifikasi dan Validasi Perangkat Lunak RL302

Konsep Verifikasi dan Validasi Perangkat Lunak

  • Upload
    others

  • View
    44

  • Download
    1

Embed Size (px)

Citation preview

Konsep Verifikasi dan Validasi Perangkat LunakRL302

Tim Dosen

Konsep Verifikasi dan Validasi Perangkat Lunak

Dian Anggraini, M.T.

Ruang Prodi RPL Lt. II, Gedung Akademik

[email protected]

Hendriyana, ST., M. Kom

Ruang Prodi RPL Lt. II, Gedung Akademik [email protected]

Level Testing PLKonsep 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

Konsep Verifikasi dan Validasi Perangkat Lunak

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

Konsep Verifikasi dan Validasi Perangkat Lunak

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

Konsep Verifikasi dan Validasi Perangkat Lunak

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

Konsep Verifikasi dan Validasi 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

Konsep Verifikasi dan Validasi 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

Konsep Verifikasi dan Validasi 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

Konsep Verifikasi dan Validasi Perangkat Lunak

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

mendukung jenis cakupan seperti metode, garis, blok dasar.

❏ PHPUnit: Pengujian unit untuk pemrograman PHP.

Konsep Verifikasi dan Validasi Perangkat Lunak

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.

Konsep Verifikasi dan Validasi Perangkat Lunak

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 SistemMODUL 2

MODUL 1

MODUL 2 MODUL 3

MODUL 4 MODUL 5 MODUL 6 MODUL 7

Konsep Verifikasi dan Validasi Perangkat Lunak

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 menghubungkanseluruh modul yang ada pada suatu sistem dan dilakukanpengujian menjadi satu kesatuan.

Konsep Verifikasi dan Validasi Perangkat Lunak

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 yangerat saling berhubungan secara logis kemudian setelah itu diuji berdasarkanfungsi modul tesebut.

Bottom-up Integration Testing

Strategi dilakukan dimulai dari modul yang memilki level paling rendah ke levelpaling tinggi.

Top-Down Integration Testing

Kebalikan dari metode bottom-up, yaitu pengujian diawali dari level paling tingike level paling rendah.

Konsep Verifikasi dan Validasi Perangkat Lunak

Bottom-Up Integration Testing

Kelebihan

● Kesalahan dapat mudah ditemukan● Hemat Waktu

Kekurangan

● Level tetinggi modul pada suatu sistem teruji terakhir menyebabkan modulrentan 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

MODUL 4

MODUL 5

MODUL 6

MODUL 7

Konsep Verifikasi dan Validasi Perangkat Lunak

System Testing

Konsep Verifikasi dan Validasi Perangkat Lunak

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

❏ Dokumentasi sudah benar

Konsep Verifikasi dan Validasi Perangkat Lunak

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

terjadi masalah.

Konsep Verifikasi dan Validasi Perangkat Lunak

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 metodeequivalence partitioning dan boundary value analysis.

• Salamah, U., & Khasanah, F. N. (2017). Pengujian Sistem Informasi PenjualanUndangan Pernikahan Online Berbasis Web Menggunakan Black Box Testing.INFORMATION MANAGEMENT FOR EDUCATORS AND PROFESSIONALS: Journal ofInformation 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/

• https://socs.binus.ac.id/2020/06/30/software-testing/

Konsep Verifikasi dan Validasi Perangkat Lunak

Konsep Verifikasi dan Validasi Perangkat Lunak

Terima Kasih