Apa itu Pengujian Asap?

โšก Ringkasan Cerdas

Pengujian Smoke Testing menentukan apakah build baru cukup stabil untuk diuji. Halaman ini menjelaskan kapan harus menjalankannya, siapa yang menjalankannya, bagaimana siklusnya bekerja, dan bagaimana rangkaian pengujian otomatis mengatur alur kerja pengiriman modern.

  • ๐Ÿ” Definisi: Pengujian fungsional (smoke testing) menjalankan serangkaian pemeriksaan minimal pada setiap build baru untuk memastikan tidak ada masalah yang menghambat pengujian lebih lanjut.
  • ๐Ÿ•’ Waktu: Jalankan rangkaian pengujian segera setelah build mencapai lingkungan QA atau staging, sebelum pengujian fungsional dimulai.
  • ๐Ÿ‘ค Kepemilikan: Insinyur QA atau pemimpin QA memilih fungsionalitas kritis dan memutuskan apakah akan menerima atau menolak build tersebut.
  • ๐Ÿงญ Jalur kritis: Pertahankan cakupan yang luas dan dangkal di seluruh proses login, pencarian, entri data, pembayaran, dan logout dalam satu kali proses.
  • ๏ธ Anggaran waktu eksekusi: Pertahankan jumlah pesanan sekitar dua puluh hingga tiga puluh kasus dan sepuluh hingga lima belas menit agar antrean tidak pernah menjadi hambatan.
  • โš™๏ธ Otomasi: Integrasikan rangkaian tersebut ke dalam pipeline CI/CD sehingga setiap commit dan setiap deployment diverifikasi tanpa upaya manual.
  • ๐Ÿšซ Pengendalian pengelupasan kulit: Singkirkan kasus-kasus yang memiliki ketergantungan tinggi dan tidak konsisten, karena gerbang yang tidak dapat diandalkan akan menghancurkan kepercayaan pada hasil pembangunan.

Apa itu Pengujian Asap?

Pengujian Asap adalah proses pengujian perangkat lunak yang menentukan apakah perangkat lunak yang digunakan stabil atau tidak. Pengujian asap merupakan konfirmasi bagi tim QA untuk melanjutkan pengujian perangkat lunak lebih lanjut. Pengujian ini terdiri dari serangkaian pengujian minimal yang dijalankan pada setiap perangkat untuk menguji fungsionalitas perangkat lunak. Pengujian asap juga dikenal sebagai โ€œPengujian Verifikasi Perangkatโ€ atau โ€œPengujian Keyakinan.โ€

Secara sederhana, smoke testing berarti memverifikasi bahwa fitur-fitur penting berfungsi dan tidak ada masalah serius dalam build yang sedang diuji. Ini adalah pengujian regresi mini dan cepat terhadap fungsionalitas utama. Hal ini membantu menentukan apakah build tersebut cacat sehingga pengujian lebih lanjut menjadi sia-sia dan membuang waktu serta sumber daya.

Bandingkan Pengujian Asap Vs Kewarasan

Mengapa kita melakukan Smoke Testing?

Pengujian asap (smoke testing) memainkan peran penting dalam pengembangan perangkat lunak karena memastikan kebenaran sistem pada tahap awal. Dengan cara ini, kita dapat menghemat upaya pengujian. Setelah kita menyelesaikan pengujian asap, barulah kita memulai pengujian fungsional.

  • Semua kendala utama dalam pembangunan akan diidentifikasi dengan melakukan pengujian fungsionalitas dasar (smoke testing).
  • Dengan bantuan pengujian asap, sebagian besar kerusakan dapat diidentifikasi pada tahap awal. pengembangan perangkat lunak.
  • Dengan pengujian asap, kami menyederhanakan deteksi dan koreksi cacat besar.
  • Dengan pengujian asap, tim QA dapat menemukan cacat pada fungsi aplikasi yang mungkin muncul karena kode baru.
  • Pengujian asap menemukan cacat yang paling parah.

