{"id":258,"date":"2019-09-09T14:46:18","date_gmt":"2019-09-09T14:46:18","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=258"},"modified":"2022-02-18T14:07:30","modified_gmt":"2022-02-18T14:07:30","slug":"testautomatisierung-mit-squish-teil-1","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/","title":{"rendered":"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht"},"content":{"rendered":"\n<p>Am Markt existiert mittlerweile eine Vielzahl von Testautomatisierungswerkzeugen f\u00fcr die verschiedensten Einsatzgebiete. Bei einem unserer Kunden aus der Medizintechnik wurde beispielsweise das Tool \u201eSquish\u201c intensiv zur Automatisierung von GUI-Tests eingesetzt. In diesem Beitrag m\u00f6chte ich deshalb n\u00e4her auf die dabei zu beachtenden technischen und fachlichen Aspekte beim Design des Testframeworks und der Testskripte eingehen. Auch im zweiten Teil der Blogpost-Reihe gibt es mehr dar\u00fcber zu erfahren.<\/p>\n\n\n\n<p>Beim GUI-Testautomatisierungstool \u201cSquish\u201d der Hamburger Softwareschmiede Froglogic wird der gesamte Testcode mit allem, was dazu geh\u00f6rt, in einer von mittlerweile f\u00fcnf g\u00e4ngigen Programmier- bzw. Skriptsprachen verfasst und verwaltet. Neben Ruby und JavaScript stehen hier Tcl und Perl zur Auswahl. Aufgrund seiner Aktualit\u00e4t und seines m\u00e4chtigen Funktionsumfangs, der durch die zahlreichen, frei erh\u00e4ltlichen Libs noch erh\u00f6ht werden kann, aber vor allem wegen der ausgesprochen guten Lesbarkeit der damit erzeugten Testskripte sollte Python das Mittel zur Wahl werden. Standardm\u00e4\u00dfig wird Squish mit einem Python 2.7.XX ausgeliefert, auf individuelle Nachfrage stellt Froglogic allerdings auch gern eine Squish-Edition mit der gew\u00fcnschten Python-Version (z.B. Python 3.5.XX) zum Download bereit. Wer auf Python 3 schw\u00f6rt, kann diese M\u00f6glichkeit gern in Betracht ziehen, mit dem mitgelieferten Python 2.7 ist man jedoch bestens bedient.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"322\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-600x322.jpg\" alt=\"Ausschnitt Squish IDE basiert auf der Open-Source IDE Eclipse\" class=\"wp-image-535\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-600x322.jpg 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-1024x549.jpg 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-768x412.jpg 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-1536x824.jpg 1536w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-640x343.jpg 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-1200x644.jpg 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg 1920w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><figcaption><em>Abbildung 1: Squish IDE basiert auf der Open-Source IDE Eclipse<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Unabh\u00e4ngig von der gew\u00e4hlten Skriptsprache bietet Squish generell zwei Ans\u00e4tze f\u00fcr den Umgang mit einer AUT (\u201cApplication Under Test\u201d) zur Testdurchf\u00fchrung. Entweder die AUT wird f\u00fcr jeden Testfall durch Squish implizit gestartet und gestoppt oder und man verbindet sich f\u00fcr jeden Testfall neu zu einer bereits laufenden AUT. Da die meisten Softwareanwendungen in der Praxis nicht fortlaufend beendet und neu gestartet werden, kommt der letzte Ansatz einem Verhalten in der Realit\u00e4t n\u00e4her und ist ersterem unbedingt vorzuziehen.<\/p>\n\n\n\n<p>In der Squish-Welt wird dieser Ansatz auch als \u201cAttachable AUT\u201d bezeichnet. Die Testskriptfunktionen zum Steuern einer \u201cAttachable AUT\u201d werden von Froglogic jedoch nur zum Teil zur Verf\u00fcgung gestellt und m\u00fcssen selbst implementiert werden.<\/p>\n\n\n\n<p>\u00dcber Jahre bew\u00e4hrt hat sich bei unserem Kunden hier der \u201cTstHelper\u201d. Wie der Name andeutet, handelt es sich dabei um eine Helferklasse f\u00fcr die Testdurchf\u00fchrung, die u.a. einen Mechanismus zum Handling des \u201cAttachable AUT\u201d-Ansatzes implementiert. Um \u00fcberfl\u00fcssigen Testcode in einem Testskript zu minimieren, wurde der gesamte Mechanismus im Konstruktor untergebracht. Ein Einzeiler, der ein Objekt der Klasse \u201cTstHelper\u201d zu Beginn eines Testskripts instanziiert, ist somit ausreichend \u2013 dazu mehr im zweiten Teil.<\/p>\n\n\n\n<p>Im Prinzip besteht der Mechanismus nur aus einem einzigen \u201ctry-except\u201d-Block:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    try:\n         attachToApplication()\n    except RuntimeError:\n         AppUnderTest.start() <\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Ein \u201cRuntimeError\u201d wird von der Squish-Funktion <em>\u201cattachToApplication\u201d<\/em> genau dann geworfen, wenn sich zu einer AUT verbunden werden soll, die noch nicht gestartet wurde. Dann wird die statische Funktion <em>AppUnderTest.start()<\/em> aufgerufen, die \u2013 wie der Name schon vermuten l\u00e4sst \u2013 die AUT startet. Sowohl die Klasse als auch die Funktion m\u00fcssen selbst implementiert werden. Der Name \u201cAppUndertest\u201d sollte durch den Namen der tats\u00e4chlich zu testenden Applikation ersetzt werden. Dieser Name ist dann zugleich der Name des Namespace, der die Funktion <em>start()<\/em> bereitstellt.<\/p>\n\n\n\n<p>In Python existiert keine eigene Notation f\u00fcr Namespaces, weshalb Namespaces mittels Klassen realisiert werden. Vereinfacht gesehen sollte diese Klassenstruktur folgenderma\u00dfen aussehen:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    class AppUnderTest:\n        \n        @staticmethod\n        def start():\n             os.system(\"{BatchSkript}\")\n         \n        @staticmethod\n        def stop():\n             ToplevelWindow.byName(\"{MainWindowObjID}\", 10).close()<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Beim \u201cAttachable AUT\u201d-Ansatz l\u00e4uft die AUT in einem eigenen Prozess unabh\u00e4ngig von Squish. Das Starten erfolgt daher \u00fcber ein externes Batch-Skript, das einmalig zu erstellen ist. Die Einbindung des Skript-Aufrufs erfolgt dann in der <em>start()<\/em>-Funktion mittels des Python-Kommandos \u201cos.system\u201d (s.o.).<\/p>\n\n\n\n<p>Zum Stoppen der AUT bringt Squish die Funktion <em>\u201cToplevelWindow.byName(\u201c{MainWindowObjID}\u201d, 10).close()\u201d<\/em> mit. Der Parameter <em>\u201cMainWindowObjID\u201d<\/em> repr\u00e4sentiert dabei die Objekt-ID des hierarchisch gesehen obersten Elements aus der Object-Map. Der Funktionsaufruf wird in der statischen Funktion <em>stop()<\/em> gekapselt. Ihrem Aufruf im Testskript muss demzufolge ebenfalls der Klassenname vorangestellt werden: <em>AppUnderTest.stop()<\/em>. Diese Syntax wurde bewusst gew\u00e4hlt wegen ihrer guten und eindeutigen Lesbarkeit. Alle Funktionen, die in Verbindung mit der AUT stehen, sollten in dieser Klasse bzw. diesem Namespace zusammengefasst werden. Es k\u00f6nnen Funktionen erg\u00e4nzt werden, um etwa die AUT in ihren Ausgangszustand zur\u00fcckzuversetzen, auf bestimmte System-Ereignisse zu warten bzw. zu reagieren oder den <em>\u201cattachToApplication()\u201d<\/em>-Aufruf zu kapseln, um eventuell Logging hinzuzuf\u00fcgen.<\/p>\n\n\n\n<p>Die Organisation in Namespaces eignet sich zudem ideal zur Einbindung zus\u00e4tzlicher Testtools, die aus einem Testskript heraus gesteuert werden sollen. F\u00fcr jedes Testtool wird eine eigene Python-Klasse nach obigem Schema erstellt. In den <em>start()- und stop()<\/em>-Methoden ist jeweils der Aufruf zum Starten und Stoppen des Testtools unterzubringen. Auch diese Methodenliste kann beliebig erweitert werden, z.B. um Funktionen zum Sichern der Logfiles etc. Im Testskript erfolgt deren Aufruf dann analog mittels <em>\u201cTesttool.start()\u201d<\/em> bzw. <em>\u201cTesttool.saveLogfilesTo()\u201d<\/em>. Ich denke, es muss nicht erw\u00e4hnt werden, dass der Klassenname durch den Namen des Testtools ersetzt werden sollte. Dadurch ergibt sich eine Syntax wie beispielsweise <em>\u201cCanSimuator.start()\u201d<\/em>, was zur erh\u00f6hten Lesbarkeit und somit zu einem erleichterten Testskript-Review beitr\u00e4gt \u2013 mehr dazu im zweiten Teil der Blogpost-Reihe.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Beitrag befasst sich mit dem Tool &#8222;Squish&#8220; zur Testautomatisierung sowie den dabei zu beachtenden technischen und fachlichen Aspekten beim Design des Testframeworks und der Testskripte.<\/p>\n","protected":false},"author":24,"featured_media":535,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[10],"tags":[120,121,122,123,124,125,52,119],"topics":[227],"class_list":["post-258","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qualitaetssicherung","tag-squish","tag-python","tag-gui-test","tag-testframeworks","tag-aut","tag-application-under-test","tag-testautomatisierung","tag-testskripte","topics-testautomatisierung"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"Wie funktioniert Testautomatisierung mit Squish? Welche technischen und fachlichen Aspekte sind beim Design des Testframeworks und der -skripte zu beachten?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"Wie funktioniert Testautomatisierung mit Squish? Welche technischen und fachlichen Aspekte sind beim Design des Testframeworks und der -skripte zu beachten?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-09T14:46:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-18T14:07:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1030\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Steve Gronwaldt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Gronwaldt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/\",\"name\":\"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg\",\"datePublished\":\"2019-09-09T14:46:18+00:00\",\"dateModified\":\"2022-02-18T14:07:30+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b391a6d224466f2d90e68e5eb698b3f3\"},\"description\":\"Wie funktioniert Testautomatisierung mit Squish? Welche technischen und fachlichen Aspekte sind beim Design des Testframeworks und der -skripte zu beachten?\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg\",\"width\":1920,\"height\":1030,\"caption\":\"Ausschnitt Squish IDE basiert auf der Open-Source IDE Eclipse\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b391a6d224466f2d90e68e5eb698b3f3\",\"name\":\"Steve Gronwaldt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/gronwaldt_steve-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/gronwaldt_steve-150x150.jpg\",\"caption\":\"Steve Gronwaldt\"},\"description\":\"Steve Gronwaldt ist seit 2007 im Fachbereich Software-Qualit\u00e4tssicherung der ZEISS Digital Innovation t\u00e4tig. W\u00e4hrend dieser Zeit sammelte er Erfahrungen in klassischen sowie agilen Projekten im industriellen und medizinischen Umfeld. Neben Testanalyse und Testdesign umfasst sein T\u00e4tigkeitsfeld dabei vor allem Testautomatisierungs- und Testmanagement-Aufgaben unter Ber\u00fccksichtigung g\u00fcltiger Normen. Besonderes Interesse hegt er an der Schittstelle zwischen SW-Entwicklung und Test und den damit verbundenen technischen M\u00f6glichkeiten zur Automatisierung von manuellen Abl\u00e4ufen.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/stevegronwaldt\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht - ZEISS Digital Innovation Blog","description":"Wie funktioniert Testautomatisierung mit Squish? Welche technischen und fachlichen Aspekte sind beim Design des Testframeworks und der -skripte zu beachten?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/","og_locale":"de_DE","og_type":"article","og_title":"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht - ZEISS Digital Innovation Blog","og_description":"Wie funktioniert Testautomatisierung mit Squish? Welche technischen und fachlichen Aspekte sind beim Design des Testframeworks und der -skripte zu beachten?","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2019-09-09T14:46:18+00:00","article_modified_time":"2022-02-18T14:07:30+00:00","og_image":[{"width":1920,"height":1030,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg","type":"image\/jpeg"}],"author":"Steve Gronwaldt","twitter_card":"summary_large_image","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Steve Gronwaldt","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/","name":"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg","datePublished":"2019-09-09T14:46:18+00:00","dateModified":"2022-02-18T14:07:30+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b391a6d224466f2d90e68e5eb698b3f3"},"description":"Wie funktioniert Testautomatisierung mit Squish? Welche technischen und fachlichen Aspekte sind beim Design des Testframeworks und der -skripte zu beachten?","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1.jpg","width":1920,"height":1030,"caption":"Ausschnitt Squish IDE basiert auf der Open-Source IDE Eclipse"},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/testautomatisierung-mit-squish-teil-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"Testautomatisierung mit Squish (Teil 1) \u2013 Technische Sicht"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/b391a6d224466f2d90e68e5eb698b3f3","name":"Steve Gronwaldt","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/gronwaldt_steve-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/gronwaldt_steve-150x150.jpg","caption":"Steve Gronwaldt"},"description":"Steve Gronwaldt ist seit 2007 im Fachbereich Software-Qualit\u00e4tssicherung der ZEISS Digital Innovation t\u00e4tig. W\u00e4hrend dieser Zeit sammelte er Erfahrungen in klassischen sowie agilen Projekten im industriellen und medizinischen Umfeld. Neben Testanalyse und Testdesign umfasst sein T\u00e4tigkeitsfeld dabei vor allem Testautomatisierungs- und Testmanagement-Aufgaben unter Ber\u00fccksichtigung g\u00fcltiger Normen. Besonderes Interesse hegt er an der Schittstelle zwischen SW-Entwicklung und Test und den damit verbundenen technischen M\u00f6glichkeiten zur Automatisierung von manuellen Abl\u00e4ufen.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/stevegronwaldt\/"}]}},"author_meta":{"display_name":"Steve Gronwaldt","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/stevegronwaldt\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/201909_Testautomatisierung_Squish_Technische_Sicht_1-600x322.jpg","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Qualit\u00e4tssicherung<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Qualit\u00e4tssicherung<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Squish<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Python<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">GUI-Test<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Testframeworks<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">AUT<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Application Under Test<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Testautomatisierung<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/qualitaetssicherung\/\" class=\"advgb-post-tax-term\">Testskripte<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Squish<\/span>","<span class=\"advgb-post-tax-term\">Python<\/span>","<span class=\"advgb-post-tax-term\">GUI-Test<\/span>","<span class=\"advgb-post-tax-term\">Testframeworks<\/span>","<span class=\"advgb-post-tax-term\">AUT<\/span>","<span class=\"advgb-post-tax-term\">Application Under Test<\/span>","<span class=\"advgb-post-tax-term\">Testautomatisierung<\/span>","<span class=\"advgb-post-tax-term\">Testskripte<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 7\u00a0Jahren ago","modified":"Updated 4\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on September 9, 2019","modified":"Updated on Februar 18, 2022"},"absolute_dates_time":{"created":"Posted on September 9, 2019 2:46 p.m.","modified":"Updated on Februar 18, 2022 2:07 p.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=258"}],"version-history":[{"count":4,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/258\/revisions"}],"predecessor-version":[{"id":1908,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/258\/revisions\/1908"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/535"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=258"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}