Agak. Jika mereka terlalu mirip, maka ya, itu hal yang buruk. Tes Anda tidak boleh dikodekan dengan cara yang sama dengan kode yang diuji. Jadi, Anda harus mendefinisikan (1) harapan dan (2) implementasi.
Saya suka berpikir bahwa ini mirip dengan akuntansi entri ganda . Sistem akuntansi selalu membuat setidaknya 2 entri (debit dan kredit). Ini adalah ukuran pengecekan kesalahan. Pada akhirnya, debet dan kredit harus seimbang, atau ada kesalahan. Anda tidak dapat memiliki sistem pendeteksian kesalahan tanpa redundansi.
Sebagai contoh, pertimbangkan CRC . Byte CRC Anda adalah bentuk redundansi. Cukup untuk mendeteksi kesalahan kecil pada sinyal. Demikian pula, CD audio memiliki banyak informasi yang berlebihan sehingga mereka masih dapat diputar dengan sempurna jika tergores. Apakah itu melanggar prinsip KERING? Mungkin, tapi begitulah cara Anda mendapatkan keandalan.
Ada cara lain untuk melihatnya juga:
Tes Anda adalah jawaban resmi. Kode yang diuji hanya dihasilkan secara otomatis oleh Anda, kode monyet. Jika kita dapat melakukan pembuatan kode secara otomatis berdasarkan pada tes unit (seperti kita membuat lapisan akses data secara otomatis berdasarkan skema basis data) maka kita tidak akan melanggar prinsip KERING (atau setidaknya bukan prinsip OAOO).