26
1

Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

1

Page 2: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Gut gelöst.

Gut beraten.

Gut qualifiziert.

Gut aufgehoben.

Clean Testing

Wann ist ein Test ein guter Test?

Özgür Ergel

Page 3: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 4: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 5: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 6: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

6

Entstehungsgeschichte

Özgür Ergel

Page 7: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

7

Clean Code

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

Page 8: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

8

Clean Test

Page 9: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Code Katan https://github.com/Ergel/Clean-Testing

Özgür Ergel

9

Page 10: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Grundlegende Fragen zum Testing?n Was

Özgür Ergel

10

Page 11: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 12: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 13: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Eure Test-Pyramide

Özgür Ergel

13

Page 14: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Und Agilität?

Özgür Ergel

14

Page 15: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Beispiel aus der Praxis

Özgür Ergel

15

n Siehe User Story

Page 16: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 17: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 18: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 19: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Wozu schreibe ich Tests? J

Özgür Ergel

19

Page 20: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 21: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Zusammenfassung

Özgür Ergel 21

Page 22: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 23: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 24: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 25: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

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

Page 26: Gut gelöst. - Embedded TestingGut gelöst. Gut beraten. Gut qualifiziert. Gut aufgehoben. Clean Testing Wann ist ein Test ein guter Test? Özgür Ergel nInformatik-Ingenieur (TU-Istanbul,

Vielen Dank für eure Aufmerksamkeit

26