Was ist eigentlich ein Software Bug?

  • Der Begriff Bug ist das englische Wort für Käfer, nur lange nicht so positiv konnotiert wie z.B. ein Marienkäfer.
  • Wenn man nämlich einen Bug findet, funktioniert ein Software Programm nicht so wie gewünscht.
  • Hat eine Anwendung mehrere Fehler, bezeichnet man sie als „buggy“ und eine neue Version einer Software, die einen oder mehrere Fehler behebt, nennt man das „Bugfix“.
  • Man unterscheidet zwischen funktionalen und technischen Bugs: Bei ersteren funktioniert ein Anwendungsfeature nicht wie gewünscht und bei zweiterem ist der Bug ist umfangreicher, da geht ein ganzes System nicht. Außerdem können dann Sicherheitslücken entstehen, die von Hackern ausgenutzt werden.
  • Jegliche Art von Software wie Betriebssysteme, Spiele, Webseiten können von Software Bugs betroffen sein.

Der vermeintlich erste Computer Bug

Der erste “Computer Bug” wurde am 09. September 1947 im Logbuch von der Navi Offizierin Grace Hopper dokumentiert. Das Problem war eine Motte zwischen den Relais im Harvard Mark II Computer, der wie damals üblich ganze Räume füllte. Der Logbuch Eintrag besagt: „First actual case of bug being found.” Fliegen, Motten und andere Insekten wurden durch die Wärme des Inneren der Computer angezogen, verursachten Kurzschlüsse und verursachten Fehlverhalten der Rechner. Hierbei bekommt der Ausdruck „debuggen“ auch eine neue Qualität. Grace Hopper verhalf damit dem Begriff Software Bug zu weiter Verbreitung.

Das Wort wurde nämlich schon früher verwendet, um technische Probleme zu beschreiben: Sei es in der Radarelektronik im 2. Weltkrieg oder auch noch früher gegen Ende des 19. Jahrhunderts von Thomas Edison und auch um 1870 im Telegrapher Jargon.

Was sind Ursachen für Software Bugs?

  • Kommunikation: Wenn der Entwickler die Anforderung falsch versteht oder die Anforderung nicht ausreichend, falsch oder gar nicht spezifiziert ist.
  • Zeitdruck: Nachdem Projekte meist genaue Fristen haben, die einzuhalten sind, entsteht Zeitdruck, der dazu führen kann, dass Flüchtigkeitsfehler entstehen. Zusätzlich kann Zeit fehlen, Software Tests auszuführen
  • Features vor Sicherheit: Für den User sind neue Features natürlich offensichtlicher als eine tief in der Software verborgene Sicherheitsanpassung. Hieraus können bei Vernachlässigung der Sicherheitsstandards bedrohliche Entwicklungen entstehen.
  • Unzureichendes Testen: Softwaretests werden immer noch in Entwicklungsabteilungen vernachlässigt. Das kann mehrere Ursachen haben: Mangel an Zeit, Budgetrestriktionen oder mangelndes Qualitätsbewusstsein.
  • Komplexe Projekte: Projekte werden immer umfangreicher und durch zunehmende Digitalisierung steigen auch die Anforderungen an Anwendungen. In dieser Komplexität der Logik und Zusammenhänge den Überblick zu behalten, ist eine Herausforderung. Durch mehr Codezeilen, ist natürlich auch die Wahrscheinlichkeit für Software Bugs höher.
  • Entwicklungs- vs. Test- vs. Einsatzumgebung: Wenn die verschiedenen Umgebungen in größerem Maße voneinander abweichen, können ungewünschte Effekte entstehen. Ebenso können Datenmenge und Datenart variieren, was zu ungetesteten Szenarios führen kann.
  • Code-Recycling: Wenn Code wiederverwendet wird, kann dieser kopierte Code anders als erwartet laufen, z.B. wenn der kopierte Code nicht ausreichend dokumentiert ist. Oft wird der recycelte Code auch nicht mehr umfassend durchgetestet
  • Last but not least der Faktor Mensch: Wo gearbeitet wird, fallen Späne und jeder hat mal einen schlechten Tag. Also kann es immer Flüchtigkeits- oder Tippfehler geben.

 

Was kann ich mir für eine durchschnittliche Fehlerrate vorstellen?

Software ArtFehler pro 1.000 Zeilen Code
Durchschnittliche ungetestete Software15 bis 50 Fehler
Gute und getestete Software2 Fehler
Space Shuttle Software< 1 Fehler pro 10.000 Zeilen Code

Software Bugs – möglicherweise sehr teuer und sogar gefährlich

Software Fehler können hohen finanziellen Schaden nach sich ziehen, aber auch im schlimmsten Fall Gefahr für Leib und Leben darstellen. Es gibt im World Wide Web große Software Bug Listen, hier ist eine besonders ausführliche: Collection of Software Bugs.

Der „Millenium Bug“ – der bis dato teuerste Software Fehler

Das sog. „Jahr-2000-Problem“ war der bis dato teuerste Software Bug, den es in der Geschichte gegeben hat. Seine Behebung hat geschätzt weltweit 600 Milliarden Dollar gekostet. Sein Ursprung lag in der Angabe von Jahreszahlen in nur zweistelliger Form z.B. 99 für 1999 und eben dann 00 für 2000. Bei Sortierungen wäre dann nach der 99 nichts gekommen, weil die 00 ja ganz nach vorne gerutscht wäre oder das Alter von Nutzern wäre falsch berechnet worden mit beispielweise 00 – 60 Jahre. Die meisten negativen Folgen wurden antizipiert und schon im Vorhinein gelöst. Als ein besonders witziger Fall wurde in den Vereinigten Staaten einem Autofahrer eine Kfz-Steuerforderung für die letzten 100 Jahre über 760.000 Dollar zugestellt.

Wir stehen für Software Qualität und wollen Software Bugs vermeiden. Deshalb haben wir 2001 QF-Test herausgebracht, dem GUI Testtool für Java und Web Anwendungen.

QF-Test steht vor allen Dingen für Regressionstests,  wobei Funktionalitäten überprüft werden, das geht auf granularer Basis bis hin zum kompletten Systemtest. QF-Test selbst testet sich jede Nacht mit rund 25.000 Tests.

Wenn Sie Ihre Software Qualität verbessern wollen, könnte QF-Test eine Option sein.