Perusahaan perangkat lunak besar, seperti Google, berhasil meskipun bug dengan prioritas rendah dalam perangkat lunak mereka, tetapi perusahaan kecil dan perusahaan rintisan tidak memiliki kemewahan itu.
Pelanggan mengharapkan produk untuk melakukan apa yang mereka klaim di halaman penjualan, atau di dokumentasi. Dengan begitu banyak pilihan di luar sana, mereka tidak akan berpikir dua kali untuk melompat kapal jika produk itu menghabiskan waktu dan uang mereka. Oleh karena itu, perangkat lunak mengalami tes ketat sebelum rilis untuk:
soroti perbedaan antara konsep asli dan hasil akhir
memverifikasi perangkat lunak bekerja dengan cara yang direncanakan perancang
memvalidasi produk akhir - produk harus memenuhi persyaratan pelanggan
menilai fitur dan kualitas
Pengujian mengikuti cetak biru yang ketat. Ini mengoptimalkan penggunaan sumber daya berharga - keterampilan, waktu, dan uang, sambil memberikan informasi penting kepada para pemangku kepentingan untuk membawa produk ke depan. Tujuannya adalah untuk memfasilitasi pengalaman pengguna akhir yang baik melalui program jaminan kualitas yang kuat. Dengan taruhan yang begitu tinggi, manajer QA adalah beberapa penerima teratas di bidang teknologi. Pengujian biasanya mengikuti langkah-langkah berikut:
Analisis kebutuhan di mana manajer menguraikan rencana untuk menempatkan strategi uji yang sesuai.
Tes dimulai dan hasilnya menjalani analisis.
Setiap cacat diperbaiki, dan perangkat lunak berjalan melalui pengujian regresi - sistem untuk memeriksa program masih berfungsi setelah modifikasi.
Laporan penutupan tes kemudian merinci seluruh proses dan hasilnya.
Metode Pengujian Perangkat Lunak
Berikut adalah metode berbeda yang digunakan untuk menilai perilaku dan kinerja produk.
Kotak hitam dan pengujian kotak putih adalah dua metode mendasar.
- Pengujian kotak hitam - Juga disebut pengujian berbasis fungsional atau spesifikasi, metode ini berfokus pada output. Penguji tidak peduli dengan mekanisme internal. Mereka hanya memeriksa perangkat lunak apa yang seharusnya. Pengetahuan tentang pengkodean tidak diperlukan, dan penguji bekerja pada tingkat antarmuka pengguna.
- Pengujian kotak putih - Metode ini menggunakan pengetahuan coding sebagai bagian dari prosedur pengujian. Ketika suatu produk gagal, penguji masuk ke dalam kode yang diperlukan untuk menemukan penyebabnya. Para pengembang perangkat lunak melakukan ini sendiri karena mereka menentukan bagaimana produk seharusnya bekerja. Pengujian box-based dan glass box adalah nama lain untuk metode ini.
- Pengujian statis - Penguji memeriksa kode dan dokumentasi perangkat lunak tetapi tidak menjalankan program. Tes statis dimulai sejak awal pengembangan produk selama proses verifikasi.
- Pengujian dinamis - Perangkat lunak dijalankan dengan berbagai masukan, dan penguji membandingkan keluaran dengan perilaku yang diharapkan dengan metode ini.
- GUI testing - Ini menguji karakteristik GUI - pemformatan teks, kotak teks, tombol, daftar, tata letak, warna, font, ukuran font, dan sebagainya. Pengujian GUI memakan waktu, dan perusahaan pihak ketiga sering mengambil alih tugas alih-alih pengembang.
Tingkat tes
Ini diperlukan untuk mengidentifikasi area kelemahan dan tumpang tindih dalam setiap fase siklus hidup pengembangan perangkat lunak.
- Pengujian unit - Pengembang menguji bagian paling dasar dari kode seperti kelas, antarmuka, dan fungsi / prosedur. Mereka tahu bagaimana kode mereka harus merespon dan dapat melakukan penyesuaian tergantung pada output.
- Pengujian komponen - Nama lain adalah modul atau pengujian program. Ini mirip dengan pengujian unit tetapi berisi tingkat integrasi yang lebih tinggi. Modul perangkat lunak diuji untuk cacat untuk memverifikasi fungsi masing-masing.
- Pengujian integrasi - Ini mengidentifikasi kesalahan ketika modul terintegrasi. Tes integrasi yang berbeda adalah bottom up, top down, dan fungsional inkremental.
- Pengujian sistem - Komponen proyek diuji secara keseluruhan dalam lingkungan yang berbeda dengan metode ini. Ini berada di bawah metode kotak hitam dan merupakan salah satu tes terakhir dalam proses. Ini menentukan apakah sistem berfungsi sebagaimana mestinya untuk memenuhi kebutuhan bisnis dan pengguna.
- Pengujian alfa - Staf internal menguji perangkat lunak di situs pengembang dalam lingkungan simulasi atau aktual. Setelah itu, pengembang memperbaiki bug dan masalah lainnya.
- Pengujian beta - Dikenal sebagai pengujian lapangan juga, klien menguji produk di situs mereka sendiri dalam kondisi nyata. Klien dapat menawarkan sekelompok pengguna akhir kesempatan untuk menguji perangkat lunak melalui versi pra-rilis atau beta. Umpan balik tentang kemungkinan perbaikan kemudian dikirim ke pengembang.
- Pengujian penerimaan - Juga di bawah lingkup pengujian kotak hitam, klien menguji perangkat lunak untuk mengetahui apakah pengembang telah membuat program sesuai spesifikasi yang diinginkan.
Jenis tes
Tes perangkat lunak ini fokus pada tujuan tertentu.
- Pengujian instalasi - Software test engineer dan manajer konfigurasi melakukan tes ini untuk memastikan pengguna akhir dapat menginstal dan menjalankan program. Ini mencakup area seperti file instalasi, lokasi instalasi, dan hak akses administratif.
- Pengujian pengembangan - Ini menerapkan berbagai strategi yang disinkronkan untuk mendeteksi dan mencegah kerusakan. Ini termasuk analisis kode statis, tinjauan kode rekan, ketertelusuran, dan analisis metrik. Tujuannya adalah untuk mengurangi risiko dan menghemat biaya.
- Pengujian Usability - Pengalaman pengguna berada di bawah sorotan dengan tes ini. Ini mengukur seberapa baik GUI dirancang dan kemudahan penggunaannya. Tes ini memeriksa keakuratan dan efisiensi fungsi dan respon emosional dari subjek tes.
- Uji Sanity - Ini menunjukkan apakah perangkat lunak sepadan dengan waktu dan biaya untuk melanjutkan pengujian lebih lanjut. Terlalu banyak kekurangan dan tes yang lebih agresif tidak mengikuti.
- Pengujian asap - Pengujian asap mengungkapkan kegagalan dasar yang cukup serius untuk mencegah pelepasan. Ketika ini dilakukan pada build yang baru, ini disebut tes verifikasi build.
- Pengujian regresi - Ketika sistem mengalami modifikasi, pengujian regresi memonitor perilaku yang tidak diharapkan. Ini menunjukkan efek buruk pada modul atau komponen.
- Pengujian yang merusak - Penguji memasukkan entri abnormal dan membedakan kemampuan perangkat lunak untuk mengelola masukan yang tidak diharapkan. Ini menunjukkan kepada para pengembang seberapa kuat program tersebut dalam manajemen kesalahan.
- Tes pemulihan - Saat perangkat keras atau fungsi lain gagal, pengujian ini menunjukkan seberapa baik perangkat lunak dapat memulihkan dan melanjutkan pengoperasian.
- Pengujian otomatis - Ini melakukan fungsi yang sulit untuk diterapkan secara manual. Ini menggunakan perangkat lunak khusus untuk menjalankan tes dan untuk menyediakan data pada hasil aktual versus yang diharapkan.
- Pengujian Kompatibilitas - Perangkat lunak harus berjalan di lingkungan komputasi yang berbeda, jadi ini memeriksa kompatibilitas dengan sistem yang berbeda. Misalnya, apakah perangkat lunak bekerja dengan berbagai sistem operasi dan peramban web?
- Pengujian kinerja - Ini adalah pengujian mendalam yang menguji kinerja perangkat lunak dalam berbagai skenario. Informasi tentang daya tanggap, stabilitas, alokasi sumber daya, dan kecepatan dikumpulkan. Selain itu, sub-tes seperti volume, kapasitas, dan uji lonjakan berperan dalam proses ini.
- Pengujian keamanan - Ini mengukur kemampuan perangkat lunak untuk melindungi keamanan pengguna. Ini berarti fungsi otorisasi, otentikasi, kerahasiaan, integritas, ketersediaan, dan non-penolakan.
- Pengujian aksesibilitas - Ini tidak sama dengan pengujian kegunaan. Ini menentukan sejauh mana pengguna dari berbagai kemampuan - belajar dan cacat fisik termasuk, dapat menggunakan perangkat lunak.
- Pengujian internasionalisasi dan lokalisasi - Hasil menunjukkan bagaimana perangkat lunak dapat beradaptasi dengan bahasa yang berbeda dan tuntutan regional. Ini termasuk menambahkan komponen untuk lokasi tertentu dan menerjemahkan teks.
Pengujian perangkat lunak adalah bagian penting untuk membawa produk ke pasar. Dan tanpa penguji, berbagai macam perangkat lunak yang tersedia tidak akan ada. Menjadi penguji perangkat lunak bersertifikat melalui organisasi seperti BCS, The Chartered Institute for IT, ISTQB® (Badan Pengujian Kualifikasi Perangkat Lunak Internasional), dan ASQ (sebelumnya American Society for Quality).