Frage an die Softwareentwickler
-
Hallo liebe Community,
ich führe, im Rahmen eines Studienprojekts, eine Fallstudie zum Thema " Software-Testverfahren während oder nach der Entwicklungsphase? Pro und Contra" durch und bräuchte nämlich eure Unterstützung. Zwar geht es darum folgende Fragen zu beantworten:
1- was sind aus eurer Erfahrung die Vor- und Nachteile der software-Untersuchung während und nach der Entwicklungsphase aus Kosten- und Zeitaufwand-sicht ( eine Gegenüberstellung wäre sehr wünschenswert )
2- wo liegt der Unterschied zwischen dynamischem und statischem Testverfahren und welches ist eurer Meinung nach sinnvoller?Vielen Dank im Voraus und beste Grüße.
Eddy.
-
Für mich klingt das, als würdest du sowas suchen:
Das hier ist der Lehrplan zu ISTQB CT FL:
http://www.german-testing-board.info/downloads/pdf/lehrplan/ISTQB_CTFL_Lehrplan_2011_german_approved.pdfAuf
http://www.german-testing-board.info/de/certified_tester.shtm
dürftest du auch noch weitere passende Informationen finden....oder müssen es jetzt unbedingt unsere persönlichen Erfahrungen sein?
-
Er-Hard87 schrieb:
Hallo liebe Community,
ich führe, im Rahmen eines Studienprojekts, eine Fallstudie zum Thema " Software-Testverfahren während oder nach der Entwicklungsphase? Pro und Contra" durch und bräuchte nämlich eure Unterstützung. Zwar geht es darum folgende Fragen zu beantworten:
1- was sind aus eurer Erfahrung die Vor- und Nachteile der software-Untersuchung während und nach der Entwicklungsphase aus Kosten- und Zeitaufwand-sicht ( eine Gegenüberstellung wäre sehr wünschenswert )Keine Ahnung, wie das bei anderen ist, ich habe vor dem Studium bereits entwickelt und da wenig getestet. Ich sehe die Zeit nicht als Nachteil an, denn erstmal lernt (zeitaufwendig) man debuggen und danach, dass debuggen nervt und als Schlussfolgerung daraus, überlegter zu entwicklen und damit Fehler zu vermeiden.
Heutzutage sind viele Entwicklungen komplizierter, so dass Unit-Tests einfach erforderlich sind, weil man nicht alle fünf Zeilen Code 20 Tests von Hand ausführen kann. Hier sind Unittests eine große Zeitersparnis, also auch eine Kostenersparnis.
Weiterhin dokumentieren Unit-Tests, dass die geforderten Ergebnisse geliefert werden.
Leider bedeutet das nicht, dass ein Algorithmus in allen Fällen fehlerfrei läuft, gerade in numerisch kritischen Bereichen sind die Testfälle teilweise gar nicht sonderlich offensichtlich. Fällt dann in der Anwendung teilweise Jahre später eine Unregelmäßigkeit auf, so kann der Datensatz extrahiert werden, als Unittest geladen werden und der Algorithmus so korrigiert werden, dass die bereits bekannten Pflichtfälle weiterhin korrekte Ergebnisse liefern.Ein Nachteil von Unittests ist, dass sie halt geschrieben werden müssen, teilweise auch viele Tests, die eigentlich offensichtlich sind bzw. scheinen. Dafür erhält man ein wesentlich besseres Gefühl dafür, was man seiner Software zumuten kann und was nicht, was eben auch zukünftige Entscheidungen tragfähiger macht.
Er-Hard87 schrieb:
2- wo liegt der Unterschied zwischen dynamischem und statischem Testverfahren und welches ist eurer Meinung nach sinnvoller?
Auf die Frage gibt es keine Antwort.
Statische Analysen helfen mir in C++ sehr dabei, Fehler zu vermeiden und teilweise sparen die semantischen Beschreibungen mir überflüssige Unittests. Aber man muss einem Compiler beibringen, was er kompilieren soll und der kann nicht verstehen, ob das dem entspricht, was ich gerne programmieren möchte. Dafür muss ich eben prüfen, ob das Programm tut, was ich von ihm erwarte. Auch ein Codereview kann hilfreich sein, denn wenn ein anderer Entwickler nicht versteht, was man selbst hier schreibt, könnte es sein, dass man selbst auch nicht versteht, was man da tut. Code-Reviews habe ich im echten Leben aber noch nie gesehen, ein Freund von mir hat das einmalig in seiner Firma gemacht, aber das erschien mir eher als ein Test, um abzuschätzen, ob das was bringt.
Das ist vermutlich eher eine wirtschaftliche Frage. Wieviel Zeit möchte man zum Testen investieren? Wann fallen einem einfach keine sinnvollen Testfälle mehr ein? Was kostet der Test und was kostet es, wenn der Fehler beim Kunden auftritt.
-
Xin schrieb:
Keine Ahnung, wie das bei anderen ist, ich habe vor dem Studium bereits entwickelt und da wenig getestet. Ich sehe die Zeit nicht als Nachteil an, denn erstmal lernt (zeitaufwendig) man debuggen und danach, dass debuggen nervt und als Schlussfolgerung daraus, überlegter zu entwicklen und damit Fehler zu vermeiden.
Ganz genau so bei mir auch. Ich lerne durch Schmerzen und verbessere dadurch meinen zukünftigen Programmierstil.
Ich teste allerdings ( beruflich ) auch, weil das in dem Fachgebiet absolut unerlässlich ist.
-
Das ist und bleibt ein heisses Thema in der Softwareentwicklung und mehr noch in der Wartung und Pflege von Softwareprojekten. Die üblichen Unittests sind unererlässlich, die gebotenen Hilfen moderner Compiler auch. Das reicht bei komplexen Aufgaben jedoch nicht vollständig.
Zur Vertiefung findet sich unter [Bücher][Softwareentwicklung] ein Hinweis auf den Buchtitel "Der Systemtest". WARNUNG: keine leichte Kost!