Apa itu pengujian regresi?

Sekelompok pekerja berdiri di sekitar layar besar, saling memandang

Penyusun

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Apa itu pengujian regresi?

Proses pengujian regresi adalah strategi pengujian perangkat lunak yang digunakan untuk memeriksa bahwa modifikasi kode tidak merusak fungsionalitas yang ada atau menimbulkan bug baru.

Pengujian regresi biasanya dilakukan setelah perbaikan bug diimplementasikan, dan melibatkan pengujian yang dijalankan ulang untuk memastikan fungsi fitur seperti yang diharapkan setelah kode baru ditambahkan.

Salah satu bagian dari pengujian regresi yang membuatnya unik adalah cara pengujian tersebut mengambang bebas di semua tahap pengujian pengembangan perangkat lunak. Pengujian regresi dapat dilakukan kapan saja Anda ingin atau perlu mundur satu langkah dan memastikan bahwa kode baru yang diperkenalkan tidak membahayakan fungsionalitas keseluruhan dan efisiensi alur kerja.

Berita teknologi terbaru, didukung oleh insight dari pakar

Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.

Siapa yang harus menggunakan pengujian regresi?

Setiap organisasi yang kode komputernya menerima pembaruan secara konsisten mungkin perlu menerapkan metode pengujian regresi. Pembaruan kode begitu meluas di seluruh papan sehingga tidak mungkin untuk mendapatkan jumlah total yang akurat dengan keandalan apa pun.

Namun, karena teknologi seperti kecerdasan buatan (AI) dan pipa integrasi berkelanjutan/pengiriman berkelanjutan (CI/CD), banyak perusahaan meningkatkan frekuensi perubahan kode, dengan beberapa perusahaan melakukan pembaruan setiap hari. Itu dapat menambah banyak pengujian regresi.

Salah satu bidang utama di mana pengujian regresi menempati panggung utama adalah selama upaya jaminan kualitas (QA). Misi pengujian regresi dan tim QA sangat mirip—untuk mengoptimalkan pengalaman pengguna dan memberikan data berkualitas tinggi dan perangkat lunak seaman mungkin.

Satu-satunya perbedaan adalah berapa banyak dari total gambar yang dilihat masing-masing. Pengujian regresi menggunakan ruang lingkup yang lebih tepat untuk fokus pada perubahan yang baru saja dilakukan, sementara QA mengevaluasi keseluruhan sistem dan cara kerjanya.

Pengembangan Aplikasi

Bergabunglah: Pengembangan aplikasi Enterprise di cloud

Dalam video ini, Dr. Peter Haumer membahas seperti apa pengembangan aplikasi perusahaan modern saat ini di hybrid cloud dengan menunjukkan berbagai komponen dan praktiknya, termasuk IBM Z Open Editor, IBM Wazi, dan Zowe. 

Pengujian regresi dalam 8 langkah

Teknik pengujian regresi berfungsi sebagai penghalang terhadap perubahan kode yang tidak memiliki kompatibilitas dengan sistem yang menaunginya. Sangat penting untuk memiliki langkah-langkah seperti itu untuk menjaga operasi sistem tetap optimal.

Dalam pengujian regresi, urutan langkah ini (atau yang hampir seperti itu) biasanya diikuti:

  1. Memperkenalkan perubahan kode: Tambahkan kode baru, ubah kode yang ada, atau optimalkan fungsionalitas saat ini dalam kode sumber.
  2. Pertimbangkan dampak yang mungkin terjadi: Analisis aplikasi perangkat lunak untuk mengidentifikasi area yang berpotensi terpengaruh oleh perubahan baru.
  3. Pilih kasus uji: Tim DevOps terlibat dalam pemilihan pengujian berdasarkan kasus pengujian dalam rangkaian pengujian regresi—fokus terutama pada pengujian yang mencakup fungsi-fungsi penting.  Mereka dapat mencakup tes unit (untuk modul individual), tes fungsional (untuk memverifikasi operasi) atau tes integrasi (untuk memastikan komponen bekerja sama).
  4. Memprioritaskan kasus pengujian: Ketika beberapa kasus uji dipilih, tim melakukan prioritisasi kasus uji untuk mengaturnya berdasarkan kepentingan dan potensi dampaknya.
  5. Jalankan kasus uji: Jalankan pengujian secara manual atau gunakan alat pengujian regresi otomatis. Terlepas dari pendekatannya (misalnya, pengujian manual versus pengujian otomatis), andalkan skrip pengujian-template terstruktur yang memandu tindakan penguji.
  6. Melaporkan dan menganalisis hasil tes: Ulasan hasil tes dan data pendukung. Jika pengujian menemukan bug atau kegagalan, segera beri tahu tim pengembangan.
  7. Lakukan perbaikan dan uji ulang kasus: Pengembang menerapkan perbaikan yang diperlukan pada kasus pengujian yang ada dan menguji ulang masalah yang sebelumnya ditandai untuk mengonfirmasi penyelesaian.
  8. Ulangi seluruh proses sesuai kebutuhan: Lanjutkan siklus pengujian regresi sebanyak yang diperlukan untuk memastikan bahwa aplikasi web berfungsi sebagaimana dimaksud.

