Testen eines Bridge-Spiels

babuschka

Top Contributor
Das war eine ernsthafte Frage, denn das war eine sehr längliche Frage, die ich mühselig formuliert hatte. Vorhin war der Thread doch da...
 

Kiri

Bekanntes Mitglied
Dein Thread ist doch noch da, nur verschoben, du findest ihn unter dem Link, den ich dir bereits gepostet habe!
 

babuschka

Top Contributor
Hab nicht gesehen, dass du ihn verlinkt hast. Hier nochmal die Aufgabe.

[Prinzipiell kanns auch gelöscht werden.]

Es geht um Black-Box-Testen mit JUnit.

Bei dem Testling handelt es sich um Software zum Spielen des Kartenspiels Bridge.
Die Software besteht aus 4 Klassen (PlayingCard, PlayingSet, Hand und BridgePlayer) und 3 Aufzählungen (Suit, Rank und Bid). Die Methode getOpeningBid() in der Klasse BridgePlayer dient dazu, die Stärke eines Blattes mit 13 verschiedenen Spielkarten abzuschätzen und abhängig davon entweder ein Gebot abzugeben oder zu passen.

Zu den möglichen Geboten siehr hier die Tabelle "Alle Gebote im Bridge": http://de.wikipedia.org/wiki/Bridge_(Kartenspiel)


Es sind nur die vorkompilierten class-Dateien und eine zugehörige Doxygen-Dokumentation vorgegeben.




Bei der Bewertung des Blattes gibt es zwei Kriterien:

1.) Kartenpunkte:

Ass = 4 Pkt.
König = 3 Pkt.
Dame = 2 Pkt.
Bube = 1 Pkt.
alle Zahlenkarten = 0 Pkt.


2.) Kartenverteilungen, wobei:

(i) gleichmäßige Vrtlg.

Alle Karten sind gleichmäßig über die vier Farben verteilt, je Farbe gibt es mind. zwei und höchstens fünf Karten.

(ii) einfarbige Vrtlg.

Setzt eine Farbe mit mind. 5 Karten voraus, diese wird als dominant bezeichnet, alle anderen Farben haben höchstens 4 Karten. Wenn die dominierende Farbe genau 5 Karten hat, gibt es eine andere Fare mit genau einer Karte.

(iii) zweifarbige Vrtlg.

Setzt zwei Farben mit mind. 5 Karten voraus, diese heißen dominant.

(iv) dreifarbige Vrtlg.

Setzt drei Farben mit mind. 4 Karten voraus. Diese werden dominant genannt.


Die folgende Übersicht zeigt alle Anforderungen an die Methode getOpeningBid():

ID R001: Das Blatt enthält nicht 13 untersch. Karten, Ausgabe: Invalid

ID R002: zwischen 15 und 22 Pkt. und gleichmäßige Vrtlg., Ausgabe: 1 NT

ID R003: 14-22 Pkt., einfarbige Vrtlg., Ausgabe: 1Pik, wenn Pik dominiert (und analog für die anderen Möglichkeiten)

ID R004: 13-22 Pkt., zweifarbige Vrtlg., Ausgabe: 1Pik, wenn Pik eine der zwei dom. Farben ist, 1Karo, wenn Kato und Herz oder Karo und Pik die dom. Farben sind, 1Herz, wenn Herz und Pik die dom. Farben sind

ID R005: 12-22 Pkt., dreifarbige Vrtlg., Ausgabe: 1Pik, wenn Pik unter den dom. Farben ist, sonst 1Karo

ID R006: 23Pkt. oder mehr, Ausgabe 2Kreuz

ID R007: die Voraussetzungen von R001-R006 sind nicht erfüllt, Ausgabe: PASS



So und gegeben ist jetzt noch Folgendes:
Java:
import org.junit.*;
import org.junit.runner.*;
import org.junit.Assert.*;

