Apa itu Pengujian Dinamis? Jenis, Teknik & Contoh
⚡ Ringkasan Cerdas
Pengujian Dinamis menjalankan aplikasi dan mengamati bagaimana kode yang berjalan berperilaku dengan input nyata, sehingga penguji dapat memvalidasi fungsionalitas, kinerja, dan stabilitas yang tidak dapat diungkapkan oleh peninjauan dokumen apa pun.

Apa itu Pengujian Dinamis?
Pengujian Dinamis Pengujian dinamis adalah metode pengujian perangkat lunak yang digunakan untuk menguji perilaku dinamis kode perangkat lunak. Tujuan utama pengujian dinamis adalah untuk memeriksa perilaku perangkat lunak dengan variabel dinamis — variabel yang bukan konstanta — dan untuk menemukan area lemah dalam lingkungan runtime perangkat lunak. Kode harus dieksekusi untuk menguji perilaku dinamis.
Pengujian adalah verifikasi dan validasiDan dibutuhkan kedua V untuk menyelesaikan pengujian. Verifikasi dilakukan dengan pengujian statis, yang meninjau persyaratan, dokumen desain, dan kode tanpa menjalankannya. Validasi dilakukan dengan pengujian dinamis, yang menjalankan build dan membandingkan apa yang sebenarnya dilakukan aplikasi dengan apa yang seharusnya dilakukan.
Tabel di bawah ini membedakan keduanya secara sekilas.
| Aspek | Pengujian statis (verifikasi) | Pengujian dinamis (validasi) |
| Code dieksekusi | Tidak | Ya |
| Kegiatan-kegiatan khas | RevTinjauan, penelusuran, inspeksi, analisis statis | Eksekusi kasus uji di semua level pengujian |
| Pertanyaan terjawab | Apakah kita membangun produk dengan benar? | Apakah kita membangun produk yang tepat? |
| Kerusakan ditemukan | Persyaratan yang ambigu, pelanggaran standar pengkodean, kode mati. | Output yang salah, kebocoran memori, kesalahan waktu, kegagalan integrasi |
| Mulai | Segera setelah artefak itu ada | Setelah file eksekusi dibuat |
| Biaya relatif perbaikan | Lebih rendah, karena cacat terdeteksi lebih awal. | Lebih tinggi, karena cacat muncul lebih lambat. |
Contoh Pengujian Dinamis
Contoh singkat yang telah dikerjakan menunjukkan bagaimana pengujian dinamis berperilaku dalam praktiknya.
Misalkan sebuah halaman Login sedang diuji. Halaman tersebut memiliki dua kolom, Nama Pengguna dan Kata Sandi, dan Nama Pengguna dibatasi hanya untuk karakter alfanumerik.
Saat pengguna memasukkan Nama Pengguna sebagai “Guru99”, sistem menerimanya. Saat pengguna memasukkan “GuruSaat memasukkan "99@123", aplikasi akan menampilkan pesan kesalahan. Hasil ini menunjukkan bahwa kode tersebut bertindak secara dinamis berdasarkan input pengguna.
Oleh karena itu, pengujian dinamis berarti bekerja dengan sistem yang sebenarnya, memberikan masukan, dan membandingkan perilaku aktual aplikasi dengan perilaku yang diharapkan — dengan kata lain, bekerja dengan sistem dengan tujuan menemukan kesalahan.
Oleh karena itu, pengujian dinamis adalah proses memvalidasi aplikasi perangkat lunak sebagaimana yang akan dilakukan oleh pengguna akhir, dalam lingkungan yang berbeda, untuk membangun perangkat lunak yang tepat.
Apa yang dilakukan pengujian dinamis?
Tujuan utama pengujian dinamis adalah untuk memastikan bahwa perangkat lunak berfungsi dengan benar selama dan setelah instalasi, menghasilkan aplikasi yang stabil tanpa cacat besar. Tidak ada perangkat lunak yang sepenuhnya bebas dari kesalahan, dan pengujian dapat menunjukkan adanya cacat tetapi tidak pernah menunjukkan ketiadaannya.
Pengujian dinamis juga memastikan konsistensi di seluruh perangkat lunak, seperti yang ditunjukkan oleh contoh ini.
Dalam aplikasi perbankan terdapat beberapa layar, seperti Akun Saya, Transfer Dana, dan Bill Bayar. Semuanya berisi kolom jumlah.
Misalkan kolom Akun Saya menampilkan jumlah 25,000, Transfer Dana menampilkan $25,000 dan Bill Layar pembayaran menampilkan $25000. Jumlahnya sama, tetapi cara penampilannya berbeda, yang membuat perangkat lunak tersebut tidak konsisten.
Konsistensi tidak hanya terbatas pada fungsionalitas. Ia juga mencakup standar seperti kinerja, kegunaan, dan kompatibilitas, itulah mengapa pengujian dinamis sangat penting.
Jenis Pengujian Dinamis
Pengujian dinamis diklasifikasikan menjadi dua kategori.
- Putih Box pengujian
- Black Box pengujian
Diagram di bawah ini memetakan kedua kategori tersebut terhadap tingkatan pengujian yang berada di bawahnya.
Setiap jenis dan tujuan penggunaannya dijelaskan di bawah ini.
Putih Box pengujian — sebuah metode pengujian perangkat lunak di mana struktur internal dan desainnya diketahui oleh penguji. Tujuan utamanya adalah untuk memeriksa bagaimana sistem bekerja berdasarkan kode. Metode ini terutama dilakukan oleh pengembang atau penguji white box yang memiliki pengetahuan pemrograman.
Black Box pengujian — sebuah metode pengujian di mana struktur internal, kode, dan desain TIDAK diketahui oleh penguji. Tujuan utamanya adalah untuk memverifikasi fungsionalitas sistem yang sedang diuji. Jenis pengujian ini memerlukan eksekusi rangkaian pengujian lengkap, sebagian besar dilakukan oleh penguji, dan tidak memerlukan pengetahuan pemrograman.
Pengujian kotak hitam diklasifikasikan lagi menjadi dua jenis.
- Pengujian Fungsional
- Pengujian Non-Fungsional
Pengujian Fungsional
Pengujian fungsional Pengujian dilakukan untuk memverifikasi bahwa semua fitur yang dikembangkan sesuai dengan spesifikasi fungsional. Pengujian ini dilakukan dengan menjalankan pengujian fungsional. kasus uji Ditulis oleh tim QA. Pada fase ini, sistem diuji dengan memberikan input, memverifikasi output, dan membandingkan hasil aktual dengan hasil yang diharapkan.
Terdapat berbagai tingkatan pengujian fungsional, yang terpenting adalah empat hal berikut ini.
- Pengujian Unit — Unit adalah bagian kode kecil yang dapat diuji. Pengujian unit dilakukan pada unit perangkat lunak individual dan dilakukan oleh pengembang.
- Tes integrasi — dilakukan setelah pengujian unit, dengan menggabungkan unit-unit yang dapat diuji secara individual. Ini dilakukan oleh pengembang atau penguji.
- Pengujian Sistem — dilakukan untuk memastikan bahwa sistem berperilaku sesuai dengan persyaratan. Pengujian ini umumnya dilakukan ketika sistem sudah siap sepenuhnya, oleh penguji, setelah build dirilis ke tim QA.
- Ujian penerimaan — dilakukan untuk memverifikasi apakah sistem telah memenuhi persyaratan bisnis dan siap untuk digunakan atau diimplementasikan. Pemeriksaan ini umumnya dilakukan oleh pengguna akhir.
Pengujian Non-Fungsional
Pengujian non-fungsional Pengujian non-fungsional adalah teknik pengujian yang tidak berfokus pada aspek fungsional, melainkan berkonsentrasi pada atribut non-fungsional sistem, seperti kebocoran memori, kinerja, atau ketahanan. Pengujian non-fungsional dilakukan di semua tingkatan pengujian.
Terdapat banyak teknik pengujian non-fungsional, di antaranya yang terpenting adalah lima teknik di bawah ini.
- Pengujian Kinerja — memeriksa apakah waktu respons sistem normal, sesuai dengan persyaratan, di bawah beban jaringan yang diinginkan.
- Pengujian Pemulihan — memverifikasi seberapa baik sistem pulih dari kerusakan dan kegagalan perangkat keras.
- Pengujian Kompatibilitas — memverifikasi bagaimana sistem berperilaku di berbagai lingkungan.
- Pengujian Keamanan — memverifikasi kekokohan aplikasi, memastikan bahwa hanya pengguna dan peran yang berwenang yang dapat mengakses sistem.
- Kegunaan Pengujian — memverifikasi kemudahan penggunaan sistem oleh pengguna akhir, dan seberapa nyaman pengguna tersebut menggunakannya.
Teknik Pengujian Dinamis
Setelah jenis-jenisnya ditentukan, pertanyaan selanjutnya adalah bagaimana siklus pengujian dinamis sebenarnya dijalankan.
Teknik pengujian dinamis dalam STLC Terdiri dari tugas-tugas seperti analisis kebutuhan untuk pengujian, perencanaan pengujian, desain dan implementasi kasus uji, penyiapan lingkungan pengujian, eksekusi kasus uji, pelaporan bug, dan akhirnya penutupan pengujian. Setiap tugas dalam pengujian dinamis bergantung pada penyelesaian tugas sebelumnya dalam proses pengujian.
Dalam STLC, proses pengujian dinamis yang sebenarnya dimulai dari desain kasus uji. Diagram di bawah ini menunjukkan urutan aktivitas, yang masing-masing dijelaskan setelahnya.
Sebelum memulai proses, strategi yang akan diikuti untuk pengujian dinamis harus disepakati terlebih dahulu.
Strategi pengujian harus berfokus terutama pada sumber daya yang tersedia dan jangka waktu. Berdasarkan kedua faktor tersebut, tujuan pengujian, ruang lingkup pengujian, fase atau siklus pengujian, jenis lingkungan, asumsi atau tantangan yang mungkin dihadapi, dan risiko semuanya harus didokumentasikan.
Setelah strategi ditetapkan dan diterima oleh manajemen, proses perancangan kasus uji yang sebenarnya dimulai.
Desain dan implementasi pengujian
Pada fase ini, tim mengidentifikasi hal-hal berikut.
- Fitur yang akan diuji
- Kondisi pengujian yang berasal dari fitur-fitur tersebut
- Item cakupan yang diperoleh dari kondisi pengujian
- Kasus uji yang berasal dari item cakupan.
Kotak hitam teknik desain pengujian seperti pembagian kesetaraan, analisis nilai batas, pengujian tabel keputusan ke pengujian transisi negara Hal-hal inilah yang mengubah kondisi pengujian menjadi serangkaian kasus yang dapat dieksekusi secara konkret.
Uji pengaturan lingkungan
The lingkungan pengujian Seharusnya selalu serupa dengan lingkungan produksi. Pada fase ini, build diinstal dan mesin pengujian dikelola dan dikonfigurasi.
Eksekusi uji
Selama fase ini, kasus uji sebenarnya dieksekusi, baik secara manual maupun melalui sistem. otomatisasi, dan hasil aktual dicatat dibandingkan dengan hasil yang diharapkan.
Laporan bug ditangkap
Berdasarkan eksekusi, jika hasil yang diharapkan dan hasil aktual tidak sama, kasus uji harus ditandai sebagai Gagal dan bug dicatat dalam laporan bug. manajemen cacat proses.
Keuntungan Pengujian Dinamis
- Pengujian dinamis mengungkap cacat yang dianggap terlalu sulit atau rumit untuk dideteksi, dan yang sama sekali tidak dapat dicakup oleh analisis statis.
- Perangkat lunak ini dieksekusi dari ujung ke ujung, yang meningkatkan kualitas produk dan proyek secara keseluruhan.
- Pengujian dinamis merupakan cara penting untuk mendeteksi ancaman keamanan dalam sistem yang sedang berjalan.
- Kesalahan yang hanya terjadi saat runtime, seperti kebocoran memori, masalah waktu, dan kegagalan integrasi, muncul di sini dan tidak di tempat lain.
Kekurangan Pengujian Dinamis
- Pengujian dinamis memakan waktu, karena menjalankan aplikasi atau kode membutuhkan banyak sumber daya.
- Hal ini meningkatkan biaya proyek, karena tidak dimulai sejak awal siklus hidup perangkat lunak dan masalah yang diperbaiki pada tahap selanjutnya membutuhkan biaya perbaikan yang lebih besar.
- Lingkungan yang menyerupai lingkungan produksi dan data uji yang realistis adalah prasyarat, dan keduanya membutuhkan upaya untuk membangun dan memeliharanya.