Jenis pengujian regresi

Untuk topik yang tampaknya mudah, ada sejumlah besar teknik pengujian regresi yang digunakan. Masing-masing memberikan ciri khasnya sendiri pada pengujian regresi.

Pengujian regresi unit

Seperti namanya, bentuk pengujian regresi ini berkonsentrasi pada komponen atau modul (atau “unit”) yang membentuk sistem, dan apakah kesalahan telah dimasukkan ke dalam unit individu itu.

Contoh: Pengembang mungkin memutuskan untuk menambahkan fitur “Lupa kata sandi” ke situs web. Tes regresi unit akan memeriksa untuk memastikan bahwa mekanisme login asli terus bekerja sebagaimana dimaksud, meskipun ada fungsi tambahan.

Pengujian regresi parsial

Ketika tujuannya adalah untuk mengetahui apakah perubahan terbaru hanya memengaruhi sebagian dari sistem yang diperbarui, pengujian regresi digunakan untuk deteksi subset itu dan melakukan diagnostik yang sesuai.

Contoh: Katakanlah sebuah situs web mengintegrasikan gateway pembayaran baru. Pengujian regresi mungkin hanya mengevaluasi sebagian dari fungsionalitas baru dan bagaimana fungsionalitas itu khusus, meninggalkan lebih banyak fitur yang tidak terkait untuk tidak diuji.

Selesaikan pengujian regresi

Di lain waktu, pengujian yang lebih komprehensif diperlukan, seperti mengikuti perubahan kode utama. Pengujian regresi lengkap melibatkan pengujian ulang keseluruhan sistem atau aplikasi untuk memastikan fungsionalitas yang berkelanjutan.

Contoh: Pengembang situs web memutuskan untuk menyertakan galeri produk pilihan. Setelah dibuat, perusahaan melakukan pengujian regresi lengkap pada fungsionalitas galeri baru dan semua kasus uji yang ada, yang semuanya perlu dijalankan kembali.

Pengujian regresi selektif

Pengujian regresi selektif memperkenalkan elemen prediktif ke dalam pengujian regresi. Di dalamnya, kasus pengujian dari rangkaian pengujian dipilih berdasarkan keyakinan penguji bahwa area tersebut akan menerima dampak dari perubahan kode yang dilakukan.

Contoh: Pengembang aplikasi mobile mungkin menemukan bahwa mereka perlu mengintegrasikan dan memperbarui beberapa aspek antarmuka pengguna. Dalam hal ini, para pengembang dapat menggunakan pengujian regresi selektif untuk memastikan stabilitas antarmuka pengguna yang sedang berlangsung.

Pengujian regresi progresif

Semacam pendekatan campuran untuk pengujian mengevaluasi fitur baru dan fitur yang ada. Pengujian regresi progresif memeriksa setiap untuk deteksi bug yang diperkenalkan melalui fungsionalitas baru.

Contoh: Setiap kali organisasi merilis pembaruan baru untuk produk piranti lunak yang ada, perusahaan biasanya terlibat dalam pengujian regresi progresif sebelumnya untuk memastikan bahwa fungsionalitas pembaruan terbaru terus mencerminkan yang ditunjukkan oleh seri.

Pengujian regresi korektif

Memastikan konsistensi data adalah inti dari pengujian regresi korektif. Kasus pengujian dijalankan ulang untuk melihat apakah hasil pengujian serupa terjadi. Pengujian regresi korektif sering dilakukan ketika tidak ada perubahan yang dibuat pada basis kode.

