Apa Itu Software
Testing ?
Software testing adalah aktivitas-aktivitas yang bertujuan untuk
mengevaluasi atribut-atribut atau kemampuan sebuah program atau sistem dan
penentuan apakah sesuai dengan hasil yang diharapkan.
- Testing :
Proses pemeriksaan program dengan tujuan tertentu dalam menemukan
kesalahan sebelum diserahkan ke pengguna.
- Verification: Apakah kita membangun produk
dengan benar, software seharusnya sesuai dengan spesifikasinya. Gunakan
proses software yang bagus.
- Validation: Apakah kita membangun produk yang
benar, software seharusnya melakukan apa yang pengguna benar-benar butuhkan.
Tahapan Testing
Terdapat cukup banyak pendekatan yang dilakukan untuk melakukan testing.
Salah satu definisi testing adalah “sebuah proses yang melakukan pertanyaan
terhadap sebuah produk untuk dinilai”, di mana “pertanyaan” merupakan segala
sesuatu yang diberikan kepada produk sebagai pengujian.
Beberapa tahapan testing yang umum dilalui oleh aplikasi adalah sebagai
berikut:
1.
Unit dan Component Testing.
Terbagi atas testing terhadap unit dan component. Unit testing merupakan
proses testing, di mana Anda melakukan testing pada bagian basic dari kode
program. Contohnya adalah memeriksa kode program pada event, procedure, dan
function. Unit Testing meyakinkan bahwa masing-masing unit tersebut berjalan
sebagaimana mestinya. Pada Unit Testing, Anda memeriksa bagian kode program
secara terpisah dari bagian yang lain. Anda dapat langsung melakukan Unit
Testing setiap kali sebuah kode unit (event, procedure, function) selesai
dibuat. Anda dapat memeriksa kode unit dengan menjalankannya baris per baris
untuk memastikan bahwa proses yang dilakukan berjalan sebagaimana
yangAndainginkan.
2.
2. Integration Testing.
Setelah Anda melakukan Unit dan Component Testing, langkah berikutnya
adalah memeriksa bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi,
bukan lagi sebagai suatu unit yang individual. Sebagai contoh, Anda memiliki
sebuah proses yang dikerjakan oleh dua function, di mana satu function
menggunakan hasil output dari function yang lainnya. Kedua function ini telah
berjalan dengan baik secara individu pada Unit Testing. Pada tahap Integration
Testing, Anda memeriksa hasil dari interaksi kedua function tersebut, apakah
bekerja sesuai dengan hasil yang diharapkan. Anda juga harus memastikan bahwa
seluruh kondisi yang mungkin terjadi dari hasil interaksi antar unit tersebut
menghasilkan output yang diharapkan.
3.
System Testing.
Mencakup testing aplikasi yang telah selesai didevelop. Karena itu,
aplikasi harus terlihat dan berfungsi sebagaimana mestinya terhadap end-user
atau pengguna akhir. Untuk itu, testing dilakukan dengan menggunakan data yang
menggambarkan data yang digunakan oleh pengguna sesungguhnya terhadap aplikasi.
Jika aplikasi Anda didevelop untuk lingkungan yang besar, Anda dapat melakukan
testing pada dua komputer yang berbeda. Komputer yang Anda gunakan sebagai
komputer testing harus terlebih dahulu dikonfigurasi hanya dengan:
1.
Operating system yang dibutuhkan.
2.
Driver yang diperlukan oleh aplikasi.
3.
Aplikasi yang dites.
Dengan menggunakan konfigurasi yang paling minimal dan sederhana, maka
dapat membantu Anda untuk memastikan bahwa permasalahan yang timbul selama
testing berlangsung adalah merupakan kesalahan aplikasi, dan bukan kesalahan
yang berasal dari aplikasi atau software lain.
4.
Acceptance Testing.
Seperti Integration Testing, Acceptance Testing juga meliputi testing
keseluruhan aplikasi. Perbedaannya terletak pada siapa yang melakukan testing.
Pada tahap ini, end-user yang terpilih melakukan testing terhadap fungsi-fungsi
aplikasi dan melaporkan permasalahan yang ditemukan. Testing yang dilakukan
merupakan simulasi penggunaan nyata dari aplikasi pada lingkungan yang
sebenarnya. Proses ini merupakan salah satu tahap final sebelum pengguna
menyetujui dan menerima penerapan sistem aplikasi yang baru. Karena itu pada
tahap ini sudah tidak difokuskan untuk mengangkat permasalahan kecil seperti
kesalahan pengetikan, ataupun kosmetik aplikasi. Hal-hal minor seperti di atas
sudah seharusnya ditangani selama Unit/Component Testing dan Integration
Testing.
5.
Regression Testing.
Merupakan bagian penting dari masing-masing tahap proses testing.
Regression Testing mencakup pengujian ulang terhadap unit, component, proses,
atau keseluruhan aplikasi setelah perbaikan suatu kesalahan dilakukan.
Regression Testing memastikan permasalahan yang terjadi telah ditanggulangi,
dan tidak terdapat permasalahan baru yang timbul sebagai efek perbaikan
tersebut. Selain itu, tahap ini tidak hanya berguna untuk melakukan pengujian
aplikasi, tetapi dapat juga digunakan untuk melakukan pemantauan kualitas dari
output yang dihasilkan. Sebagai contoh, Regression Testing memantau ukuran file,
waktu yang dibutuhkan untuk melakukan suatu tes, waktu yang dibutuhkan untuk
melakukan kompilasi, dan lain sebagainya.