0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan5 halaman
Pengujian merupakan proses penting dalam pengembangan perangkat lunak untuk menemukan bug dan memastikan kualitas serta kesesuaian dengan persyaratan. Terdapat berbagai jenis pengujian seperti pengujian unit, integrasi, sistem, kinerja, penerimaan pengguna, black box, dan white box yang bertujuan untuk meningkatkan kualitas perangkat lunak.
Pengujian merupakan proses penting dalam pengembangan perangkat lunak untuk menemukan bug dan memastikan kualitas serta kesesuaian dengan persyaratan. Terdapat berbagai jenis pengujian seperti pengujian unit, integrasi, sistem, kinerja, penerimaan pengguna, black box, dan white box yang bertujuan untuk meningkatkan kualitas perangkat lunak.
Pengujian merupakan proses penting dalam pengembangan perangkat lunak untuk menemukan bug dan memastikan kualitas serta kesesuaian dengan persyaratan. Terdapat berbagai jenis pengujian seperti pengujian unit, integrasi, sistem, kinerja, penerimaan pengguna, black box, dan white box yang bertujuan untuk meningkatkan kualitas perangkat lunak.
Pengujian (testing) adalah tindakan untuk memeriksa/membuktikan bahwa kualitas
software telah terpenuhi, dan pengimplementasian software telah benar sesuai dengan syarat/kebutuhan (O’Regan, 2011). Ada beberapa tipe pengujian (testing), yaitu pengujian unit (unit testing), pengujian integrasi (integration testing), pengujian sistem (system testing), pengujian daya guna (performance testing), dan pengujian penerimaan pengguna (user acceptance testing). Tujuan akhir dari pengujian (testing) adalah untuk memastikan bahwa sistem bekerja/berjalan sesuai dengan perencanaan, dan secara umum untuk memastikan agar dapat memenuhi kebutuhan pengguna (Davis & Yen, 1998). Lebih khusus, pengujian (testing) adalah proses mencoba meletakkan sistem dan beserta komponen pendukungnya, mengamati, dan memperbaiki kesalahan atau cacat yang timbul. Pengujian perangkat lunak (software testing) berperan dalam memastikan bahwa produk perangkat lunak telah berkualitas tinggi dan sesuai dengan kualitas yang diharapan oleh pelanggan (O’Regan, 2011).
1.1 Tujuan Pengujian
Pengujian merupakan bagian yang bersifat integral dalam pengembangan perangkat lunak, dan lebih dari 50% waktu pengembangan dihabiskan untuk pengujian (Simarmata, 2010). Adapun tujuan dari pengujian adalah: a. Untuk meningkatkan kualitas Software berkualitas adalah software yang tidak memiliki cacat, dan sesuai dengan kebutuhan. Bug dapat menyebabkan kerugian yang besar, menghancurkan, dan menyebabkan masalah. Debugging sering dilakukan untuk mengetahui perancangan yang cacat dari pemrograman. Menemukan masalah dan memperbaikinya adalah tujuan dari debugging di dalam tahapan pemrograman. b. Untuk verifikasi dan validasi Pengujian software juga bertujuan untuk memvalidasi dan memverifikasi software (perangkat lunak), yaitu apakah software yang dikembangkan telah memenuhi persyaratan bisnis dan teknis (sesuai dengan desain dan pengembangan yang direncanakan), apakah sudah bekerja seperti yang diharapkan, dan dapat diimplementasikan dengan karakteristik yang sama. c. Untuk keandalan estimasi Pengujian dapat digunakan untuk memperoleh data statistik yang dapat digunakan untuk mengetahui kegagalan, atau estimasi keandalan perangkat lunak. Keandalan perangkat lunak merupakan hal yang penting karena memiliki hubungan dengan berbagai aspek dari perangkat lunak, termasuk struktur.
1.2 Jenis Pengujian
1.2.1 Pengujian Black Box Pengujian black box mencakup beberapa pengujian (Simarmata, 2010), yaitu: a. Pengujian fungsionalitas (functional testing) Pengujian fungsional dilakukan untuk menguji persyaratan fungsional, yaitu dilakukan dalam bentuk tertulis untuk memeriksa apakah aplikasi berjalan seperti yang diharapkan. Pengujian fungsional meliputi seberapa baik system melaksanakan fungsinya, termasuk perintah-perintah pengguna, manipulasi data, pencarian dan proses bisnis, pengguna layar, dan integrasi. b. Pengujian tegangan (stress testing) Pengujian tegangan ditujukan untuk menguji kualitas aplikasi dalam lingkungannya. Pengujiannya dilakukan dengan menjalankan aplikasi dengan menuntut untuk melakukan melebihi beban normal. Ini adalah pengujian yang cukup sulit, cukup komplek, dan memerlukan upaya bersama dari semua tim. c. Pengujian beban (load testing) Pengujian ini dilakukan dengan memberikan beban berat, seperti pada pengujian situs web, dengan tujuan untuk mengetahui apakah kinerja aplikasi akan mengalami penurunan atau tidak.
d. Pengujian khusus (ad-hoc testing)
Pengujian ini dilakukan tanpa membuat rencana pengujian (test plan) atau kasus pengujian (test case). Pengujian ini dilakukan untuk membantu penguji mempelajari aplikasi sebelum melakukan pengujian dengan metode pengujian lain. Pengujian ini kadang dilakukan untuk membantu dalam mempelajari aplikasi jika dokumentasi sulit dimengerti. e. Pengujian penyelidikan (exploratory testing) Pengujian penyelidikan mirip dengan pengujian khusu dan dilakukan untuk mempelajari aplikasi. Pengujian ini merupakan pendekatan yang menyenangkan untuk pengujian. f. Pengujian usabilitas (usability testing) Pengujian ini disebut juga sebagai pengujian untuk keakraban pengguna (testing for user-friendliness). Pengujian ini dilakukan jika antarmuka pengguna dari aplikasi dianggap penting dan harus spesifik untuk jenis pengguna tertentu. Pengujian ini ditujukan untuk menghilangkan kesulitan pengguna dalam menggunakan aplikasi. g. “Pengujian asap” (smoke testing) Pengujian ini disebut juga pengujian kenormalan (sanity testing). Pengujian ini dilakukan untuk memeriksa apakah aplikasi telah siap untuk dilakukan pengujian yang lebih besar dan bekerja sampai tingkat yang diharapkan. h. Pengujian pemulihan (recovery testing) Pengujian pemulihan (recovery testing) pada dasarnya dilakukan untuk memeriksa seberapa cepat dan baiknya aplikasi bias dipulihkan terhadap semua jenis crash atau kegagalan hardware, masalah bencana, dan lain-lain. Jenis atau taraf pemulihan ditetapkan dalam persyaratan spesifikasi. i. Pengujian volume (volume testing) Pengujian volume dilakukan terhadap efisiensi dari aplikasi. Jumlah data yang besar diproses melalui aplikasi (yang sedang diuji) untuk memeriksa keterbatasan ekstrem dari aplikasi. Pengujian volume ditujukan untuk memastikan batas-batas fisik dan logis untuk kapasitas sistem, dan memastikan apakah batasan dapat diterima untuk memenuhi proyeksi kapasitas dari pengolahan bisnis organisasi. j. Pengujian domain (domain testing) Pengujian domain merupakan pengujian yang paling sering dijelaskan dalam teknik pengujian. Pengujian dilakukan dengan mengambil ruang pengujian dari variabel individu dan membaginya dalam subset (dalam beberapa cara) yang sama, kemudian menguji perwakilan dari masing-masing subset. k. Pengujian skenario (scenario testing) Pengujian skenario merupakan definisi dari serangkaian kasus uji atau skrip tes dan urutan di mana mereka dieksekusi. Pengujian skenario merupakan pengujian yang realistis, kredibel, dan memotivasi stakeholder, tantangan untuk program dan mempermudah penguji untuk melakukan evaluasi. l. Pengujian regresi (regression testing) Pengujian regresi adalah gaya pengujian yang berfokus pada pengujian ulang (retesting) setelah ada perubahan. Pada pengujian regresi berorientasi risiko (risk- oriented regression testing), daerah yang sama yang sudah diuji, akan kita uji lagi dengan pengujian yang berbeda (semakin kompleks). m. Penerimaan pengguna (user acceptance) Pada jenis pengujian ini, perangkat lunak akan diserahkan kepada pengguna untuk mengetahui apakah perangkat lunak memenuhi harapan pengguna dan bekerja seperti yang diharapkan. n. Pengujian alfa (alpha testing) Pada jenis pengujian ini, pengguna akan diundang ke pusat pengembangan. Pengguna akan menggunakan aplikasi dan pengembang mencatat setiap masukan atau tindakan yang dilakukan oleh pengguna. o. Pengujian beta (beta testing) Pada jenis pengujian ini, perangkat lunak didistribusikan sebagai sebuah versi beta dengan pengguna yang menguji aplikasi di situs mereka. Pengecualian/cacat yang terjadi akan dilaporkan kepada pengembang.
1.2.2 Pengujian White Box
Sedangkan pengujian white box mencakup beberapa pengujian (Simarmata, 2010), antara lain: a. Pengujian unit (unit testing) Pengujian unit bertujuan untuk memeriksa apakah modul tertentu atau kode unit bekerja dengan baik. Pengujian unit berada pada tingkat yang sangat dasar seperti ketika unit dikembangkan atau fungsi tertentu dibangun. Pengujian unit berkaitan dengan unit secara keseluruhan, hal ini akan menguji interaksi antara berbagai fungsi, tetapi membatasi pengujian dalam satu unit. Lingkup yang tepat dari unit ditinggalkan kepada interpretasi, pendukung kode pengujian, kadang-kadang disebut perancah (scaffolding), mungkin diperlukan untuk mendukung setiap pengujian. Pengujian ini digerakkan oleh tim arsitektur dan implementator. b. Analisis statis dan dinamis (static and dynamic analysis) Analisis statis dilibatkan melalui kode untuk mengetahui segala kemungkinan cacat dalam kode, sedangkan analisis dinamis akan melibatkan pelaksanaan kode dan penganalisisan hasilnya. c. Cakupan pernyataan (statement coverage) Pengujian pernyataan dilakukan dengan menjalankan minimal sekali untuk setiap pernyataan dalam aplikasi. Pengujian ini untuk memastikan bahwa setiap pernyataan tidak memiliki efek samping yang belum diprediksi. d. Cakupan cabang (branch coverage) Pengujian cakupan cabang ditujukan untuk membantu memvalidasi setiap percabangan, dan memastikan bahwa tidak ada cabang yang mengarah ke perilaku abnormal dari aplikasi. e. Pengujian mutasi (mutation testing) Pengujian ini dilakukan untuk menguji kode yang telah dimodifikasi setelah memperbaiki bug (cacat) tertentu. Hal ini juga membantu dalam menemukan mana kode dan strategi pengkodean yang dapat membantu dalam mengembangkan fungsi tersebut secara efektif.