Apa itu pengujian berkelanjutan?
Pengujian berkelanjutan memainkan peran penting dalam mempercepat pengembangan perangkat lunak, meningkatkan kualitas kode, dan menghindari kemacetan yang merugikan.
Berlangganan Buletin IBM
Latar belakang hitam dan biru
Apa itu pengujian berkelanjutan?

Pengujian berkelanjutan adalah proses menggabungkan umpan balik otomatis pada berbagai tahap siklus hidup pengembangan perangkat lunak (SDLC) untuk mendukung kecepatan dan efisiensi yang lebih baik saat mengelola penerapan.

Pengujian berkelanjutan adalah pendorong penting di balik efektivitas proses CI/CD (integrasi berkelanjutan/pengiriman berkelanjutan) dan memainkan peran penting dalam mempercepat jadwal SDLC dengan meningkatkan kualitas kode, menghindari kemacetan yang mahal, dan mempercepat proses DevOps.

Salah satu prinsip dasar dalam mengembangkan pendekatan DevOps praktis adalah menjembatani kesenjangan antara pengiriman perangkat lunak yang cepat dan pengalaman pengguna yang andal. Namun, cara konvensional untuk mendapatkan umpan balik secara manual pada setiap tahap pengembangan perangkat lunak (yaitu, desain proyek, pengkodean, pengujian, penyebaran, dan pemeliharaan) telah menyebabkan penggunaan sumber daya organisasi yang tidak memadai dan tidak efektif dan, pada akhirnya, siklus integrasi yang lebih lama dan pembaruan produk yang tertunda.

Pengujian berkelanjutan mengatasi ketidakefisienan ini dengan membantu tim DevOps "bergeser ke kiri," memberi mereka umpan balik yang berharga di awal SDLC sambil mengotomatiskan proses pengujian manual dan meminimalkan kesalahan manusia.

Pengujian berkelanjutan bekerja dengan menggunakan alat bantu otomatis untuk memuat skrip QA yang telah ditentukan sebelumnya di semua tahap produksi. Skrip otomatis ini menghilangkan kebutuhan akan campur tangan manusia secara teratur ketika menjalankan tes QA dan secara berurutan memvalidasi efisiensi kode sumber sambil memastikan umpan balik yang relevan segera diberikan kepada tim yang sesuai.

Jika pengujian otomatis gagal, tim pengembangan akan diberitahu pada tahap pengembangan tersebut sehingga mereka dapat melakukan penyesuaian yang diperlukan pada kode sumber mereka "sebelum" berdampak pada tim lain pada tahap SDLC yang berbeda. Jika pengujian otomatis lolos pemeriksaan, proyek secara otomatis diteruskan ke tahap SDLC berikutnya, sehingga memberikan kemampuan kepada organisasi untuk menciptakan model pengiriman berkelanjutan yang memaksimalkan produktivitas dan meningkatkan koordinasi antardepartemen.

Dalam video berikut ini, Eric Minick membahas lebih jauh tentang topik ini:

Manfaat pengujian berkelanjutan

Memasukkan pengujian berkelanjutan ke dalam proses DevOps memberikan beberapa manfaat bagi perusahaan yang sedang berkembang.

Efisiensi yang lebih baik dan penerapan yang lebih berkualitas. Pengujian berkelanjutan menyediakan metode otomatis untuk mengelola jaminan kualitas dan interoperabilitas kualitas antar alur kerja pada setiap tahap siklus hidup pengembangan perangkat lunak (SDLC). Dengan mengintegrasikan loop umpan balik berkelanjutan ke dalam modul pengujian pengguna dan unit, pengembang dapat menerima wawasan yang dapat ditindaklanjuti yang mereka butuhkan untuk meningkatkan kompatibilitas dan kinerja kode mereka sebelum diterapkan. Efisiensi ini mengatasi keterputusan hubungan antara beberapa anggota tim DevOps dan mendukung jadwal pengiriman perangkat lunak yang dipercepat.

