Softwarequalitätsmanagement
Testing
Softwaretesting beschreibt den Prozess des verifizierens einer Anwendung, oder Teile davon, gegenüber einer gewissen Spezifikation, oder gegen ein erwartetes Verhalten. Durch Testing kann ein hohes Maß an Softwarequalität gewährleistet werden, natürlich nur wenn Tests gut spezifiert und auch ausgeführt werden. Gerade im Bereich des automatisierten Testens kann durch eine hohe Testabdeckung des Quellcodes, regression, verhindert werden.
Eine hohe Testabdeckung, beschreibt, wieviel Code durch Testfälle auch wirklich erreicht wird. Werden alle Verzweigungen in Methoden erreicht? Werden überhaubt alle Methoden getestet?
Unter Regression wird eine Verschlechterung des Quellcodes verstanden. Im Laufe des Entwicklungsprozesses, funktioniert Code, der zuvor funktionert hat, nicht mehr.
Gegeben sei folgendes Beispiel:
public class DateUtils {
public String getDayOfWeeName(int month) {
if(month == 1) {
return "Montag";
} else if(month == 2) {
return "Dienstag";
} else if(month == 3) {
return "Mittwoch";
} else if(month == 4) {
return "Donnerstag";
} else if(month == 5) {
return "Freitag";
} else if(month == 6) {
return "Samstag";
} else if(month == 7) {
return "Sonntag";
}
return "Unbekannt";
}
}
Ein Beispiel für hohe Testabdeckung:
Testarten
Testing kann in verschiedene Arten unterteilt werden, die im folgenden Angeführt werden.