Zeitplanung für JUnit-Tests?

Verjigorm

Top Contributor
Hallo,

ich habe grad folgendes Problem:

Ich soll 250 JUnit Tests realisieren und planen, wie lange diese dauern werden.
Die zu testenden Funktionen sind alle nicht sehr komplex. Um die Zeit zu schätzen habe ich mal einige Tests gemacht und auf die Uhr geschaut.
Für eine grobe Zeitschätzung hätte ich 20min pro JUnit-Test getippt.
TestFunktion anlegen, Test ausarbeiten, testen, eventuell Bugs fixen, Retest etc.

Nun ist das meinem Chef ddefinitiv zu lange für "simple" JUnit-Tests.
Meint ihr die Schätzung ist so ok, gibts da irgendwo irgendwelche groben Vorgaben/Guides/Planungen dazu? Oder habt ihr eigene Erfahrungen damit gemacht?

mfg Verjigorm
 
B

bygones

Gast
redest du hier vom alleinigen ausführen ?

dann sollten wir eher von 250sekunden reden.

redest du hier vom schreiben ?

dann hängst es von deinem Testkönnen, deiner Nähe zum testenden Code und der Testbarkeit des Codes ab.

da würde ich dann schonmal mann-Tage veranschlagen

Nun ist das meinem Chef ddefinitiv zu lange für "simple" JUnit-Tests.
gibt ein paar möglichkeiten:

a) Chef hat keine Ahnung von Tests und für ihn ists einfach n simples gehacke
b) der Code ist so trivial dass Tests eher übertesten
c) der Code ist so gut geschrieben, dass er hervorragend testbar ist, dann ists wirklich simpel
d) Chef hat keine Ahnung von Tests und der Code ist typisches Wirrwarr.... dann brauchsts es nicht mal versuchen.

Aus Erfahrung ists c) schonmal nicht :)

Daher - eine Abschätzung wielange das dauert hängt von den ganzen Faktoren ab. Aber für 250 gute JUnit tests sind 20 viel viel viel zu wenig (höchstens du hast vor getter und setter zu testen....)
 
Zuletzt bearbeitet von einem Moderator:

fastjack

Top Contributor
"simple" JUnit-Tests.

Hätte dein Chef mal vorher nachgedacht, müßtet ihr jetzt nicht nachtesten. Nachtesten dauert in der Regel immer länger, weil man immer mehr Bugs findet.
Der normale Weg bei der Entwicklung ist eigentlich:

1. Rümpfe für Methoden schreiben
2. Tests schreiben, die diese Rümpfe nutzen
3. Die Methoden gegen diese Tests implementieren

Ich würde dir empfehlen, einfach Tests für die hoffentlich vorhandenen Spezifikationen der Methoden zu schreiben. Du sollst ja nur die Tests realisieren und nicht dafür sorgen, das der Unterbau bugfrei ist, das können dann die anderen machen ;)
 
M

maki

Gast
IMHO: Es gibt keine "simplen" Unittests

Unittests sind auch Javacode.
Die Vorgaben aus der Literatur sind eindeutig: Für "richtig" geschriebenen Produktivcode sollte man nochmals 10-15% der Zeit für Unittests einrechnen.

Das setzt aber einiges voraus, zB. muss die Infrastruktur (Frameworks, Utils/Superklassen) fürs das testen schon bestehen, das schreiben dieser ist nciht in die 10-15% eingerechnet, und der zu testende Code muss wirklich einfach zu testen sein, d.h. die Struktur des Prod. Codes muss "passen".
Mit TDD ist das kein Problem, aber dass ist ja hier offensichtlich nicht der Fall.

Ein sehr gutes Buch zu diesem Thema ist imho "XUnit Test Patterns - Refactoring Testcode".

Nachtrag:
Was ist denn genau mit "TestCase" gemeint?
Zur Laufzeit ist jede Testmethode ein Testcase, zur Programmierzeit meint man aber meist die Klasse(die zur Laufzeit zur Suite wird) die Testmethoden enthält, die "Dualität des TestCases" eben ;)
 
Zuletzt bearbeitet von einem Moderator:

Verjigorm

Top Contributor
Hätte dein Chef mal vorher nachgedacht, müßtet ihr jetzt nicht nachtesten. Nachtesten dauert in der Regel immer länger, weil man immer mehr Bugs findet.
Der normale Weg bei der Entwicklung ist eigentlich:

