Lebih dari satu tahun terakhir, saya telah mendorong tim saya menuju mode pengembangan rilis-awal-rilis-sering (AKA: Pengembangan Aplikasi Cepat, bukan Agile). Untuk informasi lebih lanjut tentang cara kami menutup bangunan, lihat jawaban saya di sini: Cara sederhana untuk meningkatkan kualitas rilis di lingkungan RAD
Ketika kami mengadopsi RAD, orang-orang cukup mandiri dan mereka melakukan pengujian unit terlebih dahulu; tes terintegrasi terjadi jauh kemudian dalam proses. Itu adalah proses alami bagi mereka tanpa banyak penegakan formal. Sekarang situasinya sangat berbeda:
Seluruh platform terintegrasi dengan baik dengan build / release yang mapan di sisi klien tanpa hot spot.
Persyaratan fungsionalitas baru terus datang dan kami membuatnya secara bertahap seiring berjalannya waktu.
Keseluruhan dinamika sistem sangat penting karena walaupun kelompok-kelompok pembangunan independen mungkin mengikuti proses dengan benar, kegagalan-kegagalan besar muncul karena rumit, keadaan yang tidak jelas.
Banyak bagian dari sistem melibatkan algoritma baru dan input penelitian sehingga tantangan (dan karenanya mekanisme untuk pengujian) tidak selalu diramalkan dengan benar, seperti pengujian fitur dalam perangkat lunak yang terdefinisi dengan baik.
Baru-baru ini, saya mencoba untuk mendapatkan gambaran keseluruhan yang lebih baik untuk melihat apakah kita perlu perbaikan proses. Ketika saya duduk dengan tim saya, banyak dari mereka menolak: "Kami tidak melakukan pengujian unit lagi!" sementara yang lain berpikir kita tidak boleh mulai sekarang karena itu tidak akan pernah efektif.
Apakah tes unit berguna dalam sistem yang relatif matang? Haruskah kita setidaknya perlu menimbang ruang lingkup pengujian tergantung pada jatuh tempo unit? Apakah pengujian unit akan memperlambat laju pengembangan? Apakah ada kebutuhan untuk mengevaluasi pengujian unit dengan cara yang berbeda?
Apa praktik terbaik pengujian untuk platform dewasa di lingkungan rilis-awal-rilis-sering?