in

Machine Learning Mengubah Masa Depan Pengujian Perangkat Lunak

Mayoritas tim pengembangan perangkat lunak percaya bahwa mereka tidak menguji dengan optimal. Mereka memahami bahwa efek cacat kualitas sangat besar, dan mereka berinvestasi besar-besaran dalam jaminan kualitas. Tetapi mereka masih belum mendapatkan hasil yang mereka inginkan. Ini bukan karena kurangnya bakat atau upaya, pengujian perangkat lunak yang mendukung teknologi belum efektif.

Tidak mungkin ada rilis yang berhasil sampai perangkat lunak telah diuji dengan benar dan menyeluruh, dan pengujian terkadang memerlukan sumber daya yang signifikan mengingat jumlah waktu dan upaya manusia yang diperlukan untuk menyelesaikan pekerjaan dengan benar. Lubang kebutuhan yang menganga ini baru saja mulai dipenuhi.

Pembelajaran mesin (ML), yang telah mengganggu dan meningkatkan begitu banyak industri, baru saja mulai melakukan pengujian perangkat lunak. Sementara pembelajaran mesin masih tumbuh dan berkembang, industri perangkat lunak semakin banyak menggunakannya, dan dampaknya mulai mengubah secara signifikan cara pengujian perangkat lunak yang akan dilakukan seiring dengan peningkatan teknologi.

Para pengembang tengah menyelami keadaan saat ini dalam pengujian perangkat lunak, meninjau bagaimana pembelajaran mesin telah berkembang, dan kemudian menjelajahi bagaimana teknik ML secara radikal mengubah industri pengujian perangkat lunak itu sendiri.

Pengujian perangkat lunak adalah proses untuk memeriksa apakah perangkat lunak melakukan cara yang dirancangnya. Pengujian jaminan kualitas fungsional (QA), bentuk pengujian yang memastikan tidak ada yang rusak secara fundamental, dilakukan dalam tiga cara: pengujian unit, API, dan pengujian end-to-end (E2E).

Pengujian unit adalah proses untuk memastikan satu blok kode memberikan keluaran yang benar untuk setiap masukan. Tes API memanggil antarmuka antara modul kode untuk memastikan mereka dapat berkomunikasi. Tes ini kecil, terpisah, dan dimaksudkan untuk memastikan fungsionalitas potongan kode yang sangat deterministik.

Sedangkan pengujian E2E memastikan seluruh aplikasi berfungsi ketika semuanya disatukan dan beroperasi. Pengujian E2E menguji bagaimana semua kode bekerja bersama dan bagaimana aplikasi bekerja sebagai satu produk. Penguji akan berinteraksi dengan program seperti yang dilakukan konsumen melalui pengujian inti (di mana mereka menguji apa yang dilakukan berulang kali) dan pengujian tepi (di mana mereka menguji interaksi yang tidak terduga).

Tes ini mempunyai peran yang cukup krusial ketika aplikasi tidak merespons dengan cara yang diinginkan pelanggan, kemudian memungkinkan pengembang untuk melakukan perbaikan.

Pengujian E2E konvensional dapat dilakukan secara manual atau otomatis. Pengujian manual mengharuskan manusia untuk mengklik aplikasi setiap kali diuji. Ini memakan waktu dan rawan kesalahan.

Otomatisasi pengujian melibatkan penulisan skrip untuk menggantikan manusia, tetapi skrip ini cenderung berfungsi tidak konsisten, dan membutuhkan banyak waktu pemeliharaan saat aplikasi berkembang. Kedua metode itu mahal dan sangat bergantung pada intuisi manusia untuk berhasil. Seluruh ruang pengujian E2E cukup tidak berfungsi sehingga siap untuk gangguan oleh teknik AI / ML.

Meskipun ML sering digunakan secara sinonim dengan AI, keduanya tidak sepenuhnya sama. ML menggunakan algoritma untuk membuat keputusan, dan menggunakan umpan balik dari masukan manusia untuk memperbarui algoritma tersebut.