{"id":45230,"date":"2025-05-05T13:50:28","date_gmt":"2025-05-05T11:50:28","guid":{"rendered":"https:\/\/www.happycoders.eu\/bad-tests-good-tests\/"},"modified":"2026-04-14T22:40:07","modified_gmt":"2026-04-14T20:40:07","slug":"bad-tests-good-tests","status":"publish","type":"post","link":"https:\/\/www.happycoders.eu\/de\/buecher\/bad-tests-good-tests\/","title":{"rendered":"Bad Tests, Good Tests - Tomek Kaczanowski"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Bad Tests, Good Tests<\/h1>\n\n\n\n<div class=\"wp-block-columns hc-books-v2 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n    <div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:730px\">\n        <p class=\"hc-book-author\">von Tomek Kaczanowski<\/p>\n        \n        <p>Tests und testgetriebene Entwicklung (TDD) sind in den meisten IT-Teams angekommen. Tests sollen das korrekte Verhalten neuer und bestehender Features sicherstellen, dabei Refactorings unbeschadet \u00fcberstehen, als Dokumentation neuen Entwicklern den Einstieg in den Code erleichtern und \u2013 obendrein \u2013 zu sauber(er)em Code f\u00fchren.<\/p>\n        <p>Leider sind viele Tests die Zeit nicht wert, die in ihre Entwicklung investiert wird. Sie sind schlecht les- und wartbar. Und oft m\u00fcssen sie bei Refactorings angepasst werden, da sie nicht das Resultat einer Operation verifizieren, sondern <em>wie<\/em> die Operation ausgef\u00fchrt wurde.<\/p>\n        <p>Bad Tests, Good Tests erkl\u00e4rt anhand zahlreicher Beispiele (etwa die H\u00e4lfte des Buches enth\u00e4lt Code) was schlechte Tests ausmacht \u2013 Beispiele, wie der Autor sie in realen Projekten vorgefunden hat. Jedem Beispiel stellt der Autor dann konkrete Verbesserungsvorschl\u00e4ge gegen\u00fcber.<\/p>\n        <p>Die Bandbreite der M\u00e4ngel reicht von schlechter Lesbarkeit (z. B. lange Setup- oder Assertion-Bl\u00f6cke) und offensichtlichen Fehlern (z. B. vergessene Assertions) \u00fcber l\u00fcckenhafte Tests (die trotz ge\u00e4nderter Funktionalit\u00e4t nicht fehlschlagen) und subtile Fehler (z. B. Exceptions, die an anderen Stellen als erwartet geworfen werden) bis hin zu v\u00f6llig unn\u00fctzen Tests (die z. B. die Test-Library verifizieren anstatt den eigenen Code).<\/p>\n        <p>Das Buch ist au\u00dferordentlich praxisnah und sowohl f\u00fcr Anf\u00e4nger als auch f\u00fcr fortgeschrittene Entwickler geeignet.<\/p>\n        <p>Anf\u00e4nger m\u00fcssen die Fehler nicht wiederholen, die andere vor ihnen gemacht haben. Fortgeschrittene Programmierer werden sicher das eine oder andere Anti-Pattern aus ihrer t\u00e4glichen Arbeit wiedererkennen und k\u00f6nnen ihre Toolbox mit neuen Techniken f\u00fcllen.<\/p>\n        <p>Der Autor schreibt verst\u00e4ndlich und humorvoll. Und er weist ausdr\u00fccklich darauf hin, dass man seine Regeln auch brechen darf, wenn es im Einzelfall der Sache dient.<\/p>\n        <p>Eine klare Empfehlung f\u00fcr jeden Java-Entwickler.<\/p>\n        <p>\ud83c\udfa7 <em>Geeignet als H\u00f6rbuch? Nein, aufgrund zahlreicher Codebeispiele.<\/em><\/p>\n    <\/div>\n    \n\n    \n    <div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:400px\">\n        <figure class=\"wp-block-image size-half_400\"><a href=\"https:\/\/www.amazon.de\/gp\/product\/8393847133\/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;tag=happycoders07-21&amp;creative=6742&amp;linkCode=as2&amp;creativeASIN=8393847133&amp;linkId=8c131087e3490771b082fe8b9f0f3208\" target=\"_blank\" rel=\" noopener\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2021\/06\/Bad_Tests_Good_Tests.jpg\" alt=\"Bad Tests, Good Tests - Tomek Kaczanowski\" style=\"width:400px;height:493px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-button\"><a href=\"https:\/\/www.amazon.de\/gp\/product\/8393847133\/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;tag=happycoders07-21&amp;creative=6742&amp;linkCode=as2&amp;creativeASIN=8393847133&amp;linkId=8c131087e3490771b082fe8b9f0f3208\" target=\"_blank\" rel=\"noopener\">Buch bei Amazon kaufen *<\/a><\/p>\n        \n\n\n        \n        <h4 class=\"wp-block-heading hc-genres-heading\">Genres<\/h4>\n        \n\n        \n        <p class=\"hc-genres-links\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/softwaretests\/\">Softwaretests<\/a> <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/softwareentwicklung\/\">Softwareentwicklung<\/a> <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/programmierung\/\">Programmierung<\/a> <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/informatik\/\">Informatik<\/a> <\/p>\n        <\/div>\n    <\/div>\n\n\n\n<h2 class=\"wp-block-heading hc-book-other-books-heading\">Andere Empfehlungen aus den Genres dieses Buches<\/h2>\n\n\n\n<div class=\"wp-block-group hc-book-other-books has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/growing-object-oriented-software-guided-by-tests\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2019\/06\/Growing_Object-Oriented_Software_Guided_by_Tests-336x440.jpg\" alt=\"Growing Object-Oriented Software, Guided by Tests - Steve Freeman und Nat Pryce\" style=\"width:192px;height:251px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/growing-object-oriented-software-guided-by-tests\/\">Growing Object-Oriented Software, Guided by Tests<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Steve Freeman und Nat Pryce<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/effektives-arbeiten-mit-legacy-code-refactoring-und-testen-bestehender-software\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/effektives-arbeiten-mit-legacy-code-michael-feathers-336x475.jpg\" alt=\"Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software - Michael C. Feathers\" style=\"width:192px;height:271px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/effektives-arbeiten-mit-legacy-code-refactoring-und-testen-bestehender-software\/\">Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Michael C. Feathers<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-code-refactoring-patterns-testen-und-techniken-fuer-sauberen-code\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/03\/clean-code-buch-336x473.jpg\" alt=\"Clean Code \u2013 Refactoring, Patterns, Testen und Techniken f\u00fcr sauberen Code - Robert C. Martin\" style=\"width:192px;height:270px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-code-refactoring-patterns-testen-und-techniken-fuer-sauberen-code\/\">Clean Code \u2013 Refactoring, Patterns, Testen und Techniken f\u00fcr sauberen Code<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Robert C. Martin<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/design-patterns\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/design-patterns-entwurfsmuster-erich-gamma-336x475.jpg\" alt=\"Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software - Erich Gamma, Richard Helm, Ralph E. Johnson, John Vlissides\" style=\"width:192px;height:271px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/design-patterns\/\">Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Erich Gamma, Richard Helm, Ralph E. Johnson, John Vlissides<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/refactoring\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/06\/Refactoring-Buch-Martin-Fowler-336x475.jpg\" alt=\"Refactoring: Wie Sie das Design bestehender Software verbessern - Martin Fowler\" style=\"width:192px;height:271px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/refactoring\/\">Refactoring: Wie Sie das Design bestehender Software verbessern<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Martin Fowler<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-craftsmanship\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/05\/Clean-Craftsmanship-deutsch-Robert-Martin-Uncle-Bob-336x475.jpg\" alt=\"Clean Craftsmanship: Best Practices, Standards und Ethik f\u00fcr die Softwareentwicklung - Robert C. Martin\" style=\"width:192px;height:271px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-craftsmanship\/\">Clean Craftsmanship: Best Practices, Standards und Ethik f\u00fcr die Softwareentwicklung<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Robert C. Martin<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/der-pragmatische-programmierer\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/der-pragmatische-programmierer-david-thomas-andrew-hunt-336x470.jpg\" alt=\"Der pragmatische Programmierer: Ihr Weg zur Meisterschaft - Andrew Hunt und David Thomas\" style=\"width:192px;height:268px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/der-pragmatische-programmierer\/\">Der pragmatische Programmierer: Ihr Weg zur Meisterschaft<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Andrew Hunt und David Thomas<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/pattern-hatching\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2019\/06\/Pattern_Hatching_Design_Patterns_Applied-336x421.jpg\" alt=\"Pattern Hatching: Design Patterns Applied - John Vlissides\" style=\"width:192px;height:240px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/pattern-hatching\/\">Pattern Hatching: Design Patterns Applied<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">John Vlissides<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-coder\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/04\/clean-coder-verhaltensregeln-robert-martin-336x472.jpg\" alt=\"Clean Coder: Verhaltensregeln f\u00fcr professionelle Programmierer - Robert C. Martin\" style=\"width:192px;height:269px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-coder\/\">Clean Coder: Verhaltensregeln f\u00fcr professionelle Programmierer<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Robert C. Martin<\/p>\n        <\/div><\/div>\n    \n<\/div><\/div>\n\n\n\n<p class=\"hc-book-disclosure\"><em>* Hinweis: Wir teilen gerne unsere Lieblingsb\u00fccher mit dir! Als Amazon-Partner verdienen wir eine kleine Provision bei Eink\u00e4ufen, die du \u00fcber unsere Links t\u00e4tigst. Dies hilft uns, weiterhin Inhalte zu erstellen, die dir gefallen.<\/em><\/p>\n<aside><h4 style=\"margin-top:60px\">Verpasse keine Buchempfehlungen und Profi-Tipps zu Java!<\/h4>\r\n                       <p>M\u00f6chtest du benachrichtigt werden, wenn ich neue Buchempfehlungen ver\u00f6ffentliche? Dann <a href=\"#\" data-formkit-toggle=\"d8ee997126\">klicke hier<\/a>, um dich f\u00fcr den HappyCoders-Newsletter anzumelden und erhalte meine Buchempfehlungen neben regelm\u00e4\u00dfigen Tipps zu Java-Programmierung, Algorithmen und Datenstrukturen.<\/p>\r\n                       <p>\ud83d\udc49 <a href=\"#\" data-formkit-toggle=\"d8ee997126\">Newsletter-Anmeldung<\/a><\/p><\/aside>","protected":false},"excerpt":{"rendered":"<p>Entdecke, wie Du bessere Tests schreibst: \u201eBad Tests, Good Tests\u201d zeigt typische Fehler und konkrete Verbesserungen \u2013 praxisnah und humorvoll erkl\u00e4rt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_uag_custom_page_level_css":"","_metis_text_type":"standard","_metis_text_length":3196,"_post_count":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-45230","post","type-post","status-publish","format-standard","hentry","category-buecher"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"feature_thumb_224":false,"feature_thumb_336":false,"feature_thumb_504":false,"feature_thumb_672":false,"half_400":false,"half_600":false,"full_800":false,"full_944":false,"full_1200":false,"wide_1180":false,"wide_1770":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sven Woltmann","author_link":"https:\/\/www.happycoders.eu\/de\/author\/sven\/"},"uagb_comment_info":0,"uagb_excerpt":"Entdecke, wie Du bessere Tests schreibst: \u201eBad Tests, Good Tests\u201d zeigt typische Fehler und konkrete Verbesserungen \u2013 praxisnah und humorvoll erkl\u00e4rt.","public_identification_id":"8fdc0f40da554e4c8513d4761f3dadf1","private_identification_id":"4fbaf7d5a4f44954875f26150614a6af","_links":{"self":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/45230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/comments?post=45230"}],"version-history":[{"count":11,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/45230\/revisions"}],"predecessor-version":[{"id":54549,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/45230\/revisions\/54549"}],"wp:attachment":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/media?parent=45230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/categories?post=45230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/tags?post=45230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}