Contoh 1: Jendela logging: Dapat berpindah ke jendela berikutnya dengan nama pengguna dan kata sandi yang valid dengan mengklik tombol kirim.

Contoh 2: Pengguna tidak dapat keluar dari halaman web.

Kapan kita melakukan Smoke Testing?

Manfaat tersebut hanya akan terwujud jika pemeriksaan dipicu pada saat yang tepat. Smoke Testing dilakukan setiap kali fungsionalitas baru perangkat lunak dikembangkan dan diintegrasikan dengan build yang sudah ada yang diimplementasikan di lingkungan QA/staging. Ini memastikan bahwa semua fungsionalitas penting berfungsi dengan benar atau tidak. Diagram di bawah ini menunjukkan bagaimana sebuah build mencapai lingkungan QA sebelum smoke testing dimulai.

Dalam metode pengujian ini, tim pengembangan menerapkan build di lingkungan QA. Sebagian kecil kasus uji diambil dan dijalankan oleh penguji terhadap fungsionalitas kritis dari build tersebut. Serangkaian kasus uji ini dirancang untuk mengungkap kesalahan yang ada dalam build. Jika pengujian ini berhasil, tim QA melanjutkan ke tahap selanjutnya. Pengujian Fungsional.

Kegagalan apa pun menunjukkan perlunya menangani sistem kembali ke tim pengembangan. Setiap kali ada perubahan pada build, kami melakukan Pengujian Asap untuk memastikan stabilitasnya.

Example: -Tombol registrasi baru ditambahkan di jendela login dan build diterapkan dengan kode baru. Kami melakukan pengujian asap pada build baru.

Pengujian fungsionalitas dasar (smoke test) bertujuan untuk mengklasifikasikan build agar memenuhi syarat untuk pengujian formal lebih lanjut dan dirancang untuk menunjukkan stabilitas sistem dan kesesuaian dengan persyaratan. Tujuan utamanya adalah untuk mendeteksi masalah besar sejak dini. Sebuah build mencakup semua file data, pustaka, modul yang dapat digunakan kembali, dan komponen rekayasa yang diperlukan untuk mengimplementasikan satu atau lebih fungsi produk.

Apa yang terjadi jika kita tidak melakukan Smoke Testing?

Jika kita tidak melakukan pengujian asap (smoke testing) pada tahap awal, cacat mungkin akan ditemukan pada tahap selanjutnya dan dapat menimbulkan biaya yang mahal. A Cacat Kesalahan yang ditemukan pada tahap selanjutnya dapat menjadi penghambat yang memengaruhi perilisan hasil pekerjaan.

Siapa yang akan melakukan Smoke Testing?

Setelah merilis build ke lingkungan QA, Pengujian Asap dilakukan oleh teknisi QA/pimpinan QA. Setiap kali ada versi baru, tim QA menentukan fungsi utama dalam aplikasi untuk melakukan pengujian asap. Tim QA memeriksa penghenti pertunjukan di aplikasi yang sedang diuji.

Bagaimana cara melakukan Smoke Testing?

Pengujian Asap biasanya dilakukan secara manual meskipun ada kemungkinan untuk mencapai hal yang sama melalui otomatisasi. Ini mungkin berbeda dari satu organisasi ke organisasi lainnya.

Pengujian Asap Manual

Pengujian asap (smoke testing) dilakukan untuk memastikan navigasi jalur kritis sesuai harapan dan tidak menghambat fungsionalitas. Kasus uji fungsionalitas prioritas tinggi diambil dan diuji untuk menemukan cacat kritis dalam sistem. Jika pengujian berhasil, kami melanjutkan pengujian fungsional. Jika pengujian gagal, build ditolak dan dikembalikan ke tim pengembangan untuk diperbaiki.