Penemuan kesalahan cepat dan remediasi untuk proyek terdistribusi. Arsitektur perkembangan modern saat ini beragam dan berlapis-lapis. Pengujian berkelanjutan membantu tim pengembangan memecah kompleksitas ini dengan menggabungkan solusi pengujian otomatis yang dapat diskalakan yang secara signifikan meningkatkan penemuan kesalahan dan jadwal remediasi.

Peningkatan pengalaman pengguna. Metode pengujian berkelanjutan tingkat lanjut dapat mensimulasikan berbagai kasus penggunaan dan skenario pemecahan masalah yang unik dan mengamati bagaimana pengguna meresponsnya. Wawasan yang diperoleh dari simulasi ini memungkinkan pengembang untuk meniadakan ketidakefisienan dalam antarmuka pengguna lebih awal dan menghindari kejutan yang tidak diinginkan setelah produk fisik digunakan.

Mengurangi biaya karena gangguan bisnis terkait pengembangan. Khususnya dalam sistem besar yang saling terhubung, kesalahan hanya dalam satu modul aplikasi dapat menimbulkan efek riak yang dapat menyebabkan waktu henti yang tidak diinginkan, yang berdampak negatif pada produktivitas dan keuntungan.

Penyedia layanan cloud, misalnya, secara rutin melaporkan kerusakan di salah satu ujungnya yang melumpuhkan seluruh wilayah dan menyebabkan pemadaman yang berlangsung selama beberapa jam. Hal ini bisa sangat merugikan bagi organisasi yang bergantung pada ketersediaan layanan yang tinggi. Pengujian berkelanjutan pada tingkat granular mengidentifikasi kesalahan yang mungkin tidak terlihat dalam sistem perangkat lunak yang besar dan membantu menghindari biaya gangguan bisnis.

Metodologi pengujian berkelanjutan

Pengujian berkelanjutan melibatkan spektrum pengujian yang memastikan keandalan sistem, keamanan, kinerja operasi, dan kegunaan. Pengujian pada spektrum meliputi hal-hal berikut:

  • Pengujian Shift-Left: Pendekatan ini memprioritaskan pengujian perangkat lunak dan sistem di awal siklus hidup pengembangan perangkat lunak (SDLC) untuk membantu mengurangi atau mencegah masalah debugging yang signifikan di kemudian hari.

  • Pengujian Shift-Right: Pendekatan ini memprioritaskan pengujian menjelang akhir SDLC, dengan fokus pada peningkatan pengalaman pengguna, kinerja secara keseluruhan, toleransi kegagalan, dan fungsionalitas.

  • Uji smoke: Pengujian ini, yang dapat dilakukan secara manual atau otomatis, memberikan penyaringan sepintas untuk mengetahui kekurangan yang mencolok dalam perangkat lunak. Meskipun uji smoke tidak rumit dalam konstruksinya, namun tetap memberikan solusi yang cepat dan murah untuk menghilangkan kesalahan besar dalam perangkat lunak.

  • Pengujian unit: Pengujian ini ideal untuk pemeriksaan stres, beban, volume, atau kebocoran memori berskala kecil di seluruh build untuk mengidentifikasi degradasi pada tahap pengembangan awal.

  • Pengujian integrasi dan pengiriman pesan: Pengujian ini memeriksa kesalahan ketika modul perangkat lunak bekerja bersama satu sama lain. Pengujian berkelanjutan memvirtualisasikan ketergantungan yang hilang sehingga tim dapat menguji seberapa baik kinerja proses dan skenario end-to-end secara kolektif. Kode komposit kemudian dikompilasi dan dieksekusi pada saat dijalankan untuk menguji apakah kode tersebut berfungsi seperti yang diharapkan.

  • Pengujian kinerja: Menguji kinerja perangkat lunak aplikasi dengan sendirinya mungkin tidak memperhitungkan perangkat keras dan middleware dalam lingkungan produksi akhir. Pengujian sistem terintegrasi diperlukan untuk menilai kinerja keseluruhan solusi secara efektif.

  • Pengujian fungsional: Bentuk pengujian ini memeriksa apakah pengalaman pengguna memenuhi harapan dan apakah alur kerja fungsional berjalan sesuai kebutuhan di seluruh sistem perangkat lunak. Misalnya, perangkat lunak rantai pasokan harus dapat memperingatkan truk untuk tiba di pabrik ketika persediaan tersedia untuk pengiriman. (Sebaliknya, pengujian non-fungsional berfokus pada kinerja, kegunaan, keandalan, waktu respons, waktu muat, skalabilitas, dll., dan mengukur kesiapan perangkat lunak untuk memberikan pengalaman pelanggan yang diinginkan).

  • Pengujian regresi: Pengujian ini memeriksa apakah ada perubahan dalam kinerja, fungsionalitas, atau ketergantungan setelah kesalahan diperbaiki pada perangkat lunak yang bergantung dan sistem bekerja seperti sebelumnya.

  • Pengujian penerimaan pengguna: Juga disebut pengujian aplikasi atau pengujian pengguna akhir, ini adalah ketika aplikasi diuji dalam situasi dunia nyata oleh beberapa subset pengguna yang dituju. Pengujian beta adalah contoh pengujian penerimaan pengguna.
