Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
1
Gut gelöst.
Gut beraten.
Gut qualifiziert.
Gut aufgehoben.
Clean Testing
Wann ist ein Test ein guter Test?
Özgür Ergel
n Informatik-Ingenieur (TU-Istanbul, 2000)
n Arbeitet als Software-Entwickler bei PROSOZ Herten GmbH
n Ausbildung in Systemischen Coaching (INeKO Institut Köln, 2018)
n Speaker / Trainer im agilen Umfeld
n Twitter: @OezguerErgel
n E-Mail: [email protected]
3
Über @OezguerErgel
Özgür Ergel
4
Über PROSOZ Herten GmbH
Özgür Ergel
n Vorreiter in den Bereichen Soziale Sicherung und Bauen
n In 1.500 Verwaltungen in Deutschland kommt mindestens ein PROSOZ-Produkt zum Einsatz
n 30 Jahre praxisnahe IT-Lösungen für kommunale Verwaltungen
n 4 Standorte: Herten, Berlin, Dresden, München
n Über 300 Mitarbeiter und 34,8 Millionen Euro Umsatz in 2017
5
Worum geht es in diesem Vortrag?
Özgür Ergel
n Gedanken- und Erfahrungsaustausch für
> Zusammenfassung von Prinzipien um qualitative hochwertigen automatisierten Entwicklertests zu schreiben
> Mehr Sensibilisierung und mehr Bewusstsein für besseren Test-Code
6
Entstehungsgeschichte
Özgür Ergel
8
Clean Test
Code Katan https://github.com/Ergel/Clean-Testing
Özgür Ergel
9
Grundlegende Fragen zum Testing?n Was
Özgür Ergel
10
Grundlegende Fragen zum Testing?(Entwicklerperspektive)
n Was ist Software-Testing?n Warum bzw. wozu schreiben wir Tests?n Wann schreiben wir Tests?n Womit schreiben wir Tests?n Wo sind die Überschneidungen mit
Qualitätssicherungsexperten?n Sollen wir eher unseren Code testen oder Anforderungen?n Was ist mit Test-Reviews?n Was bedeutet Unit-Test, Komponententest, Integrationstest,
Abnahmetest, Akzeptanztest, Testpyramide etc.?n ???
11
Was bedeutet Unit-Testing?n Isolierung?n Mocks vs. Stubs?n Integration?n Datenbankzugriff innerhalb Tests
n !!! Es ist wichtig, ein gemeinsames Verständnis im Team zu schaffen!!!
Özgür Ergel
12
Eure Test-Pyramide
Özgür Ergel
13
Und Agilität?
Özgür Ergel
14
Beispiel aus der Praxis
Özgür Ergel
15
n Siehe User Story
Clean Tests - Qualitätsmerkmalen Sie geben ein schnelles Feedback Jn Sie laufen zuverlässig !!!!n Sie sind einfach zu verstehen J
n Sie können x-mal wiederholt ausgeführt werdenn Sie sind unik (Keine Redundanz)n Sie haben einen Mehrwert (Sie erfüllen ihren Zweck)
n Sie fördern und fordern kontinuierliche Kommunikation zwischen Entwickler / QS- und Fachexperten J
Özgür Ergel
16
Clean Tests - Qualitätsmerkmalen Sie müssen angepasst werden, wenn Verhalten
verändert wurde Jn Sie müssen nicht angepasst werden, wenn Code-
Struktur verändert wurden Sie können mit einem angemessenen Aufwand
angepasst werden
n Sie haben aussagekräftigen Testnamenn Sie sind einfach strukturiert (AAA)n Sie sind von der Kundenperspektive geschrieben
(Anwender oder Entwickler) Jn Sie unterstützen Business Driven Development J
Özgür Ergel
17
Impulse Fragenn Wozu schreibst Du Tests?
n Für wen schreibst Du Tests? Nur für dich oder auch für andere?> Kannst Du mit den Augen des anderen sehen?> Kannst Du mit den Ohren des anderen hören?> Kannst Du mit dem Herzen des anderen fühlen?
Özgür Ergel
18
Wozu schreibe ich Tests? J
Özgür Ergel
19
Wozu schreibe ich Tests?
Özgür Ergel
20
n Absicherungn Verifizieren, dass ich das Richtige umgesetzt haben Verifizieren, dass ich es richtig umgesetzt haben Schneller rausfinden, wo der Fehler liegtn Verhaltensdokumentationn Regressionssicherheitn Basis für stetige Code- Vereinfachung bzw. Refactoringn Bessere Design / APIn Hilft beim Verstehen der fachlichen Anforderungen Jn Um meine QS‘ler im Team zu unterstützen
Zusammenfassung
Özgür Ergel 21
Zusammenfassung
Özgür Ergel 22
Here's the thing: At one point you should make sure to test that your software works correctly from a user's perspective, not just from a technical perspective. What you call these tests is really not that important. Having these tests, however, is. Pick a term, stick to it, and write those tests.
Martin Fowler
Empfehlungenn https://www.se-radio.net/2010/09/episode-167-the-
history-of-junit-and-the-future-of-testing-with-kent-beck/
n https://martinfowler.com/bliki/UnitTest.htmln https://martinfowler.com/articles/mocksArentStubs.h
tmln Extreme Programming Explained (Kent Beck)n Test Driven Development By Example (Kent Beck)n https://www.bbv.ch/images/bbv/pdf/downloads/V2_
Clean_Code_V3.pdfn https://ccd-school.de/coding-dojo/function-
katas/fizzbuzz/n https://generic.de/?attachment_id=17900
Özgür Ergel
23
Weitere Begrifflichkeiten / Technikenn Technical Debthn Micro Testingn Clean Testingn Testing Quadrantsn Story-test driven developmentn Test-driven Requirementsn Business-facing testsn Business Driven Developmentn Specification By Examplen Exploratives Testenn BDD
Özgür Ergel
24
Weitere Begrifflichkeiten / Technikenn Regressiontestsn Mutation Testingn Black Box Testingn White Box Testingn Gray Box Testingn Entscheidungstabellenn Äquivalenzklassenn Grenzwertanalysen Agile Acceptance Testingn End to End Testsn Testpyramiden ATDDÖzgür Ergel
25
Vielen Dank für eure Aufmerksamkeit
26