{"id":19790,"date":"2025-03-26T14:09:26","date_gmt":"2025-03-26T12:09:26","guid":{"rendered":"https:\/\/www.btc-embedded.com\/?p=19790"},"modified":"2025-03-26T14:09:26","modified_gmt":"2025-03-26T12:09:26","slug":"why-shift-left-testing-is-essential","status":"publish","type":"post","link":"https:\/\/www.btc-embedded.com\/de\/why-shift-left-testing-is-essential\/","title":{"rendered":"Why a \u201eshift-left\u201c testing approach is not just a new buzz word, but is actually a necessity"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"19790\" class=\"elementor elementor-19790\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b0191be elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b0191be\" data-element_type=\"section\">\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-37814b1\" data-id=\"37814b1\" data-element_type=\"column\">\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-933a542 elementor-widget elementor-widget-text-editor\" data-id=\"933a542\" data-element_type=\"widget\" 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>In the dynamic domain of embedded automotive software, achieving high quality, safety, and performance is non-negotiable. This is becoming even more important when looking at topics like Software-Defined Vehicles. For over 20 years, our company has enabled automotive OEMs and suppliers to start testing as early as possible in the development process. In the last years, this has been also called \u201cshift-left testing.\u201d We recently had a presentation on our BTC Software Quality Summit in Chennai\/India which was titled \u201eFail early, fail cheap\u201c.<\/p><p>In this article, we\u2019ll explore why early testing is crucial, the benefits it offers, and the pitfalls of waiting to test your software later.<\/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-0036454 elementor-widget elementor-widget-heading\" data-id=\"0036454\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What is Shift-Left Testing?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f3eba6c elementor-widget elementor-widget-text-editor\" data-id=\"f3eba6c\" data-element_type=\"widget\" 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>Shift-left testing is the practice of integrating testing activities as early as possible in the software development lifecycle. Rather than saving all tests for later stages\u2014where defects can be much more expensive and complex to resolve\u2014shift-left encourages continuous testing from the very beginning.<\/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-dfdf13f elementor-widget elementor-widget-image\" data-id=\"dfdf13f\" data-element_type=\"widget\" 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 fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"633\" src=\"https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic_032025.webp\" class=\"attachment-large size-large wp-image-20037\" alt=\"Why a \u201eshift-left\u201c testing approach is not just a new buzz word but a necessity\" srcset=\"https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic_032025.webp 1390w, https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic_032025-768x608.webp 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\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<div class=\"elementor-element elementor-element-f6f7701 elementor-widget elementor-widget-heading\" data-id=\"f6f7701\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The Benefits of Early Testing<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef76ce9 elementor-widget elementor-widget-text-editor\" data-id=\"ef76ce9\" data-element_type=\"widget\" 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>Finding and fixing defects early in the development process is significantly less expensive than addressing issues during or after integration. The earlier a bug is caught, the lower its impact on the overall project, reducing both time and financial costs. Leading consulting and engineering companies, which have insight into many different companies, also address the topic, for example in <a href=\"https:\/\/www.aptiv.com\/en\/insights\/article\/what-is-shift-left-testing\" target=\"_blank\" rel=\"noopener\">this article<\/a>.<\/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-7c3f765 elementor-widget elementor-widget-heading\" data-id=\"7c3f765\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How to shift left?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab8b010 elementor-widget elementor-widget-text-editor\" data-id=\"ab8b010\" data-element_type=\"widget\" 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>Let&#8217;s take a look at what early testing means. Often, testing is done directly on the HIL, which brings some challenges. In this scenario, bugs are difficult to locate because you can only observe the interfaces of an integrated system, and this is further complicated when you have to trace back through the entire V-cycle to fix the bug.<\/p><p>A first &#8222;Shift-Left&#8220; step would be a Digital Twin (integrated SIL). This scalable solution is better and cheaper because no hardware is involved yet. But even here, the system is already integrated, so de-bugging can still be complicated.<\/p><p>It would be better to go straight to SIL in unit testing. Here, the individual units are not yet integrated and can be tested separately. This makes simulation and error analysis much faster, which should result in saving time and money. The subsequent integration test then focuses exclusively on the integration.<\/p><p>The disadvantage here, however, is that the code must still be brought into a \u201ccompiler ready\u201d state and then compiled before a test can be executed. However, if you are developing C code directly in your project, you cannot move any further to the left.<\/p><p>For model-based software development (MBD), testing should be moved to MIL, as the code is generated from the model and bugs will eventually need to be fixed in the model anyway. The advantage is that testers can functionally test the model very early, even before a configuration for code generation exists or any code is generated and compiled.<\/p><p>The last &#8222;Shift-Left&#8220; step that can be achieved with MBD is Test Driven Development, where the developer tests directly in the model during development. Test cases can now be defined right at the beginning, allowing us to verify the expected behavior of our development efforts from the very first step.<\/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-58fdf89 elementor-widget elementor-widget-image\" data-id=\"58fdf89\" data-element_type=\"widget\" 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=\"800\" height=\"353\" src=\"https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic3_032025.png\" class=\"attachment-large size-large wp-image-20063\" alt=\"Shift-Left Testing, Testing, Test-Driven Development\" srcset=\"https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic3_032025.png 4400w, https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic3_032025-768x339.png 768w, https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic3_032025-1536x678.png 1536w, https:\/\/www.btc-embedded.com\/wp-content\/uploads\/2025\/03\/Blogpic3_032025-2048x904.png 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\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<div class=\"elementor-element elementor-element-fd18a71 elementor-widget elementor-widget-text-editor\" data-id=\"fd18a71\" data-element_type=\"widget\" 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>By continuously testing throughout development, the developer and tester receive rapid feedback and can detect critical issues as early as possible. This constant checkup not only improves code quality but also ensures that the final product is robust and reliable\u2014a necessity for the new world of Software-Defined Vehicles where your units also must be robust against changes in its environment.<\/p><p>This also means that when defects are caught early, rework is minimized. This streamlined process leads to shorter development cycles and a faster route to market. Be that as it may, the truth is that the processes for developing software must be adapted accordingly. We were too slow in the past and market pressure has forced and is forcing us to become much faster.<\/p><p><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\">You can find more information about testing early on MIL in the following <\/span><a style=\"font-family: -apple-system, BlinkMacSystemFont, &#039;Segoe UI&#039;, Roboto, &#039;Helvetica Neue&#039;, Arial, &#039;Noto Sans&#039;, sans-serif, &#039;Apple Color Emoji&#039;, &#039;Segoe UI Emoji&#039;, &#039;Segoe UI Symbol&#039;, &#039;Noto Color Emoji&#039;;\" href=\"https:\/\/www.btc-embedded.com\/seamless-testing-for-model-based-developers\/\">blog article<\/a><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\">.<\/span><\/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-4b398e5 elementor-widget elementor-widget-heading\" data-id=\"4b398e5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What might hold us back?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7387d7 elementor-widget elementor-widget-text-editor\" data-id=\"a7387d7\" data-element_type=\"widget\" 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>We regularly hear that we should reach \u201eChina-speed\u201c! However, we are trapped in our previous patterns of experience, which have shown us that development cycles that are too fast also increase the number of undetected errors. We are challenged to shed these beliefs and find ways to become faster while maintaining quality. The competitors will not wait.<\/p><p>This requires a change in companies\u2019 culture. And since we know that \u201eculture eats change for breakfast\u201c, this must be supported by all those involved out of inner conviction, from management to employees. Early testing fosters, and even, requires, a culture of collaboration between developers, testers, and other stakeholders: Leave the silos. When testing is integrated from the start, everyone shares responsibility for quality, leading to improved communication and a more cohesive development process. As an add-on, this will help remove the issue of finding defects too late when those were already completely propagated through multiple components, thus complicating the debugging process.<\/p><p>Please, don\u2019t get me wrong. Testing on higher levels will not become obsolete but should be faster, less complex, and less difficult if the software units have already been extensively and comprehensively tested. Also finding defects located in units later in the integration or system test will force you to go back to the units, fix it and repeat all the previous steps to ensure the fix did not break something else. Or worse yet, defects will get overlooked and will show up after the product is in production.\u00a0<\/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-f8afd44 elementor-widget elementor-widget-heading\" data-id=\"f8afd44\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How to implement a Shift-Left Testing approach<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42e6aba elementor-widget elementor-widget-text-editor\" data-id=\"42e6aba\" data-element_type=\"widget\" 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<ol><li><strong>Integrate Testing Throughout the Development Lifecycle<\/strong>: Include unit tests, integration tests, and code reviews from the very beginning and implement tools in your development process that will support this approach.<\/li><li><strong>Leverage Automated Testing:<\/strong> Having a Test-Driven Development Approach established will also enable automation at an early stage to identify regressions and reduce the manual effort required to maintain test coverage.<\/li><li><strong>Adopt Continuous Integration and Delivery (CI\/CD):<\/strong> A robust CI\/CD pipeline ensures that every code change is automatically tested, providing immediate feedback and automatically triggering automated test steps.<\/li><li><strong>Change your mindset: <\/strong>Encourage and force close collaboration between developers, testers, and other stakeholders to ensure that quality is a shared responsibility. This must include the left side of the V-cycle in order to get their homework done. Implementation and testing can only be as good as the requirements are.<\/li><li>I<strong>nvest in Training:<\/strong> Equip your team with the tools and knowledge to embrace early testing. I often see in customer meetings that even experienced users are not aware of all features our test tool provides. Things that they have wanted to use for a long time and just didn&#8217;t know that they were already there.<\/li><\/ol>\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-911095d elementor-widget elementor-widget-heading\" data-id=\"911095d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e46aab7 elementor-widget elementor-widget-text-editor\" data-id=\"e46aab7\" data-element_type=\"widget\" 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>In the automotive embedded software, early testing isn\u2019t just a best practice\u2014it\u2019s a necessity. Embracing a shift-left approach means catching defects early, reducing costs, and delivering more reliable and safer products. Delaying testing can lead to increased complexity, higher costs, and compromised safety, while integrating testing into every phase of development paves the way for faster time-to-market and a more agile, collaborative workflow.<\/p><p>New challenges, such as the development of a software-defined vehicle, require a rethink. Unlike in the past, software components are subject to a much longer service life and change period. Nowadays, customers expect to receive regular software updates after purchase and want to benefit from new features and improvements.<\/p><p>As automotive systems continue to evolve in complexity, the shift-left strategy will remain an important factor in maintaining high standards of quality and safety. By prioritizing early testing, companies will not only mitigate risks, but will also drive innovation, ensuring that they stay ahead in an ever-competitive market.<\/p>\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<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In the dynamic domain of embedded automotive software, achieving high quality, safety, and performance is non-negotiable. This is becoming even more important when looking at topics like Software-Defined Vehicles. For over 20 years, our company has enabled automotive OEMs and suppliers to start testing as early as possible in the development process. In the last [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":20029,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[55,210,121],"product":[],"use_cases":[],"class_list":["post-19790","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-ci-cd","tag-test-driven-development","tag-testing"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/posts\/19790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/comments?post=19790"}],"version-history":[{"count":46,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/posts\/19790\/revisions"}],"predecessor-version":[{"id":20524,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/posts\/19790\/revisions\/20524"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/media\/20029"}],"wp:attachment":[{"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/media?parent=19790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/categories?post=19790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/tags?post=19790"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/product?post=19790"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.btc-embedded.com\/de\/wp-json\/wp\/v2\/use_cases?post=19790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}