Virtualisasi dan pengujian berkelanjutan

Sistem dan aplikasi TI memiliki risiko kesalahan yang lebih besar karena karakteristik berikut ini:

  • Keduanya semakin terintegrasi dengan sejumlah teknologi yang sedang berkembang-misalnya, komputasi awan, Internet of Things (IoT), jaringan yang ditentukan oleh perangkat lunak, augmented reality (AR)

  • Keduanya semakin terdistribusi di berbagai wilayah, dengan inti dan tepi yang saling terhubung dengan mulus. Aplikasi untuk kota pintar, mobil otonom, dan utilitas pintar adalah penerima manfaat dari arsitektur semacam itu

Dalam kasus ini, pengujian berkelanjutan lebih menuntut karena pengembangan tidak terjadi di satu lokasi atau perusahaan. Pihak ketiga, termasuk tim jarak jauh, dapat memasok beberapa elemen sistem. Sistem ini dapat diintegrasikan dengan antarmuka pemrograman aplikasi (API). Setiap tim pengembangan beroperasi di lingkungan TI yang berbeda, termasuk perangkat lunak lama. Lingkungan fisik setiap tim tidak mungkin direproduksi untuk pengujian berkelanjutan.

Untungnya, pengujian berkelanjutan dapat divirtualisasikan untuk menciptakan lingkungan pengujian di mana seluruh sistem dapat direproduksi secara virtual dalam satu antarmuka. Lingkungan tervirtualisasi dapat dikonfigurasi ulang dengan mudah untuk menguji sistem TI yang berbeda atau sistem yang telah diubah untuk memperbaiki kesalahan

Peran pengujian berkelanjutan di DevOps

Dalam lingkungan DevOps, pengujian berkelanjutan dilakukan secara otomatis di seluruh siklus hidup pengembangan perangkat lunak (SDLC) dan bekerja sama dengan integrasi berkelanjutan untuk secara otomatis memvalidasi kode baru yang diintegrasikan ke dalam aplikasi.

Alat pengujian sudah dimuat sebelumnya dengan skrip pengujian yang dijalankan secara otomatis setiap kali kode baru diintegrasikan ke dalam aplikasi. Biasanya, pengujian dimulai dengan pengujian integrasi dan bergerak secara otomatis ke pengujian sistem, pengujian regresi, dan pengujian penerimaan pengguna.

Pengujian menghasilkan umpan data dari setiap modul aplikasi, dan umpan dianalisis untuk memastikan bahwa semua modul yang dipengaruhi oleh kode baru berfungsi seperti yang diharapkan. Jika pengujian gagal, kode tersebut akan dikembalikan ke tim pengembangan untuk diperbaiki; kemudian diintegrasikan kembali dan siklus pengujian dimulai dari awal.

Setelah semua tes dilalui, aplikasi atau proyek bergerak ke tahap berikutnya dari SDLC-biasanya pengiriman berkelanjutan.

Lihat penjelasan Andrea Crawford tentang DevOps untuk mengetahui latar belakang topik ini:

Kerangka kerja pengujian berkelanjutan

Kerangka kerja pengujian berkelanjutan diperlukan untuk serangkaian pengujian guna memastikan konsistensi di seluruh modul dalam aplikasi, konektornya (atau API dan kontainer), platform, infrastruktur, dan skenario yang mendefinisikan persyaratannya.

Rangkaian pengujian dapat berurutan (misalnya, pengujian regresi mengikuti pengujian unit) atau dapat juga bersamaan (misalnya, iterasi baru dari sebuah modul disertai dengan pengujian dengan pengujian yang sesuai untuk ketergantungannya).

Kerangka kerja pengujian berkelanjutan menyediakan pembungkus di sekitar rangkaian pengujian sehingga diterapkan secara konsisten dan mempersiapkan jalan untuk otomatisasi. Pengembang ingin memastikan bahwa pendekatan yang mereka ambil untuk sebuah modul tidak berbeda dengan pendekatan yang diterapkan pada modul terkait. Ketika modul berevolusi, begitu juga dengan keseluruhan pengujian untuk perangkat lunak yang saling terkait.

Kerangka kerja menyediakan cara standar untuk memodifikasi skrip dan fungsi dengan mudah untuk pengujian. Otomatisasi akan menuai keuntungan apabila ketidakkonsistenan dalam pengujian dihilangkan, jika tidak, maka akan menghasilkan serangkaian hasil pengujian yang menyesatkan.

Solusi terkait
Solusi DevOps

Gunakan perangkat lunak DevOps yang tangguh untuk membangun, menerapkan, dan mengelola aplikasi cloud-native yang kaya akan keamanan di berbagai perangkat, lingkungan, dan cloud.

Jelajahi solusi DevOps
IBM Rational Test Workbench

Otomatiskan pengujian API, pengujian UI fungsional, pengujian kinerja, dan lainnya; mengidentifikasi kesalahan saat lebih murah untuk diperbaiki.

Jelajahi Rational Test Workbench
DevOps Insights

Tingkatkan kecepatan, kualitas, dan kontrol aplikasi Anda dengan wawasan komprehensif dari integrasi berkelanjutan dan alat bantu pengiriman berkelanjutan yang populer.

Jelajahi DevOps Insights
Sumber daya Pengujian Berkelanjutan untuk Dummies, IBM Limited Edition

Pelajari cara perangkat lunak dan praktik terbaik IBM dapat membantu tim pengembangan, pengujian, dan operasi perangkat lunak mengadopsi pendekatan pengujian berkelanjutan.

Apa itu DevOps?

DevOps mempercepat pengiriman perangkat lunak berkualitas tinggi dengan menggabungkan dan mengotomatiskan pekerjaan pengembangan perangkat lunak dan tim operasi TI.

Apa yang dimaksud dengan integrasi berkelanjutan?

Integrasi berkelanjutan adalah proses di mana pengembang mengintegrasikan kode baru secara rutin sepanjang siklus pengembangan, menambahkannya ke basis kode setidaknya sekali sehari.

Ambil langkah selanjutnya

Apakah Anda siap untuk DevOps? Menghadirkan perangkat lunak dan layanan dengan kecepatan yang diminta pasar mengharuskan tim untuk mengulang dan bereksperimen dengan cepat, dan untuk menerapkan versi baru sesering mungkin, yang didorong oleh umpan balik dan data. Tim pengembangan cloud yang paling sukses mengadopsi budaya dan praktik DevOps modern, merangkul arsitektur cloud-native, dan merakit rantai alat dari alat terbaik di kelasnya untuk meningkatkan produktivitas mereka.

Temukan Solusi DevOps Anda