Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pengujian chaos adalah teknik yang digunakan untuk menguji ketahanan sistem perangkat lunak dengan memperkenalkan kegagalan atau gangguan yang tidak terduga. Pengujian chaos juga dikenal sebagai rekayasa chaos. Tujuan pengujian chaos adalah untuk mengidentifikasi kelemahan dan meningkatkan ketahanan aplikasi Anda.
Pengujian chaos didasarkan pada gagasan bahwa sistem gagal dengan cara yang tidak terduga. Metode pengujian tradisional sering kali kurang dalam mengungkap mode kegagalan tak terduga ini. Saat Anda menggunakan pengujian chaos, Anda mensimulasikan skenario dunia nyata, seperti crash server, latensi jaringan, atau kelelahan sumber daya. Mensimulasikan perilaku ini membantu mengekspos masalah tersembunyi dan kelemahan yang mungkin tidak terlihat dalam kondisi pengujian normal.
Berikut adalah beberapa poin penting yang perlu diingat tentang pengujian kekacauan:
- Jadilah proaktif. Alih-alih menunggu kegagalan terjadi, pengujian chaos secara proaktif memperkenalkan kegagalan untuk melihat bagaimana sistem merespons. Pengujian chaos memungkinkan Anda mengidentifikasi dan memperbaiki masalah sebelum menjadi masalah besar.
- Dapatkan wawasan. Tujuan pengujian chaos adalah untuk belajar dari kegagalan. Dengan menerapkannya, Anda dapat memperoleh wawasan berharga tentang bagaimana sistem bertingkah di bawah tekanan dan menggunakan informasi tersebut untuk meningkatkannya.
- Mempromosikan upaya tim. Pengujian chaos paling efektif ketika Anda melakukannya secara kolaboratif. Anda ingin masukan dari pengembang, penguji, operasi, dan pemangku kepentingan lainnya. Dengan bekerja sama, Anda dapat mengidentifikasi area terpenting untuk menguji dan memastikan bahwa semua orang diberi tahu.
- Mulailah dari yang kecil dan bangunlah secara bertahap. Ketika Anda pertama kali mulai dengan pengujian kekacauan, ada baiknya untuk memulai dari yang kecil dan secara bertahap meningkatkan kompleksitas pengujian Anda. Memulai dari yang kecil membantu Anda membangun kepercayaan diri dan mengembangkan pemahaman yang lebih baik tentang bagaimana sistem berulah dalam kondisi yang berbeda.
Singkatnya, pengujian chaos adalah teknik canggih yang dapat membantu Anda meningkatkan ketahanan aplikasi Anda. Dengan secara proaktif memperkenalkan kegagalan dan belajar dari mereka, Anda dapat mengidentifikasi dan memperbaiki masalah sebelum menjadi masalah besar.
Pengujian chaos untuk API yang dipanggil aplikasi Anda
Pengujian chaos sering berfokus pada infrastruktur: server, jaringan, dan kontainer. Jika aplikasi Anda bergantung pada API, beberapa kegagalan yang diperhatikan pengguna Anda berasal dari API tersebut: error 500 dari penyedia pembayaran, error 429 dari GitHub atau OpenAI, atau respons yang membutuhkan waktu 8 detik, bukan 80 milidetik. Anda dapat menerapkan ide pengujian chaos yang sama ke dependensi tersebut, pada tingkat respons API individual:
- Kesalahan. Munculkan
5xxkesalahan secara acak, dan periksa apakah aplikasi Anda mencoba ulang operasi yang aman untuk dicoba ulang dan menampilkan pesan yang berguna untuk sisanya. - Pembatasan Kecepatan Kembalikan
429dengan headerRetry-After, dan periksa apakah aplikasi Anda menunggu sebelum memanggil lagi. - Latensi Tunda respons, dan periksa batas waktu, spinner, dan apa yang terjadi ketika respons tidak berurutan.
| Approach | Apa yang Anda temukan | Yang Anda lewatkan |
|---|---|---|
| Tunggu hingga produksi selesai | Kegagalan yang sebenarnya | Semuanya, sampai pengguna mengkliknya |
| Mock API dalam pengujian Anda, atau biarkan agen pengkodean Anda menulis mock | Jika cabang error Anda berjalan | Format kegagalan nyata API, kebijakan coba lagi SDK Anda, dan bagaimana aplikasi yang sedang berjalan berperilaku. Aplikasi Anda juga memerlukan sakelar khusus pengujian untuk mengakses mock. |
| Merusak infrastruktur nyata (misalnya, mematikan layanan atau memblokir lalu lintas jaringan) | Bagaimana sistem Anda mengatasi gangguan | Kegagalan tingkat API seperti kode kesalahan tertentu atau header Retry-After tertentu |
| Mencegat lalu lintas nyata aplikasi Anda dan menyuntikkan kegagalan API | Kesalahan, pembatasan, dan latensi pada URL nyata, dengan laju yang Anda pilih | Kegagalan infrastruktur. Gunakan alat chaos infrastruktur untuk hal-hal tersebut. |
Coba ini di aplikasi Anda
Dev Proxy menyuntikkan kegagalan API ke aplikasi Anda saat terus memanggil URL nyata. Ini berfungsi dengan semua jenis aplikasi, pada tumpukan teknologi apa pun, tanpa mengubah kode Anda. Misalnya, untuk menyebabkan setengah dari permintaan ke API gagal dengan kesalahan acak, ikuti Uji aplikasi saya dengan kesalahan acak, dan untuk membuatnya lambat, lihat Mensimulasikan respons API yang lambat. Untuk menjalankan pengujian yang sama di alur CI Anda, lihat Menggunakan Dev Proxy di CI/CD.