Hallo
Ich habe hier eine Aufgabe von JAVA und finde leider keinen Ansatz diese zu lösen.
Es geht um folgendes:
*Erstellen Sie ein Programm BruchrechnerTest, mit den Testmethoden addTest, mulTest, divTest, subTest und kuerzenTest ohne Parameter oder Rückgabewert.
Implementieren Sie in BruchrechnerTest eine main-Methode, die alle Testmethoden jeweils einmal aufruft.
Die Testmethoden rufen jeweils ihre entsprechende Methode (also zB addTest die Methode add) in Bruchrechner auf und überprüft, ob das Ergebnis richtig ist. Verwenden Sie zur Überprüfung des Ergebnisses eine Methode void erwarteGleichheit(…), die zwei (oder vier) Parameter hat und ausgibt, ob die beiden Werte (oder Wertpaare) gleich sind oder nicht.
Definieren Sie in den fünf Testmethoden jeweils mindestens drei interessante Testfälle, wie negative Werte, sehr große oder sehr kleine Werte und die Null. Probieren Sie, ob Ihr Programm in allen Fällen richtig arbeitet, indem Sie alle Tests automatisch durchführen. Ihr Ziel als Tester ist es, scheiternde Tests zu schreiben, also Fälle zu finden, in denen Ihr Programm nicht richtig arbeitet.
Hier habe ich schon den Bruchrechner:
Kann mir hierzu jemand Tipps geben diese Aufgabe zu meistern?
Danke schonmal
Ich habe hier eine Aufgabe von JAVA und finde leider keinen Ansatz diese zu lösen.
Es geht um folgendes:
*Erstellen Sie ein Programm BruchrechnerTest, mit den Testmethoden addTest, mulTest, divTest, subTest und kuerzenTest ohne Parameter oder Rückgabewert.
Implementieren Sie in BruchrechnerTest eine main-Methode, die alle Testmethoden jeweils einmal aufruft.
Die Testmethoden rufen jeweils ihre entsprechende Methode (also zB addTest die Methode add) in Bruchrechner auf und überprüft, ob das Ergebnis richtig ist. Verwenden Sie zur Überprüfung des Ergebnisses eine Methode void erwarteGleichheit(…), die zwei (oder vier) Parameter hat und ausgibt, ob die beiden Werte (oder Wertpaare) gleich sind oder nicht.
Definieren Sie in den fünf Testmethoden jeweils mindestens drei interessante Testfälle, wie negative Werte, sehr große oder sehr kleine Werte und die Null. Probieren Sie, ob Ihr Programm in allen Fällen richtig arbeitet, indem Sie alle Tests automatisch durchführen. Ihr Ziel als Tester ist es, scheiternde Tests zu schreiben, also Fälle zu finden, in denen Ihr Programm nicht richtig arbeitet.
Hier habe ich schon den Bruchrechner:
Java:
class Bruch{
public static void main(String[] args) {
int z1 = Integer.parseInt(args[1]);
int n1 = Integer.parseInt(args[2]);
int z2 = Integer.parseInt(args[3]);
int n2 = Integer.parseInt(args[4]);
int[] e = new int[2];
if( n1 != 0 || n2 != 0){
if(args[0].equals("add")){
e = add(z1,n1,z2,n2);
ausgeben(e);
}
if(args[0].equals("sub")){
e = sub(z1,n1,z2,n2);
ausgeben(e);
}
if(args[0].equals("mul")){
e = mul(z1,n1,z2,n2);
ausgeben(e);
}
if(args[0].equals("div")){
if(z2 != 0) {
e = div(z1,n1,z2,n2);
ausgeben(e);
} else{
System.out.println("Man darf nicht durch 0 teilen");
}
}
} else {
System.out.println("Man darf nicht durch 0 teilen");
}
}
static int[] eukl(int ergZ,int ergN){
int a = Math.abs(ergZ);
int b = Math.abs(ergN);
int f;
if(a==0) {
f=b;}
else{
while(b !=0){
if(a>b){
a = a-b;}
else{ b = b-a; }
}
f=a;
}
return new int[] {ergZ/f, ergN/f};
}
static int[] add(int z1,int n1,int z2,int n2){
int ergZ =z1 * n2 + n1 * z2;
int ergN = n1 * n2;
int[] z = eukl(ergZ,ergN);
return z;
}
static int[] sub(int z1,int n1,int z2,int n2){
int ergZ =z1 * n2 - n1 * z2;
int ergN = n1 * n2;
int[] z = eukl(ergZ,ergN);
return z;
}
static int[] mul(int z1,int n1,int z2,int n2){
int ergZ =z1 * z2;
int ergN = n1 * n2;
int[] z = eukl(ergZ,ergN);
return z;
}
static int[] div(int z1,int n1,int z2,int n2){
int temp = z2;
z2 = n2;
n2 = temp;
int ergZ =z1 * z2;
int ergN = n1 * n2;
int[] z = eukl(ergZ,ergN);
return z;
}
static void ausgeben(int[]e){
System.out.println(e[0]+"/"+e[1]);
}
}
Danke schonmal