Tim QA kembali memulai smoke testing dengan versi build baru. Smoke testing dilakukan pada build baru dan akan diintegrasikan dengan build lama untuk menjaga kebenaran sistem. Sebelum melakukan smoke testing, tim QA harus memeriksa versi build yang benar.

Pengujian Fungsional (Smoke Testing) dengan Otomatisasi

Pengujian Otomatisasi digunakan untuk Pengujian RegresiNamun, kita juga dapat menggunakan serangkaian kasus uji otomatis untuk dijalankan terhadap Smoke Test. Dengan bantuan pengujian otomatis, pengembang dapat memeriksa build secara langsung, setiap kali ada build baru yang siap untuk diimplementasikan.

Alih-alih melakukan pengujian berulang secara manual setiap kali perangkat lunak baru diterapkan, kasus uji coba asap yang terekam dijalankan terhadap perangkat lunak tersebut. Hal ini memverifikasi apakah fungsi utama masih beroperasi dengan baik. Jika pengujian gagal, maka mereka dapat memperbaiki perangkat lunak tersebut dan menerapkan ulang perangkat lunak tersebut dengan segera. Dengan ini, kami dapat menghemat waktu dan memastikan perangkat lunak berkualitas untuk lingkungan QA.

Dengan menggunakan alat otomatis, teknisi pengujian mencatat semua langkah manual yang dilakukan dalam pembuatan perangkat lunak.

Siklus Pengujian Asap

Diagram alur di bawah ini menunjukkan bagaimana Smoke Testing dijalankan. Setelah build di-deploy di QA dan smoke test berhasil, kita melanjutkan ke pengujian fungsional. Jika smoke test gagal, kita menghentikan pengujian hingga masalah pada build tersebut diperbaiki.

Praktik Terbaik untuk Mendesain Kasus Uji Coba Awal (Smoke Test)

Mengetahui siklus adalah satu hal; terusping Rangkaian perangkat lunak yang membuatnya dapat diandalkan adalah hal lain. Rangkaian perangkat lunak yang baik hanya layak mendapat tempat jika tetap ringkas, cepat, dan dapat diulang.

  • Pertama-tama, petakan jalur-jalur kritisnya: Cantumkan alur kerja yang membuat produk dapat digunakan secara komersial, seperti login, pencarian, entri data, pembayaran, dan logout. Jika salah satu alur kerja tersebut rusak, maka build tersebut tidak memiliki nilai bagi penguji.
  • Jaga agar suite tetap dangkal tetapi lebar: Sentuh setiap modul utama sekali saja, alih-alih mengeksplorasi satu modul secara mendalam. Nilai batas, data negatif, dan rumusan pesan kesalahan termasuk dalam pengujian fungsional, bukan di sini.
  • Batasi waktu eksekusi: Sebagian besar tim menahan laju permainan antara sepuluh hingga lima belas menit dan membatasi ruang lingkup permainan sekitar dua puluh hingga tiga puluh menit. kasus ujiPerjalanan yang memakan waktu satu jam berhenti menjadi gerbang dan malah menjadi hambatan.
  • Jalankan kasus yang sama pada setiap build: Konsistensi memungkinkan Anda untuk mengaitkan kegagalan dengan kode, bukan dengan perubahan pemilihan pengujian.
  • Singkirkan kasus yang tidak stabil dan memiliki banyak ketergantungan: Kasus yang lolos dan gagal tanpa perubahan kode apa pun akan menghancurkan kepercayaan pada gerbang tersebut. Gunakan stub atau mock untuk layanan pihak ketiga yang tidak stabil di mana kerangka kerja otomatisasi pengujian memungkinkan.
  • Catat satu putusan yang tegas: Setiap kasus memerlukan satu hasil yang diharapkan sehingga pembangunan dapat diterima atau ditolak tanpa perdebatan.
  • Berikan versi pada paket perangkat lunak beserta versi build-nya: Simpan kasus uji coba (smoke case) di repositori yang sama dengan kode aplikasi agar gerbang (gate) selalu sesuai dengan rilis yang sedang diuji.

