Saya baru-baru ini mengajukan pertanyaan tentang tes dalam pengembangan game - ini BTW bagaimana saya tahu tentang ini. Jawaban di sana menunjukkan beberapa kelemahan spesifik yang aneh:
- Itu mahal untuk dilakukan ketika kode Anda harus sangat digabungkan .
- Sulit untuk dilakukan ketika Anda harus menyadari berbagai platform perangkat keras, ketika Anda harus menganalisis output kepada pengguna dan hasil kode hanya masuk akal dalam konteks yang lebih luas .
- Pengujian UI dan UX sangat sulit .
- Dan terutama, tes otomatis bisa lebih mahal dan kurang efektif daripada sekelompok penguji beta yang sangat murah (atau gratis) .
Poin ke-4 membuat saya ingat beberapa pengalaman saya. Saya bekerja pada perusahaan Scrum yang dikelola sangat ramping, berorientasi XP, di mana unit test sangat dianjurkan. Namun, dalam perjalanannya ke gaya yang lebih ramping, kurang birokratis, perusahaan hanya mengabaikan pembangunan tim QA - kami tidak memiliki penguji. Seringkali pelanggan menemukan bug sepele menggunakan beberapa sistem, bahkan dengan cakupan uji> 95%. Jadi saya akan menambahkan poin lain:
- Tes otomatis dapat membuat Anda merasa bahwa QA dan pengujian tidak penting.
Juga, saya memikirkan hari-hari itu tentang dokumentasi dan merenungkan sebuah hipotesis yang mungkin valid (sampai batas yang lebih rendah) untuk menguji dua. Saya hanya merasa bahwa kode berkembang sangat cepat sehingga cukup sulit untuk membuat dokumentasi yang mengikuti kecepatan seperti itu, jadi lebih berharga menghabiskan waktu membuat kode dapat dibaca daripada menulis dokumentasi yang berat dan mudah usang. (Tentu saja, ini tidak berlaku untuk API, tetapi hanya untuk implementasi internal.) Tes menderita sedikit dari masalah yang sama: mungkin terlalu lambat untuk menulis bila dibandingkan dengan kode yang diuji. OTOH, ini adalah masalah yang lebih kecil karena tes memperingatkan mereka sudah usang, sementara dokumentasi Anda akan tetap diam selama Anda tidak membaca ulang dengan sangat, sangat hati-hati .
Akhirnya, kadang-kadang saya menemukan masalah: pengujian otomatis mungkin bergantung pada alat, dan alat itu mungkin ditulis dengan buruk. Saya memulai sebuah proyek menggunakan XUL beberapa waktu lalu dan, bung, ini menyakitkan untuk menulis unit test untuk platform semacam itu. Saya memulai aplikasi lain menggunakan Objective-C, Cocoa dan Xcode 3 dan model pengujian pada dasarnya adalah sekelompok solusi.
Saya memiliki pengalaman lain tentang kelemahan pengujian otomatis, tetapi kebanyakan dari mereka terdaftar dalam jawaban lain. Meskipun demikian, saya seorang pendukung keras pengujian otomatis. Ini menghemat banyak pekerjaan dan sakit kepala dan saya selalu merekomendasikannya secara default. Saya menilai kerugian tersebut hanyalah detail belaka jika dibandingkan dengan manfaat pengujian otomatis. (Adalah penting untuk selalu menyatakan iman Anda setelah Anda mengomentari ajaran sesat untuk menghindari auto da fé.)