Testtechniken-Praktikum WS 2005/06 1 Besprechung Java-Test/Aufgabe 1 Andreas Höfer Dr. Matthias Müller
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 2 Richtige Antworten pro Aufgabe
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 3 Erreichte Punkte
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 4 Auffälligkeiten in Lösungen zu Aufgabe 1 (1/2) Testmuster für erwartete Ausnahmen nicht beachtet Testmuster für erwartete Ausnahmen nicht beachtet Mangelnde Isolation der Methoden beim Test Mangelnde Isolation der Methoden beim Test LimitExceededException nicht getestet LimitExceededException nicht getestet setUp() / tearDown() überschrieben aber nicht verwendet setUp() / tearDown() überschrieben aber nicht verwendet Testklasse und Testsuite in einer Datei Testklasse und Testsuite in einer Datei main -Methode in Testklasse main -Methode in Testklasse Fehlende Java-Pakete Fehlende Java-Pakete
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 5 Auffälligkeiten in Lösungen zu Aufgabe 1 (2/2) Ungeeignete assert*() -Methoden Ungeeignete assert*() -Methoden Sinnlose Javadocs Sinnlose Javadocs Java Style Guidelines missachtet Java Style Guidelines missachtet Formatierung Formatierung Klassennamen Klassennamen Methodennamen Methodennamen CodeConventions.pdf CodeConventions.pdf CodeConventions.pdf CodeConventions.pdf
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 6 4 Fehler Account -Konstruktor akzeptiert kein Limit von 0 Account -Konstruktor akzeptiert kein Limit von 0 deposit -Methode setzt Kontostand neu deposit -Methode setzt Kontostand neu withdraw -Methode beachtet bei der Überprüfung auf Überschreitung des Kreditrahmens nur den aktuellen Kontostand, abzuhebender Betrag wird nicht eingerechnet withdraw -Methode beachtet bei der Überprüfung auf Überschreitung des Kreditrahmens nur den aktuellen Kontostand, abzuhebender Betrag wird nicht eingerechnet getIntrestRate -Methode liefert falschen Zinssatz für Kontostand > getIntrestRate -Methode liefert falschen Zinssatz für Kontostand > 10000
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 7 Account public Account(int accountNumber, double limit) { if (accountNumber <= 0) { throw new IllegalArgumentException(); } this.accountNumber = accountNumber; //if (limit < 0) { if (limit <= 0) { throw new IllegalArgumentException(); } this.limit = limit; }
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 8 deposit public void deposit(double amount) { if (amount <= 0) { throw new IllegalArgumentException(); } //balance += amount; balance = amount; }
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 9 withdraw public void withdraw(double amount) throws LimitExceededException { if (amount <= 0) { throw new IllegalArgumentException(); } //if (-limit > balance - amount) { if (-limit > balance) { throw new LimitExceededException( "The withdrawal cannot be performed because..."); } balance -= amount; }
Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 10 getIntrestRate public double getIntrestRate() { if (balance < 0) { return 0.1; } else if (balance >= 0 && balance = 0 && balance <= 10000) { return 0.005; } //return 0.01; //return 0.01; return 0.001; }