Prof. Dr. Stephan Kleuker Hochschule Osnabrück Fakultät Ing.-Wissenschaften und Informatik - Software-Entwicklung - Software-Qualität Sommersemester 2011 7. Aufgabenblatt Aufgabe 8 (1 Punkt) Gegeben sei die folgende Methode. Informieren Sie sich über die Überdeckungsvariante MC/DC (Multiple Condition/ecision Coverage) und erklären Sie sie anhand von Überdeckungen der Methode. public boolean und(boolean a, boolean b, boolean c){ if (a & (b | c)) /* keine Kurzschlussauswertung ! */ return true; return false; } Aufgabe 9 (3 Punkte) Markieren sie den Graphen auf der rechten Seite mit def(.), c-use(.), p-use(.). Ergänzen sie die Markierungen für dcu(.,.) und dpu(.,.). Geben sie dann eine möglichst kleine Menge von Testfällen an, die zusammen das a) all defs-Kriterium b) all p-uses-Kriterium c) all c-uses-Kriterium d) all uses-Kriterium erfüllen. Es reicht die Angabe von Knotenfolgen, z. B. (in, 1, 2, 3, 4, 5, 6). in mach2(int x,int y){ 1 int erg=0; 2 if (x<0) 3 erg=-x; 4 if (y<0) 5 erg-=y; 6 return erg+1; Aufgabe 10 (4 Punkte) Gegeben sei folgende Klasse Gegner (auch auf der Web-Seite), deren Methode knoten getestet werden soll. Es liegen keine weiteren Implementierungen anderer Klassen vor, so dass Sie gezwungen sind, Mocks zu schreiben. public class Gegner { private String typ; private boolean hatFK; private int feuerweite; public Gegner(String typ, boolean hatFK, int feuerweite) { this.typ = typ; this.hatFK = hatFK; this.feuerweite = feuerweite; } public int knoten(Alarm alert, Eigenschiff e, int abstand){ int ergebnis=42; if (alert==Alarm.ROT & abstand<feuerweite) ergebnis=e.getMaxKnoten(); if(alert==Alarm.ORANGE & e.wichtigerAuftrag()) ergebnis= e.sicherheit(e.hatAbwehr(hatFK),abstand); return ergebnis; } } Geben Sie möglichst einfache, aber dennoch sinnvoll nutzbare Mock-Klassen an, so dass Sie die folgenden Aufgaben lösen können (Methodenergebnise können ignoriert werden). Prüfen Sie alle Ergebnisse mit CodeCover. i. Geben Sie eine Menge von Testfällen zur C0-Überdeckung von knoten an. ii. Geben Sie eine Menge von Testfällen zur C1-Überdeckung von knoten an, die keine C2Überdeckung ist. Begründen Sie, warum keine C2-Überdeckung vorliegt. iii. Geben Sie eine Menge von Testfällen zur C2-Überdeckung von knoten an, die keine C1Überdeckung ist. Begründen Sie, warum keine C1-Überdeckung vorliegt. iv. Geben Sie eine Menge von Testfällen zur „Strict Condition“-Coverage nach der Defintion von CodeCover von knoten an. Seite 1 von 1