Apa itu Smoke Testing?

Smoke testing, atau dikenal juga sebagai build verification testing atau confidence testing, adalah metode pengujian perangkat lunak yang dilakukan untuk memastikan apakah build baru siap masuk ke tahap pengujian selanjutnya. Tujuan utama dari metode ini adalah memastikan fungsi-fungsi krusial dalam software berjalan dengan baik, tanpa masuk ke detail yang lebih dalam.

Smoke testing biasanya dilakukan di tahap awal sebagai pengecekan dasar untuk menemukan error besar atau kritikal sebelum dilakukan pengujian lebih lanjut. Kalau software lulus smoke test, tim quality assurance (QA) bisa lanjut ke tahap testing berikutnya. Tapi kalau gagal, build tersebut harus dikembalikan ke tim developer untuk diperbaiki.

Tujuan dari smoke testing adalah untuk menemukan kesalahan-kesalahan besar dengan menggunakan test case yang mencakup fitur paling esensial dari software. Biasanya smoke test dilakukan oleh tim QA menggunakan serangkaian pengujian sederhana yang memvalidasi fungsi dasar dari software.

Tanpa adanya smoke testing, bug besar bisa saja lolos dan memicu masalah yang lebih serius di tahap selanjutnya.

Istilah smoke testing sendiri diambil dari proses pengujian hardware zaman dulu, di mana perangkat dianggap lolos jika tidak mengeluarkan asap saat pertama kali dinyalakan. Praktik smoke testing dan daily build sendiri sudah jadi standar industri dan direkomendasikan oleh IEEE, seperti dijelaskan dalam buku Code Complete karya Steve McConnell, mantan editor IEEE sekaligus pakar software engineering.

Jenis-Jenis Smoke Testing

Berikut ini beberapa jenis smoke testing yang umum digunakan:

  • Manual smoke testing: Pengujian dilakukan langsung oleh tester tanpa bantuan tool otomatis. Test case dan skrip harus ditulis dan diperbarui secara manual, baik untuk fitur baru maupun yang sudah ada.
  • Automated smoke testing: Pengujian dilakukan menggunakan tools otomatis, sehingga lebih cepat dan efisien karena test case dapat dijalankan secara otomatis.
  • Hybrid smoke testing: Gabungan dari metode manual dan otomatis. Tester menulis test case, lalu proses pengujiannya dijalankan menggunakan tool otomatis.

Cara Kerja dan Langkah-Langkah Melakukan Smoke Testing

Smoke testing dilakukan oleh tim QA setelah build baru dikirimkan oleh developer. Pengujian bisa dilakukan secara manual atau otomatis dengan skrip yang sudah ada.

Kalau lulus, software akan digabung dengan build lainnya di environment QA atau staging dan lanjut ke pengujian lanjutan seperti unit testing dan integration testing. Kalau gagal, berarti ditemukan bug besar dan build tersebut dikembalikan ke tim dev untuk diperbaiki.

Pendekatan awal seperti ini lebih efektif daripada langsung melakukan pengujian yang rumit sejak awal proses development.

Smoke testing juga memperhatikan perspektif user experience, seperti apakah UI user interface-nya berfungsi, apakah bisa login, atau apakah aksi yang dilakukan sesuai dengan yang diharapkan.

Langkah-langkah umum dalam melakukan smoke testing antara lain:

  1. Tentukan jenis testing: Pilih apakah ingin menggunakan metode manual, otomatis, atau hybrid.
  2. Buat skenario pengujian: Tentukan berapa banyak test case yang dibutuhkan dan definisikan kriteria pass/fail-nya.
  3. Tulis test suite: Buat test case-nya, baik secara manual maupun otomatis.
  4. Jalankan dan dokumentasikan hasil: Saat test dijalankan, pastikan hasilnya direkam.
  5. Analisis hasil test: Kalau gagal, build dikembalikan ke dev. Kalau lulus, lanjut ke tahap functional testing.

Kelebihan Smoke Testing

Beberapa keuntungan dari smoke testing antara lain:

  • Testing bisa diotomatisasi untuk mempercepat proses.
  • Build berikutnya dibangun di atas software yang bebas bug besar.
  • Bisa menemukan bug di awal proses development.
  • Mengurangi risiko saat integrasi kode baru.
  • Smoke test bisa dijalankan sering karena ringan dan cepat.
  • Fleksibel karena bisa manual, otomatis, atau hybrid.
  • Menjamin kualitas sejak awal dengan build yang stabil.

Kekurangan Smoke Testing

Namun ada juga beberapa kekurangan dari smoke testing:

  • Tidak mencakup seluruh fitur — hanya fungsi inti yang diuji.
  • Bug lain bisa saja tidak terdeteksi.
  • Manual testing butuh waktu lebih lama, terutama di proyek besar.

