SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
© 1994 – 2019  K&K Verlag GmbH, Hamburg 25 FMM_201903
Grundlagen
Dr. Volker Krambrich
(Jg.1955) Der Linguist, Programmierer und Betreiber des
Konsultingunternehmens NORSULT lebt in Espoo bei
­Helsinki und Wedel bei Hamburg. Er ist in ganz Europa
in ­Sachen FileMaker aktiv und oft auf dem Hamburger
FileMaker Stammtisch zu treffen.
FMM Award 2017: Beste Dienstleistung
v.krambrich@norsult.com
Software testen
FileMaker Entwicklung professionalisieren
Ist es wirklich nötig, Software-Tests in FileMaker zu inte-
grieren? Mit dieser absichtlich provokativen Frage möch-
te ich mich in einer losen Folge von Artikeln auseinander
setzen und insgesamt mehr Aufmerksamkeit auf dieses
Thema lenken. Denn hey, wer integriert Tests als Konzept
in seine FileMaker Programmierung?
Immer häufiger treffe ich auf Lösungen, die so umfangreich
und umfassend sind, dass niemand dem Anwender mit Be-
stimmtheit sagen kann, wie und warum etwas funktioniert
oder gar ob das Ergebnis noch richtig ist.
Diese Anwender sind nicht selten auch Entwickler, zu-
mindest von Teilen des betreffenden Programms. Ich behaupte
daher, dass man ohne Dokumentation und geplante, doku-
mentierte Tests eigentlich nicht von einer korrekten Funktion
der Software ausgehen kann! Welche Lösungen gibt es dafür?
Bereits in den 1970er-Jahren formulierte der berühmte Infor-
matiker Edsger Dijkstra:
„Programmtests können verwendet werden,
um das Vorhandensein von Fehlern anzuzeigen,
jedoch niemals deren Abwesenheit!“1
Was ist das Ziel von Software-Tests?
Es wäre nicht fair, dieses Zitat einfach allein stehen zu lassen.
Edgar W. Dijkstra, Professor für Mathematik in Eindhoven,
NL, war der Ansicht, dass keinem komplexen Automaten
(wie Computern und Software) einfach vertraut werden dürfe
– stattdessen muss der Automat auf Zuverlässigkeit hin kons-
truiert werden. Teil dieses Engineering-Prozesses ist die Inte-
gration der Planung zum Testen und Überprüfen der Gültig-
keit des Mechanismus.
Ein Software-Test muss die Lösung bezüglich der Einhal-
tung definierter Regeln und ihrer Eignung für ein bestimmtes
Problemprüfenundvalidieren.IndiesemSinnewirddieQua-
lität von Software durch das Testen gemessen. Das Minimum,
das wir von der Software erwarten können, ist die Richtigkeit.
Tests sollten so konzipiert sein, dass mögliche Fehler aufge-
deckt werden, bevor die Software tatsächlich eingesetzt wird.
Es gibt zwar keine Möglichkeit, allgemein zu beweisen, dass
ein bestimmter Algorithmus fehlerfrei ist. Dennoch kann
man wohl sagen, dass ein Algorithmus praktisch nutzlos ist,
wenn nicht garantiert werden kann, dass er rechtzeitig (nach
einer bestimmten Anzahl von Schritten) ein gültiges Ergeb-
nis liefert. Eine Regel für Korrektheit wäre verletzt, wenn das
Ergebnis nicht in zumutbarer Zeit vorliegt. Was zumutbar
ist, wird vom Kontext und Einsatzgebiet bestimmt. Wenn Sie
sich vorstellen, dass Sie den Preis für eine Fahrkarte von Lu-
zern nach Hamburg zur FileMaker Konferenz abfragen und
mit dem Ergebnis nicht vor der spätesten Abfahrtszeit rech-
nen können, ist Ihnen diese Regel sicher sofort einsichtig.
Erschienen im
FileMaker Magazin
www.filemaker-magazin.de
Grundlagen
26 FMM_201903
Methodischer Ansatz
1.	 Beachten Sie, dass der Programmiervorgang fehleranfällig
ist.
2.	 Stellen Sie sicher, dass erkennbare Fehler frühzeitig er-
kannt werden.
3.	 Integrieren Sie Tests, um die Qualität Ihrer Arbeit sicher-
zustellen.
4.	 Tests können nur bei sehr einfachen Problemen isoliert
und endgültig sein.
5.	 Verwenden oder erstellen Sie Tools zum Testen.
Die erste Regel dient der Erinnerung, denn es wird leider oft
vergessen, dass auch Routinetätigkeiten fehleranfällig sein
können. Besser ist es also, von vornherein damit zu rechnen,
dass Fehler passieren können und dafür Sorge zu tragen, dass
diese Fehler möglichst früh im Prozess erkannt werden. Diese
Früherkennung soll vor allem der Vermeidung von Zusatzkos-
ten dienen! Und da hilft eben nicht allein das Vertrauen in die
eigenen Fähigkeiten, sondern einzig ein Verfahren zur Fehle-
rerkennung und Funktionskontrolle.
Das beginnt im Kleinen mit der Kontrolle und dem Test
einer Funktion, der Überprüfung, ob die Aktion der Anfor-
derung entspricht und unter allen erdenklichen Bedingungen
richtige Ergebnisse (d.h. die erwarteten Ergebnisse!) liefert.
Oft wird sich ein solcher Test nicht allein oder einmalig be-
werkstelligen lassen, er muss daher einfach und schnell und
präzise wiederholbar sein. Was das mit Arbeitsqualität (und
damit letztlich wiederum mit Kosten) zu tun hat, wird deut-
lich, wenn man an Beispiele unterlassener Tests und Kontrol-
len denkt. Hätte man arbeitsbegleitend und geplant getestet,
wäre der Flughafen BER wahrscheinlich betriebsfertig gewor-
den.
Wie kann dies in die FileMaker Programmierung
übersetzt werden?
1.	 Die FileMaker Programmierung ist fehleranfällig.
2.	 Sehr einfache Fehler werden von der Calculation-Engine
und dem Scriptarbeitsbereich entdeckt.
3.	 FileMaker verfügt über Testhilfen (Editor, Debugger,
Data Viewer).
4.	 Sie müssen lernen, das Testen als Entwicklerfähigkeit zu
integrieren.
5.	 Einzel- und Abschlusstests sind nahezu unmöglich.
6.	 Testwerkzeuge müssen selbst erstellt werden.
Lassen Sie uns praktischer werden. Um meinen Standpunkt
zu demonstrieren, entwerfen wir einen Automaten, der sich in
FileMaker in einer eigenen Funktion abbilden lässt. Es klingt
vielleicht selbstverständlich, aber am Anfang muss festgelegt
werden, was der Automat machen soll, welche Eingaben er ak-
zeptieren darf und wie die Regel für korrekte Ergebnisse lau-
tet. Auch wenn man nicht immer sofort die Regel definieren
kann, hat man bestimmt ein Beispiel im Sinn (sonst bräuchte
man den Automaten gar nicht). Ein solches Beispiel könnte
so aussehen:
Eingabewert:	 „Beginn Mittwoch, Mai 29. Um 22:23 2019“
Ausgabewert:	 „29.05.2019T20:23:00 UTC“
Die Aufgabe besteht darin, nicht nur zu verstehen und zu
übersetzen, was im Beispiel passiert, sondern eine Anweisung
zu schreiben, die eine Klasse von Problemen bearbeiten kann
– etwa die Wandlung von unkonventionellen Datumsnotati-
onen in ein standardisiertes Format. Das Beispiel überlasse ich
gern den Lesern des FileMaker Magazins als Denkfutter nach
diesem Artikel.
Adder (von to add [engl.] „zusammenfügen“)
Für den Artikel machen wir es uns einfach und bauen einen
Adder. Seine Funktion soll sein, ein gültiges und korrektes
Ergebnis für genau zwei unterschiedliche Benutzereingaben
zu erzielen. Es wird davon ausgegangen, dass die Benutzerein-
gaben in den beiden Platzhaltern EingabeEins und Eingabe-
Zwei gespeichert werden. Das Ergebnis ist in geeigneter Weise
zurückzugeben.
Allerdings ist diese Beschreibung des Automaten nicht
sehr genau. Sie vermuten vielleicht aus dem Namen, dass die
beiden eingegebenen Zahlen zusammengezählt werden sol-
len. Wenn EingabeEins als Zahlenfeld definiert ist, was wür-
de die Eingabe von „Hans“ bewirken? In FileMaker passiert
dasselbe, wie bei einer 0 (numerische Null). Ist das beabsich-
tigt? Wenn nicht, wie kann diese Eingabe vermieden werden?
Oder noch besser: Wie lernen wir, unbeabsichtigte Eingaben
zu erahnen und von vornherein zu vermeiden? Und wie kann
das Ergebnis angemessen zurückgegeben werden? Die Ant-
worten sind der Schlüssel zur Entwicklung des Programms
und der Leitfaden für das Design seines Tests.
Adder ( eingabeEins; eingabeZwei )
// Musterfunktion fuer Testgestaltung
// addiert die beiden Eingaben
eingabeEins + eingabeZwei
Offensichtlich ist die einzige geeignete Möglichkeit, das Er-
gebnis einer Addition zurückzugeben, eine Zahl. Die oben
dargestellte Funktion liefert in FileMaker immer eine Zahl.
Aber ist dieses Verhalten wirklich beabsichtigt? In FileMaker
ergibt die Addition zweier Texte 0 (numerisch null). Fraglich
ist, ob dieses wirklich das vom Entwickler erwartete Ergebnis
Erschienen im
FileMaker Magazin
www.filemaker-magazin.de
Grundlagen
27 FMM_201903
ist. Denkbar wären auch die unten aufgeführten Alternativen
als erwünschtes Ergebnis:
Adder ( „Hans“; „Meier“) = 0
| = „HansMeier“
| = „Hans Meier“
| = ?
Entspricht das Ergebnis dem erwarteten Verhalten? Ist es im
Anwendungskontext korrekt? Diese Entscheidungen sind
wichtig und müssen spätestens bei der Gestaltung des Pro-
gramms getroffen werden. Stellen Sie sich einen generischen
Addierer vor, der Text zusammenfügen (d. h. verketten) und
Zahlen hinzufügen kann. Aber aufpassen, dass keine automa-
tisch erkannten Werte verarbeitet werden und bei der Rech-
nungsstellung plötzlich das Datum hinzuaddiert wird!
Alle geplanten Eingaben müssen bedacht werden, bevor
programmiert wird. Dabei gilt es, unerwünschte Fälle zu ver-
meiden oder abzuweisen. Sind ausschließlich Ganzzahlen als
Eingabe qualifiziert, dürfen nur genau zwei Ganzzahlen ein-
gegeben werden, bevor der Addierer ausgeführt wird. Außer-
dem müssen die technischen Bedingungen erfüllt sein (größte
bzw. kleinste Ganzzahl in der Maschine, Ergebnisprüfung,
Mechanismus zur Übermittlung erkannter Fehler usw.).
Probieren Sie es aus und erstellen Sie im Data Viewer eine
Funktion, die Ihre Anforderungen und Bedingungen erfüllt.
Dann machen Sie daraus eine Eigene Funktion. Schreiben Sie
sich alle Testfälle auf, die Ihnen einfallen und versuchen Sie
insbesondere, „unmögliche“ und „unerlaubte“ Eingaben zu
machen. Dokumentieren Sie alle Testfälle und führen Sie sie
aus. Sie werden wahrscheinlich am Ende feststellen, dass das
selbst für eine Eigene Funktion kaum zu schaffen ist. Aber
es geht weiter: Wenn Sie eine neue Anforderung hinzufügen
oder einen neu erkannten Fehlerfall berücksichtigen, müssen
Sie alle Tests erneut ausführen, nachdem Sie die Funktionsde-
finition angepasst haben. Andernfalls können Sie nicht garan-
tieren, dass die letzte Änderung nicht die bereits vorhandene
Funktionalität beeinträchtigt hat.
Zurück zur Methodik
Ich schlage eine analytische Betrachtung der Problematik vor.
Zerlegen Sie komplexe Probleme in kleine Stücke, bauen Sie
Lösungen für die Stücke auf und testen Sie auf dieser Ebene
(Komponententest).
Erstes Testziel ist der Nachweis der technischen
Funktionalität und des korrekten Ergebnisses, was häufig
vom Programmierer selbst durchgeführt werden kann.
Als Einstieg habe ich den Weg über die Funktionen ge-
wählt, weil sie einfach in FileMaker darstellbar sind und mit
dem Data Viewer auch gleich ein kleines Testwerkzeug zur
Verfügung steht. Aber selbst hier reicht es nicht aus, sich mit
den eingebauten Tools zu begnügen.
Wenn man systematisch und geplant testen will, müssen
die Tests a) dokumentiert und b) wiederholbar sein. Natürlich
kann man sich hinsetzen und Protokoll führen, hoffentlich
jegliche Abweichungen von den Testvorgaben vermeiden und
alles „zu Fuß“ ablaufen.
Weil aber der Mensch faul ist oder keine Zeit hat oder der
Kunde den Aufwand nicht zahlt, wird in so einem Fall gar
nicht getestet. Also braucht man ein Werkzeug. Als Beispiel
dafür habe ich auf dem Hamburger FileMaker Stammtisch
im April die Testumgebung für Custom Functions von NOR-
SULT vorgestellt.
In der App werden die Eigenen Funktionen mit ihrem
Code und weiteren Kommentaren dokumentiert. Zu jeder
Funktion sind die definierten Testfälle aufgeführt und die
erwarteten Ergebnisse vorgegeben. Natürlich können die
verwendeten Funktionen andere Eigene Funktionen aufru-
fen oder selbst aufgerufen werden; auch diese Abhängigkei-
ten sind dokumentiert. Wird eine Änderung vorgenommen,
können alle definierten Tests automatisch wiederholt werden.
Alle Fälle, in denen ein Ergebnis von der Vorgabe abweicht,
werden sofort angezeigt. Hierbei werden auch alle Abhängig-
keiten der Funktionen untereinander geprüft.
Ausschnitt aus der NORSULT_Functions App; Anzeige der Abhängigkeit von Custom Functions
untereinander
Weitere Informationen zu dem Tool und eine Demo zum He-
runterladen finden Sie im Blog auf https://norsult.com – und
dürfen dort auch gern einen Kommentar hinterlassen.
Fußnote
1)	 Dijkstra (1970) „Notes on Structured Programming“ (EWD249), Section 3
(„On The Reliability of Mechanisms“), corollary at the end, p.7.
(Link: http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF)
Erschienen im
FileMaker Magazin
www.filemaker-magazin.de
201702
Das unabhängige Magazin für FileMaker Anwender und Entwickler FMM_201702
©IreneKarger
FileMaker Cloud
Individuelle Software-Bereitstellung
Es kann nur einen geben
Datensätze sperren
Perfekte Wahl
Tastensymbole
Per Script gesteuert
PDF-Scans
Datensätze bearbeiten
Ausschnitte
Praxisanwendung
Logische Operationen
201704
Das unabhängige Magazin für FileMaker Anwender und Entwickler FMM_201704
Titelbild:©iStock.com/alextkt
Mit Sicherheit
Externes Backup
von Serverdateien
Die 100-Tage-Bilanz
FileMaker 16
Kundenfreundlich
Komfortable Eingabe
Verteilungsstrategien
Mobile Lösungen
Jetzt noch magischer
Magic Value Lists 2.0
FileMaker Konferenz
Salzburg 4.0
ISSN 1431-7176
201703
Das unabhängige Magazin für FileMaker Anwender und Entwickler FMM_201703
Titelbild:©PhotocreoBednarek/Fotolia
Hallo Welt!
FileMaker 16 öffnet
neue Türen
Überblick
Neue Funktionen
Karte
Neuer Fensterstil
Namensgebung
Schöner exportieren
Konferenz
Einladung nach Salzburg
Programmierung
Rekursion
Das FileMaker Magazin
n	 Einzige, deutschsprachige Fachzeitschrift zu FileMaker
n	 Wissen aus erster Hand von anerkannten FileMaker ­Fachautoren
n	 Große Themenvielfalt für Anwender und Entwickler
Exklusiv für Premium-Abonnenten
n	 Sechs FMM Ausgaben pro Jahr
n	 Kostenlose Nutzung des Abonnentenbereichs auf www.filemaker-magazin.de
n	 PDF-Archiv mit allen bisher veröffentlichen ­Ausgaben
n	 Jede Ausgabe mit kostenlosen Beispieldateien und Zusatzinfos zum Download
Unser Service
n	 Aktuelle Neuheiten, Tipps und Infos, Kleinanzeigen und vieles mehr jederzeit auf
unseren Webseiten
n	 Hilfe bei allen Fragen zu FileMaker im FMM Forum
n	 Kompetente Beratung zum Kauf von FileMaker Lizenzen: Einfach anrufen
+49 (0)40 589 65 79 70.
Hier finden Sie Aktuelles zu FileMaker
Lizenzen, egal ob Sie kaufen, mieten
oder sich einfach informieren möchten.
Eine kostenlose Leseprobe des FileMaker
Magazins erhalten Sie, wenn Sie hier klicken.
Wenn Sie sich für ein FileMaker Magazin
Abo interessieren, klicken Sie bitte hier!