RevTinjau kembali rangkaian fitur di setiap rilis: hapus kasus untuk fitur yang tidak lagi penting dan tambahkan alur kerja baru yang penting.

Pengujian Fungsional (Smoke Testing) dalam Pipeline CI/CD

Rangkaian perangkat lunak yang dirancang seperti ini cukup murah untuk dijalankan pada setiap commit, yang merupakan tuntutan dari sistem pengiriman data modern. integrasi berkelanjutan server seperti Jenkins Proses ini mengkompilasi kode, menyebarkannya ke lingkungan staging, dan kemudian memicu rangkaian pengujian fungsional (smoke test) sebagai tahap otomatis pertama. Jika berhasil (berwarna hijau), artefak akan dipromosikan ke tahap fungsional dan regresi, sementara jika gagal (berwarna merah), pipeline akan gagal dan pengembang yang melakukan commit akan diberi tahu dalam hitungan menit.

Ada dua tahapan yang umum dilakukan. Tahapan pra-penggabungan (pre-merge) berfungsi untuk menjaga cabang utama dengan memvalidasi setiap permintaan penarikan (pull request), dan tahapan pasca-penyebaran (post-deployment) memastikan bahwa lingkungan yang diterapkan dapat dijangkau dan dikonfigurasi dengan benar. Tim yang menerapkan penyebaran berkelanjutan (continuous deployment) sering menambahkan tahapan ketiga yang lebih ringkas terhadap lingkungan produksi segera setelah rilis.

Karena pipeline mengeksekusi rangkaian pengujian berkali-kali dalam sehari, kasus-kasus tersebut harus non-interaktif, membersihkan diri sendiri, dan independen. Kasus apa pun yang menunggu keputusan manusia atau meninggalkan data pengujian akan memperlambat pipeline.

Keunggulan Pengujian Asap (Smoke Testing)

Berikut adalah beberapa keuntungan yang tercantum untuk Pengujian Asap.

  • Mudah dilakukan dan berjalan dengan cepat.
  • Kesalahan dan cacat kritis mudah dideteksi dan diperbaiki pada tahap awal.
  • Meningkatkan kualitas sistem
  • Mengurangi risiko
  • Kemajuan lebih mudah dinilai.
  • Menghemat upaya dan waktu pengujian
  • Meminimalkan risiko integrasi

โš  Batasan yang perlu diperhatikan: Pengujian asap (smoke test) yang berhasil hanya menunjukkan bahwa build tersebut dapat diuji. Pengujian ini hanya menyentuh fungsionalitas utama secara dangkal, sehingga cacat kecil, kasus khusus, dan fitur yang jarang digunakan tetap tersembunyi hingga pengujian fungsional dan regresi dijalankan. Jangan pernah menganggap hasil pengujian asap hijau sebagai tanda bahwa build tersebut bebas dari cacat.

Pengujian Asap vs Pengujian Kewarasan vs Pengujian Regresi

Ketiganya dijalankan setelah perubahan kode, itulah sebabnya seringkali terjadi kebingungan. Ketiganya berbeda dalam cakupan, kedalaman, dan pertanyaan yang dijawab oleh masing-masing.

Pengujian yang dilakukan di lingkungan pengembangan pada kode untuk memastikan kebenaran aplikasi sebelum merilis build ke QA, ini dikenal sebagai pengujian Sanity. Ini adalah proses yang memverifikasi bahwa aplikasi yang sedang dikembangkan memenuhi persyaratan fungsional dasarnya.

Pengujian kewarasan menentukan selesainya tahap pengembangan dan mengambil keputusan lulus atau tidaknya produk perangkat lunak untuk tahap pengujian selanjutnya.

