Pelatihan Tertulis DevOps
Mengapa Organisasi DevOps Anda Memerlukan Otomatisasi Pengujian?
Jika bagian pengiriman perangkat lunak belum memiliki otomatisasi pengujian yang memadai, kemungkinan besar pengembangan dan pengujian tidak selaras. Pengembang baru mendapat umpan balik tentang mutu pekerjaan ketika sudah mengerjakan tugas lain. Mereka biasanya kehilangan kaitan sebab-akibat antara kode yang ditulis atau tidak ditulis dan cacat yang muncul. Produktivitas menurun karena mereka harus beralih kembali ke konteks ketika cacat muncul. Ketika umpan balik terlambat, hubungan antara sistem dan cacat menjadi rumit dan tidak jelas. Sulit mengharapkan perbaikan bermutu yang bukan sekadar solusi sementara.
Tanpa otomatisasi pengujian, organisasi DevOps membutuhkan lebih banyak waktu dan biaya untuk memberikan produk dan layanan yang bermutu. Model ini tidak dapat diperluas bagi organisasi teknologi mana pun pada abad ke-21, apa pun bidang usahanya.
Anda Dapat Mengotomatiskan Pengujian,
tetapi Tidak Dapat Mengotomatiskan Penciptaan Mutu
Tim DevOps sebaiknya mengotomatiskan sebanyak mungkin kasus uji. Pengujian dapat diotomatisasi, tetapi kemampuan berpikir tim untuk membangun mutu tidak dapat diotomatisasi. Jangan habiskan tenaga untuk pekerjaan berulang yang dapat dilakukan perangkat lunak.
Prinsip DevOps untuk Otomatisasi Pengujian yang Baik
- Otomatisasi pengujian seharusnya memberikan umpan balik yang cepat dan dini mengenai mutu pekerjaan Anda.
- Pengujian harus menghasilkan hasil yang konsisten, deterministik, dan dapat diulang jika dijalankan dalam kondisi yang sama.
- Pengujian tidak boleh menghasilkan positif palsu.
- Sedikit kasus uji otomatis yang andal lebih baik daripada banyak pengujian manual yang tidak andal dan dapat memberikan hasil berbeda meski dijalankan dalam kondisi yang sama.
- Otomatisasi pengujian harus terlebih dahulu memvalidasi fitur dan manfaat utama yang diberikan sistem kepada klien internal dan eksternal. Otomatisasi pada tingkat ini pun jauh lebih baik daripada tidak ada sama sekali.
- Setelah itu, otomatisasikan sebanyak mungkin kasus uji untuk memanfaatkan kemampuan anggota tim sebaik mungkin.
- Dalam otomatisasi pengujian, hindari umpan balik yang lambat dan hanya diberikan secara berkala. Anda memerlukan umpan balik cepat setiap kali Anda atau pengembang mencoba memasukkan kode ke trunk.
- Jika pengujian otomatis kurang cepat, cari cara mempercepat pengujian, perangkat lunak, atau keduanya. Ini penting untuk platform pengiriman berkelanjutan dan pipeline penerapan yang andal serta mutu layanan yang baik bagi klien. Jalankan pengujian secara paralel agar lebih cepat.
- Pertimbangkan pengembangan berbasis pengujian. Tulis pengujian otomatis terlebih dahulu, lalu bangun perangkat lunak.
Otomatisasi Pengujian Mendukung Pengiriman Berkelanjutan dan Pipeline Penerapan
DevOps memberi pengembang kemampuan menerapkan kode ke produksi. Namun, pengamatan terhadap tim DevOps pada tahap awal menunjukkan bahwa walaupun pengembang cepat memasukkan kode ke trunk dan menutup tugas serta tiket, mereka enggan menekan tombol rilis ke produksi. Mereka takut merusak sistem produksi dan disalahkan.
Pengembang baru dapat mengatasi kekhawatiran ini setelah tim DevOps membangun cakupan yang menyeluruh dan andal dengan pengujian otomatis.
Sebagai contoh, saat pengembang Google memasukkan kode ke trunk, kode menjalani pemeriksaan awal seperti analisis statis, duplikasi, dan cakupan pengujian, lalu divalidasi dengan hampir satu juta kasus uji otomatis. Jika semua lolos, build dibuat dari trunk, diterapkan ke produksi, dan direplikasi ke semua server produksi lainnya. Dengan cara ini, 5.000 tim kecil dan independen di Google tetap produktif dan melakukan puluhan ribu penerapan ke produksi setiap hari. Tanpa otomatisasi pengujian, hal ini tidak mungkin dilakukan.
Umpan balik yang cepat dan andal adalah satu-satunya cara menjaga keamanan dan integritas pipeline. Jika pipeline terhenti karena kasus uji otomatis gagal, perbaiki kode dan konfigurasi yang salah sebelum memasukkan pekerjaan lain ke trunk. Setiap kali menemukan kesalahan yang seharusnya dapat diketahui dan dicegah dengan kasus uji otomatis, buat dan tambahkan kasus uji tersebut ke repositori pengujian otomatis.
Jenis Pengujian yang Dapat Diotomatisasi
- Pengujian unit: Memvalidasi fungsi, kelas, atau modul tertentu dalam aplikasi.
- Pengujian penerimaan: Memvalidasi fitur dan manfaat yang diberikan aplikasi kepada klien.
- Pengujian integrasi (layanan): Memvalidasi interaksi antar-aplikasi dan alur layanan dari awal hingga akhir.
- Pengujian kinerja dan tekanan: Memvalidasi apakah dan bagaimana layanan menangani peningkatan beban klien yang diperkirakan maupun tidak terduga. Ini sangat penting bagi layanan yang paling sering digunakan.
- Pengujian nonfungsional: Memvalidasi keamanan, ketersediaan, kapasitas, dan skalabilitas.
Jika sulit mengotomatiskan pengujian unit dan penerimaan tetapi tim sangat bergantung pada pengujian integrasi otomatis, komponen arsitektur Anda mungkin terlalu saling bergantung. Temukan cara mengurangi ketergantungan tersebut.
KESIMPULAN
Bab ini membahas pentingnya otomatisasi pengujian dalam DevOps. Otomatisasi memungkinkan pengiriman yang aman dan cepat.
Baik organisasi Anda mengadopsi DevOps maupun tidak, tanpa otomatisasi pengujian tidak mungkin membangun organisasi TI berkelas dunia yang sukses, produktif, menguntungkan, dan mampu melayani klien internal serta eksternal dengan baik.
