Mengembangkan perangkat lunak komputer membutuhkan berjam-jam pengkodean dan pengujian. Pengujian ini biasanya mencakup beberapa tingkat validasi dan verifikasi antara aplikasi perangkat lunak dan pelanggan. Upaya pengujian mengacu pada rangkaian lengkap pengujian yang diperlukan untuk perangkat lunak. Upaya penuh ini biasanya mencakup pengujian unit, pengujian sistem, pengujian kinerja, dan pengujian penerimaan pengguna.
Tes dibagi menjadi tes positif atau negatif. Upaya pengujian menentukan jenis pengujian apa yang akan terjadi selama fase pengujian. Ini harus memperhitungkan pengujian penuh dari semua bidang aplikasi perangkat lunak. Kasus uji positif didasarkan pada memasukkan data uji dengan benar ke dalam sistem. Kasus uji negatif mengharuskan penguji memasukkan data yang buruk. Campuran tes positif dan negatif biasanya direkomendasikan untuk sebagian besar aplikasi perangkat lunak.
Pengujian unit adalah pengujian yang terjadi selama pengembangan kode perangkat lunak. Upaya pengujian ini dilakukan oleh para pengembang aplikasi. Pengujian unit adalah fase pengujian awal modul perangkat lunak dalam suatu program. Bentuk pengujian ini memastikan sistem akan berfungsi tanpa kesalahan sebelum dikirim ke tim pengujian untuk ditinjau.
Banyak aplikasi perangkat lunak skala besar menyertakan tes integrasi dengan beberapa sistem eksternal. Pengujian integrasi ini merupakan upaya pengujian yang dirancang untuk memvalidasi integrasi aplikasi eksternal. Pengujian integrasi biasanya dilakukan sebelum pengujian fungsionalitas karena integrasi yang berhasil diperlukan sebelum fungsionalitas dapat diverifikasi.
Pengujian fungsionalitas adalah pengujian yang memvalidasi fungsi sistem seperti yang dimaksudkan. Jenis pengujian ini memerlukan pembuatan data pengujian khusus, yang digunakan selama upaya pengujian. Pengujian fungsionalitas adalah verifikasi persyaratan untuk fungsionalitas aktual dalam aplikasi. Kegagalan untuk melewati fase pengujian ini biasanya menyiratkan bahwa sistem tidak akan diterima oleh pengguna.
Pengujian kinerja sangat penting untuk aplikasi perangkat lunak yang dirancang untuk mendukung ribuan pengguna. Bentuk pengujian ini membutuhkan pemrosesan volume tinggi, yang dirancang untuk menekankan sistem ke titik kegagalan total. Upaya pengujian harus mencakup beberapa pengujian kinerja yang belum sempurna. Ini akan memastikan sistem mendukung pemrosesan banyak pengguna tanpa mogok.
Pengujian penerimaan pengguna adalah bentuk lain dari pengujian validasi sistem. Upaya pengujian ini mencakup pengguna aplikasi, dengan pengujian khusus untuk memvalidasi fungsionalitas sistem. Pengujian penerimaan pengguna adalah langkah penting untuk memastikan kepuasan pelanggan. Upaya pengujian ini biasanya terjadi pada akhir siklus pengembangan, sebelum menerapkan aplikasi ke dalam produksi.