Der Bug
Mit dem Begriff Bug bezeichnet man umgangssprachlich einen Software- oder Programmfehler. Um Bugs aufzuspüren werden spezielle Programme eingesetzt. Bei einem Bug handelt es sich im Allgemeinen um ein Fehlverhalten eines Computerprogramms. Unterschieden wird dabei zwischen Syntaxfehlern, Laufzeitfehlern, Designfehlern, logischen Fehlern und Fehlern im Bedienkonzept. Der Begriff Bug bedeutet übersetzt Käfer und hat vermutlich seinen Ursprung im 19. Jahrhundert, als man davon ausging, dass fehlerhafte Telefonleitungen von Wanzen (englisch: Bugs) befallen waren. Dies wurde später auf fehlerhafte Computer übertragen.
Unvermeidbarkeit von Bugs
Auch wenn Programmierer sehr gewissenhaft arbeiten, lassen sich Bugs nicht vermeiden. Man geht davon aus, dass in 1000 programmierten Zeilen zwei bis drei Zeilen einen Fehler aufweisen, weil entweder die Logik eines Programms nicht korrekt beachtet wurde oder das Programm in eine bereits fehlerhafte Umgebung eingebettet wird. Je unsauberer der Programmierer arbeitet, umso mehr häufen sich die Bugs. Generell lässt sich sagen: Je früher ein Fehler bei der Programmierung begangen und je später er entdeckt wird, umso mehr Schaden richtet er potentiell an und umso schwieriger ist er zu beheben. Deswegen ist es hilfreich, im Voraus möglichst alle wichtigen Schritte der Entwicklung sorgfältig zu planen. Die Entwicklung unterteilt sich in mehrere Phasen, beginnend mit der Planung. Anschließend folgen Analyse, Entwurf, Programmierung, die Testphase und die Programmphase.
Testphasen und Fehlerbehebung
Für die Testphase ist es sinnvoll, das Testprogramm bereits vor der endgültigen Programmierung der eigentlichen Software zu erstellen, so dass nicht der Test auf das Programm zugeschnitten ist, sondern unabhängig arbeiten kann. Um einem Bug auf die Spur zu kommen, setzt man spezielle Programmierwerkzeuge ein, sogenannte „Debugger“. Diese Software-Tools führen Stück für Stück die analysierte Anwendung aus. Dabei zeigen die Debugger alle Variablen an, wodurch sich Abweichungen zwischen Ist- und Sollwert aufspüren lassen.Im Rahmen der Testphase bringen einige Softwareanbieter Betaversionen ihrer Programme heraus. So werden die Programme öffentlich von einem großen Nutzerkreis unter verschiedenen technischen und anwendungsspezifischen Aspekten geprüft und geben dem Anbieter vor der finalen Veröffentlichung Rückmeldung über Fehlfunktionen.
Kontrollstandards und Verifizierung
In einigen Bereichen sind besonders hohe Kontrollstandards üblich, unter anderem im Militärbereich, im Verkehrswesen, bei der Luft- und Raumfahrt, in der Medizin und Pharmazie sowie bei der Sicherheitstechnik, weil dort die finanziellen, menschlichen und wirtschaftlichen Folgen von Fehlfunktionen gravierend wären. Trotz allem ist die Fehlerfreiheit einer Software nahezu unmöglich. In Bereichen mit erhöhten Kontrollstandards gibt es jedoch eine Methode, die Verifizierung genannt wird. Hierbei wird die Korrektheit mathematisch-formal nachgewiesen. Jedoch ist diese Methode sehr aufwändig und wird deswegen nicht standardmäßig angewendet. Daneben gibt es auch die praxistaugliche Verifizierung, welche mit Qualitätsmanagement-Norm ISO 9000 bezeichnet wird. Danach liegt nur dann ein Fehler vor, wenn eine Anforderung nicht erfüllt ist. Erfüllt eine Software alle Anforderungen, die in mehreren Tests geprüft werden, gilt sie praktisch als fehlerfrei.