Jawaban sebenarnya di sini adalah: Anda tidak pernah benar-benar tahu pasti.
Paling tidak, untuk kasus nontrivial, Anda tidak bisa memastikan Anda mendapatkan semuanya. Pertimbangkan hal berikut dari artikel Wikipedia tentang kode yang tidak terjangkau :
double x = sqrt(2);
if (x > 5)
{
doStuff();
}
Seperti yang dicatat Wikipedia dengan benar, kompiler yang cerdik mungkin dapat menangkap sesuatu seperti ini. Tetapi pertimbangkan modifikasi:
int y;
cin >> y;
double x = sqrt((double)y);
if (x != 0 && x < 1)
{
doStuff();
}
Akankah kompiler menangkap ini? Mungkin. Tetapi untuk melakukan itu, perlu melakukan lebih dari menjalankan sqrt
terhadap nilai skalar yang konstan. Itu harus mencari tahu yang (double)y
akan selalu menjadi bilangan bulat (mudah), dan kemudian memahami kisaran matematika sqrt
untuk himpunan bilangan bulat (keras). Kompiler yang sangat canggih mungkin dapat melakukan ini untuk sqrt
fungsi, atau untuk setiap fungsi dalam math.h , atau untuk fungsi input-tetap yang domainnya dapat dicari tahu. Ini menjadi sangat, sangat kompleks, dan kompleksitas pada dasarnya tidak terbatas. Anda dapat terus menambahkan lapisan kecanggihan ke kompiler Anda, tetapi akan selalu ada cara untuk menyelinap dalam beberapa kode yang tidak dapat dijangkau untuk set input yang diberikan.
Dan kemudian ada set input yang tidak pernah dimasukkan. Input yang tidak masuk akal dalam kehidupan nyata, atau diblokir oleh logika validasi di tempat lain. Tidak ada cara bagi kompiler untuk mengetahui hal itu.
Hasil akhir dari ini adalah bahwa sementara perangkat lunak yang disebutkan orang lain sangat berguna, Anda tidak akan pernah tahu pasti bahwa Anda telah menangkap semuanya kecuali Anda pergi melalui kode secara manual sesudahnya. Meski begitu, Anda tidak akan pernah yakin bahwa Anda tidak melewatkan apa pun.
Satu-satunya solusi nyata, IMHO, adalah sedapat mungkin waspada, gunakan otomatisasi yang Anda inginkan, refactor di mana Anda bisa, dan terus-menerus mencari cara untuk meningkatkan kode Anda. Tentu saja, itu ide yang baik untuk melakukan itu.