Das Produkt ist, wie immer, schon älter und wird jetzt erweitert.
Um eine Aussage über die anstehenden Umbaumaßnahmen zu haben, sollen die Tests diesmal VOR dem Umbau implementiert werden ;)

Ich nehm mal die Zahlen von maki (nochmals 10-15% der Entwicklungszeit) als groben Richtwert.
Kenne mich leider wenig mit guter Literatur aus, in denen sowas behandelt wird :rtfm:

mfg Verjigorm
 
M

maki

Gast
...
Ich nehm mal die Zahlen von maki (nochmals 10-15% der Entwicklungszeit) als groben Richtwert.
...
Da wäre ich sehr vorsichtig, die Literatur geht von einer perfekten Welt/perfektem Code mit pefektem Design aus.
Bei "normalen" Code kann das Verhältnis schnell 1:1 betragen oder noch schlechter, Integraitonstests sind auch um einiges aufwändiger als isolierte Unittests.
Der Begriff "untestable Code" kommt nicht von ungefähr ;)
 

kama

Top Contributor
Hallo,

Um eine Aussage über die anstehenden Umbaumaßnahmen zu haben, sollen die Tests diesmal VOR dem Umbau implementiert werden ;)
Meinem Verständis machen die Unit Tests Umbaumaßnahmen überhaupt erst möglich, da ja sonst keine Grundlage vorhanden ist die Funktionalität zu prüfen. Sprich vorher und nach den Umbaumaßnahmen...Wie würde denn OHNE die Unit Tests die Funktionalität geprüft (Durch Clicken ?? dauert mit Sicherheit länger und ist nicht reproduzierbar...)...dabei finde ich dann dass 2 Wochen (250 Unit Test * 20 Minuten) echt gut Investierter Aufwand wären...

Da merkt man, dass da jemand nicht gut genug über Unit Tests und den weiteren Fortschritt des Projektes nachgedacht hat...

Gruß
Karl Heinz Marbaise
 

fastjack

