{"id":157774,"date":"2025-11-28T07:00:00","date_gmt":"2025-11-28T06:00:00","guid":{"rendered":"https:\/\/e3mag.com\/?p=157774"},"modified":"2025-11-05T08:49:40","modified_gmt":"2025-11-05T07:49:40","slug":"warum-unit-tests","status":"publish","type":"post","link":"https:\/\/e3mag.com\/de\/warum-unit-tests\/","title":{"rendered":"Warum Unit-Tests?"},"content":{"rendered":"\n<p>Warum ist die Verwendung von Unit-Tests \u00e4u\u00dferst sinnvoll?. Beim Eingehen auf die Thematik zeigen wir die Vor- und Nachteile auf und vermitteln Grundlagenwissen.<\/p>\n\n\n\n<p>Testgetriebene Entwicklung ist eine Methode der agilen Softwareentwicklung. Hier erstellen Entwicklerinnen und Entwickler Unit-Tests konsequent vor den zu testenden Code-Abschnitten bzw. Komponenten. Mittels Unit-Tests lassen sich Funktionen darauf \u00fcberpr\u00fcfen, ob sie wie beabsichtigt arbeiten. Dies kann sowohl manuell als auch automatisiert erfolgen. Dabei ist erw\u00e4hnenswert, dass das Anwenden von Unit-Tests nicht zwingend mit der testgetriebenen Entwicklung gleichgestellt werden muss, denn Unit-Tests k\u00f6nnen auch nachtr\u00e4glich implementiert werden.<\/p><div class=\"great-fullsize-content-de\" style=\"float: left;\" id=\"great-934769874\"><div id=\"great-3387082996\" style=\"margin-bottom: 20px;\"><a data-no-instant=\"1\" href=\"https:\/\/www.youtube.com\/watch?v=6yfv7eho3Gc\" rel=\"noopener\" class=\"a2t-link\" target=\"_blank\" aria-label=\"Fullsize\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150.jpg\" alt=\"Fullsize\"  srcset=\"https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150.jpg 1200w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-400x50.jpg 400w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-768x96.jpg 768w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-100x13.jpg 100w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-480x60.jpg 480w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-640x80.jpg 640w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-720x90.jpg 720w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-960x120.jpg 960w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-1168x146.jpg 1168w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-18x2.jpg 18w, https:\/\/e3mag.com\/wp-content\/uploads\/2026\/03\/banner_26_04_08_1200x150-600x75.jpg 600w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" width=\"1200\" height=\"150\"  style=\" max-width: 100%; height: auto;\" \/><\/a><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">SAP-Entwicklungsumgebung<\/h2>\n\n\n\n\n\n\n\n<p>Abap Unit ist ein zentraler Bestandteil der SAP-Entwicklungsumgebung. Es wird in Eclipse als auch in der SAP-internen Entwicklungsumgebung SE80 unterst\u00fctzt. Unit-Tests werden in einer gesonderten Laufzeitumgebung durchgef\u00fchrt, die den Entwickelnden eine Vielzahl an Optionen und Diagnosem\u00f6glichkeiten bietet.<\/p>\n\n\n\n<p>Unit-Tests machen den Unterschied zwischen Testen und Ausprobieren. W\u00e4hrend man als Entwickelnder gerne die Logik mit einzelnen Parametern ausprobiert (Testprogramm oder Debugging), k\u00f6nnen Unit-Tests alle bereits definierten Kombinationen von Eingangsparametern und deren Ergebnisse mit einem Klick auf Korrektheit \u00fcberpr\u00fcft werden. Durch die Vielzahl von definierten Ausgangssituationen hat man die Sicherheit, dass diese nach \u00c4nderungen (Bug-fixing, ge\u00e4nderten Anforderungen oder Refactoring) immer noch das gew\u00fcnschte Ergebnis liefern \u2013 und zwar alle, nicht nur die zwei, drei oder f\u00fcnf, die man nach einer \u00c4nderung ausprobiert.<\/p>\n\n\n\n<p>Wie sinnvoll Unit-Tests sind, merkt man sp\u00e4testens, wenn man auf Coding st\u00f6\u00dft, das in etwa so aussieht:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"541\" src=\"https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web.png\" alt=\"\" class=\"wp-image-157799\" style=\"width:408px;height:auto\" srcset=\"https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web.png 1000w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-400x216.png 400w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-768x415.png 768w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-100x54.png 100w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-480x260.png 480w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-640x346.png 640w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-720x390.png 720w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-960x519.png 960w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-18x10.png 18w, https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/grafik_inwerken_web-600x325.png 600w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>Bei so einem Coding ist es ohne Forschungsarbeit kaum ersichtlich, bei welchen Konstellationen welcher Wert geliefert werden soll. Bei notwendigen \u00c4nderungen ist es nicht unwahrscheinlich, dass die Logik bei bestimmten Konstellationen nicht mehr wie urspr\u00fcnglich gew\u00fcnscht arbeitet. Unit-Tests machen das Coding zwar nicht \u00fcbersichtlicher, aber sie definieren exakt, welche Parameter welches Ergebnis ergeben sollen. Bei einer \u00c4nderung kann ich als Entwickelnder also einerseits neue Anforderungen einbauen und andererseits ein Refactoring durchf\u00fchren \u2013 beides mit der Sicherheit, dass die vorhandene Logik immer noch funktioniert. <\/p>\n\n\n\n<p>Das Gute an Unit-Tests ist: Sie k\u00f6nnen nachtr\u00e4glich zu einer Klasse definiert werden, ohne die Logik der Klasse selbst zu beeinflussen. Ich kann also beispielsweise einen Unit-Test f\u00fcr folgende Konstellation erstellen: Stelle sicher, dass bei der Behauptung (engl.: assert) i_vkorg = \u201a1000\u2018, i_vtweg = \u201910\u2018 und i_auart = \u201aTA\u2018 der Wert \u201eA\u201c herauskommt. Das Ergebnis dieser Behauptung kann ich mit einem Tastendruck verifizieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Anders als gelernt<\/h2>\n\n\n\n\n\n\n\n<p>In Verbindung mit vielen weiteren Unit-Tests ergibt sich ein Sicherheitsnetz, das Programmierenden die Gewissheit gibt, dass eine vorhandene Gesch\u00e4ftslogik nicht unbeabsichtigt ver\u00e4ndert wurde. Da das schrittweise L\u00f6sen von Problemen mit gleichzeitigem Testen im Allgemeinen nicht die Art ist, wie man das Programmieren erlernt, sind viele Entwicklerinnen und Entwickler das Anwenden von Unit-Tests nicht gewohnt. <\/p>\n\n\n\n<p>So gehen viele davon aus, dass das Implementieren von Unit-Tests einen hohen Aufwand mit sich bringt. Die Aussage ist zwar richtig, l\u00e4sst sich jedoch entkr\u00e4ften, denn Unit-Tests bilden ein Sicherheitsnetz, das \u00c4nderungen sicherer macht. Werden \u00c4nderungen im Code durchgef\u00fchrt, dann sind Fehler schnell und pr\u00e4zise lokalisierbar. Dadurch erspart man sich Zeit und Nerven bei der Suche nach der Nadel im Heuhaufen und durch das manuelle Ausf\u00fchren von Gesch\u00e4ftsprozessen. <\/p>\n\n\n\n<p>Ein weiterer Vorteil, der daraus resultiert: Der Kunde spart Kosten ein, da in Bezug auf zuk\u00fcnftige Entwicklungen weniger Aufwand beim Testen betrieben werden muss. Zudem f\u00f6rdert das Schreiben der Tests die eigene Entwicklung, denn die Codequalit\u00e4t verbessert sich durch das gedankliche Arbeiten sowie Auseinandersetzen mit dem Code, da dieser st\u00e4ndig \u00fcberdacht wird.<\/p>\n\n\n\n<p>Ein Nachteil der Unit-Tests besteht darin, dass Entwickelnde diese falsch einsetzen k\u00f6nnten und somit eine tr\u00fcgerische Sicherheit vorgegaukelt wird. Au\u00dferdem entsteht ein Initialaufwand, der bei der Kalkulation von Softwareprojekten zu beachten ist. Weiter m\u00fcssen sich Entwicklerinnen und Entwickler im Klaren dar\u00fcber sein, dass Unit-Tests nur die Funktionalit\u00e4t des Source Codes pr\u00fcfen. Die Performance und Usability fallen nicht in das Gebiet von Unit-Tests. Private Methoden werden in der Regel nicht getestet, da die Testklassen nur die Schnittstelle von \u00ad\u00f6ffentlichen Methoden testen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unit-Tests im Abap-Umfeld<\/h2>\n\n\n\n\n\n\n\n<p>Die SAP bietet f\u00fcr Unit-Tests das sogenannte Test-Framework \u201eAbap Unit\u201c. Dieses ist Teil des Abap-Stacks seit Web AS 6.40 und ist komplett in die Abap Workbench sowie Eclipse integriert. Abap Entwickelnde d\u00fcrfen sich in nahezu jedem Release \u00fcber eine dynamische Weiterentwicklung des Test-\u00adFrameworks freuen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n\n\n\n\n<p>Unit-Tests sind ein m\u00e4chtiges Werkzeug, das sich in der Softwareentwicklung bew\u00e4hrt hat. Nachdem ein Umdenken und Verinnerlichen der neuen Vorgehensweise in der Entwicklung stattgefunden hat, steigert sich die Source-Code-Qualit\u00e4t, w\u00e4hrend sich der Arbeitsaufwand proportional dazu verringert. Das spart nicht nur Zeit, sondern auch Kosten.<\/p>\n\n\n\n<p>Quelle: Inwerken<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Schon lange sind f\u00fcr die meisten Entwicklerinnen und Entwickler \u201eUnit-Test\u201c und \u201eTest Driven Development\u201c keine Fremdw\u00f6rter mehr. Dennoch werden diese in der Praxis aus verschiedensten Gr\u00fcnden von nicht allzu vielen Programmiererinnen und Programmierern angewendet. <\/p>\n","protected":false},"author":2368,"featured_media":157802,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","footnotes":""},"categories":[44321,5],"tags":[],"coauthors":[39720],"class_list":["post-157774","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mag-25-11","category-it-management","pmpro-has-access"],"acf":[],"featured_image_urls_v2":{"full":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-scaled.jpg",1920,840,false],"thumbnail":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-150x150.jpg",150,150,true],"medium":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-400x175.jpg",400,175,true],"medium_large":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-768x336.jpg",768,336,true],"large":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1200x525.jpg",1200,525,true],"image-100":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-100x44.jpg",100,44,true],"image-480":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-480x210.jpg",480,210,true],"image-640":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-640x280.jpg",640,280,true],"image-720":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-720x315.jpg",720,315,true],"image-960":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-960x420.jpg",960,420,true],"image-1168":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1168x511.jpg",1168,511,true],"image-1440":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1440x630.jpg",1440,630,true],"image-1920":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1920x840.jpg",1920,840,true],"1536x1536":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1536x672.jpg",1536,672,true],"2048x2048":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-2048x896.jpg",1920,840,true],"trp-custom-language-flag":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-18x8.jpg",18,8,true],"bricks_large_16x9":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1200x675.jpg",1200,675,true],"bricks_large":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1200x525.jpg",1200,525,true],"bricks_large_square":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-1200x1200.jpg",1080,1080,true],"bricks_medium":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-600x263.jpg",600,263,true],"bricks_medium_square":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-600x600.jpg",600,600,true],"profile_24":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-24x24.jpg",24,24,true],"profile_48":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-48x48.jpg",48,48,true],"profile_96":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-96x96.jpg",96,96,true],"profile_150":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-150x150.jpg",150,150,true],"profile_300":["https:\/\/e3mag.com\/wp-content\/uploads\/2025\/11\/shutterstock_2561770411-300x300.jpg",300,300,true]},"post_excerpt_stackable_v2":"<p>Schon lange sind f\u00fcr die meisten Entwicklerinnen und Entwickler \u201eUnit-Test\u201c und \u201eTest Driven Development\u201c keine Fremdw\u00f6rter mehr. Dennoch werden diese in der Praxis aus verschiedensten Gr\u00fcnden von nicht allzu vielen Programmiererinnen und Programmierern angewendet. <\/p>\n","category_list_v2":"<a href=\"https:\/\/e3mag.com\/de\/category\/mag-25-11\/\" rel=\"category tag\">MAG 25-11<\/a>, <a href=\"https:\/\/e3mag.com\/de\/category\/it-management\/\" rel=\"category tag\">IT-Management<\/a>","author_info_v2":{"name":"E3-Magazin","url":"https:\/\/e3mag.com\/de\/author\/e3_magazin\/"},"comments_num_v2":"0 comments","_links":{"self":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/posts\/157774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/users\/2368"}],"replies":[{"embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/comments?post=157774"}],"version-history":[{"count":3,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/posts\/157774\/revisions"}],"predecessor-version":[{"id":157806,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/posts\/157774\/revisions\/157806"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/media\/157802"}],"wp:attachment":[{"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/media?parent=157774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/categories?post=157774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/tags?post=157774"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/e3mag.com\/de\/wp-json\/wp\/v2\/coauthors?post=157774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}