{"id":377,"date":"2023-08-02T15:00:00","date_gmt":"2023-08-02T13:00:00","guid":{"rendered":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/unkategorisiert\/integrationstests\/"},"modified":"2024-06-05T09:47:20","modified_gmt":"2024-06-05T07:47:20","slug":"integrationstests","status":"publish","type":"post","link":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/manuelles-testen\/integrationstests\/","title":{"rendered":"Integrationstests"},"content":{"rendered":"\n<p>Traditionell wurde das Testen von Software als eine M\u00f6glichkeit angesehen, Fehler zu finden, sobald ein brauchbares Produkt erstellt wurde. Mit dem Fortschreiten des Softwareentwicklungsprozesses und der Entwicklung der Anforderungen an komplexe Software hat sich jedoch auch der Testprozess weiterentwickelt.<\/p>\n\n<p>Die Tests wurden in verschiedene Stufen aufgeteilt, um die Testabdeckung und Zuverl\u00e4ssigkeit zu verbessern. In diesem Text werden wir zun\u00e4chst einen kurzen \u00dcberblick \u00fcber die verschiedenen Testebenen geben und dann einen detaillierten Blick auf Integrationstests und ihre Arten, Vorteile und einige der g\u00e4ngigsten Integrationstest-Tools werfen.<\/p>\n\n<h2 class=\"wp-block-heading\">Inhalts\u00fcbersicht<\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-urovne-testovania\">\u00darovne testovania<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-co-je-integracne-testovanie\">\u010co je integra\u010dn\u00e9 testovanie?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-preco-by-sme-mali-vykonavat-integracne-testovanie\">Pre\u010do by sme mali vykon\u00e1va\u0165 integra\u010dn\u00e9 testovanie?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vyhody-integracneho-testovania\">V\u00fdhody integra\u010dn\u00e9ho testovania<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-typy-integracneho-testovania\">Typy integra\u010dn\u00e9ho testovania<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-big-bang-integracia\">Big-bang integr\u00e1cia<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-integracne-testovanie-zhora-nadol-top-down-integration-testing\">Integra\u010dn\u00e9 testovanie zhora nadol (top-down integration testing)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-zxa\">Integra\u010dn\u00e9 testovanie zdola nahor (bottom-up integration testing)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-hybridne-integracne-testovanie\">Hybridn\u00e9 integra\u010dn\u00e9 testovanie<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-nastroje-na-testovanie-integracie\">N\u00e1stroje na testovanie integr\u00e1cie<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-urovne-testovania\">Stufen der Pr\u00fcfung<\/h2>\n\n<p>Die Arten von Softwaretests lassen sich grob in statische Tests und dynamische Tests unterteilen. Beim statischen Testen f\u00fchren wir die entwickelte Softwareanwendung nicht aus, sondern verwenden verschiedene Techniken, um die Anwendung zu testen, wie z. B. &#8211; Checks, Zwischentests, informelle und technische \u00dcberpr\u00fcfungen.<\/p>\n\n<p>Beim dynamischen Testen wird die Softwareanwendung getestet, indem der Code ausgef\u00fchrt und sein dynamisches Verhalten untersucht wird. Dabei werden verschiedene Parameter wie Antwortzeit, CPU-Auslastung, Speichernutzung usw. analysiert. Derzeit umfasst das dynamische Testen verschiedene Testebenen, die mit Unit-Tests beginnen und mit Integrations-, System- und schlie\u00dflich Akzeptanztests fortgesetzt werden.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"500\" src=\"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/wp-content\/uploads\/2023\/08\/dynamicke-testovanie-600-500.webp\" alt=\"Pr&#xFC;fung des dynamischen Niveaus\" class=\"wp-image-158\" srcset=\"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/wp-content\/uploads\/2023\/08\/dynamicke-testovanie-600-500.webp 600w, https:\/\/staging-msg-ittester-sk.rucolabs.sk\/wp-content\/uploads\/2023\/08\/dynamicke-testovanie-600-500-300x250.webp 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption class=\"wp-element-caption\">dynamische Pr\u00fcfung &#8211; Stufen<\/figcaption><\/figure>\n<\/div>\n<p><strong>Unit-Testing<\/strong> &#8211; Dies ist die erste Ebene des Testens, bei der einzelne Module oder kleinere Bausteine der Anwendung isoliert getestet werden. Dies hat den Vorteil, dass es einfacher ist, ein bestimmtes Modul vollst\u00e4ndig und ersch\u00f6pfend zu testen, da wir uns nur auf kleinere Module konzentrieren. Au\u00dferdem k\u00f6nnen Fehler, die auf dieser Ebene entdeckt werden, schnell und einfach mit weniger Ressourcen korrigiert werden.<\/p>\n\n<p><strong>Integrationstests<\/strong> &#8211; Dies ist die zweite Ebene der Tests, die wir in diesem Artikel behandeln. Sie umfasst die Pr\u00fcfung der integrierten Module als Ganzes sowie deren Zusammenschaltung.<\/p>\n\n<p><strong>Systemtests<\/strong> &#8211; Die dritte Teststufe, bei der die gesamte Anwendung von Anfang bis Ende getestet wird. Es hilft bei der \u00dcberpr\u00fcfung der Anforderungen vor der endg\u00fcltigen Pr\u00fcfung durch den Kunden.<\/p>\n\n<p><strong>Abnahmetests<\/strong> &#8211; Dies ist die vierte und letzte Teststufe, bei der der Kunde oder die Interessenvertreter pr\u00fcfen, ob die Anwendung ihren gesch\u00e4ftlichen Anforderungen entspricht oder nicht.<\/p>\n\n<p>Da wir nun \u00fcber statische und dynamische Tests und die verschiedenen Teststufen Bescheid wissen, k\u00f6nnen wir uns nun mit den Integrationstests im Detail besch\u00e4ftigen.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-co-je-integracne-testovanie\">Was sind Integrationstests?<\/h2>\n\n<p>Integrationstests sind die zweite Testebene nach den Unit-Tests, bei denen wir neben den integrierten Komponenten auch die Verbindung zwischen den Modulen testen. Sie kann sowohl mit White-Box- als auch mit Black-Box-Testverfahren durchgef\u00fchrt werden.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-preco-by-sme-mali-vykonavat-integracne-testovanie\">Warum sollten wir Integrationstests durchf\u00fchren?<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Ein Modul kann isoliert gut funktionieren, aber bei der Interaktion mit einem anderen Modul k\u00f6nnen Integrationsprobleme auftreten.  <\/li>\n\n\n\n<li>Es kann Probleme mit dem Datentyp oder dem g\u00fcltigen Datenbereich zwischen Modulen geben.  <\/li>\n\n\n\n<li>In gro\u00dfen Teams, in denen Module von verschiedenen Entwicklern oder sogar Teams erstellt werden, ist dies sehr wichtig, da das Verst\u00e4ndnis der verschiedenen Entwickler nicht \u00fcbereinstimmen kann.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vyhody-integracneho-testovania\">Vorteile von Integrationstests<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Wie bereits erw\u00e4hnt, hilft es bei der Identifizierung von Integrationsproblemen zwischen Modulen.  <\/li>\n\n\n\n<li>So kann sichergestellt werden, dass die integrierten Module ordnungsgem\u00e4\u00df funktionieren, bevor man zum systemweiten Testen der Anwendung \u00fcbergeht.  <\/li>\n\n\n\n<li>Fehler, die auf dieser Ebene gefunden werden, sind leichter zu beheben als Fehler, die in sp\u00e4teren Testphasen &#8211; System- und Akzeptanztests &#8211; gefunden werden.<\/li>\n\n\n\n<li>Sie verbessert die Testabdeckung und bietet ein zus\u00e4tzliches Ma\u00df an Zuverl\u00e4ssigkeit.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-typy-integracneho-testovania\">Arten von Integrationstests<\/h2>\n\n<p>Wir kennen 4 Arten:<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-big-bang-integracia\">Urknall-Integration<\/h2>\n\n<p>Bei einer gro\u00dfen Integration m\u00fcssen zun\u00e4chst alle Module fertiggestellt und dann integriert werden. Nach der Integration erfolgt die Pr\u00fcfung der integrierten Einheit als Ganzes. Sie unterscheidet sich von der Systempr\u00fcfung, da sich die Pr\u00fcfung hier auf die Verbindung\/Kommunikation zwischen den Modulen konzentriert.<\/p>\n\n<p><strong>Vorteil<\/strong> &#8211; Es eignet sich f\u00fcr kleinere Projekte, bei denen alle Module vor Beginn der Integrationstests entwickelt werden k\u00f6nnen.<\/p>\n\n<p><strong>Nachteil<\/strong> &#8211; Die Integration ist sehr schwierig, da es weder praktisch noch bequem ist, alle Module vor Beginn der Integrationstests fertig zu haben.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-integracne-testovanie-zhora-nadol-top-down-integration-testing\">Top-down-Integrationstests<\/h2>\n\n<p>Die Top-Down-Integration ist ein inkrementeller Ansatz f\u00fcr Integrationstests, bei dem der Testfluss von den Top-Level-Modulen (Module, die in der Hierarchie h\u00f6her stehen) zu den Modulen der unteren Ebene f\u00fchrt. Da es sehr wahrscheinlich ist, dass die Module der unteren Ebene nicht entwickelt werden, bevor die Module der oberen Ebene gestartet werden, werden in solchen F\u00e4llen Plugins (Stubs) verwendet.<\/p>\n\n<p>Proxy-Module sind Dummy-Module, die den Betrieb eines Moduls simulieren, indem sie die vom Modul empfangenen Parameter akzeptieren und ein akzeptables Ergebnis liefern. Im Allgemeinen haben Stubs fest kodierte Ein- und Ausgaben, die beim Testen anderer Module, die mit ihnen integriert sind, helfen.<\/p>\n\n<p><strong>Vorteil<\/strong> &#8211; Durch die Verwendung von Stubs m\u00fcssen wir nicht auf die Entwicklung aller Module warten. Wir k\u00f6nnen auch dem Testen kritischer integrierter Module Vorrang einr\u00e4umen.<\/p>\n\n<p><strong>Nachteil<\/strong> &#8211; Diese Technik erfordert die Erstellung vieler untergeordneter Module, um Module auf niedrigerer Ebene zu simulieren. Es kann auch vorkommen, dass Module der unteren Ebene nicht ausreichend getestet werden.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-zxa\">Bottom-up-Integrationstests<\/h2>\n\n<p>Die Bottom-up-Integration basiert ebenfalls auf einem inkrementellen Ansatz, der von Modulen der unteren Ebene ausgeht und sich zu Modulen der oberen Ebene hocharbeitet. Auch hier ist es m\u00f6glich, dass die Module der h\u00f6heren Ebene nicht zu dem Zeitpunkt entwickelt werden, zu dem die Module der unteren Ebene getestet werden. In diesen F\u00e4llen werden Treiber eingesetzt. Diese Treiber simulieren die Funktionalit\u00e4t von Modulen h\u00f6herer Ebenen, um Module niedrigerer Ebenen zu testen.<\/p>\n\n<p><strong>Vorteil<\/strong> &#8211; \u00e4hnlich wie beim Top-down-Testing m\u00fcssen wir nicht warten, bis alle Module entwickelt sind, bevor wir mit dem Testen beginnen.<\/p>\n\n<p><strong>Nachteil<\/strong> &#8211; Top-Level-Module, die in sp\u00e4teren Phasen getestet werden, sind m\u00f6glicherweise nicht ausreichend getestet und k\u00f6nnen Fehler enthalten.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-hybridne-integracne-testovanie\">Hybride Integrationstests<\/h2>\n\n<p>Der hybride Integrationsansatz wird auch als Sandwich-Ansatz bezeichnet. Dieser Ansatz ist eine Kombination aus Top-down- und Bottom-up-Integrationstests. Bei diesem Ansatz beginnt die Integration in der mittleren Schicht, und die Tests werden in beide Richtungen durchgef\u00fchrt &#8211; zu den Modulen der h\u00f6heren Ebene (aufw\u00e4rts) und zu den Modulen der unteren Ebene (abw\u00e4rts). Diese Methode vereint die Vorteile von Top-down- und Bottom-up-Ans\u00e4tzen und erm\u00f6glicht eine schnellere Pr\u00fcfung von Modulschnittstellen.<\/p>\n\n<p><strong>Vorteil<\/strong> &#8211; Da wir uns nach oben und unten bewegen k\u00f6nnen, ist dies die zeitsparendste Methode mit der M\u00f6glichkeit, Module auf der obersten oder untersten Ebene zu priorisieren.<\/p>\n\n<p><strong>Nachteil <\/strong>&#8211; dieser Ansatz ist schwierig zu implementieren, da wir das zu pr\u00fcfende Modul integrieren und in beide Richtungen bewegen m\u00fcssen.<\/p>\n\n<p><strong>Herausforderungen bei Integrationstests<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li>Schwierig <strong>auszuf\u00fchren<\/strong> &#8211; im Vergleich zu Systemtests, bei denen wir die Anwendung als Blackbox betrachten k\u00f6nnen, ist es sehr schwierig, sie durchzuf\u00fchren.<\/li>\n\n\n\n<li><strong>Zeitaufwendig<\/strong> &#8211; Das Testen aller Verbindungen zwischen den verschiedenen verkn\u00fcpften Modulen ist sehr zeit- und ressourcenaufwendig.<\/li>\n\n\n\n<li><strong>Zus\u00e4tzlicher Aufwand<\/strong> &#8211; Erfordert die Erstellung von Untergruppen und Treibern, die, wenn sie nicht korrekt erstellt werden, zu unzureichenden Tests f\u00fchren k\u00f6nnen.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-nastroje-na-testovanie-integracie\">Werkzeuge f\u00fcr Integrationstests<\/h2>\n\n<p><strong>Rational Integration Tester<\/strong> &#8211; Rational Integration Tester ist ein Integrationstestwerkzeug von IBM. Es bietet eine codierungsfreie Umgebung f\u00fcr die Entwicklung von Integrationstests.<\/p>\n\n<p><strong>TESSY<\/strong> &#8211; Tessy von Razorcat Development GmbH hilft bei der Automatisierung des Unit- und Integrationstestzyklus f\u00fcr eingebettete Software in C und C++.<\/p>\n\n<p><strong>LDRA <\/strong>&#8211; Das LDRA-Toolpaket bietet Funktionen f\u00fcr Unit-, Integrations- und Systemtests. Es wird meist f\u00fcr kritische Softwareanwendungen wie Luft- und Raumfahrt, medizinische Ger\u00e4te, Automobilbau usw. verwendet.<\/p>\n\n<p><strong>Protractor<\/strong> &#8211; Protractor ist ein Open-Source-Testframework f\u00fcr Angular- und AngularJS-Anwendungen, das Javascript-Skripting unterst\u00fctzt.<\/p>\n\n<p><strong>Citrus Integration Testing<\/strong> &#8211; Citrus ist ein Open-Source-Testframework, das bei der Entwicklung automatisierter Integrationstests f\u00fcr HTTP REST, TCP\/IP, SOAP, FTP, XML, JSON usw. Protokolle und Nachrichtenformate hilft.<\/p>\n\n<p><strong>Steam <\/strong>&#8211; Steam ist ein Open-Source-Framework zur Testautomatisierung, das Integrationstests ohne Kopfh\u00f6rer erm\u00f6glicht.<\/p>\n\n<p><strong>Jasmine <\/strong>&#8211; Jasmine ist ein Open-Source-BDD-Framework, das zur Automatisierung jeder Javascript-basierten Anwendung verwendet werden kann.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Traditionell wurde das Testen von Software als eine M\u00f6glichkeit angesehen, Fehler zu finden, sobald ein [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":1396,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-377","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manuelles-testen"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts\/377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/comments?post=377"}],"version-history":[{"count":7,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts\/377\/revisions"}],"predecessor-version":[{"id":1398,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts\/377\/revisions\/1398"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/media\/1396"}],"wp:attachment":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/media?parent=377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/categories?post=377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/tags?post=377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}