Siklus Smoke Testing

Siklus smoke testing dimulai dari build yang dikirim oleh tim dev ke QA. QA menjalankan smoke test berdasarkan fitur utama yang sudah diprioritaskan. Kalau gagal, build dikembalikan ke developer. Kalau berhasil, lanjut ke proses integrasi dan functional testing. Karena sifatnya mendeteksi error kritikal lebih awal, smoke test dijalankan di awal fase software testing lifecycle.

Contoh Smoke Testing

Contoh smoke test adalah pengujian fungsi login di web app. Tester masuk ke halaman login, input username dan password, lalu coba login. Kalau sukses, berarti fitur lolos. Kalau gagal, dikembalikan ke tim dev.

Contoh lain adalah fitur menambahkan item ke keranjang di e-commerce. Tester coba klik “add to cart” dan lihat apakah item masuk. Kalau tidak, berarti ada bug.

Fitur seperti search bar juga bisa dites. User coba cari file tertentu dan lihat apakah file bisa dibuka.

Otomatisasi dan Smoke Testing

Automated smoke testing bisa menghemat banyak waktu. Kalau testing manual bisa makan waktu setengah hari, versi otomatisnya cuma butuh beberapa menit.

Beberapa tools untuk smoke testing otomatis antara lain Selenium dan PhantomJS. Selenium adalah software open source untuk testing web di berbagai browser dan OS. Sedangkan PhantomJS bisa digunakan dengan CI tools seperti Jenkins dan TeamCity. Resource-nya juga ringan.

Smoke Testing vs Regression Testing

Regression testing digunakan untuk memastikan bahwa perubahan atau pembaruan yang dilakukan pada perangkat lunak tidak merusak codebase yang sudah ada atau fungsi yang telah berjalan dengan baik.

Baik smoke testing maupun regression testing dilakukan oleh tim QA dan dapat dilakukan secara manual atau otomatis. Namun, ada perbedaan signifikan antara keduanya. Smoke testing bersifat lebih permukaan, artinya hanya menguji kestabilan dasar dan kelayakan build secara umum. Sementara itu, regression testing lebih mendalam dan fokus pada pengujian secara rinci untuk memastikan bahwa perubahan tidak menyebabkan masalah pada bagian lain dari aplikasi.

Contoh dari regression testing adalah mengecek satu per satu tautan (link) pada halaman web setelah pembaruan untuk memastikan bahwa semua link tetap berfungsi dengan baik. Sedangkan smoke testing hanya memeriksa apakah halaman tersebut dapat dibuka tanpa error atau gangguan lainnya.

Selain itu, smoke test sering digunakan sebagai dasar untuk menerima atau menolak sebuah build, sedangkan regression test tidak digunakan untuk tujuan tersebut. Smoke test lebih berfungsi untuk memastikan bahwa build sudah cukup stabil untuk dilanjutkan ke tahap pengujian berikutnya, sementara regression test lebih fokus untuk memastikan bahwa perubahan yang dilakukan tidak mengganggu fungsi yang sudah ada.

Perbandingan Smoke Testing dan Sanity Testing

Sanity test dilakukan untuk memastikan bahwa build aplikasi sudah stabil setelah adanya penambahan fitur baru atau perbaikan bug. Fokus utama dari tes ini adalah untuk memeriksa apakah alur utama dan integrasi antar bagian aplikasi berjalan dengan baik.

Walaupun smoke testing dan sanity testing sering dianggap mirip, keduanya sebenarnya memiliki perbedaan yang cukup penting. Smoke testing dilakukan di awal proses pengujian untuk memastikan bahwa build aplikasi secara umum stabil dan bisa diterima untuk dilanjutkan ke pengujian lebih mendalam. Sementara itu, sanity testing dilakukan setelah build sudah dianggap stabil, untuk memverifikasi apakah bug yang telah diperbaiki atau fitur baru yang ditambahkan berfungsi sesuai harapan.

Secara lebih teknis, sanity testing adalah bagian dari regression testing, yang bertujuan untuk memastikan bahwa perubahan kode tidak merusak fungsi yang sudah ada. Sedangkan smoke testing adalah bagian dari acceptance testing, yang bertujuan untuk memeriksa kelayakan dasar aplikasi sebelum melanjutkan ke tes lebih mendalam.

Selain itu, ada juga perbedaan dalam hal dokumentasi dan pelaksanaan tes. Smoke test umumnya terdokumentasi dengan baik, sementara sanity test biasanya tidak. Smoke test bisa dilakukan oleh developer atau tim QA, sedangkan sanity test hanya dilakukan oleh tim QA saja.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *