- Manuelle Tests sind nicht optimal, denn viele Probleme entstehen bei dem Vorgang z.B. : die Testbarkeit der Software, die Wiederholbarkeit(Die Aufmerksamkeit kann abnehmen,es kann sein dass die Tester unterschiedlische Kontext haben und manchmal können Lücken bei der Testausführung auftreten).
- Tester können wegen fehlenden Wissen über die Software, die Bedienung der Anwendung oder die bedienung der Testwerkzeuge, keine Optimale Tests durchführen. Die unvollständige Dokumentation kann dafür eine entcheidende Faktor sein.
- Die manuelle Tests sind aufwändig, da man viel Arbeitszeit braucht um eine Software vollständig zu testen und Test zu implementieren.
- Die Kosten bei manuelle Tests sind höher als bei die automatisierte Tests.
### Welche Tests Automatisieren ?
- Unittests : Unittests sind ausführbare Dokumentation, die keinen Code testen sondern sie verifizieren von außen beobachtbare gewünschtes Verhalten des Codes(Rückgabewerte,Verbindung mit anderen Units,Reaktion auf die übergegebenen Parameter und Units), damit kann man auch ungewollte Änderungen verhindern.
- Jeder einzelner Test prüft genau eine Erwartung an die Unit.
- Ein guter Test wurde durch die FIRST und RTFM bestimmt.
- Applications und Module Tests : im gegensatz zu automatisierte Tests werden die Applications und Module Tests spät im Entwicklungsprozess ausgeführt, deren Testwerkzeuge sind komplex, und sie sind aufwändig zu warten.
### FIRST :
- Fast(Schnell) : Test wird nach jedem Speichern ausgeführt ohne den Arbeitsablauf zu verzögern.
- Independent : Tests sind unabhängig voneinander, d.h Test können in beliebiger Reihenfolge laufen.
- Repeatable : Jede Ausführung führt zum selben Ergebnis, andere Units wurden nicht geändert und die Testumgebung wird nicht beeinflusst.
- Selfverifying : das Testergebnis ist eindeutig, d.h dass man leicht erkennen kann, ob es um ein Erfolg oder Mißerfolg geht.
- Timely : Unittests werden zeitnah zum getesteten Code erstellt, entweder werden Test vor dem Code geschrieben(Code first), nachher(Test first), oder wurden die beide gleichzeitig geschrieben.
### RTFM :
- Readable (Lesbar) : der Name des Test sollte das erwartete Ergebnis und Vorbedingungen ausdrücken, sollte kurz sein, Explizite Veriablen sollen sowohl für Parameterwerte als auch für Ergebnisse angelegt, und die Variablennamen müssen sorgsam gewählt.
- Trustworthy (Vertrauenswürdig) : es wurde implementiert was der Kunde eigentlich wollte. Es sollte keine technische probleme auftreten.
- Maintainable (Wartbar) : der Test muss stabil gegenüber Änderungen in anderen Units oder in derselben Unit sein.
## 2. Was kann man für das Teamprojekt anwenden ?
- Test sind Sehr wichtig in einem Software-projekt.
- Man muss darauf achten dass manuelle Tests sind zeitaufwändig, deswegen es wäre sinvoll automatisierte Tests stattdessen zu verwenden.
- Man lernt wie ein guter Test geschrieben würde durch die FIRST und RTFM Kriterien.
## 3. Begriff/Thema erklären :
- Unittests : Unit Testing ist das Testen der kleinsten testbaren Einheit einer Anwendung. Er wird während der Kodierungsphase von den Entwicklern durchgeführt.
- Modultests sind eine Reihe von Tests, die von einem Tester geschrieben werden, nachdem ein Entwickler die Codierung für das jeweilige Modul abgeschlossen hat.