Kami menguji kode kami untuk membuatnya lebih benar (sebenarnya, kecil kemungkinannya akan salah ). Namun, tes juga merupakan kode - mereka juga dapat mengandung kesalahan. Dan jika tes Anda buggy, mereka hampir tidak membuat kode Anda lebih baik.
Saya dapat memikirkan tiga jenis kemungkinan kesalahan dalam pengujian:
Kesalahan logis, ketika programmer salah memahami tugas yang dihadapi, dan tes melakukan apa yang menurutnya harus dilakukan, yang mana salah;
Kesalahan dalam kerangka pengujian yang mendasarinya (mis. Abstraksi mengejek yang bocor);
Bug dalam tes: tes ini melakukan sedikit berbeda dari apa yang dipikirkan oleh programmer.
Ketik (1) kesalahan tampaknya tidak mungkin dicegah (kecuali programmer hanya ... menjadi lebih pintar). Namun, (2) dan (3) mungkin dapat ditelusuri. Bagaimana Anda menangani jenis kesalahan ini? Apakah Anda memiliki strategi khusus untuk menghindarinya? Misalnya, apakah Anda menulis beberapa tes "kosong" khusus, yang hanya memeriksa prasangka penulis uji? Juga, bagaimana Anda mendekati debugging kasus uji yang rusak?