{"id":50102,"date":"2019-04-01T09:03:00","date_gmt":"2019-04-01T09:03:00","guid":{"rendered":"https:\/\/barc.com\/de\/?p=50102"},"modified":"2023-10-25T10:14:52","modified_gmt":"2023-10-25T10:14:52","slug":"testen-von-bi-und-dwh-systemen","status":"publish","type":"post","link":"https:\/\/barc.com\/de\/testen-von-bi-und-dwh-systemen\/","title":{"rendered":"Testen von BI- und DWH-Systemen"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Teil 1: Testmethodik und Schwerpunkte<\/h2>\n\n\n\n<p>&#8222;Wir haben so&nbsp;viele&nbsp;Incidents&nbsp;in der Produktion, dass wir keine Zeit f\u00fcr ein effektives Testen unseres<a href=\"https:\/\/barc.com\/de\/data-warehouse\/\"> Data&nbsp;Warehouses<\/a>&nbsp;finden&#8220;.&nbsp;So schilderte mir&nbsp;eine&nbsp;Teamleiterin ihre aktuelle Situation, ohne den Zusammenhang zwischen ungen\u00fcgendem Testen und den Produktionsst\u00f6rungen,&nbsp;die durch die&nbsp;unentdeckten Fehler&nbsp;verursacht wurden,&nbsp;wahrzunehmen. \u00c4hnliche Situationen gibt es leider h\u00e4ufig. Da die besonderen Herausforderungen f\u00fcr das Testen von BI-Systemen und das m\u00f6gliche Spektrum von L\u00f6sungen&nbsp;meist&nbsp;zu wenig bekannt&nbsp;sind, findet ein zielgerichtetes, effektives Testen&nbsp;oft&nbsp;nicht statt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Besondere Herausforderungen beim Testen von analytischen Systemen<\/h3>\n\n\n\n<p>Durch die speziellen Eigenheiten von BI- und DWH-Systemen, ergeben sich einige Herausforderungen beim Testen dieser Systeme. Dazu nachfolgend einige Beispiele, wobei es sich hier jedoch nicht um eine vollst\u00e4ndige Liste handelt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Datengetriebenes Testen&nbsp;anstelle von Usecases<\/strong><br>In operativen Systemen ist das Testen nach Usecases \u00fcblich. Das bedeutet, ein Gesch\u00e4ftsvorfall wird durchgef\u00fchrt und das Ergebnis einer einzelnen Transaktion als Abbildung in den Daten gepr\u00fcft. Bei analytischen Systemen sind Usecases nicht vorhanden oder nur von untergeordneter Bedeutung. Im Vordergrund stehen datengetriebene Tests mit der Pr\u00fcfung gesamter Datasets, was eine grundlegend andere Herangehensweise an die Erstellung von Testf\u00e4llen n\u00f6tig macht und teilweise identische Verfahren der Datenqualit\u00e4tspr\u00fcfung verwendet.<\/li>\n\n\n\n<li><strong>Dynamische Code-Generierung durch Tools<\/strong><br>In transaktionalen Systemen bleibt der Code unver\u00e4nderlich, wie beispielsweise bei einem einmal geschriebenem SQL-Statement, eingebettet in den Code einer weiteren Programmiersprache. In analytischen Systemen wird der Code hingegen durch Frontend- oder <a href=\"https:\/\/barc.com\/de\/reviews\/etl\/\">ETL-Tools<\/a> im Hintergrund generiert (vgl. Abbildung 1). Schon das Ver\u00e4ndern einer Spaltenreihenfolge erzeugt eine neue SQL-Abfrage. Somit ist codebasiertes Testen nicht zweckm\u00e4ssig. H\u00e4ufig ist der generierte Code zudem nicht ersichtlich, sodass hier Greybox-Tests erstellt und ausgef\u00fchrt werden m\u00fcssen.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Transaktionale Systeme<\/strong><\/td><td><strong>Analytische Systeme<\/strong><\/td><\/tr><tr><td>Testen nach Usecases<\/td><td>Datengetriebene Tests<\/td><\/tr><tr><td>Pr\u00fcfen einzelner Datens\u00e4tze<\/td><td>Pr\u00fcfen gesamter Datasets<\/td><\/tr><tr><td>Statischer Code<\/td><td>Dynamisch generierter Code<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Unterschiedliche Voraussetzungen zum Testen von transaktionalen Systemen im Vergleich zu analytischen Systemen<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Offizielle Normen und Standards ber\u00fccksichtigen keine Eigenheiten von analytischen Systemen<\/strong><br>Die \u00fcblichen Standards und Normen, wie etwa das V-Modell, sind f\u00fcr transaktionale Systeme angelegt. Ein Adaptieren auf BI- und DWH-Systeme ist nur mit dem notwendigen Transferaufwand und einigen Kompromissen m\u00f6glich.<\/li>\n\n\n\n<li><strong>Herausforderungen durch agile Projektmethoden<\/strong><br>Durch den Wechsel zu agilen Projektmethoden m\u00fcssen Testvorbereitung und -durchf\u00fchrung in k\u00fcrzeren Zeitfenstern erfolgen. Dadurch \u00fcberfordert, wird h\u00e4ufig nur ungen\u00fcgend getestet und die Softwarequalit\u00e4t verschlechtert sich. Dies m\u00fcsste nicht sein, haben doch alle agilen Projektmethoden den Selbstanspruch, bessere Software in k\u00fcrzerer Zeit bereitzustellen.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">L\u00f6sungsoptionen<\/h3>\n\n\n\n<p>Durch eine angepasste Methodik ist ein effektives Testen von BI- und DWH-Systemen m\u00f6glich. Auch dazu einige Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Vielseitigkeit der Testf\u00e4lle<\/strong><br>Leider wird vielfach nur auf funktionale Korrektheit getestet. Funktionale Vollst\u00e4ndigkeit, wie das ad\u00e4quate Reagieren auf alle attributbezogenen Wertebereiche in einem Ladeprozess, wird dagegen nur teilweise gepr\u00fcft. Werden noch Kombinationen von unterschiedlichen Werten in mehreren Attributen gepr\u00fcft, ist die Erstellung von Testf\u00e4llen mittels Entscheidungstabellen sinnvoll.<br>Die Akzeptanzkriterien und -klassen nach ISO 25010 (vgl. folgende Abbildung,&nbsp;<a href=\"https:\/\/barc.de\/topics\/download?id=ZBg1imRJfpbwa2zahB9X\" rel=\"noopener\">Download als pdf-Datei<\/a>) bieten eine gute Orientierung, wenn nicht nur reine funktionale Tests erstellt und ausgef\u00fchrt werden sollen. Daraus k\u00f6nnen deutlich vielseitigere Testf\u00e4lle, wie etwa das Laufzeitverhalten von ETL-Prozessen (effiziente Performance: Zeitverhalten), Verhalten von ETL-Prozessen bei ungen\u00fcgender Datenqualit\u00e4t in den Sourcedaten (Fehlertoleranz aus verl\u00e4sslicher Software) oder Restart-F\u00e4higkeit (Wiederherstellbarkeit), abgeleitet werden.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"630\" height=\"303\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/BI-Testen_Akzeptanzkriterien_und_klassen_nach_ISO_25010.jpg\" alt=\"\" class=\"wp-image-50104\" srcset=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/BI-Testen_Akzeptanzkriterien_und_klassen_nach_ISO_25010.jpg 630w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/BI-Testen_Akzeptanzkriterien_und_klassen_nach_ISO_25010-300x144.jpg 300w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/BI-Testen_Akzeptanzkriterien_und_klassen_nach_ISO_25010-600x289.jpg 600w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><figcaption class=\"wp-element-caption\">Akzeptanzkriterien und -klassen nach ISO 25010 (<a href=\"https:\/\/barc.de\/topics\/download?id=ZBg1imRJfpbwa2zahB9X\" rel=\"noopener\">Download als pdf-Datei<\/a>)<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Datengetriebene Tests<\/strong><br>Auswertungen zeigen, dass mehr als die H\u00e4lfte der gefundenen Fehler in Data-Warehouse- und BI-Systemen auf die Daten zur\u00fcckzuf\u00fchren sind. Einerseits werden bei der Analyse oft nicht alle Wertebereiche und Kombinationen von Wertebereichen ermittelt, was zu unvollst\u00e4ndigen Implementierungen f\u00fchrt. Andererseits kommt es durch Datenqualit\u00e4tsprobleme aus den Quellsystemen immer wieder zu St\u00f6rungen, beispielsweise zu Abbr\u00fcchen in den Ladeprozessen.<\/li>\n\n\n\n<li><strong>Testabdeckung<\/strong><br>Da ein vollst\u00e4ndiges Testen eines Systems nicht m\u00f6glich ist und wirtschaftlich auch nicht sinnvoll w\u00e4re, bleibt die Frage, wann gen\u00fcgend getestet wurde. Erg\u00e4nzend zur vorher beschriebenen Vielseitigkeit von Testf\u00e4llen, ist dies nun eine quantitative Frage. Die notwendige Anzahl an Testf\u00e4llen kann einfach Bottom-Up berechnet werden. Dabei wird zuerst die Komplexit\u00e4t und die Kritikalit\u00e4t der einzelnen Systemkomponenten ermittelt. Gerade die Business-Kritikalit\u00e4t, also die Bedeutung von analytischen Systemen, wird leider h\u00e4ufig untersch\u00e4tzt, wodurch eine Systemarchitektur abgeleitet wird, die nicht der ben\u00f6tigten Verf\u00fcgbarkeit entspricht.<br>In einem zweiten Schritt kann auf Basis der Komplexit\u00e4t eine Fehleranzahl angenommen werden (Verfahren \u00aberror guessing\u00bb) und mit den entsprechenden Faktoren f\u00fcr die Testabdeckung zu Kritikalit\u00e4t und dem Verh\u00e4ltnis notwendiger Testf\u00e4lle zum Entdecken eines Fehlers multipliziert werden.<br>Dieses Berechnungsverfahren ergibt h\u00e4ufig einen Testaufwand, der von denselben Personen als zu hoch kritisiert wird, die meistens auch den Vorwurf \u00e4u\u00dfern, dass zu wenig getestet wurde. Der Testaufwand f\u00fcr Systeme l\u00e4sst sich nur mittelfristig durch das Automatisieren von Regressionstests reduzieren. Bis dahin ist es \u00dcberzeugungsarbeit (schaffen von Awareness) oder das Eingehen von Kompromissen.<\/li>\n\n\n\n<li><strong>Kombination von agilen und traditionellen Testmethoden<\/strong><br>Eine Effizienzsteigerung wird erreicht, indem die formalen Testf\u00e4lle durch Review-Verfahren (statisches Testen) und agile Testmethoden erg\u00e4nzt werden, beispielsweise nach dem Framework von Lisa Crispin und Janet Gregory. Zudem lohnt sich der Aufbau einer bewirtschafteten Regressionstestlibrary.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p>Grundvoraussetzung f\u00fcr ein effektives und gen\u00fcgendes methodisches Testen ist das Verst\u00e4ndnis und die Kultur innerhalb des Unternehmens. Dies beginnt nicht zuletzt beim Management. Wird das Testen in erster Linie als Kostenfaktor wahrgenommen, wird vermutlich versucht werden, den Testaufwand m\u00f6glichst gering zu halten. Eine echte Testkultur wird so jedoch nie entstehen.&nbsp;<\/p>\n\n\n\n<p>Vielseitige und umfangreiche Testdaten sind eine elementare Voraussetzung f\u00fcr das Durchf\u00fchren der Testf\u00e4lle. Der Aspekt der zweckm\u00e4ssigen Testdaten wird im kommenden Teil 2 dieser Reihe beschrieben.<\/p>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"63995\" class=\"elementor elementor-63995\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"ob-is-breaking-bad elementor-section elementor-top-section elementor-element elementor-element-a596d88 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a596d88\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-085abfc\" data-id=\"085abfc\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"ob-is-breaking-bad ob-bb-inner elementor-section elementor-inner-section elementor-element elementor-element-3e136f2 elementor-section-height-min-height elementor-section-content-middle shadow1nohover elementor-section-boxed elementor-section-height-default\" data-dce-background-overlay-image-url=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/06\/header-test-v2.svg\" data-id=\"3e136f2\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-cf52f9f elementor-hidden-phone\" data-id=\"cf52f9f\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c3e8cc6 elementor-widget elementor-widget-image\" data-id=\"c3e8cc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"80\" height=\"80\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2023\/01\/Icon-white_Webinar-02.png\" class=\"attachment-full size-full wp-image-147797\" alt=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-6fa2c4c\" data-id=\"6fa2c4c\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-95d6747 elementor-widget elementor-widget-heading\" data-id=\"95d6747\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">H\u00e4lt Ihr Data Warehouse Sie zur\u00fcck?<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c201747 elementor-widget elementor-widget-heading\" data-id=\"c201747\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">BARC Webinar (on demand)<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50044c5 bullet elementor-widget elementor-widget-text-editor\" data-id=\"50044c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_postman_use&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Das muss nicht so bleiben. Data Fabric verbindet Datenumgebungen \u00fcber eine gemeinsame logische Schicht. Zugriff auf Daten dort, wo sie liegen. Keine Migration, kein Integrationsaufwand.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1406db0 elementor-align-left elementor-widget elementor-widget-button\" data-id=\"1406db0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/barc.com\/webinare\/data-fabric-forget-warehousing\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Jetzt ansehen!<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading\">Teil 2: Testdaten-Management<\/h2>\n\n\n\n<p>Ungen\u00fcgende Testdaten verhindern ein effektives Testen. Daher werden Fehler zu sp\u00e4t erkannt, manchmal erst in den produktiven Systemen. Vielfach k\u00f6nnen Fachanwender die korrekte Arbeitsweise eines Dashboards oder die Richtigkeit der Daten in einem Data Warehouse nur beurteilen, wenn diese m\u00f6glichst realit\u00e4tsnah sind. Aufgrund ihrer jahrelangen Erfahrung habe sie ein implizites Wissen entwickelt, um so intuitiv beurteilen zu k\u00f6nnen, ob die ausgewiesenen Betr\u00e4ge, Summen oder Mengen realistisch sind. Das hei\u00dft, sie erkennen dies aufgrund der Ihnen vertrauten Gr\u00f6\u00dfenordnungen. In letzter Konsequenz bedeutet dies, dass produktive Daten f\u00fcr effektives Testen verwendet werden sollten. So zumindest die Forderung der Fachbereiche.<\/p>\n\n\n\n<p>Die Verwendung von produktiven Daten ist jedoch aufgrund rechtlicher Anforderungen nicht uneingeschr\u00e4nkt m\u00f6glich. Insbesondere die verschiedenen Datenschutzgesetze verlangen eine Zugriffsbeschr\u00e4nkung. Der Gesetzgeber unterscheidet nicht zwischen Produktions- und Testsystemen oder zwischen operativen und analytischen Systemen. Somit ben\u00f6tigen auch Testsysteme ein Berechtigungssystem, erg\u00e4nzt mit Verfahren zum Maskieren der Daten (engl. Data Masking).<br>&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Anforderungen an Testdaten<\/h3>\n\n\n\n<p>Testdaten m\u00fcssen verschiedene Anforderungen erf\u00fcllen, um f\u00fcr die unterschiedlichsten Testf\u00e4lle geeignet zu sein:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M\u00f6glichst vollst\u00e4ndige Auspr\u00e4gungen von Wertebereichen<\/strong><br>Das bedeutet, dass die Daten folgende Anforderungen von Tests unterst\u00fctzen:\n<ul class=\"wp-block-list\">\n<li>Normalf\u00e4lle<\/li>\n\n\n\n<li>Extrema (Ausrei\u00dfer im g\u00fcltigen Bereich wie Peaks)<\/li>\n\n\n\n<li>Sonderf\u00e4lle, beispielsweise Sommer- oder Winterzeitwechsel in Zeitreihen<\/li>\n\n\n\n<li>Grenzwerte, um die korrekte Gruppenzuordnung testen zu k\u00f6nnen<\/li>\n\n\n\n<li>Fehlerhafte Daten f\u00fcr Negativtest<\/li>\n\n\n\n<li>Sich \u00e4ndernde Daten um Mutationen (Change-Verhalten) oder das korrekte Abbilden von Historisierung (z.B. Slowly changing dimensions oder bitemporale Strukturen) zu pr\u00fcfen<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Aktualit\u00e4t<\/strong><br>Drei Jahre alte Testdaten bilden auch nur die Situation des Unternehmens vor drei Jahren ab. Aktuelle Informationen, wie organisatorische Anpassungen nach Reorganisationen oder neu eingef\u00fchrte Produkte, fehlen.<\/li>\n\n\n\n<li><strong>Unterst\u00fctzung aller Teststufen und -arten<\/strong><br>F\u00fcr das Testen von funktionaler Korrektheit und Vollst\u00e4ndigkeit gen\u00fcgen meistens kleinere Mengen an Testdaten. Bei einem Lasttest (Performance) ist hingegen ein Vollbestand notwendig. Weitere unterschiedliche Anforderungen lassen sich aus den geplanten Positiv- oder Negativtests ableiten. Positivtests pr\u00fcfen die korrekte Arbeitsweise eines Systems, meistens im Bereich Funktionalit\u00e4t oder Sicherheit. Negativtests pr\u00fcfen das Verhalten des Systems au\u00dferhalb der g\u00fcltigen Regeln, wozu auch die Robustheit eines Systems geh\u00f6rt. Beispielsweise wird gepr\u00fcft, ob ein Ladeprozess in der Lage ist, fehlerhafte Daten zu erkennen und zur\u00fcckzuweisen, oder ob diese trotzdem geladen werden oder ein Ladeprozess abst\u00fcrzt. Die unterschiedlichen Anforderungen an Testverfahren lassen sich einfach aus der Norm ISO 25010 ableiten, die bereits in&nbsp;Teil 1&nbsp;beschrieben wurde.<\/li>\n\n\n\n<li><strong>M\u00f6glichst realit\u00e4tsnahe Daten<\/strong><br>Die \u00dcberpr\u00fcfung des Ergebnisses ist f\u00fcr jeden Tester bedeutend einfacher, wenn er mit vertrauten Daten arbeiten kann. Das bedeutet, dass realistische Stammdaten, wie Produktlisten, Preisstrukturen, Mengen, etc. verwendet werden sollten, was jedoch nicht gleichbedeutend mit operativen Produktionsdaten ist. Das Maskieren von Stammdaten ist somit nicht erforderlich.<\/li>\n\n\n\n<li><strong>Anonymisierung, wenn produktive, sensitive Daten eingesetzt werden (Masking)<\/strong><br>Operative Produktionsdaten sollten nie unver\u00e4ndert bereitgestellt werden. Bei der Verwendung von personenbezogenen Daten ist das Anonymisieren oder das Beschr\u00e4nken des Zugriffs gem\u00e4\u00df den verschiedenen Datenschutzgesetzen eine gesetzliche Vorgabe. Auch bei nicht personenbezogenen Daten sind m\u00f6gliche Anforderungen an die Maskierung zu pr\u00fcfen. Beispielsweise muss verhindert werden, dass bereits aus &nbsp;dem Testsystem das Unternehmensergebnis vorzeitig abgeleitet wird und eine Gewinnwarnung ver\u00f6ffentlicht oder Insiderhandel betrieben wird. Auf die verschiedenen Masking-Verfahren wird sp\u00e4ter in diesem Artikel noch genauer eingegangen.<\/li>\n\n\n\n<li><strong>Einfache und automatische Reproduzierbarkeit<\/strong><br>Dies ist notwendig, um die Testumgebung periodisch mit neuen Testdaten zu bef\u00fcllen, sei es teilweise oder bei einem vollst\u00e4ndigen Aufbau. Das Reproduzieren bedeutet nicht, dass die Testdaten zu 100 % identisch mit der letzten Generierung sind, sie m\u00fcssen nur die obigen Anforderungen erf\u00fcllen.<\/li>\n\n\n\n<li><strong>Unterschiedliche Attribut- und Dataset-Formate<\/strong><br>So heterogen wie die System- und Datenlandschaft ist, so unterschiedlich sind auch die Testdaten. Das hei\u00dft, das Generieren von CSV-Files gen\u00fcgt nicht. Manchmal sind BLOB\u2019s oder DB-spezifische Attribut-Formate oder Streaming-Daten notwendig.<\/li>\n\n\n\n<li><strong>DBMS und ETL-orientiert<\/strong><br>Abh\u00e4ngig von den Tests werden Daten als Basis in einer Datenbank oder f\u00fcr einen Ladeprozess bereitgestellt.<\/li>\n\n\n\n<li><strong>System\u00fcbergreifende Vollst\u00e4ndigkeit<\/strong><br>\u00dcblicherweise bestehen Testumgebungen aus mehreren Applikationen und Datenbanken, die in den Testf\u00e4llen in Kombination ben\u00f6tigt werden. So enth\u00e4lt eine Applikation die Auftragsdaten, die Produktedaten sind in einem Stammdatensystem und Kundendaten im CRM gespeichert. Tests k\u00f6nnen nur erfolgreich durchgef\u00fchrt werden, wenn die zusammengeh\u00f6renden Informationen in allen Systemen abgebildet sind.<br>&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Neben den oben beschriebenen Anforderungen gibt es noch weitere firmen- oder systemspezifische Anforderungen. Weitere Anforderungen werden aus einer erweiterten Datenbetrachtung abgeleitet, denn gerne wird vergessen, dass eine Systemumgebung nicht nur aus Daten mit Businessbezug, etwa transaktionale oder dimensionale Daten, besteht, sondern noch weitere Daten enth\u00e4lt, wie beispielsweise:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Konfigurationsdaten (plattformspezifisch und unabh\u00e4ngig)<\/li>\n\n\n\n<li>Plattformspezifische Daten sind beispielsweise Servernamen, unabh\u00e4ngige sind generelle Systemeinstellungen, wie Tuning-Ma\u00dfnahmen.<\/li>\n\n\n\n<li>Logdaten<\/li>\n\n\n\n<li>Metadaten<\/li>\n\n\n\n<li>Stammdaten<\/li>\n<\/ul>\n\n\n\n<p>Durch die oben beschriebenen Anforderungen an Daten mit Businessbezug und zus\u00e4tzlich die erweiterte Datenbetrachtung wird schnell eine Komplexit\u00e4t erreicht, die f\u00fcr den Aufbau und die Bewirtschaftung ein eigenes Subprojekt oder ein eigenes Testdaten-Management mit unterschiedlichen Rollen ben\u00f6tigt.&nbsp;<br>&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Synthetische oder produktive Daten?<\/h3>\n\n\n\n<p>In einem n\u00e4chsten Schritt muss die Frage der Testdatenherkunft gekl\u00e4rt werden: Sollen produktive Daten verwendet werden? Oder m\u00fcssen Testdaten erstellt werden &#8211; sogenannte synthetische Testdaten?<\/p>\n\n\n\n<p>Das Verwenden von produktiven Daten ist tats\u00e4chlich weit verbreitet und auch zul\u00e4ssig, sofern gewisse Regeln ber\u00fccksichtigt werden, wie das Maskieren von Daten aus bereits erw\u00e4hnten Datenschutzgr\u00fcnden. Die Rahmenbedingungen f\u00fcr die Verwendung von produktiven Daten m\u00fcssen vorg\u00e4ngig mit dem Data Owner und dem Datenschutzverantwortlichen gekl\u00e4rt werden.<\/p>\n\n\n\n<p>Werden produktive Daten verwendet, hat dies den Vorteil, dass auf einfache Weise eine gen\u00fcgend gro\u00dfe Anzahl von Datens\u00e4tzen bereitgestellt werden kann, die au\u00dferdem noch die verschiedenen Auspr\u00e4gungen abdecken, inklusive Probleme der Datenqualit\u00e4t. Allerdings werden nicht immer alle Datens\u00e4tze ben\u00f6tigt. Eine Teilmenge (engl. Subset) ist h\u00e4ufig sinnvoller, insbesondere dann, wenn die Infrastruktur der Testumgebung kleiner dimensioniert ist als das Produktivsystem. Ansonsten sind unn\u00f6tige Performance-Probleme wahrscheinlich. Auf das Thema Subsetting und m\u00f6gliche Tools wird im dritten Teil dieser Artikelserie noch eingegangen.<\/p>\n\n\n\n<p>Einfacher ist das Arbeiten mit synthetischen Daten, das hei\u00dft mit k\u00fcnstlich erzeugten Testdaten. Synthetische Daten eignen sich hervorragend f\u00fcr Negativtests, um die Robustheit und Fehlertoleranz eines Systems zu pr\u00fcfen. Da synthetische Daten keinen Bezug zu realen Daten haben, sind auch keine rechtlichen Rahmenbedingungen einzuhalten. Jedoch ist die Erstellung einiges komplizierter, sollen doch s\u00e4mtliche Wertebereiche und Kombinationen abgebildet werden. Zudem wird eine gr\u00f6\u00dfere Anzahl von Datens\u00e4tzen ben\u00f6tigt. Beide Anforderungen, Varianz und Volumen, werden nur mit einem Testdatengenerator erreicht. Das Generieren erfolgt \u00fcblicherweise aufgrund von Metadaten oder festen Wertelisten f\u00fcr Attributinhalte. Auf Grundlage der maximalen Anzahl an Auspr\u00e4gungen je Attribut werden kartesische Produkte gebildet, die anschlie\u00dfend auf die Anzahl gew\u00fcnschter Records reduziert werden. Die Toolgruppe der Testdatengeneratoren wird im dritten Teil dieser Artikelserie erkl\u00e4rt.<\/p>\n\n\n\n<p>In der Praxis wird h\u00e4ufig ein hybrider Ansatz f\u00fcr die Erstellung von Testdaten gew\u00e4hlt. F\u00fcr Normalf\u00e4lle werden&nbsp; produktive, maskierte Daten verwendet und durch synthetische Testdaten f\u00fcr Negativtests erg\u00e4nzt. Somit k\u00f6nnen sowohl Normalf\u00e4lle als auch das Verhalten im Fehlerfall getestet werden.<br>&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Data Masking<\/h3>\n\n\n\n<p>Data Masking ist ein Oberbegriff f\u00fcr verschiedene Verfahren des Pseudoanonymisierens oder Anonymisierens, um Echtdaten so zu ver\u00e4ndern, dass keine R\u00fcckschl\u00fcsse mehr auf die Originalwerte m\u00f6glich sind. Die maskierten Daten sind jedoch trotzdem f\u00fcr die Durchf\u00fchrung von Tests geeignet. Data Masking ist nicht gleichbedeutend mit einem Berechtigungssystem, bei dem der der Zugriff bewusst eingeschr\u00e4nkt oder gar verhindert wird.<\/p>\n\n\n\n<p>Bei den Verfahren des Pseudonymisierens werden Daten \u00fcber eine Hilfstabelle oder einen speziellen Key oder Algorithmus umgeschl\u00fcsselt. Wer Zugriff auf diese Hilfstabelle oder den Key hat, oder den angewandten Algorithmus kennt, ist also in der Lage das Maskieren r\u00fcckg\u00e4ngig zu machen.<\/p>\n\n\n\n<p>Bei den Verfahren des Anonymisierens werden sensitive Daten mit verschiedenen technischen Verfahren dagegen so verschl\u00fcsselt, dass dies nicht mehr r\u00fcckg\u00e4ngig gemacht werden kann, beispielsweise durch Hash-Algorithmen.<\/p>\n\n\n\n<p><strong>Data Masking muss verschiedene Prinzipien erf\u00fcllen:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Masking darf nicht durch unbefugte Personen r\u00fcckg\u00e4ngig gemacht werden k\u00f6nnen<\/li>\n\n\n\n<li>Gew\u00e4hrleisten der referentiellen Integrit\u00e4t<\/li>\n\n\n\n<li>Masking nur auf sensitiven Daten<\/li>\n\n\n\n<li>Repr\u00e4sentatives Resultat nach Masking<\/li>\n\n\n\n<li>Wiederholbarkeit<\/li>\n\n\n\n<li>Einhaltung der Compliance-Vorgaben und der Datenschutzrichtlinien<\/li>\n<\/ol>\n\n\n\n<p>Maskierungsverfahren werden nur auf einzelne Attribute, auf Attributgruppen oder auf Wertebereiche angewandt. Das Attributpaar Postleitzahlen und Ort ist ein Beispiel f\u00fcr Attributgruppen. Bei Wertebereichen sollten beispielsweise die Anzahl an Kunden oder das Umsatzvolumen in einem Marktgebiet weiterhin der Realit\u00e4t entsprechen.<\/p>\n\n\n\n<p>Am Markt gibt es unterschiedliche Tools f\u00fcr Data Masking, die manchmal drei\u00dfig oder mehr Verfahren unterst\u00fctzen. Je nach Hersteller werden diese Verfahren leider unterschiedlich benannt. Ein paar der \u00fcblichen Verfahren sind nachfolgend kurz erkl\u00e4rt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scrumble<\/strong><br>Scrumble schreddert Werte, indem zuf\u00e4llig neue Zeichen generiert werden. Bei der Anwendung von Scrumble sollte zumindest der Wertebereich definiert werden, beispielsweise ob und welche Sonderzeichen zul\u00e4ssig sind. Scrumble wird \u00fcblicherweise nur auf einzelne Attribute angewandt. Trotzdem f\u00fchrt Scrumble immer wieder zu Irritationen, beispielsweise wenn Namen nicht mehr aussprechbar sind, da nur noch eine zuf\u00e4llige Ansammlung von Konsonanten vorhanden ist. Daher ist Scrumble nur in Ausnahmef\u00e4llen einzusetzen.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"630\" height=\"128\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Scrumble-1.jpg\" alt=\"\" class=\"wp-image-50109\" srcset=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Scrumble-1.jpg 630w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Scrumble-1-300x61.jpg 300w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Scrumble-1-600x122.jpg 600w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><figcaption class=\"wp-element-caption\">Scrumble \u00fcber Vor- und Nachname<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Shuffle \/ Shuffling<\/strong><br>Shuffle bedeutet mischen. Hier werden bestehende Werte durch einen Zufallsgenerator, meistens Hash, neu verteilt. Somit entstehen aus den bestehenden Werten, neue zuf\u00e4llige Kombination. Shuffle ist beim Maskieren von Personendaten ein beliebtes Verfahren f\u00fcr Name, Vorname und Adressattribute, wobei die Gruppe Postleitzahl und Ort unbedingt zusammengehalten werden muss.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"119\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Shuffle-1.jpg\" alt=\"\" class=\"wp-image-50110\" srcset=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Shuffle-1.jpg 630w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Shuffle-1-300x57.jpg 300w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Shuffle-1-600x113.jpg 600w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><figcaption class=\"wp-element-caption\">Shuffle \u00fcber Adressen, wobei die Gruppe PLZ, Ort und Land zusammengehalten wird<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Substitution<\/strong><br>Bei Substitution werden Werte innerhalb desselben G\u00fcltigkeitsbereich ersetzt. Das Verfahren wird beispielsweise auf Kreditkarten- oder Telefonnummern angewandt.<\/li>\n\n\n\n<li><strong>Reduction\/Nulling<\/strong><br>Nulling l\u00f6scht den Inhalt eines Attributes ganz, Reduction nur einen Teil davon. bei Reduction wird in einer Telefonnummer noch die L\u00e4nder- oder Regionen-Vorwahl stehen gelassen und nur der hintere Teil gel\u00f6scht. Ergebnis: +49-176- &nbsp;<\/li>\n\n\n\n<li><strong>Masking out Data\/Replace Data<\/strong><br>Bei diesem Verfahren wird ein Teil eines Wertes ersetzt. Dieses Verfahren ist bei Onlinestores zum teilweisen Anzeigen der in den Kunden- und Zahlungsdaten hinterlegten Kreditkartennummer beliebt. Beispiel: 5500 XXXX XXXX 5703<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"80\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/MaskingOutData-1.jpg\" alt=\"\" class=\"wp-image-50111\" srcset=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/MaskingOutData-1.jpg 630w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/MaskingOutData-1-300x38.jpg 300w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/MaskingOutData-1-600x76.jpg 600w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><figcaption class=\"wp-element-caption\">Masking out von Telefonnummern<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Averaging<\/strong><br>Averaging wird auf numerische Werte innerhalb einer Wertegruppe angewandt, wie Anzahl, Betr\u00e4ge oder Summen. Die Anzahl der bestellten Produkte oder Ums\u00e4tze werden durch Zufallswerte ersetzt. Das Total einer Gruppe, beispielsweise eines Marktgebietes, soll dabei gleich gro\u00df bleiben. Beim Averaging sind zus\u00e4tzliche Regeln sinnvoll, sodass es nicht zu seltsamen Gr\u00f6\u00dfenverteilungen kommt, wie etwa dass ein Kunde 1 Mio. Umsatz gemacht hat und alle anderen nur noch Kleinstbetr\u00e4ge. Die Werte sollten au\u00dferdem in einer sinnvollen Relation stehen. Das bedeutet beispielsweise, dass die Bestellsumme realistisch in Bezug zur Anzahl bestellter Artikel und Listenpreise ist. Auch sollten Rabatte in einem realistischen Rahmen stehen. Averaging zeigt, dass das Maskieren von numerischen Werten deutlich komplexer ist.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"136\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Averaging-1.jpg\" alt=\"\" class=\"wp-image-50113\" srcset=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Averaging-1.jpg 630w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Averaging-1-300x65.jpg 300w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Averaging-1-600x130.jpg 600w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><figcaption class=\"wp-element-caption\">Averaging von Bestellungen. Produkte je Kunde, Produktpreise und das Gesamttotal bleiben gleich.<\/figcaption><\/figure>\n\n\n\n<p>Neben den oben beschriebenen Verfahren, gibt es noch verschiedene weitere M\u00f6glichkeiten des Data Masking. Einige davon sind nur Abwandlungen der oben beschriebenen Verfahren. Gerade zu Averaging gibt es eine Vielzahl an Subvarianten mit den unterschiedlichsten Bezeichnungen.<br>&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p>Das Bereitstellen und Aktualisieren der Testdaten in einer Testumgebung ist eine zeitintensive Aufgabe, verbunden mit einem hohen Abstimmungsaufwand. Einerseits gibt es die Erwartung, dass laufende Tests zu Ende gef\u00fchrt und Fehler analysiert werden k\u00f6nnen. Auf der anderen Seite steht die Erwartung, dass die Testdaten eine gen\u00fcgende Qualit\u00e4t haben und nicht zu unerw\u00fcnschten St\u00f6rungen des Testbetriebs f\u00fchren. Diese beiden Erwartungen stehen h\u00e4ufig in Widerspruch. Eine klare Kommunikation \u00fcber den Betrieb der Testumgebungen und die Aktualisierung der Testdaten ist somit notwendig.<\/p>\n\n\n\n<p>Nach Abschluss eines Testbetriebs muss entschieden werden, was mit den Testdaten geschieht. K\u00f6nnen diese einfach gel\u00f6scht werden? Oder gibt es eine Nachweispflicht zu den Testergebnissen aus regulatorischen Gr\u00fcnden? M\u00f6glicherweise m\u00fcssen Testf\u00e4lle und die dazugeh\u00f6renden Testdaten archiviert werden.<\/p>\n\n\n\n<p>Ein effektives Testdaten-Management ist eine komplexe Aufgabe, die nur mittels Automatisierung effizient gel\u00f6st werden kann. Die M\u00f6glichkeiten der Automatisierung und der dazu geeigneten Tools wird im dritten Teil dieser Artikelserie beschrieben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Teil 3: Testautomatisierung und -tools<\/h2>\n\n\n\n<p>Testen ist eine oft unbeliebte Aufgabe und wird als m\u00fchsam und aufw\u00e4ndig empfunden. Daher \u00e4u\u00dfern viele den Wunsch, mittels Automatisierung effizienter zu werden und Aufgaben vom Menschen auf die Maschine zu \u00fcbertragen. Die zentrale Voraussetzung f\u00fcr Automatisieren sind repetitive T\u00e4tigkeiten, das hei\u00dft, es muss ein Skaleneffekt \u00fcber die Zeitachse oder die Masse m\u00f6glich sein.<\/p>\n\n\n\n<p>Skaleneffekte \u00fcber die Zeitachse bedeutet, dass der gleiche Test oder die gleiche Aktivit\u00e4t in regelm\u00e4\u00dfigen zeitlichen Abst\u00e4nden wiederholt wird. Dies trifft etwa auf Regressionstests und Datenqualit\u00e4tspr\u00fcfungen zu. \u00c4hnliche Skaleneffekte werden ebenfalls bei der Bereitstellung von Testdaten erreicht.<\/p>\n\n\n\n<p>Skaleneffekte \u00fcber die Masse bedeutet, dass \u00e4hnliche oder gleiche Aktivit\u00e4ten parallel ausgef\u00fchrt werden. Beispiele sind Benutzbarkeitstests oder Funktionstests, die dynamisch \u00fcber eine Kombination von Parametern gesteuert werden, wie entscheidungstabellen-gesteuerte funktionale Tests. Auch das Generieren einer gr\u00f6\u00dferen Menge von synthetischen Testdaten ist ein weiteres Beispiel daf\u00fcr. &nbsp;<\/p>\n\n\n\n<p>Es wird leider nie m\u00f6glich sein, s\u00e4mtliche Testf\u00e4lle zu den Akzeptanzkriterien nach ISO 25010 zu automatisieren (siehe dazu&nbsp;Teil 1 dieser Artikelserie). Keine Automatisierungsm\u00f6glichkeiten gibt es bei Tests der Benutzerakzeptanz und -zufriedenheit, Konzepten und Handb\u00fcchern, oder bei ersten funktionalen Tests eines neugeschriebenen Moduls.<\/p>\n\n\n\n<p>Testautomatisierung wird den Menschen zudem nie komplett ersetzen. Vielmehr wird der Mensch von einem ausf\u00fchrenden zu einem haupts\u00e4chlich kontrollierenden und korrigierenden Faktor. Eine effiziente Automatisierung ist nur mittels Standardisierung, also der Eliminierung von unn\u00f6tiger Varianz und einem konsequenten und zweckm\u00e4ssigen Tooleinsatz, abgestimmt und koordiniert durch das Testmanagement, m\u00f6glich.&nbsp;<\/p>\n\n\n\n<p>Anstelle von Tools gibt es die M\u00f6glichkeit vereinfachter Formen der Automatisierung. Dazu geh\u00f6ren Scripts, Templates und Checklisten. Eigenentwickelte&nbsp;<strong>Scripts und Queries<\/strong>&nbsp;k\u00f6nnen bei den Verfahren Baseline- und Dualstream-Tests eingesetzt werden oder bei selbstentwickelten Komparatoren mittels SQL MINUS. Diese Verfahren werden detailliert im Seminar \u00ab<a href=\"https:\/\/barc.com\/de\/events\/\" target=\"_blank\" rel=\"noreferrer noopener\">Testen von DWH- und BI-Systemen<\/a>\u00bb erkl\u00e4rt.&nbsp;<\/p>\n\n\n\n<p><strong>Templates<\/strong>&nbsp;unterst\u00fctzen die Erstellung von Testfall- oder Fehlerbeschreibungen, oder Testkonzepten. Der Automatisierungsgrad ist jedoch hier relativ gering, da durch Dokumentenvorlagen nur die Struktur vereinheitlicht, die Vollst\u00e4ndigkeit sichergestellt und die Verst\u00e4ndlichkeit f\u00fcr den Leser durch Einheitlichkeit erreicht wird. Gute Dokumentenvorlagen f\u00fcr das Testen liefert die Norm IEEE 829, in der Versionen 1998 und 2008 oder neu auch Teil 3 von ISO 29119.&nbsp;<\/p>\n\n\n\n<p><strong>Checklisten<\/strong>&nbsp;hingegen automatisieren das repetitive Abarbeiten von immer gleichen Pr\u00fcfungen. Checklisten sind geeignet f\u00fcr das \u00dcberpr\u00fcfen des Designs von Reports oder Dashboards. Templates und Checklisten werden ebenfalls eingehend im zweit\u00e4gigen Seminar \u00ab<a href=\"https:\/\/barc.com\/de\/events\/\" target=\"_blank\" rel=\"noreferrer noopener\">Testen von DWH- und BI-Systemen<\/a>\u00bb erkl\u00e4rt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Art der wiederholten Ausf\u00fchrung<\/h2>\n\n\n\n<p>Automatisieren lassen sich nur Testf\u00e4lle, die wiederholt ausgef\u00fchrt werden. Dies klingt zun\u00e4chst nach einer Binsenwahrheit. Bei genauerer Betrachtung gibt es unterschiedliche Arten von Wiederholung:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Zeitliche Wiederholung<\/strong><br>Zu bestimmten Zeitpunkten wird ein Set von Testf\u00e4llen ausgef\u00fchrt, beispielsweise eine Gruppe von Regressionstests am Ende einer Projektphase oder bei einem Releasewechsel.<\/li>\n\n\n\n<li><strong>Situative Wiederholung&nbsp;<\/strong><br>Die Ausf\u00fchrung dieser Wiederholung erfolgt auf Basis von Einzelentscheidungen. Dazu geh\u00f6ren etwa kleinere Test-Sets f\u00fcr einen Modultest, welche durch den Entwickler angesto\u00dfen werden, um Funktionen nach \u00c4nderungen zu \u00fcberpr\u00fcfen. Zur situativen Wiederholung z\u00e4hlt auch das Ausf\u00fchren eines Test-Sets zur spezifischen Fehlersuche, beispielsweise wenn eine produktive St\u00f6rung aufgrund eines nicht entdeckten Fehlers auftritt.<\/li>\n\n\n\n<li><strong>Permanente Wiederholung<\/strong><br>Das Monitoring der Datenqualit\u00e4t ist eine Daueraufgabe und somit ein Beispiel f\u00fcr permanente Wiederholung. Die Pr\u00fcfungen basieren nicht selten auf datengetriebenen Tests, die operationalisiert wurden und nun Teil des produktiven Monitorings sind.&nbsp;<\/li>\n\n\n\n<li><strong>Parallele Ausf\u00fchrung<\/strong><br>Die parallele Ausf\u00fchrung ist keine Wiederholung im klassischen Sinn. Hier werden die gleichen Testf\u00e4lle mehrfach gleichzeitig ausgef\u00fchrt, um Last auf dem System zu erzeugen und Performance-Tests durchf\u00fchren zu k\u00f6nnen.<br>Zu bestimmten Zeitpunkten wird ein Set von Testf\u00e4llen ausgef\u00fchrt, beispielsweise eine Gruppe von Regressionstests am Ende einer Projektphase oder bei einem Releasewechsel.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Overview verschiedener Toolklassen<\/h2>\n\n\n\n<p>Am Markt gibt es eine gro\u00dfe Anzahl von teilweise recht unbekannten Tools, die verschiedene Aufgaben des Testens unterst\u00fctzen. Einige L\u00f6sungen sind Open Source, erstellt von Entwicklern, die aus der Not heraus eigene L\u00f6sungen f\u00fcr die Testautomatisierung erstellten.<br>Nachfolgend sind nur die Toolklassen beschrieben, die in der Tool\u00fcbersicht dieses Artikels vorkommen. Es gibt weitere, hier nicht beschriebene Toolklassen, wie Debugger f\u00fcr die Fehlersuche. Debugger k\u00f6nnen zus\u00e4tzlich f\u00fcr die funktionale Pr\u00fcfungen des Codes eingesetzt werden, anstelle von Walkthroughs. Somit k\u00f6nnen statische Tests durch dynamische Whitebox-Tests ersetzt werden.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Test Suiten<\/strong><br>Test Suiten beinhalten verschiedene Funktionen zur Unterst\u00fctzung des Testmanagements, wie Testfall- und Fehler-Tracking, automatisierte Ausf\u00fchrung von Testf\u00e4llen, Komparatoren und teilweise auch Testdaten-Management.<\/li>\n\n\n\n<li><strong>Tracking von Testf\u00e4llen oder Fehlern<\/strong><br>Tracking-Tools verwalten Testf\u00e4lle (engl. test cases) oder Fehler (engl. defects). Im Detail speichern sie die Testfallbeschreibung, erg\u00e4nzende Informationen, wie Handlungsanweisungen oder Testdaten und den aktuellen Status. Ein integriertes Reporting erm\u00f6glicht jederzeit eine Gesamt\u00fcbersicht zur Unterst\u00fctzung des Testmanagements. Tracking-Tools erm\u00f6glichen eine detaillierte Fehlerdokumentation, beispielsweise mittels Screenshots, und eine Fehlerklassifikation. Tracking-Funktionen sind ein zentrales Element von Test Suiten. Weitere beliebte Tracking-Tools sind Jira oder Sharepoint.&nbsp;<\/li>\n\n\n\n<li><strong>Automatisierung<\/strong><br>Automatisierungstools k\u00f6nnen weiter unterteilt werden in das Automatisieren von Datenqualit\u00e4tspr\u00fcfungen und in Software-Tests. F\u00fcr die Datenqualit\u00e4tspr\u00fcfung k\u00f6nnen auch klassische Datenqualit\u00e4tstools eingesetzt werden, wie SAS Data Quality oder Attacama. Eine weitere M\u00f6glichkeit der \u00dcberpr\u00fcfung der Datenqualit\u00e4t bieten ausgereifte ETL-Suiten, wie Informatica Power Center oder IBM Data Stage.<br>Viele L\u00f6sungen der Gruppe der Software-Test-Tools erm\u00f6glicht die automatisierte Ausf\u00fchrung von funktionalen Tests, wie sie bei Regressionstest verwendet werden. Eine interessante Gruppe der Software-Test-Tools sind L\u00f6sungen f\u00fcr Lasttests. Sie k\u00f6nnen Benutzeraktivit\u00e4ten simulieren oder I\/O auf Datenquellen.<\/li>\n\n\n\n<li><strong>Subsetting<\/strong><br>Es ist nicht immer sinnvoll den vollen produktiven Datenbestand f\u00fcr das Testen zu verwenden, insbesondere dann, wenn die Testumgebung kleiner dimensioniert ist. Unn\u00f6tige Performance-Probleme sind sonst die Folge. Ben\u00f6tigt werden Testdaten mit der ben\u00f6tigten Varianz und einer Vollst\u00e4ndigkeit \u00fcber alle Applikationen. Das hei\u00dft, Vielseitigkeit und Konsistenz der Testdaten ist gefordert. Dazu sind komplexe Regeln zur Selektion notwendig, die h\u00e4ufig nur toolbasiert verwaltet und periodisch ausgef\u00fchrt werden k\u00f6nnen.<br>F\u00fcr Performance-Tests ist Subsetting nicht sinnvoll. Hier wird fast immer ein Vollbestand und eine Testumgebung ben\u00f6tigt, die von der Dimensionierung (Sizing) identisch ist mit der Produktivumgebung.<br>Der Einsatz von Subsetting-Tools sollte immer durch Data Masking-Tools erg\u00e4nzt werden.<\/li>\n\n\n\n<li><strong>Data Masking<\/strong><br>Tools dieser Kategorie anonymisieren oder pseudonymisieren produktive Daten mittels verschiedener Verfahren. Ausgereifte Tools unterst\u00fctzen \u00fcblicherweise \u00fcber 20 verschiedene Verfahren, wobei verschiedene Varianten von Shuffle, Reduction, Nulling und Averaging die H\u00e4ufigsten sind (Siehe dazu Teil 2 dieser Artikelserie).<\/li>\n\n\n\n<li><strong>Generator f\u00fcr Testdaten<\/strong><br>F\u00fcr das Testen von Data-Warehouse- und Business-Intelligence-Systemen sind \u00fcblicherweise gr\u00f6\u00dfere Datenmengen notwendig. Dies \u00fcbersteigt h\u00e4ufig die M\u00f6glichkeiten einer manuellen Testdatenerstellung oder sie ist wirtschaftlich nicht sinnvoll. Testdaten-Generatoren hingegen sind in der Lage Millionen von Datens\u00e4tzen zu erstellen.<br>Bei der Evaluation eines Testdaten-Generators sind zwei Faktoren wichtig: Die M\u00f6glichkeit der Parametrisierung von Wertebereichen und Inhalten und die Output-Formate.<\/li>\n\n\n\n<li><strong>Infrastruktur Management<\/strong><br>Diese Toolkategorie erm\u00f6glicht den effizienten Betrieb einer Testumgebung. Im weiteren Sinne z\u00e4hlen dazu auch Werkzeuge zur Paketierung, Versionierung und \u00dcbertragung zwischen den verschiedenen Umgebungen. Weitere Tools \u00fcbernehmen spezialisierte Aufgaben, wie etwa TimeShiftX, welches das Ver\u00e4ndern der Systemzeit in einer gesamten Umgebung erm\u00f6glicht und somit zeitabh\u00e4nge Tests, wie die Umstellung auf Sommer- oder Winterzeit, zul\u00e4sst.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Tool-\u00dcbersicht<\/h2>\n\n\n\n<p>Die nachfolgende Liste ist nur ein kurzer Auszug m\u00f6glicher Tools. Bewusst nicht aufgef\u00fchrt wurden Tools, die ausschlie\u00dflich f\u00fcr die eigene Infrastruktur des Herstellers geeignet sind, wie herstellerspezifische L\u00f6sungen von Microsoft oder SAP. Eine ausf\u00fchrliche Liste mit weiteren L\u00f6sungen und detaillierten Beschreibungen ist vorhanden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"509\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Grafik_Artikel_3.png\" alt=\"\" class=\"wp-image-50116\" srcset=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Grafik_Artikel_3.png 630w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Grafik_Artikel_3-300x242.png 300w, https:\/\/barc.com\/wp-content\/uploads\/2022\/09\/Grafik_Artikel_3-600x485.png 600w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>Durch den Einsatz von Tools wird das Testen nicht automatisch verbessert. Toolgl\u00e4ubigkeit ist hier fehl am Platz. Zu viele Tools sind sogar eher kontraproduktiv, da der Unterhalt der Tools und der Lernaufwand im Verh\u00e4ltnis zum Nutzen nicht wirtschaftlich sind. Gerade bei selten genutzten Tools kommt es immer wieder zu Bedienfehlern und zu Schwierigkeiten bei der Anwendung. Eine sinnvolle Lernkurve wird nicht erreicht.<\/p>\n\n\n\n<p>Testautomatisierung als Teil des Testmanagements ist somit zuerst eine konzeptionelle Arbeit mit der Identifikation von Automatisierungspotentialen. Erst anschlie\u00dfend erfolgt eine Toolevaluation. Das wichtigste Tool im Testen bleibt weiterhin das menschliche Hirn.<\/p>\n\n\n\n<p>Die BARC unterst\u00fctzt Sie gerne bei Ihren Herausforderungen im Testen, wie Aufbau von Regressionstests, Erweiterung der Testmethodik und des Testdatenmanagements oder der Testtool-Evaluation. Wir verf\u00fcgen ebenfalls \u00fcber Erfahrung im agilen Testen oder der Ermittlung einer zweckm\u00e4\u00dfigen Testabdeckung. Gerne k\u00f6nnen Sie uns dazu&nbsp;<a href=\"mailto:info@barc.de\">kontaktieren<\/a>.&nbsp;<\/p>\n\n\n\n<p>Somit sind wir am Schluss der dreiteiligen Serie zum Testen angekommen. Ich w\u00fcnsche Ihnen nun viel Erfolg beim zuk\u00fcnftigen Testen,<\/p>\n\n\n\n<p>Herbert Stauffer<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Teil 1: Testmethodik und Schwerpunkte &#8222;Wir haben so&nbsp;viele&nbsp;Incidents&nbsp;in der Produktion, dass wir keine Zeit f\u00fcr ein effektives Testen unseres Data&nbsp;Warehouses&nbsp;finden&#8220;.&nbsp;So schilderte mir&nbsp;eine&nbsp;Teamleiterin ihre aktuelle Situation, ohne den Zusammenhang zwischen ungen\u00fcgendem Testen und den Produktionsst\u00f6rungen,&nbsp;die durch die&nbsp;unentdeckten Fehler&nbsp;verursacht wurden,&nbsp;wahrzunehmen. \u00c4hnliche Situationen gibt es leider h\u00e4ufig. Da die besonderen Herausforderungen f\u00fcr das Testen von BI-Systemen und das [&hellip;]<\/p>\n","protected":false},"author":30,"featured_media":47284,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[47,48],"tags":[],"plus":[],"content_typ":[209],"layoutvorlage":[],"class_list":["post-50102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business-intelligence","category-datenmanagement","content_typ-artikel"],"acf":[],"_links":{"self":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/posts\/50102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/comments?post=50102"}],"version-history":[{"count":0,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/posts\/50102\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/media\/47284"}],"wp:attachment":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/media?parent=50102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/categories?post=50102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/tags?post=50102"},{"taxonomy":"plus","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/plus?post=50102"},{"taxonomy":"content_typ","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/content_typ?post=50102"},{"taxonomy":"layoutvorlage","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/layoutvorlage?post=50102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}