Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean...

Preview:

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: o.ergel@prosoz.de

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

7

Clean Code

https://generic.de/?attachment_id=17900

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

Recommended