public class BridgePlayerTest{

@Test
public void testGetOpeningBid_00(){

BridgePlayer player=new BridgePlayer(){

public Hand getHand(){
PlayingCard cards[]=new PlayingCard[13];
cards[0]=CardSet.CLUB_K;
cards[1]=CardSet.HEART_2;
cards[2]=CardSet.SPADE_2;
cards[3]=CardSet.DIAMOND_A;
cards[4]=CardSet.CLUB_3;
cards[5]=CardSet.CLUB_4;
cards[6]=CardSet.CLUB_5;
cards[7]=CardSet.CLUB_6;
cards[8]=CardSet.CLUB_7;
cards[9]=CardSet.CLUB_8;
cards[10]=CardSet.CLUB_9;
cards[11]=CardSet.CLUB_A;
cards[12]=CardSet.SPADE_A;

return new Hand(cards);
}
};

Assert.assertTrue("Player does not bid 1 club on 15 points and 9-2-1-1 distribution!", player.getOpeningBid() ==Bid.ONE_CLUB);
}

Jetzt käme darunter noch ein zweiter Test und noch mehr (main..), was ich mal weglasse, weil es nicht Teil der Aufgabe ist.


So, wenn ich das richtig sehe, ist dies nun der Fall R003.

Aber was muss ich da nun noch einfügen in den Code?

[Zudem ist es so, daß die Methode getOpeningBid() die Karten nicht als Parameter bekommt, sondern selbst die Methode getHand() aufruft, die man stubben soll. Das bedeutet ja, wenn ich das richtig verstehe, dass ich die Methode irgendwie weghaben muss bzw. ersetzen muss??]


Kann mir jemand vielleicht helfen und mir mal sagen, was nun eigentlich genau zu tun ist.
Ich kenne ja die Klassen (z.B. BridgePlayer) gar nicht und weiß gar nicht, wie die Methode getOpeningBid() dort aussieht (ist ja nur die class-Datei gegeben).
 
B

bygones

Gast
du brauchst ja auch nicht wissen wie die Klassen intern aussehen, wie sie zu benutzen sind musst du wissen, sonst gehts nicht.

dann kannst du fuer jeden deiner use cases einen test schreiben.

zb
ID R001: Das Blatt enthält nicht 13 untersch. Karten, Ausgabe: Invalid

d.h. in deinem test erstellst du dir ein Blatt mit nicht 13 untersch. Karten, dann muss die Ausgabe invalid lauten.... (was anscheinend ueber dieses openingBid passiert).

wie gesagt - was die methoden machen und wie du sie nutzt, dass musst du wissen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
R Teilinhalt eines Strings testen Java Basics - Anfänger-Themen 10
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
U JUnit testen auf SomeException Java Basics - Anfänger-Themen 5
U Sortierung in collections testen Java Basics - Anfänger-Themen 11
Düsseldorf2002 Testen meines Algorithmus Java Basics - Anfänger-Themen 1
nonickatall Ausführbarkeit von Code testen bzw. Remote Debugging Java Basics - Anfänger-Themen 4
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
T Kann jemand kurz das Programm testen? Java Basics - Anfänger-Themen 13
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
J Womit kann ich diese Methode testen? Java Basics - Anfänger-Themen 5
N JUnit und private Methoden testen. Java Basics - Anfänger-Themen 9
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
K Testen in BlueJ Java Basics - Anfänger-Themen 2
J LocalDateTime testen mit Junit Java Basics - Anfänger-Themen 20
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
G Testen mit JUnit Java Basics - Anfänger-Themen 4
J Worte auf Gültigkeit bzgl. Alphabet testen Java Basics - Anfänger-Themen 1
T OOP Zwei Klassen Testen (Arrary Iterieren) Java Basics - Anfänger-Themen 6
A IllegalArgumentException in JUnit testen Java Basics - Anfänger-Themen 3
V ToString-Methode mit JUnit testen(BlueJ) Java Basics - Anfänger-Themen 10
K Testen von Methoden Java Basics - Anfänger-Themen 5
kilopack15 Java Array Skalarprodukt testen Java Basics - Anfänger-Themen 21
K Testen von Methoden Java Basics - Anfänger-Themen 1
S File mit canRead() testen Java Basics - Anfänger-Themen 4
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
I Programm testen, aber wie? Java Basics - Anfänger-Themen 14
S Double und Gleitkommazahlen mit JUnit testen Java Basics - Anfänger-Themen 7
W Testen auf Existenz des Verzeichnisses Java Basics - Anfänger-Themen 4
M Wie private Methoden mit Asserstions testen? Java Basics - Anfänger-Themen 3
P OOP Testen ob 2 Strings gleich sind Java Basics - Anfänger-Themen 8
B Void Mehoden Testen Java Basics - Anfänger-Themen 13
G Java Applet aus Eclipse heraus testen? Java Basics - Anfänger-Themen 6
E Arrays testen Java Basics - Anfänger-Themen 4
D Assertion Error beim Testen Java Basics - Anfänger-Themen 4
T Junit --Exception testen Java Basics - Anfänger-Themen 15
S Sortierverfahren - wie Stabilität testen (im array) Java Basics - Anfänger-Themen 3
M JUnit - nur einzelne Methode testen? Java Basics - Anfänger-Themen 4
W Mit jUnit Array testen? Java Basics - Anfänger-Themen 5
Spin JUNIT Test Case - Problem bei testen Java Basics - Anfänger-Themen 2
H Input/Output Testen ob Datei leer Java Basics - Anfänger-Themen 14
C Methode Testen Java Basics - Anfänger-Themen 12
J Programm in main Methode testen Java Basics - Anfänger-Themen 29
C Klammerung testen Java Basics - Anfänger-Themen 10
turmaline JUnit testen ob keine Exception auftritt Java Basics - Anfänger-Themen 23
xehpuk In JUnit über eigenen Thread testen Java Basics - Anfänger-Themen 3
? Fehler bei Testen Java Basics - Anfänger-Themen 17
vandread Internationalisierung von einem Projekt testen? Java Basics - Anfänger-Themen 2
F Interface Testen Java Basics - Anfänger-Themen 5
T Methoden Testen und schaun ob richtiges Ergebnis? Java Basics - Anfänger-Themen 5
J Testen Java Basics - Anfänger-Themen 3
Houly Setter/Getter MEthoden testen Java Basics - Anfänger-Themen 4
B OOP Testen - JUnit Java Basics - Anfänger-Themen 30
J Hash-Maps / ArrayLists testen Java Basics - Anfänger-Themen 12
A Programm mit Daten einer Datei testen Java Basics - Anfänger-Themen 4
G netzwerkapplikationen testen Java Basics - Anfänger-Themen 7
S Testen ob ein String ein Datum ist. Java Basics - Anfänger-Themen 5
T Testen ob eine Zahl im array doppel vorkommt. Java Basics - Anfänger-Themen 7
G *.java Datei mit Editor starten und testen Java Basics - Anfänger-Themen 6
reno Testen ob String leer ist Java Basics - Anfänger-Themen 12
G testen ob int gleich null Java Basics - Anfänger-Themen 15
G testen ob in String zahl Java Basics - Anfänger-Themen 10
K Program Testen mit Macintosh Java Basics - Anfänger-Themen 2
F Testen ob Double-Variable Java Basics - Anfänger-Themen 13
G SSL Verbindung testen? Java Basics - Anfänger-Themen 1
G Methoden mit Junit testen? Java Basics - Anfänger-Themen 2
M Kostenloser webspace zum testen von Javaprogrammen ? Java Basics - Anfänger-Themen 3
A mit Junit testen Java Basics - Anfänger-Themen 7
G Baum testen Java Basics - Anfänger-Themen 20
H Testen, ob Thread schläft Java Basics - Anfänger-Themen 3
S Testen ob ein Char Array noch nicht belegt ist! Java Basics - Anfänger-Themen 3
M Testen ob ein Sample noch abgespielt wird Java Basics - Anfänger-Themen 6
G wie eine selbstgeschriebene Klasse testen? Java Basics - Anfänger-Themen 15
P programm testen ohne main-funktion Java Basics - Anfänger-Themen 19
B Klammerung testen Java Basics - Anfänger-Themen 12
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben