Sometimes, a bug is not an isolated flaw, but represents an error of thinking or planning on the part of the programmer.
Since the 1990s, particularly following the Ariane 5 Flight 501 disaster, interest in automated aids to debugging rose, such as static code analysis by abstract interpretation.