Bir programın geliştirme süreci yukarıdaki gibidir. Yukarıda turuncu renkte gösterilen kutular hata durumlarını ifade eder
Syntax Error: Programın yazılırken programlama dilini yanlış kullanımıyla ilgili hatalardır. Bunlar oldukça basit hatalardır. Düzeltilmesi de aynı şekildedir. Derleyici hatanın bulunduğu satırı tespit eder. Bazı derleyiciler hataları bulup nasıl düzeltilebileceği hakkında fikir bile verebilirler.
Bir derlemede Syntax Error alındı ise kod üretilememiş demektir.
Run-time Error: Programın çalıştırılması esnasında meydana gelen hatadır. Programcı bazı durumları göz önünde bulundurmadığı zaman program işletim sistemi tarafından kesilir. Hata mesajı işletim sisteminin dilindedir. Bu tip hataların nerede, ne zaman, nasıl meydana geleceğini tahmin etmek pek kolay değildir.Run time error Hatanın kaynağı bazen işletim sistemi, yazılım, donanım ya da olmayan bir dosya üzerinde işlem yapmaya çalışmak olabilir.
Logical Error:Bu hata türü en tehlikeli hata türüdür. Programlama esnasında mantık açısından bir şeylerin yanlış düşünülmesinden doğar. Bu tür hatalar test aşamasından ortaya çıkar. Bulunması gereken bazı değerlerin yanlış hesaplanmasından veya yanlış yazılmasından kaynaklanmaktadır. Tespiti programın bazı değerleri yanlış vermesinden kaynaklanmaktadır. Bu hataların düzeltilmesi çok güç olabilir, tasarım aşamasına ya da çözümleme aşamasına dahi dönmeyi gerektirebilir. Kimi zaman bu hataların düzeltilmesi güç olabilir.
Bug: Logical Errorlara verilen adlar bug yani böcektir. Bu tip hataların nedeni net değildir, ara sıra çıkarlar. Yazılımların çoğunda bug denen hatalar oluşur. Bug’suz hata yazmak çok güçtür. Bazen bu bug’lar giderilsin diye yeni sürüm ve güncellemeler ortaya konur.
Debug: Logical Errorları giderebilmek yahut bug’ları tespit edebilmek için yapılan işlemdir. Debug, programı adım adım denetim altına alarak çalıştırır.