Contoh: Fitur baru tidak selalu apa yang ditambahkan ke perangkat lunak. Terkadang perubahan diperkenalkan untuk memperbaiki kode dan membuatnya berjalan lebih baik. Pengujian regresi korektif digunakan dalam kasus-kasus ketika kode di-refactoring untuk memastikan bahwa refactoring tidak menimbulkan kesalahan kode.

Uji ulang-semua pengujian regresi

Pengujian ulang semua pengujian regresi dianggap sebagai pengujian postfinal. Pengujian ini melibatkan tim pengembangan yang menjalankan tes pada semua kasus uji regresi yang telah dibersihkan, hanya untuk memastikan bahwa semuanya bekerja bersama secara harmonis.

Contoh: Pengujian ulang semua regresi sering digunakan untuk memeriksa perubahan yang dapat menyertainya perubahan arsitektur utama dalam perangkat lunak. Misalnya, aplikasi keuangan yang mengadopsi kerangka kerja baru yang mewakili perubahan substansial dalam operasi.

Pengujian regresi otomatis

Jenis pengujian yang dibahas dapat memakan waktu, itulah sebabnya alat pengujian otomatis sering kali digunakan untuk mempercepat prosesnya. Kecepatan eksekusi pengujian meningkat, bahkan ketika sistem besar terlibat.

Contoh: Pengujian regresi otomatis dapat digunakan setelah pembaruan backend untuk menentukan apakah titik akhir antarmuka pemrograman aplikasi (API) Lanjutkan menghasilkan data dan respons yang benar, yang menandakan Operasi keseluruhan yang benar.

Pengujian regresi manual

Skenario pengujian tertentu memerlukan pemahaman manusia, dan di situlah pengujian regresi manual dilakukan. Dapat dipahami bahwa pengujian manual biasanya memerlukan lebih banyak waktu untuk dilakukan karena sensitivitas khusus yang menjadi dasar dari pekerjaan tersebut.

Contoh: Situs web harus terlihat menarik dan dapat dibandingkan di berbagai platform. Dengan menggunakan pengujian regresi manual, Anda dapat memeriksa daya tanggap situs web setelah melakukan perubahan tata letak.

Pengujian regresi selenium

Pengujian regresi ini memanfaatkan Selenium, kerangka kerja otomatisasi web sumber terbuka. Pengujian regresi selenium meningkatkan stabilitas perangkat lunak dengan mendeteksi regresi lebih awal dan memastikan perubahan baru tidak menggagalkan kode yang ada. Ini sangat berguna dalam situasi dengan pembaruan konstan, seperti integrasi berkelanjutan.

Contoh: Sebuah sistem untuk pemesanan reservasi maskapai penerbangan menambahkan fungsionalitas baru yang memungkinkan pembayaran kartu debit sebagai tambahan dari pembayaran kartu kredit yang sebelumnya diizinkan. Selenium dapat memverifikasi bahwa aliran pembayaran kartu kredit terus beroperasi seperti yang diharapkan.

Pengujian regresi nonfungsional

Kualitas perangkat lunak dinilai berdasarkan beberapa variabel yang ada selain dari siklus hidup pengembangan perangkat lunak (SDLC). Pengujian regresi nonfungsional berusaha untuk memvalidasi keberadaan perangkat lunak berkualitas tinggi yang aman untuk digunakan dan yang mendukung pengalaman pengguna yang baik.

Contoh: Pengembang situs web menambahkan fitur baru, kemudian ingin menentukan bagaimana fungsionalitas baru tersebut berdampak pada kecepatan operasi. Pengujian regresi nonfungsional memeriksa waktu pemuatan. Jika waktu pemuatan tersebut meningkat, itu menunjukkan regresi.

Teknologi apa yang digunakan dalam pengujian regresi?

Aspek kunci lain dari pengujian regresi adalah bagaimana pengujian ini dapat bekerja sama dengan skema pengujian lainnya untuk menghasilkan efek sinergis. Berikut adalah beberapa:

  • Pengujian eksplorasi: Pengujian eksplorasi dapat dikombinasikan dengan pengujian regresi untuk menghasilkan lebih banyak hasil analisis. Keduanya beroperasi secara berbeda: pengujian regresi ditetapkan untuk mengkonfirmasi perilaku sistem yang diharapkan setelah menggunakan tes skrip, sementara pengujian eksplorasi menemukan masalah yang tidak terduga melalui eksplorasi pengembang tanpa skrip. Meskipun demikian, kedua skema pengujian dapat digunakan dengan cara yang saling melengkapi sehingga masing-masing menginformasikan yang lain. Beberapa organisasi menggunakan kombinasi langsung dari keduanya — pengujian regresi eksplorasi — yang memberikan arahan namun fleksibilitas kepada pengembang. Sementara itu, pengujian eksploratif dapat membantu meningkatkan kasus yang sudah ada atau kasus pengujian baru dan mendorong cakupan pengujian yang lebih komprehensif.
  • Pengujian berkelanjutan: Demikian pula, pengujian regresi sering digunakan bersama dengan pengujian berkelanjutan. Seperti namanya, pengujian berkelanjutan melibatkan praktik pengujian konstan yang diintegrasikan ke dalam SDLC lengkap. Pengujian konstan atau berkelanjutan adalah bagian yang mapan dari pengujian regresi. Pengujian regresi tidak dapat benar-benar beroperasi sebagaimana dimaksud tanpa pengujian berkelanjutan. Pelatihan regresi berkelanjutan—campuran keduanya—memberi penguji lebih banyak kebebasan saat memusatkan perhatian pada lingkungan pengujian prioritas tinggi yang mungkin memiliki bug atau masalah lainnya.
  • Pengujian menyeluruh: Teknologi lain yang digunakan dengan pengujian regresi adalah pengujian ujung ke ujung (E2E), yang mengimplementasikan skenario pengguna yang realistis untuk memvalidasi seluruh alur kerja sistem, dari ujung ke ujung. E2E berkonsentrasi pada pengalaman pengguna serta komponen seperti antarmuka, backend, dan basis data terkait. Pengujian regresi dan E2E adalah pengejaran yang saling melengkapi sejauh pengujian regresi bahkan dapat mencakup total pengujian E2E di dalamnya, dan pengujian E2E dapat menunjukkan adanya masalah yang memerlukan remediasi melalui pengujian regresi.

Pengujian regresi dan AI

Efek AI yang luas sangat mencengangkan. Sedikit industri yang begitu banyak berinvestasi dalam AI sebagai sektor teknologi, dan pengujian regresi adalah salah satu dari banyak proses teknologi yang dipercepat secara radikal oleh kekuatan AI.

Ungkapan “dipercepat” tepat karena cara utama AI meningkatkan pengujian regresi adalah dengan memaksimalkan kecepatan di mana berbagai kesimpulannya dicapai. Namun, AI juga meningkatkan akurasi data uji tersebut.

Secara khusus, AI menggunakan algoritmanya untuk membangun kasus pengujian yang relevan dengan menganalisis data pengujian historis, perilaku pengguna, dan perubahan kode. Ini membantu dalam memprioritaskan tes sesuai dengan dampak yang diprediksi. Dan ketika AI menjalankan tes tersebut, mereka dijalankan lebih cepat dan menghasilkan hasil pengujian yang lebih cepat.

AI bahkan meningkatkan sifat dan kualitas tes regresi dengan menggunakan metode deteksi dan penyembuhan mandiri. Ini dapat membuat pengujian otomatis berfungsi dengan baik, bahkan dalam situasi di mana pengembangan Lanjutkan. Pada akhirnya, AI meningkatkan pengujian regresi dengan meningkatkan pengambilan keputusan dan mengotomatisasi tugas, yang mengurangi biaya dan mempercepat waktu ke pasar.

Solusi terkait
IBM Enterprise Application Service for Java

Layanan penyewa tunggal yang dikelola sepenuhnya untuk mengembangkan dan menyediakan aplikasi Java.

Jelajahi Aplikasi Java
Solusi DevOps

Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.

Jelajahi solusi DevOps
Layanan Pengembangan Aplikasi Perusahaan

Pengembangan aplikasi cloud berarti membangun sekali, mengulangi dengan cepat, dan menerapkan di mana saja.

Layanan pengembangan aplikasi
Ambil langkah selanjutnya

Layanan Konsultasi Pengembangan Aplikasi IBM Cloud menawarkan panduan pakar dan solusi inovatif untuk menyederhanakan strategi cloud Anda. Bermitralah dengan para pakar cloud dan pengembangan IBM untuk memodernisasi, menskalakan, dan mempercepat aplikasi Anda, sehingga memberikan hasil yang transformatif bagi bisnis Anda.

Jelajahi layanan pengembangan aplikasi Mulai membangun dengan IBM cloud secara gratis