Más contenido relacionado

Más de Verein FM Konferenz

FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserVerein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtVerein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtVerein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonVerein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussVerein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussVerein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfVerein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonVerein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoVerein FM Konferenz
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaVerein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaVerein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairVerein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinVerein FM Konferenz
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg KösterVerein FM Konferenz
 
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...Verein FM Konferenz
 
FMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan TischlerFMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan TischlerVerein FM Konferenz
 
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner StaubFMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner StaubVerein FM Konferenz
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...Verein FM Konferenz
 
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsFMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsVerein FM Konferenz
 
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker KrambrichFMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker KrambrichVerein FM Konferenz
 

Más de Verein FM Konferenz (20)

FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
 
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
 
FMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan TischlerFMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan Tischler
 
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner StaubFMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
 
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsFMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
 
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker KrambrichFMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
 

FMK2019 Fmm 201903 25-27 software testen

  • 1. © 1994 – 2019  K&K Verlag GmbH, Hamburg 25 FMM_201903 Grundlagen Dr. Volker Krambrich (Jg.1955) Der Linguist, Programmierer und Betreiber des Konsultingunternehmens NORSULT lebt in Espoo bei ­Helsinki und Wedel bei Hamburg. Er ist in ganz Europa in ­Sachen FileMaker aktiv und oft auf dem Hamburger FileMaker Stammtisch zu treffen. FMM Award 2017: Beste Dienstleistung v.krambrich@norsult.com Software testen FileMaker Entwicklung professionalisieren Ist es wirklich nötig, Software-Tests in FileMaker zu inte- grieren? Mit dieser absichtlich provokativen Frage möch- te ich mich in einer losen Folge von Artikeln auseinander setzen und insgesamt mehr Aufmerksamkeit auf dieses Thema lenken. Denn hey, wer integriert Tests als Konzept in seine FileMaker Programmierung? Immer häufiger treffe ich auf Lösungen, die so umfangreich und umfassend sind, dass niemand dem Anwender mit Be- stimmtheit sagen kann, wie und warum etwas funktioniert oder gar ob das Ergebnis noch richtig ist. Diese Anwender sind nicht selten auch Entwickler, zu- mindest von Teilen des betreffenden Programms. Ich behaupte daher, dass man ohne Dokumentation und geplante, doku- mentierte Tests eigentlich nicht von einer korrekten Funktion der Software ausgehen kann! Welche Lösungen gibt es dafür? Bereits in den 1970er-Jahren formulierte der berühmte Infor- matiker Edsger Dijkstra: „Programmtests können verwendet werden, um das Vorhandensein von Fehlern anzuzeigen, jedoch niemals deren Abwesenheit!“1 Was ist das Ziel von Software-Tests? Es wäre nicht fair, dieses Zitat einfach allein stehen zu lassen. Edgar W. Dijkstra, Professor für Mathematik in Eindhoven, NL, war der Ansicht, dass keinem komplexen Automaten (wie Computern und Software) einfach vertraut werden dürfe – stattdessen muss der Automat auf Zuverlässigkeit hin kons- truiert werden. Teil dieses Engineering-Prozesses ist die Inte- gration der Planung zum Testen und Überprüfen der Gültig- keit des Mechanismus. Ein Software-Test muss die Lösung bezüglich der Einhal- tung definierter Regeln und ihrer Eignung für ein bestimmtes Problemprüfenundvalidieren.IndiesemSinnewirddieQua- lität von Software durch das Testen gemessen. Das Minimum, das wir von der Software erwarten können, ist die Richtigkeit. Tests sollten so konzipiert sein, dass mögliche Fehler aufge- deckt werden, bevor die Software tatsächlich eingesetzt wird. Es gibt zwar keine Möglichkeit, allgemein zu beweisen, dass ein bestimmter Algorithmus fehlerfrei ist. Dennoch kann man wohl sagen, dass ein Algorithmus praktisch nutzlos ist, wenn nicht garantiert werden kann, dass er rechtzeitig (nach einer bestimmten Anzahl von Schritten) ein gültiges Ergeb- nis liefert. Eine Regel für Korrektheit wäre verletzt, wenn das Ergebnis nicht in zumutbarer Zeit vorliegt. Was zumutbar ist, wird vom Kontext und Einsatzgebiet bestimmt. Wenn Sie sich vorstellen, dass Sie den Preis für eine Fahrkarte von Lu- zern nach Hamburg zur FileMaker Konferenz abfragen und mit dem Ergebnis nicht vor der spätesten Abfahrtszeit rech- nen können, ist Ihnen diese Regel sicher sofort einsichtig. Erschienen im FileMaker Magazin www.filemaker-magazin.de
  • 2. Grundlagen 26 FMM_201903 Methodischer Ansatz 1. Beachten Sie, dass der Programmiervorgang fehleranfällig ist. 2. Stellen Sie sicher, dass erkennbare Fehler frühzeitig er- kannt werden. 3. Integrieren Sie Tests, um die Qualität Ihrer Arbeit sicher- zustellen. 4. Tests können nur bei sehr einfachen Problemen isoliert und endgültig sein. 5. Verwenden oder erstellen Sie Tools zum Testen. Die erste Regel dient der Erinnerung, denn es wird leider oft vergessen, dass auch Routinetätigkeiten fehleranfällig sein können. Besser ist es also, von vornherein damit zu rechnen, dass Fehler passieren können und dafür Sorge zu tragen, dass diese Fehler möglichst früh im Prozess erkannt werden. Diese Früherkennung soll vor allem der Vermeidung von Zusatzkos- ten dienen! Und da hilft eben nicht allein das Vertrauen in die eigenen Fähigkeiten, sondern einzig ein Verfahren zur Fehle- rerkennung und Funktionskontrolle. Das beginnt im Kleinen mit der Kontrolle und dem Test einer Funktion, der Überprüfung, ob die Aktion der Anfor- derung entspricht und unter allen erdenklichen Bedingungen richtige Ergebnisse (d.h. die erwarteten Ergebnisse!) liefert. Oft wird sich ein solcher Test nicht allein oder einmalig be- werkstelligen lassen, er muss daher einfach und schnell und präzise wiederholbar sein. Was das mit Arbeitsqualität (und damit letztlich wiederum mit Kosten) zu tun hat, wird deut- lich, wenn man an Beispiele unterlassener Tests und Kontrol- len denkt. Hätte man arbeitsbegleitend und geplant getestet, wäre der Flughafen BER wahrscheinlich betriebsfertig gewor- den. Wie kann dies in die FileMaker Programmierung übersetzt werden? 1. Die FileMaker Programmierung ist fehleranfällig. 2. Sehr einfache Fehler werden von der Calculation-Engine und dem Scriptarbeitsbereich entdeckt. 3. FileMaker verfügt über Testhilfen (Editor, Debugger, Data Viewer). 4. Sie müssen lernen, das Testen als Entwicklerfähigkeit zu integrieren. 5. Einzel- und Abschlusstests sind nahezu unmöglich. 6. Testwerkzeuge müssen selbst erstellt werden. Lassen Sie uns praktischer werden. Um meinen Standpunkt zu demonstrieren, entwerfen wir einen Automaten, der sich in FileMaker in einer eigenen Funktion abbilden lässt. Es klingt vielleicht selbstverständlich, aber am Anfang muss festgelegt werden, was der Automat machen soll, welche Eingaben er ak- zeptieren darf und wie die Regel für korrekte Ergebnisse lau- tet. Auch wenn man nicht immer sofort die Regel definieren kann, hat man bestimmt ein Beispiel im Sinn (sonst bräuchte man den Automaten gar nicht). Ein solches Beispiel könnte so aussehen: Eingabewert: „Beginn Mittwoch, Mai 29. Um 22:23 2019“ Ausgabewert: „29.05.2019T20:23:00 UTC“ Die Aufgabe besteht darin, nicht nur zu verstehen und zu übersetzen, was im Beispiel passiert, sondern eine Anweisung zu schreiben, die eine Klasse von Problemen bearbeiten kann – etwa die Wandlung von unkonventionellen Datumsnotati- onen in ein standardisiertes Format. Das Beispiel überlasse ich gern den Lesern des FileMaker Magazins als Denkfutter nach diesem Artikel. Adder (von to add [engl.] „zusammenfügen“) Für den Artikel machen wir es uns einfach und bauen einen Adder. Seine Funktion soll sein, ein gültiges und korrektes Ergebnis für genau zwei unterschiedliche Benutzereingaben zu erzielen. Es wird davon ausgegangen, dass die Benutzerein- gaben in den beiden Platzhaltern EingabeEins und Eingabe- Zwei gespeichert werden. Das Ergebnis ist in geeigneter Weise zurückzugeben. Allerdings ist diese Beschreibung des Automaten nicht sehr genau. Sie vermuten vielleicht aus dem Namen, dass die beiden eingegebenen Zahlen zusammengezählt werden sol- len. Wenn EingabeEins als Zahlenfeld definiert ist, was wür- de die Eingabe von „Hans“ bewirken? In FileMaker passiert dasselbe, wie bei einer 0 (numerische Null). Ist das beabsich- tigt? Wenn nicht, wie kann diese Eingabe vermieden werden? Oder noch besser: Wie lernen wir, unbeabsichtigte Eingaben zu erahnen und von vornherein zu vermeiden? Und wie kann das Ergebnis angemessen zurückgegeben werden? Die Ant- worten sind der Schlüssel zur Entwicklung des Programms und der Leitfaden für das Design seines Tests. Adder ( eingabeEins; eingabeZwei ) // Musterfunktion fuer Testgestaltung // addiert die beiden Eingaben eingabeEins + eingabeZwei Offensichtlich ist die einzige geeignete Möglichkeit, das Er- gebnis einer Addition zurückzugeben, eine Zahl. Die oben dargestellte Funktion liefert in FileMaker immer eine Zahl. Aber ist dieses Verhalten wirklich beabsichtigt? In FileMaker ergibt die Addition zweier Texte 0 (numerisch null). Fraglich ist, ob dieses wirklich das vom Entwickler erwartete Ergebnis Erschienen im FileMaker Magazin www.filemaker-magazin.de
  • 3. Grundlagen 27 FMM_201903 ist. Denkbar wären auch die unten aufgeführten Alternativen als erwünschtes Ergebnis: Adder ( „Hans“; „Meier“) = 0 | = „HansMeier“ | = „Hans Meier“ | = ? Entspricht das Ergebnis dem erwarteten Verhalten? Ist es im Anwendungskontext korrekt? Diese Entscheidungen sind wichtig und müssen spätestens bei der Gestaltung des Pro- gramms getroffen werden. Stellen Sie sich einen generischen Addierer vor, der Text zusammenfügen (d. h. verketten) und Zahlen hinzufügen kann. Aber aufpassen, dass keine automa- tisch erkannten Werte verarbeitet werden und bei der Rech- nungsstellung plötzlich das Datum hinzuaddiert wird! Alle geplanten Eingaben müssen bedacht werden, bevor programmiert wird. Dabei gilt es, unerwünschte Fälle zu ver- meiden oder abzuweisen. Sind ausschließlich Ganzzahlen als Eingabe qualifiziert, dürfen nur genau zwei Ganzzahlen ein- gegeben werden, bevor der Addierer ausgeführt wird. Außer- dem müssen die technischen Bedingungen erfüllt sein (größte bzw. kleinste Ganzzahl in der Maschine, Ergebnisprüfung, Mechanismus zur Übermittlung erkannter Fehler usw.). Probieren Sie es aus und erstellen Sie im Data Viewer eine Funktion, die Ihre Anforderungen und Bedingungen erfüllt. Dann machen Sie daraus eine Eigene Funktion. Schreiben Sie sich alle Testfälle auf, die Ihnen einfallen und versuchen Sie insbesondere, „unmögliche“ und „unerlaubte“ Eingaben zu machen. Dokumentieren Sie alle Testfälle und führen Sie sie aus. Sie werden wahrscheinlich am Ende feststellen, dass das selbst für eine Eigene Funktion kaum zu schaffen ist. Aber es geht weiter: Wenn Sie eine neue Anforderung hinzufügen oder einen neu erkannten Fehlerfall berücksichtigen, müssen Sie alle Tests erneut ausführen, nachdem Sie die Funktionsde- finition angepasst haben. Andernfalls können Sie nicht garan- tieren, dass die letzte Änderung nicht die bereits vorhandene Funktionalität beeinträchtigt hat. Zurück zur Methodik Ich schlage eine analytische Betrachtung der Problematik vor. Zerlegen Sie komplexe Probleme in kleine Stücke, bauen Sie Lösungen für die Stücke auf und testen Sie auf dieser Ebene (Komponententest). Erstes Testziel ist der Nachweis der technischen Funktionalität und des korrekten Ergebnisses, was häufig vom Programmierer selbst durchgeführt werden kann. Als Einstieg habe ich den Weg über die Funktionen ge- wählt, weil sie einfach in FileMaker darstellbar sind und mit dem Data Viewer auch gleich ein kleines Testwerkzeug zur Verfügung steht. Aber selbst hier reicht es nicht aus, sich mit den eingebauten Tools zu begnügen. Wenn man systematisch und geplant testen will, müssen die Tests a) dokumentiert und b) wiederholbar sein. Natürlich kann man sich hinsetzen und Protokoll führen, hoffentlich jegliche Abweichungen von den Testvorgaben vermeiden und alles „zu Fuß“ ablaufen. Weil aber der Mensch faul ist oder keine Zeit hat oder der Kunde den Aufwand nicht zahlt, wird in so einem Fall gar nicht getestet. Also braucht man ein Werkzeug. Als Beispiel dafür habe ich auf dem Hamburger FileMaker Stammtisch im April die Testumgebung für Custom Functions von NOR- SULT vorgestellt. In der App werden die Eigenen Funktionen mit ihrem Code und weiteren Kommentaren dokumentiert. Zu jeder Funktion sind die definierten Testfälle aufgeführt und die erwarteten Ergebnisse vorgegeben. Natürlich können die verwendeten Funktionen andere Eigene Funktionen aufru- fen oder selbst aufgerufen werden; auch diese Abhängigkei- ten sind dokumentiert. Wird eine Änderung vorgenommen, können alle definierten Tests automatisch wiederholt werden. Alle Fälle, in denen ein Ergebnis von der Vorgabe abweicht, werden sofort angezeigt. Hierbei werden auch alle Abhängig- keiten der Funktionen untereinander geprüft. Ausschnitt aus der NORSULT_Functions App; Anzeige der Abhängigkeit von Custom Functions untereinander Weitere Informationen zu dem Tool und eine Demo zum He- runterladen finden Sie im Blog auf https://norsult.com – und dürfen dort auch gern einen Kommentar hinterlassen. Fußnote 1) Dijkstra (1970) „Notes on Structured Programming“ (EWD249), Section 3 („On The Reliability of Mechanisms“), corollary at the end, p.7. (Link: http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF) Erschienen im FileMaker Magazin www.filemaker-magazin.de
  • 4. 201702 Das unabhängige Magazin für FileMaker Anwender und Entwickler FMM_201702 ©IreneKarger FileMaker Cloud Individuelle Software-Bereitstellung Es kann nur einen geben Datensätze sperren Perfekte Wahl Tastensymbole Per Script gesteuert PDF-Scans Datensätze bearbeiten Ausschnitte Praxisanwendung Logische Operationen 201704 Das unabhängige Magazin für FileMaker Anwender und Entwickler FMM_201704 Titelbild:©iStock.com/alextkt Mit Sicherheit Externes Backup von Serverdateien Die 100-Tage-Bilanz FileMaker 16 Kundenfreundlich Komfortable Eingabe Verteilungsstrategien Mobile Lösungen Jetzt noch magischer Magic Value Lists 2.0 FileMaker Konferenz Salzburg 4.0 ISSN 1431-7176 201703 Das unabhängige Magazin für FileMaker Anwender und Entwickler FMM_201703 Titelbild:©PhotocreoBednarek/Fotolia Hallo Welt! FileMaker 16 öffnet neue Türen Überblick Neue Funktionen Karte Neuer Fensterstil Namensgebung Schöner exportieren Konferenz Einladung nach Salzburg Programmierung Rekursion Das FileMaker Magazin n Einzige, deutschsprachige Fachzeitschrift zu FileMaker n Wissen aus erster Hand von anerkannten FileMaker ­Fachautoren n Große Themenvielfalt für Anwender und Entwickler Exklusiv für Premium-Abonnenten n Sechs FMM Ausgaben pro Jahr n Kostenlose Nutzung des Abonnentenbereichs auf www.filemaker-magazin.de n PDF-Archiv mit allen bisher veröffentlichen ­Ausgaben n Jede Ausgabe mit kostenlosen Beispieldateien und Zusatzinfos zum Download Unser Service n Aktuelle Neuheiten, Tipps und Infos, Kleinanzeigen und vieles mehr jederzeit auf unseren Webseiten n Hilfe bei allen Fragen zu FileMaker im FMM Forum n Kompetente Beratung zum Kauf von FileMaker Lizenzen: Einfach anrufen +49 (0)40 589 65 79 70. Hier finden Sie Aktuelles zu FileMaker Lizenzen, egal ob Sie kaufen, mieten oder sich einfach informieren möchten. Eine kostenlose Leseprobe des FileMaker Magazins erhalten Sie, wenn Sie hier klicken. Wenn Sie sich für ein FileMaker Magazin Abo interessieren, klicken Sie bitte hier!