Advanced Design and Programming - 1. Teil [ID:9941]
50 von 863 angezeigt

Wir haben heute einen langen Nachmittag vor uns, also zweimal anderthalb Stunden. Es wird auf jeden

Fall eine Pause zwischendrin geben. Ich kann nicht ganz genau abschätzen auf die Minute genau,

wann wir irgendwie die Pause machen werden. Der Vortrag ist aber auch zweigeteilt. Der erste

Teil, der wird nun in die Richtung gehen, Grundlagen von Entwicklertesten, testgetriebene

Entwicklung und im zweiten Teil werde ich so das ein oder andere, wenn man will, Advanced-Thema

ansprechen. Ja, aber auch da hängt auch davon ab, wie viele Fragen Sie stellen, wie weit wir

in die Details gehen. Also der Foliensatz ist, wie er ist. Insofern, da sind hoffentlich die

wichtigsten Informationen drauf, um vor allen Dingen nachher auch noch tiefer einzusteigen in das Thema

irgendwo am Ende habe ich auch noch die Quellen. Insofern hoffe ich, dass das ausreichend Material

liefert, dass Sie in der Richtung weitermachen können. Da kann ich ja auch ein bisschen schneller

über diese einführenden Teile rübergehen. Ich denke, wir werden alle trotzdem ein bisschen

behandeln, dass sie auch auf Zelluloid sind, auf Silikon sind sozusagen. Okay, also wenn,

das bin ich, das ist mein Twitter-Hände, da kann man was über mich erfahren. Der Teil,

der Ihnen vielleicht am meisten bringt, der kommt jetzt gleich und zwar das ist mein Titel,

den Sie sich einfach klauen können. Sie müssen damit nicht mal fertig studiert haben. Also Sie

dürfen sich einfach, so wie ich Software-Therapeut nennen. Wenn man guckt, das ist kein Hinweis auf

fachliche Kompetenz in keiner Art und Weise. Er ist aber nicht gesetzlich geschützt, also auch

heute Studium abbrechen, sich Software-Therapeut nennen, rausgehen und die Leute therapieren. Es

also die Software-Therapien natürlich, keine Menschen. Also das ist sozusagen das, was ich

mich nenne. In der Praxis helfe ich Teams dabei, Software zu entwickeln und testen ist ein ganz

wesentlicher Aspekt darunter. Die Frage, die man sich stellen kann, gerade wenn man vielleicht noch

nicht viel Erfahrung mit größeren Projekten hat, die tatsächlich eingesetzt werden, die vielleicht

auch Teil eines Produkts sind und weiterentwickelt werden, kann man sich fragen, warum muss ich denn

sowas wie Tests überhaupt automatisieren. Ich als Entwickler teste ja mein Programm sowieso auf die

ein oder andere Weise, entweder weil ich irgendwas eingebe oder weil ich eine Main-Funktion schreibe,

die mein Programm ausführt. In irgendeiner Form teste ich es ja sowieso und dann gibt es ja immer

noch, wenn man in Firmen geht, viele Firmen haben immer noch sowas wie eine Qualitätssicherung oder

Testabteilung, die am Ende, ja kurz bevor wir das Produkt an die Kunden geben, sowieso testen.

Im Prinzip kann man das so machen, man kann also immer sozusagen eine Software entwickeln und am

Ende gucken, funktioniert die und wenn sie nicht funktioniert, dann wird halt noch mal weiterentwickelt

und Bugs gefixt und sowas. Das hat auch bis vor vielleicht 10, 20 Jahren ganz gut funktioniert,

das also ganz gut ist relativ. Es hat funktioniert und es sind Softwareprodukte dabei rausbekommen.

Wenn ich mir aber anschaue, wie sich auch die Anforderungen an die Art, wie Projekte und

Produkte entwickelt werden geändert haben in der letzten Zeit, da geht das dann gar nicht mehr.

Also hier habe ich zwei Begriffe mal aufgegriffen, das ist Continuous Delivery und Continuous

Deployment und Continuous Delivery heißt eigentlich nichts anderes als, dass wenn irgendjemand,

jemand in der Entwicklung, eine Programmiererin sagt, jetzt habe ich ein neues Stück Feature

fertig entwickelt, dass sie auf den Knopf drückt, macht ein Git-Commit-Push, irgendwas in diese

Richtung und dann läuft der Automatismus los und am Ende ist vielleicht ohne irgendwelches menschliches

Zutun vielleicht, also wenn wir hier unten bei Continuous Deployment sind, völlig automatisch

geht dieses Stück gut und alles andere, was vorher auch schon da war in Produktion. Und jetzt wissen

Sie sicherlich, Software kann so gebaut sein, dass wenn ich an der einen Ecke irgendwas drehe,

dass es an der anderen Ecke kaputt geht. Das heißt, wenn ich verhindern will, dass sozusagen

sehr oft, wenn am Ende das Ding wirklich automatisch in die Produktion geht, Dinge nicht mehr funktionieren.

Offensichtlich nicht mehr funktionieren oder auch nur sehr subtil funktionieren, dann brauche ich

zwischendrin Schritte, die mir mit einer hohen Wahrscheinlichkeit sagen können, dass nichts

wesentliches kaputt gegangen ist an meinem Produkt. Und wenn man sich anschaut, was hier ist,

das ist alles automatisiert und hier stehen mindestens zwei Aspekte, wo direkt Test dabei steht.

Hier steht jetzt Unit Test und das steht Acceptance Test. Es gibt also Dinge, die wir automatisiert

überprüfen müssen an unserer Software, dass sie noch tut. Ansonsten können wir diese

Presenters

Dipl.-Inf. Johannes Link Dipl.-Inf. Johannes Link

Zugänglich über

Offener Zugang

Dauer

01:21:03 Min

Aufnahmedatum

2018-12-17

Hochgeladen am

2018-12-21 08:49:14

Sprache

de-DE

Developer Testing Part 1: Microtests and TDD

Tags

open source microtests
Einbetten
Wordpress FAU Plugin
iFrame
Teilen