DASAR PENGUJIAN ASAP PENGUJIAN KEWARASAN PENGUJIAN REGRESI
Cakupan Lebar dan dangkal Sempit dan dalam Lebar dan dalam
Pertanyaan terjawab Apakah versi ini cukup stabil untuk diuji? Apakah perbaikan khusus ini berhasil? Apakah ada sesuatu yang sebelumnya berfungsi kini rusak?
Urutan Pertama, pada setiap pembangunan Setelah pengujian asap berhasil Setelah pengujian kewarasan
Durasi tipikal 10 hingga 15 menit 30 hingga 60 menit Hours hingga hari
Otomatisasi yang sesuai Sangat tinggi Sedang, seringkali manual Sangat tinggi

Dalam praktiknya, pengujian ini berjalan secara berurutan: pengujian fungsional (smoke testing) untuk menerima hasil build, pengujian validasi (sanity testing) untuk memverifikasi perubahan yang diberikan, dan pengujian regresi (regression testing) ketika jadwal memungkinkan.

Contoh Kasus Uji Asap Contoh

Tabel di bawah ini mendokumentasikan rangkaian simulasi asap singkat, satu baris per jalur kritis.

T.ID SKENARIO UJI DESKRIPSI LANGKAH UJI HASIL YANG DIHARAPKAN HASIL SEBENARNYA STATUS
1 Kredensial masuk yang valid Uji fungsionalitas login aplikasi web untuk memastikan bahwa pengguna terdaftar diperbolehkan login dengan nama pengguna dan kata sandi 1.Luncurkan aplikasi
2.Navigasi halaman login
3.Masukkan nama pengguna yang valid
4.Masukkan kata sandi yang valid
5.Klik tombol masuk
Login seharusnya berhasil seperti yang diharapkan Lulus
2 Menambahkan fungsionalitas item Dapat menambahkan item ke keranjang 1.Pilih daftar kategori
2.Tambahkan item ke keranjang
Item harus ditambahkan ke troli Item tidak ditambahkan ke keranjang Gagal
3 Fungsionalitas keluar Periksa fungsionalitas keluar 1. pilih tombol keluar Pengguna harus dapat keluar. Pengguna tidak dapat keluar Gagal

Pertanyaan Umum Demo Slot

Nama tersebut berasal dari bidang teknik perangkat keras, di mana perangkat yang baru dirakit dinyatakan lulus pemeriksaan pertama jika tidak mengeluarkan asap saat dinyalakan. Perangkat lunak meminjam ide tersebut: jika perangkat tersebut lolos pemeriksaan cepat saat dinyalakan, pengujian yang lebih mendalam dapat dimulai.

Sebagian besar tim menyelesaikan antara dua puluh hingga tiga puluh kasus, dengan sepuluh sebagai batas minimum praktis dan lima puluh sebagai batas maksimum. Kendala sebenarnya adalah waktu: jika keseluruhan proses melebihi lima belas menit, kurangi kasus hingga sesuai.

Ya. Alat AI dapat membaca persyaratan, cerita pengguna, atau log lalu lintas produksi dan mengusulkan jalur kritis dengan lalu lintas tertinggi sebagai kandidat kasus uji coba. Seorang insinyur QA tetap harus menyetujui pilihan tersebut, karena model tersebut tidak dapat menilai risiko komersial.

Ini sangat membantu. Lokator yang dapat memperbaiki diri sendiri pada teknologi modern. alat pengujian otomatisasi Mengidentifikasi ulang elemen yang dipindahkan atau diganti namanya alih-alih gagal, yang mengurangi alarm palsu yang membuat gerbang asap tidak dapat diandalkan. RevPeriksa setiap pelacak yang sudah diperbaiki sebelum mempercayainya.

Selenium ke Cypress alur browser sampul, Postman ke SoapUI mencakup titik akhir API, dan JUnit, TestNG, PyTest atau Jest menjalankan rangkaian pengujian. Robot Framework cocok untuk tim yang berfokus pada kata kunci.

Ringkaslah postingan ini dengan: