Apa itu Regresi Perangkat Lunak?

Regresi perangkat lunak adalah bug dalam pemrograman perangkat lunak yang menyebabkan perangkat lunak mundur secara efektif di satu atau lebih area. Ada dua jenis utama regresi perangkat lunak: fungsional dan non-fungsional. Fungsional berarti program bekerja pada kecepatan yang tepat tetapi satu atau lebih fungsi tidak berfungsi, sedangkan non-fungsional berarti semua fungsi berfungsi, tetapi kecepatannya menurun drastis. Suatu peristiwa, seperti peningkatan, biasanya menjadi penyebab regresi. Pengujian regresi memeriksa perangkat lunak untuk memastikan tidak ada regresi yang telah atau akan terjadi.

Regresi perangkat lunak fungsional adalah salah satu cara regresi program dapat memanifestasikan dirinya. Ketika ini terjadi, program akan terus berjalan dengan kecepatan penuh, sehingga pengguna mungkin tidak melihat regresi pada awalnya. Dalam manifestasi ini, ada fungsi-fungsi tertentu yang tidak berfungsi lagi. Misalnya, jika sebuah program dapat mencari file, fungsi itu mungkin tidak lagi berfungsi. Ini dapat memengaruhi fungsi aksesori — yang tidak umum digunakan — atau fungsi utama program.

Regresi perangkat lunak non-fungsional lebih berbahaya dan lebih mudah diperhatikan, meskipun semua fungsi masih berfungsi. Dalam manifestasi ini, regresi membuat program berjalan lebih lambat, atau output program akan berkurang secara signifikan. Kurangnya kecepatan berarti program juga dapat menjadi rentan terhadap pengkodean dan serangan berbahaya, menempatkan program dan komputer yang menjalankannya dalam risiko peretasan. Kecepatannya bisa menjadi sangat lambat sehingga tidak mungkin menggunakan program.

Agar regresi perangkat lunak terjadi, apa yang disebut peristiwa harus terjadi. Peristiwa ini mengubah pengkodean perangkat lunak dan memperkenalkan bug ini, baik secara sengaja — yang jarang terjadi — atau tidak disengaja. Pengembang mungkin mencoba memperbaiki bug atau memperbarui versi tetapi salah memasukkan beberapa kode yang membuat program mundur. Peristiwa yang paling umum adalah peningkatan, karena ini secara langsung memengaruhi pengkodean program. Peristiwa lainnya mencakup perubahan versi atau konfigurasi.

Untuk mengurangi kemungkinan regresi perangkat lunak, pengujian regresi biasanya digunakan. Jenis pengujian ini melihat program baru dan membandingkannya dengan semua versi lama program. Kemudian menjalankan pemrograman melalui tes untuk melihat apakah ada tanda regresi dan untuk memastikan bahwa semua pengkodean berfungsi. Tanda-tanda kode yang mundur atau tidak berfungsi akan dibawa kembali ke pengembang atau pengguna dan akan melaporkan apa yang telah mundur atau di mana regresi ditemukan.