Top Contributor
Ist wahrscheinlich ein Projekt aus älteren Tagen... Ich war auch schon öfters beim Nachtesten, auch von Sachen, die ich selbst vor Zeiten verbrochen hatte. Mit den ganzen Sachen, die Du umsetzen sollst, bist du Vollzeit locker einen Monat beschäftigt. Wem das zu lange dauert, dem kannst Du einfach folgendes sagen (Spruch merken ;)): Wenn Du das schneller schaffst als ich, kannst Du es ja machen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Plugins entwickeln für ein CMS welches unter der GPL V3 steht Softwareentwicklung 1
I Datenbankschema für Versionierung der Tabellen Softwareentwicklung 9
R Datenstruktur für einen rätselhaften Namen Softwareentwicklung 10
Rahim Post Conditions für InsertAt und remove Softwareentwicklung 1
P Thema für meine Projektarbeit die etwas mit Webautomatisierung zu tuen haben soll? Softwareentwicklung 1
H Entwurfsmuster für den Client der Rest API Softwareentwicklung 0
D Welche Technologien für App und web? Softwareentwicklung 3
Thallius oAuth2 und ClientCredentials für API sinnvoll? Softwareentwicklung 3
S Welche Programmiersprache für eine 3D-Software? Softwareentwicklung 6
N Technologie Grundlagen für eine "App" Softwareentwicklung 12
OnDemand Welches Tool für Planung Softwareentwicklung 2
B Sprache für 3D Physics Engine? Softwareentwicklung 3
K Maßnahmen für Softwarequalität Softwareentwicklung 2
N Graphenalgorithmen: Best Practice für Knoten-/Kanten-Attribute Softwareentwicklung 5
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Softwareentwicklung für Embedded Systems Softwareentwicklung 1
T Gibt es eine Software die Texte für Skype automartisch (automassage) sendet ? Softwareentwicklung 4
R Online-Plattform für Essensbestellungen mit der momentanen Bestellverfolgung Softwareentwicklung 1
S Suche: (Versionierungs)Tool für Klassenaustausch mit Kollegen, die auch an dem Projekt arbeiten Softwareentwicklung 5
R UML-Diagramm für mehrere JFrames Softwareentwicklung 0
S Algorithmus für perfekte Kombination Softwareentwicklung 2
U Individualsoftware - eine Gefahr für Kunden oder die günstigere Alternative? Softwareentwicklung 7
J Grafiken für eigene Apps ? Softwareentwicklung 2
V [Klassendesgin] Verhalten von Subklassen für Aufgabenteilung benutzen. Softwareentwicklung 2
KranzKrone Architektur für einfaches Gui Programm Softwareentwicklung 6
R freie Engine für IOS, Android, Blackberry Softwareentwicklung 11
T SMART für USB Sticks? Softwareentwicklung 9
BinaryLogic Software für Projektplanung und -Entwicklung Softwareentwicklung 19
A MVC & getter für GUI Komponenten Softwareentwicklung 5
S Abstractes/Schnittstellen für Objekte Softwareentwicklung 8
fastjack Welches Tool für Agile Softwareentwicklung? Softwareentwicklung 6
C Wiki für ein Uni - High Level Design Softwareentwicklung 5
S Design Pattern für zwei abhängige Klassen Softwareentwicklung 8
Mike90 Lizenz für eigene software Softwareentwicklung 9
V Welche Programmisprache für den Desktop? Softwareentwicklung 17
Jay_030 Checkstyle: Lösungsvorschläge für Design for Extension Softwareentwicklung 7
B Allgemeine Fragen für eigenes Projekt Softwareentwicklung 4
P Sensibilität für Codequalität fördern Softwareentwicklung 17
B Empfehlung für Datenbankschulung? Softwareentwicklung 2
D Beispiele für Patterns Softwareentwicklung 3
K Aufwandsabschätzung für User Stories Softwareentwicklung 8
Torres SDK für automatische Bildkorrektur Softwareentwicklung 3
martin82 Tool für IT-Requests Softwareentwicklung 5
Z Welche Software für Web Anwendungen/Spiel Softwareentwicklung 3
Quaxli Suche Tutorial für Jasper Report - speziell iReport Softwareentwicklung 8
Outsourcer Webservertechnologie für Objekterkennung Softwareentwicklung 7
Landei SSH für VMware GSX mit Windows? Softwareentwicklung 2
ARadauer jetzt wirds zeit für Delphi Softwareentwicklung 6
X JavaScript Plugin für Eclipse Softwareentwicklung 3
sparrow Welche Lizenz für ein offenes Programm Softwareentwicklung 2
ARadauer Code Konvention für Datenbanken Softwareentwicklung 5
G Suche Programm für Masken Design für Pflichtenheft Softwareentwicklung 5
S Wie weiter gehen und tutorial für MVC Softwareentwicklung 20
G Pattern für Datenbank Anwendung Softwareentwicklung 22
m@nu Anti-Spam-System für Blog bauen Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
N Brauche Hilfe für Onlineshop Aufgabe für OOP Grundlagen Softwareentwicklung 4
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G 1 Benutzeroberfläche für 3 einzelne Programme! Softwareentwicklung 9
D Programme für UML Softwareentwicklung 3
A Was ist die richtige Lizenz für mich? Softwareentwicklung 2
R Tool für Anforderungsermittlung, Bugtracking und Test Softwareentwicklung 4
V Antwort bewerten (Nur etwas für Experten!) Softwareentwicklung 15
D cheat für ein spiel fixen Softwareentwicklung 19
F IDE für VB Softwareentwicklung 4
K Design Pattern für einen simple Rechenmaschine Softwareentwicklung 18
S Beispiel für MVC gesucht Softwareentwicklung 53
F Kleines Programm für Windows Softwareentwicklung 2
K Buch oder Online-Tutorium für Programmentwicklung (Anfänge) Softwareentwicklung 5
G Bitte Hilfe für mySQL in einem Query Softwareentwicklung 7
J Beispiel für Besuchermuster Softwareentwicklung 6
M Übersetzer für Programmhilfe gesucht Softwareentwicklung 2
M Disclaimer für eigene Programme? Softwareentwicklung 3
U Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung) Softwareentwicklung 7
S Open Source Software für UML Softwareentwicklung 8
R Ein Thread für eine Methode Softwareentwicklung 2
S Hilfe für anfänger Softwareentwicklung 7
I regualar expression für Konstruktoren Softwareentwicklung 4
T Brauche für meinen Java-Code dringend Hilfe Softwareentwicklung 4
B Wo bekommt man fertige Java-Programme (z.B. für Lsg LGS) Softwareentwicklung 3
P JUnit auch ohne Eclipse benutzbar? Softwareentwicklung 2
M JUnit - Einarbeitung in 4 Wochen? Softwareentwicklung 8
H Fragen zu JUnit und Assertions Softwareentwicklung 21
G JUnit und NUnit und Daseinsberechtigung Softwareentwicklung 4

Ähnliche Java Themen

Neue Themen


Oben