Bab 9: Metode & Teknik-Teknik Software Testing

0
0
Deskripsi

Oke, di pembahasan kali ini kita akan mengupas sekilas seputar jenis-jenis software testing ada ada di dunia QA. Kita nggak akan membahas setiap jenis testingnya dengan detail. Tapi penjelasan ini diharapkan tidak membuat kita kesulitan untuk memahami secara umum fundamental dari setiap metode dan teknik yang ada.

Sebelum melanjutkan perjalananmu menuju halaman selanjutnya, teman-teman bisa meristirahat sejenak. Kalau sudah, let’s gooo!

A. Metode Software Testing Berdasarkan Pendekatan QA Terhadap Produk

Secara umum, ada 3 metode berdasarkan pendekatan QA dalam melakukan testing, antara lain sebagai berikut:

1. Black Box Testing

Ini merupakan metode testing yang mengedepankan fokus pencarian bug terhadap fungsionalitas yang dilihat oleh end user dari sebuah software, baik dari segi input maupun outputnya. Pada metode ini, seorang QA tidak memperhatikan code beserta logic dari software tersebut.

2. White Box Testing

Merupakan metode testing yang berfokus pada pencarian bug langsung pada source code dan strukturnya dari software tersebut.

3. Grey Box Testing

Grey Box Testing merupakan metode testing yang menggabungkan pendekatan Black Box & White Box. Pada metode ini, di samping seorang QA memahami product knowledge secara umum, juga dituntut untuk memahami arsitektur dari code software tersebut. Metode pengetesan ini merupakan yang terbaik sekaligus menjadi yang paling menantang.

B. Metode Software Testing Berdasarkan Aktor

Tidak selamanya testing hanya dilakukan secara manual oleh tangan manusia. Secara umum, saat ini ada 2 jenis testing berdasarkan siapa yang melakukan, antara lain:

1. Manual Testing

Manual testing adalah metode testing yang kendalinya dipegang secara manual. Simpelnya, pengetesan ini layaknya end user yang secara langsung mencoba sebuah software, tapi tentunya tetap dengan menggunakan prinsip dasar QA. Pengetesan secara manual nggak melulu dilakukan pada sisi fungsional secara UI/UX, tapi juga bisa dilakukan terhadap aspek lain, seperti database dan API dengan menggunakan tools tambahan, seperti PostgreSQL untuk mengetes database, Postman untuk mengetes API, dll. Tentunya dengan tetap dijalankan secara manual oleh manusia. Sehingga kecepatan pengetesan bergantung pada kecepatan manusia itu sendiri.

2. Automation Testing

Automation testing merupakan metode testing yang dilakukan secara otomatis menggunakan test script. Walaupun test script dikoding secara manual oleh manusia, tapi pada saat test berlangsung, seluruh stepnya dijalankan secara otomatis. Pengetesan ini bisa menggunakan berbagai framework automation, seperti Selenium, Cucumber, Cypress, dll. Karena dijalankan secara otomatis, Automation Testing dinilai dapat membantu pengetesan berjalan lebih cepat. Walaupun biaya developmentnya tentu lebih mahal.

Saat ini, pengetesan secara automate tidak hanya berfokus ke sisi fungsional yang terlihat secara UI, namun juga merambah hingga pengetesan API dan hal-hal non fungsional, seperti load testing, stress testing, dll.

C. Teknik-Teknik Software Testing

Selanjutnya, kita bakal mengupas beberapa teknik testing yang saat ini lazim kita jumpai. Pembahasan ini mungkin saja tidak meng-cover semua teknik yang ada.

1. Unit Testing

Merupakan teknik pengetesan yang dilakukan terhadap unit terkecil dari sebuah software. Testing dilakukan langsung pada code yang baru saja dibuat. Saat ini, kebanyakan company membebankan tugas unit testing langsung kepada developer yang membuat code tersebut. Tapi bukan tidak mungkin jika seorang QA bisa saja melakukan Unit Testing. Contohnya, pengetesan terhadap sebuah function dalam backend code untuk fitur save data dalam sebuah aplikasi user management.

2. Integration Testing

Adalah teknik pengetesan untuk melihat apakah interaksi antar unit kecil dari sebuah software sudah bekerja dengan baik. Contoh sederhananya adalah ketika sebuah function pada backend code untuk fitur save tadi dikombinasikan dengan frontend code, lalu dicoba fitur savenya dari sisi interface, apakah sistem benar-benar sudah berhasil melakukan save data setelah button save diklik.

3. System Testing

Teknik ini merupakan pengujian yang dilakukan secara end to end terhadap keseluruhan function yang ada dalam sebuah fitur. Dengan tujuan untuk melihat apakah fitur tersebut sudah berjalan sesuai dengan yang diharapkan. Misalnya, pengujian terhadap fitur create user pada aplikasi user management.

4. Usability Testing

Adalah sebuah teknik pengetesan yang dilakukan terhadap seluruh fitur yang ada dalam sebuah rilis aplikasi guna memastikan bahwa aplikasi tersebut sudah bisa digunakan dengan nyaman. Pengetesan  Contohnya, ketika seorang QA melakukan pengujian pada semua fitur yang ada dalam aplikasi user management.

5. Smoke Testing

Yup. Jenis testing ini tidak ada hubungannya dengan asap. Ini adalah teknik pengetesan secara cepat yang berfokus pada fungsi dan fitur utama dari sebuah software. BIasanya teknik testing ini dilakukan untuk memastikan keadaan production environment dalam keadaan baik secara berkala, atau bisa juga digunakan untuk melakukan pengecekan kesiapan sebuah software untuk dites lebih jauh sebelum resmi dirilis.

6. Regression Testing

Merupakan sebuah testing yang dilakukan secara menyeluruh setelah dilakukan perbaikan pada bug, adanya update fitur, maupun adanya perubahan code, untuk memastikan bahwa perubahan tersebut tidak mempengaruhi fitur-fitur yang sudah ada sebelumnya.

7. User Acceptance Testing

Adalah pengetesan software yang dilakukan langsung oleh client atau pihak ketiga yang ditunjuk oleh client untuk memastikan kembali bahwa software tersebut sudah sesuai dengan goals yang ingin dicapai dan dapat digunakan dengan baik, sebelum nantinya resmi dirilis.

8. Sanity Testing

Sanity Testing adalah pengetesan yang berfokus pada fitur baru yang baru ditambahkan, atau pada bug yang baru saja diperbaiki. Biasanya pengetesan ini dikombinasikan dengan Smoke Testing. Tujuan dari pengetesan ini mirip dengan Smoke Testing, yaitu untuk memastikan perubahan code tidak mengganggu fitur-fitur existing.

9. Ad Hoc Testing

Jenis testing yang satu ini merupakan testing yang dilakukan tanpa persiapan maupun dokumen test case. Fokus dari testing ini adalah berusaha “merusak” software dan menemukan bug dengan cara yang tidak terduga. Ada juga yang menyebut metode pengetesan ini sebagai “Exploratory Testing”. Tidak ada teknik khusus yang dipakai dalam pengetesan ini, cukup diasah dengan melakukannya secara rutin.

10. Stress Testing

Adalah salah satu pengetesan non fungsional yang bertujuan untuk melihat kekuatan server dari sebuah software dengan cara memberikan beban yang besar. Contohnya, ketika sebuah aplikasi belanja online diakses oleh 8 ribu orang sekaligus dalam waktu yang sama, apakah aplikasi tersebut masih berjalan dengan normal, atau justru malah down.

11. Load Testing

Merupakan salah satu non functional test yang bertujuan untuk melihat seberapa cepat response time dari sebuah software. Contohnya, seberapa cepat loading ketika user pindah dari halaman produk ke halaman keranjang, tentunya di luar faktor koneksi internet.

12. Penetration Testing

Merupakan non functional test yang dilakukan untuk menguji keamanan dari sebuah software, terutama yang memerlukan akses ke jaringan internet untuk memastikan software tersebut sulit untuk di-hack.

Selain beberapa teknik software testing yang sudah dijelaskan di atas, tentu masih ada banyak teknik yang lain yang belum dibahas di ebook ini, atau bahkan ke depannya akan lahir teknik software testing yang baru.


 

Karya ini GRATIS! Tapi kamu boleh kok kasih tip biar kreator hepi 🥰

Selanjutnya Bab 10: Test Case
1
0
Apakah konten ini melanggar ketentuan yang berlaku sesuai syarat dan persetujuan? Laporkan