{"id":2459,"date":"2025-12-05T13:04:58","date_gmt":"2025-12-05T12:04:58","guid":{"rendered":"https:\/\/demo.sidekick.be\/itenium\/?post_type=event&#038;p=2459"},"modified":"2026-01-07T17:20:06","modified_gmt":"2026-01-07T16:20:06","slug":"testing-track","status":"publish","type":"event","link":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/","title":{"rendered":"Testing Track"},"content":{"rendered":"<section class=\"l-section wpb_row us_custom_b7da3c01 bg-circles-green-orange height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-5 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-image us_custom_5e8a7298 has_ratio align_none\"><div class=\"w-image-h\"><div style=\"padding-bottom:133.3333%\"><\/div><img decoding=\"async\" width=\"683\" height=\"1024\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/ITENIUM_82-683x1024.jpg\" class=\"attachment-large size-large\" alt=\"\" loading=\"lazy\" \/><\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-7 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h2>Part 1: Testing Pyramid<\/h2>\n<p>Finding the right test mix: from unit to e2e<\/p>\n<p>We started with the fundamentals: how do you build a healthy test strategy without over-investing in UI tests or skipping unit coverage? We explored how to balance unit, integration, and end-to-end tests, what the trade-offs are, and how to avoid the classic pitfalls. The outcome: clearer decisions on where to place which tests \u2014 and why.<\/p>\n<p>What we covered<\/p>\n<ul>\n<li>Test structure across layers<\/li>\n<li>Best practices and trade-offs per test type<\/li>\n<li>Common pitfalls (too much UI, too little unit, fragile suites)<\/li>\n<li>Practical guidelines to evaluate your own project context<\/li>\n<\/ul>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row us_custom_b7da3c01 bg-circles-green-orange height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h2>Part 2 \u2013 Unit Testing (.NET &amp; Java)<\/h2>\n<p>TDD, maintainable tests, and Testcontainers<\/p>\n<p data-start=\"1324\" data-end=\"1631\">In part 2 we went deep on unit testing and TDD through a practical exercise that started from existing code. Step by step, we built test coverage, added new features using a TDD approach, and used a hexagonal architecture setup to sharpen decisions around boundaries, dependency management, and testability.<\/p>\n<p data-start=\"1633\" data-end=\"1787\">We also discussed how to test realistic dependencies without making your suite slow or brittle \u2014 including when Testcontainers is a better fit than mocks.<\/p>\n<p data-start=\"1633\" data-end=\"1787\">What we covered<\/p>\n<ul>\n<li data-start=\"1633\" data-end=\"1787\">Unit testing best practices for .NET and Java<\/li>\n<li data-start=\"1633\" data-end=\"1787\">TDD in practice: iterate fast with tight feedback loops<\/li>\n<li data-start=\"1633\" data-end=\"1787\">Hexagonal architecture as a driver for testability<\/li>\n<li data-start=\"1633\" data-end=\"1787\">Realistic integration tests with Testcontainers<\/li>\n<\/ul>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row us_custom_b7da3c01 bg-circles-green-orange height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_middle type_default stacking_default\"><div class=\"vc_col-sm-5 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-image us_custom_5e8a7298 has_ratio align_none\"><div class=\"w-image-h\"><div style=\"padding-bottom:133.3333%\"><\/div><img decoding=\"async\" width=\"683\" height=\"1024\" src=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/ITENIUM_19-683x1024.jpg\" class=\"attachment-large size-large\" alt=\"\" loading=\"lazy\" \/><\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-7 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h2>Part 3 \u2013 End-to-end Testing with Playwright<\/h2>\n<p>From cross-browser to CI and flaky tests<\/p>\n<p data-start=\"2103\" data-end=\"2445\">In the third part, we explored Playwright \u2014 Microsoft\u2019s end-to-end testing framework. Through practical demos and exercises, we looked at how to write e2e tests that stay stable, maintainable, and CI-friendly. We also tackled common pain points like flaky tests and async behavior, and how to address them with better patterns and discipline.<\/p>\n<p data-start=\"2447\" data-end=\"2629\">What we covered<\/p>\n<ul>\n<li data-start=\"2447\" data-end=\"2629\">Cross-browser e2e testing with Playwright<\/li>\n<li data-start=\"2447\" data-end=\"2629\">Stability patterns and handling flaky tests<\/li>\n<li data-start=\"2447\" data-end=\"2629\">Async patterns and best practices<\/li>\n<li data-start=\"2447\" data-end=\"2629\">CI integration and practical workflows<\/li>\n<\/ul>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row us_custom_70c52a97 height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_top type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h2>Why this track works<\/h2>\n<\/div><\/div><div class=\"w-separator size_small\"><\/div><div class=\"g-cols wpb_row us_custom_49dc4fad via_flex valign_top type_default stacking_default equal_height\"><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner us_custom_e4427a66\"><div class=\"wpb_wrapper\"><div class=\"w-iconbox us_custom_37d2f186 iconpos_top style_circle color_custom align_left\"><div class=\"w-iconbox-icon\" style=\"font-size:1.2rem;--icon-color:#2E8F6B;--icon-bg-color:#CDE8DD;\"><i class=\"material-icons\">check_circle_outline<\/i><\/div><div class=\"w-iconbox-meta\"><p class=\"w-iconbox-title\">Better testing decisions<\/p><div class=\"w-iconbox-text\"><p>Choose the right tests for the right purpose \u2014 not just more tests.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner us_custom_863eb645\"><div class=\"wpb_wrapper\"><div class=\"w-iconbox us_custom_37d2f186 iconpos_top style_circle color_custom align_left\"><div class=\"w-iconbox-icon\" style=\"font-size:1.2rem;--icon-color:#2E8F6B;--icon-bg-color:#CDE8DD;\"><i class=\"material-icons\">check_circle_outline<\/i><\/div><div class=\"w-iconbox-meta\"><p class=\"w-iconbox-title\">Faster feedback loops<\/p><div class=\"w-iconbox-text\"><p>Keep builds and CI fast with smart test layering and stable patterns.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"vc_col-sm-4 wpb_column vc_column_container\"><div class=\"vc_column-inner us_custom_4960fa58\"><div class=\"wpb_wrapper\"><div class=\"w-iconbox us_custom_37d2f186 iconpos_top style_circle color_custom align_left\"><div class=\"w-iconbox-icon\" style=\"font-size:1.2rem;--icon-color:#2E8F6B;--icon-bg-color:#CDE8DD;\"><i class=\"material-icons\">check_circle_outline<\/i><\/div><div class=\"w-iconbox-meta\"><p class=\"w-iconbox-title\">Confident delivery<\/p><div class=\"w-iconbox-text\"><p>Ship quicker without sacrificing quality, thanks to maintainable test practices.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div class=\"w-separator size_large\"><\/div><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"l-section wpb_row height_medium\"><div class=\"l-section-h i-cf\"><div class=\"g-cols vc_row via_flex valign_top type_default stacking_default\"><div class=\"vc_col-sm-12 wpb_column vc_column_container\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"w-vwrapper us_custom_09bbecc8 bg-circles-white align_center valign_top\" style=\"--vwrapper-gap:3rem\"><div class=\"wpb_text_column\"><div class=\"wpb_wrapper\"><h3 style=\"text-align: center;\">Interested in running this Testing Track for your team?<\/h3>\n<\/div><\/div><div class=\"w-btn-wrapper align_center\"><a class=\"w-btn us-btn-style_1 icon_atright\" href=\"#\"><span class=\"w-btn-label\">Book an event for your company<\/span><i class=\"material-icons\">arrow_forward<\/i><\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"<p>In 2025, we kicked off an internal Itenium learning series focused on testing: three sessions, each with a different angle, each hands-on and immediately useful in day-to-day project work. From test strategy and pyramid thinking, to unit testing and Testcontainers, to end-to-end testing with Playwright \u2014 less slides, more real examples, demos, and practical takeaways.<\/p>\n","protected":false},"author":1,"featured_media":2645,"template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"event-type":[53],"class_list":["post-2459","event","type-event","status-publish","has-post-thumbnail","hentry","event-type-tech"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testing Track - Itenium<\/title>\n<meta name=\"description\" content=\"A 3-part Testing Track covering the Testing Pyramid, unit testing with TDD and Testcontainers, and end-to-end testing with Playwright\u2014hands-on sessions packed with practical patterns teams can apply immediately.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing Track - Itenium\" \/>\n<meta property=\"og:description\" content=\"A 3-part Testing Track covering the Testing Pyramid, unit testing with TDD and Testcontainers, and end-to-end testing with Playwright\u2014hands-on sessions packed with practical patterns teams can apply immediately.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/\" \/>\n<meta property=\"og:site_name\" content=\"Itenium\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-07T16:20:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"990\" \/>\n\t<meta property=\"og:image:height\" content=\"247\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/\",\"name\":\"Testing Track - Itenium\",\"isPartOf\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg\",\"datePublished\":\"2025-12-05T12:04:58+00:00\",\"dateModified\":\"2026-01-07T16:20:06+00:00\",\"description\":\"A 3-part Testing Track covering the Testing Pyramid, unit testing with TDD and Testcontainers, and end-to-end testing with Playwright\u2014hands-on sessions packed with practical patterns teams can apply immediately.\",\"breadcrumb\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#primaryimage\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg\",\"contentUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg\",\"width\":990,\"height\":247},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/demo.sidekick.be\/itenium\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testing Track\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/\",\"name\":\"Itenium\",\"description\":\"We build software. We build careers.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testing Track - Itenium","description":"A 3-part Testing Track covering the Testing Pyramid, unit testing with TDD and Testcontainers, and end-to-end testing with Playwright\u2014hands-on sessions packed with practical patterns teams can apply immediately.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Testing Track - Itenium","og_description":"A 3-part Testing Track covering the Testing Pyramid, unit testing with TDD and Testcontainers, and end-to-end testing with Playwright\u2014hands-on sessions packed with practical patterns teams can apply immediately.","og_url":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/","og_site_name":"Itenium","article_modified_time":"2026-01-07T16:20:06+00:00","og_image":[{"width":990,"height":247,"url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/","url":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/","name":"Testing Track - Itenium","isPartOf":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#website"},"primaryImageOfPage":{"@id":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#primaryimage"},"image":{"@id":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#primaryimage"},"thumbnailUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg","datePublished":"2025-12-05T12:04:58+00:00","dateModified":"2026-01-07T16:20:06+00:00","description":"A 3-part Testing Track covering the Testing Pyramid, unit testing with TDD and Testcontainers, and end-to-end testing with Playwright\u2014hands-on sessions packed with practical patterns teams can apply immediately.","breadcrumb":{"@id":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#primaryimage","url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg","contentUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/12\/Testing-Track-Playwright-1-e1767802740823.jpg","width":990,"height":247},{"@type":"BreadcrumbList","@id":"https:\/\/demo.sidekick.be\/itenium\/event\/testing-track\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/demo.sidekick.be\/itenium\/"},{"@type":"ListItem","position":2,"name":"Testing Track"}]},{"@type":"WebSite","@id":"https:\/\/demo.sidekick.be\/itenium\/#website","url":"https:\/\/demo.sidekick.be\/itenium\/","name":"Itenium","description":"We build software. We build careers.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/event\/2459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/event"}],"about":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/types\/event"}],"author":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":8,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/event\/2459\/revisions"}],"predecessor-version":[{"id":3403,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/event\/2459\/revisions\/3403"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media\/2645"}],"wp:attachment":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media?parent=2459"}],"wp:term":[{"taxonomy":"event-type","embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/event-type?post=2459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}