{"id":4431,"date":"2022-02-09T11:43:45","date_gmt":"2022-02-09T11:43:45","guid":{"rendered":"https:\/\/codewaveinsdev.wpengine.com\/?p=4431"},"modified":"2023-08-01T15:32:16","modified_gmt":"2023-08-01T15:32:16","slug":"test-driven-development","status":"publish","type":"post","link":"https:\/\/codewave.com\/insights\/test-driven-development\/","title":{"rendered":"Test driven development \u2013 your door to quality and secure software development"},"content":{"rendered":"\n<p>Could you imagine how disastrous it could be to launch any software without testing? Just for an idea,&nbsp;<strong>88%<\/strong>&nbsp;of your users will abandon your app and may never use it again if they spot a bug. Not testing your digital solutions, your cloud environments could be catastrophic. I personally don\u2019t know anyone who would launch mobile\/web apps without testing.&nbsp;<\/p>\n\n\n\n<p>But just testing is not enough. We need to test it right. If we leave loopholes in our software, crackers (the bad hackers) are gonna exploit it. They will use every bug spotted to damage your finances and your brand image off-course! Well, no user likes a software with bugs, or no user likes a brand which frequently is a victim of data breaches.&nbsp;<\/p>\n\n\n\n<p>So, it makes sense to invest your time and energy into setting up the right testing methodologies to ensure your apps and cloud infrastructure is secure.&nbsp;<\/p>\n\n\n\n<p><strong>Test driven development (TDD)<\/strong>&nbsp;is one of the many ways in which softwares can be developed. It\u2019s more of an approach (extreme programming concept) to software development than a testing methodology (like unit testing, integration testing, system testing, or acceptance testing).<\/p>\n\n\n\n<p>TDD proves handy to design, develop, and deliver apps with zero to minimal bugs. Read this insight to understand TDD in detail, and to find out if it fits your project.<\/p>\n\n\n\n<h2 id=\"what-is-test-driven-development\" class=\"wp-block-heading\"><strong>What is test driven development?<\/strong><\/h2>\n\n\n\n<p>TDD is based on the philosophy of writing test cases that always fails on the first execution. Intriguing? Here\u2019s the explanation:<\/p>\n\n\n\n<p>Traditionally, developers tend to write software code first, and then write test-cases for it. But in test driven development, the approach is different. Here, you first write the test case and then you write the code for the software you\u2019re developing.<\/p>\n\n\n\n<p><strong><em>\u201cWait, what? How can we write the test case for a piece of software when it doesn\u2019t exist?\u201d<\/em><\/strong><\/p>\n\n\n\n<p>If that\u2019s your reaction, it\u2019s understandable and fair. But it is possible to write test cases before writing the software code. You do this by underscoring expected software functionalities and writing user journeys. Besides, in TDD approach, you write a lot of unit test cases for each independent class\/function\/module of software.<\/p>\n\n\n\n<p>Now, before developing a function, let\u2019s say \u201ca function that adds a product to a cart\u201d, you write a unit test for that function with assumed function name and execute the test. Of-course, it would fail, because it doesn\u2019t exist right now. So, this ensures two things-<\/p>\n\n\n\n<p>1.&nbsp;<strong>Confidence<\/strong>: when the test case finally passes, you know that the test case was written properly and the code is actually working.<\/p>\n\n\n\n<p>2.&nbsp;<strong>Clarity<\/strong>: writing all the test case scenarios gives you a clear picture of what you need, it\u2019s a roadmap to develop lean, sharp, high-performing softwares that would need minimal maintenance.<\/p>\n\n\n\n<p><strong><em>On a high level, TDD can be broken down into 5 steps:<\/em><\/strong><\/p>\n\n\n\n<p>1. Write test code before writing feature code.<\/p>\n\n\n\n<p>2. Run all tests, ensure they all fail.<\/p>\n\n\n\n<p>3. Write minimal feature code (hard code accepted as well) that passes each of the tests in the first step<\/p>\n\n\n\n<p>4. Refactor the code for enhanced readability &amp; maintainability. It involves removing any hard code and duplicate code, properly placing the code blocks, structuring inheritance hierarchies, adding comments, and making function names sensible.<\/p>\n\n\n\n<p>5. Repeat the above steps.<\/p>\n\n\n\n<p>To keep the tests small, you can adhere to the principles of&nbsp;<strong>KISS<\/strong>&nbsp;(keep it simple, stupid) and&nbsp;<strong>YAGNI<\/strong>&nbsp;(you aren\u2019t gonna need it). To summarize, TDD enables you to focus on application testability and ensure high quality software output. We shall diver into the benefits but first let\u2019s breeze through the best practices, the&nbsp;<strong>Dos<\/strong>&nbsp;and&nbsp;<strong>DONTs<\/strong>.<\/p>\n\n\n\n<h2 id=\"tdd-best-practices\" class=\"wp-block-heading\">TDD best practices<\/h2>\n\n\n\n<p>1. Convince the top-tier management about TDD implementation.<\/p>\n\n\n\n<p>2. Abide by the red\/green\/refactor cycle.&nbsp;<strong>Red<\/strong>&nbsp;is when test cases fail,&nbsp;<strong>green<\/strong>&nbsp;is when your code passes all tests,&nbsp;<strong>refactor<\/strong>&nbsp;is improving readability, maintainability, modularity.<\/p>\n\n\n\n<p>3. Keep false negatives at a bay. Allow performance focused tests some tolerance while testing in non-native OS environments.<\/p>\n\n\n\n<p>4. Prioritize development code tests as much as production code tests.<\/p>\n\n\n\n<p>5. Avoid writing interdependent tests.<\/p>\n\n\n\n<p>6. Avoid writing test cases for interfaces, as then it is more of integration test then unit tests. Less the test oracle, more you\u2019re obliging to the principles of TDD.<\/p>\n\n\n\n<p>7. Measure the TDD impact by making sharp comparative observations around developer productivity, number of bugs identified, and their resolution, etcetera.<\/p>\n\n\n\n<p>8. Maintain proper test structures.<\/p>\n\n\n\n<p><em>For example \u2013 your test case structure could include following stages:<\/em><\/p>\n\n\n\n<p><strong>Setup<\/strong>: where you write the test code to have the target test feature unit (UUT \u2013 unit under test) in the desired state.<\/p>\n\n\n\n<p><strong>Execution<\/strong>: test script that runs to check the artifacts and behavior of the software unit that is being tested.<\/p>\n\n\n\n<p><strong>Validation<\/strong>: Confirm that the outputs, behavior, return values observed as part of execution is in line with what was expected.<\/p>\n\n\n\n<p><strong>Cleanup<\/strong>: Restore the target test feature unit and its state to how it was before executing the tests.<\/p>\n\n\n\n<h2 id=\"what-are-the-benefits-limitations-of-test-driven-development-should-you-consider-implementing-it-in-your-project\" class=\"wp-block-heading\">What are the benefits &amp; limitations of test driven development? Should you consider implementing it in your project?<\/h2>\n\n\n\n<p>1. Saves developer\u2019s time. Studies have claimed that<a href=\"https:\/\/web.archive.org\/web\/20141222180731\/http:\/\/nparc.cisti-icist.nrc-cnrc.gc.ca\/npsi\/ctrl?action=shwart&amp;index=an&amp;req=5763742&amp;lang=en\">&nbsp;TDD developers tend to be more efficient<\/a>. TDD, obviously, means more code-writing for developers, then just writing the feature code. So, it\u2019s a time intensive process at-first. But in the long-run, it saves a lot of developer time that they would have invested in debugging.<\/p>\n\n\n\n<p>2. Faster innovation, as the tests are repeatable, feedback is real quick, and thus facilitates rapid development. In TDD approach, if you\u2019re developing the product with CI\/CD pipeline and are using version control systems, then you do not need to exhaust your energy with debuggers, instead you can roll-back to the last passed version.<\/p>\n\n\n\n<p>3. High quality software with high-readability, easy maintainability, robust &amp; optimized code, and minimal to no bugs.<\/p>\n\n\n\n<p>4. The features developed with TDD are lean and damn easy to test, as by design they were written to pass tests.<\/p>\n\n\n\n<p>5. Testing coverage in TDD projects is way higher than conventional test methodologies. Testing new features with TDD framework is comparatively a lot easier as well.<\/p>\n\n\n\n<p>6. Great fit for agile projects. TDD tests can come in handy in CI\/CD processes or CI\/CD pipelines like CircleCI, TravisCI, GitLab (whichever you are using for your project).<\/p>\n\n\n\n<p><strong>Limitations<\/strong>:<\/p>\n\n\n\n<p>1. TDD approach is not recommended for scenarios where full functional tests might be needed to ensure proper working of a software.<\/p>\n\n\n\n<p>2. TDD is not that effective in testing applications that involve complex user interfaces, or works excessively with databases, or relies heavily on networking configurations.<\/p>\n\n\n\n<p>3. Writing and maintaining a high number of unit tests can become an overhead if not done right.<\/p>\n\n\n\n<p>4. Teams are prone to ignoring other tests like compliance etcetera if TDD succeeds. This is a really bad practice and can cost projects dearly.<\/p>\n\n\n\n<h2 id=\"tdd-tools\" class=\"wp-block-heading\">TDD tools:<\/h2>\n\n\n\n<p>At Codewave, we primarily use JS and Python based technologies.<\/p>\n\n\n\n<p>MochaJS, Karma, JEST are some of the popular testing tools for JS projects.<\/p>\n\n\n\n<p>csUnit and Nunit are good open source unit testing technologies for .NET projects.<\/p>\n\n\n\n<p>PyUnit, and DocTest are your go to testing technologies for Python based projects.<\/p>\n\n\n\n<p>Junit &amp; TestNG are good unit testing tools for Java based projects<\/p>\n\n\n\n<p>Rspec is a popular testing framework for Ruby projects.<\/p>\n\n\n\n<h2 id=\"conclusion\" class=\"wp-block-heading\">Conclusion:<\/h2>\n\n\n\n<p>Software development is a vast universe, and there are multiple approaches to building the same product. Some might be better than other ones. Often, it\u2019s not a question of best technology or best approach, rather it\u2019s about best technology or approach for \u201cyour project, your team, your strategy\u201d. TDD can be really productive for some of the projects, and help assist your business achieve greater agility. But only if it is done right. If things go south, TDD can be counterproductive, or ineffective. To find out what\u2019s the right infrastructure, tech stack, and development approach for building your application, get in touch with&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/codewave.com\/contact\" target=\"_blank\">Codewave\u2019s digital transformation consultants<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.codewave.com\/contact\" target=\"_blank\" rel=\"noreferrer noopener\">CONTACT CODEWAVE&#8217;S software development CONSULTANTS<\/a><\/div>\n<\/div>\n\n\n\n<h2 id=\"frequently-asked-questionsfaqs\" class=\"wp-block-heading has-background\" style=\"background-color:#fed330\">Frequently Asked Questions(FAQs)<\/h2>\n\n\n\n<div class=\"wp-block-genesis-blocks-gb-accordion gb-block-accordion\"><details><summary class=\"gb-accordion-title\">What are the five steps of test driven development?<\/summary><div class=\"gb-accordion-text\">\n<p>The five steps involved in a well implemented test driven development approach include:<\/p>\n\n\n\n<ol>\n<li>Writing a test script and adding it to the CI\/CD pipeline if you\u2019re using DevOps approach to development<\/li>\n\n\n\n<li>Run the test &amp; see if the script(s) fails<\/li>\n\n\n\n<li>Write some code and iteratively test your code for bugs<\/li>\n\n\n\n<li>Refactor your code to pass the test cases<\/li>\n\n\n\n<li>Repeat<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n\n\n\n<div class=\"wp-block-genesis-blocks-gb-accordion gb-block-accordion\"><details><summary class=\"gb-accordion-title\">Why do we need test driven development?<\/summary><div class=\"gb-accordion-text\">\n<p>Test driven development is crucial in the modern development paradigm (TDD). Mostly because it facilitates or enables faster development &amp; innovation with an added layer of security. As the code is under test from the very beginning, the final code quality is optimum, and it is easy to maintain the repositories created with TDD development. It also helps save significant development time that goes into fixing bugs.<a href=\"https:\/\/insights.codewave.com\/test-driven-development\/#\"><\/a><\/p>\n<\/div><\/details><\/div>\n\n\n\n<div class=\"wp-block-genesis-blocks-gb-accordion gb-block-accordion\"><details><summary class=\"gb-accordion-title\">What are the pros &amp; cons of test driven development?<\/summary><div class=\"gb-accordion-text\">\n<p><strong>Pros of test-driven development:<\/strong><\/p>\n\n\n\n<ol>\n<li>Modular code<\/li>\n\n\n\n<li>Easy maintenance &amp; refactoring<\/li>\n\n\n\n<li>Security.<\/li>\n<\/ol>\n\n\n\n<p><strong>Cons of test-driven development:<\/strong><\/p>\n\n\n\n<ol>\n<li>Initially, slows down development (but in the long run saves hell lot of time)<\/li>\n\n\n\n<li>The entire development team should write proper unit tests, else the resulting code will be of degraded quality<\/li>\n<\/ol>\n<\/div><\/details><\/div>\n\n\n\n<div class=\"wp-block-genesis-blocks-gb-accordion gb-block-accordion\"><details><summary class=\"gb-accordion-title\">When should I use test driven development?<\/summary><div class=\"gb-accordion-text\">\n<p>If you are developing non GUI applications, and if the architects, consultants, and developers feel that TDD approach for the project will yield modular, and better quality posts then it makes sense to go for test driven development.<\/p>\n<\/div><\/details><\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"What are the five steps of test driven development?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The five steps involved in a well implemented test driven development approach include:\n1. Writing a test script and adding it to the CI\/CD pipeline if you're using DevOps approach to development\n2. Run the test & see if the script(s) fails\n3. Write some code and iteratively test your code for bugs\n4. Refactor your code to pass the test cases\n5. Repeat\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Why do we need test driven development?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Test driven development is crucial in the modern development paradigm (TDD). Mostly because it facilitates or enables faster development & innovation with an added layer of security. As the code is under test from the very beginning, the final code quality is optimum, and it is easy to maintain the repositories created with TDD development. It also helps save significant development time that goes into fixing bugs.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What are the pros and cons of test driven development?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Pros of test-driven development: \n1. Modular code\n2. Easy maintenance & refactoring\n3. Security\nCons of test-driven development\n1. Initially, slows down development (but in the long run saves hell lot of time)\n2. The entire development team should write proper unit tests, else the resulting code will be of degraded quality\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"When should I use test driven development?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"If you are developing non GUI applications, and if the architects, consultants, and developers feel that TDD approach for the project will yield modular, and better-quality posts then it makes sense to go for test-driven development.\"\n    }\n  }]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"Write test cases that fail with test driven development to build high quality robust and secure software. TDD helps boost agility of your team.\n","protected":false},"author":1,"featured_media":4433,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"full","csco_page_load_nextpost":"","csco_post_video_location":[],"csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"footnotes":""},"categories":[31],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Test driven development for quality software development<\/title>\n<meta name=\"description\" content=\"Write test cases that fail with test driven development to build high quality robust &amp; secure software. TDD helps boost agility of your team.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codewave.com\/insights\/test-driven-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test driven development for quality software development\" \/>\n<meta property=\"og:description\" content=\"Write test cases that fail with test driven development to build high quality robust &amp; secure software. TDD helps boost agility of your team.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codewave.com\/insights\/test-driven-development\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/codewave.inc\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-09T11:43:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-01T15:32:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Codewave\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/codewave_inc\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Codewave\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/codewave.com\/insights\/test-driven-development\/\",\"url\":\"https:\/\/codewave.com\/insights\/test-driven-development\/\",\"name\":\"Test driven development for quality software development\",\"isPartOf\":{\"@id\":\"https:\/\/codewave.com\/insights\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/codewave.com\/insights\/test-driven-development\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/codewave.com\/insights\/test-driven-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg\",\"datePublished\":\"2022-02-09T11:43:45+00:00\",\"dateModified\":\"2023-08-01T15:32:16+00:00\",\"author\":{\"@id\":\"https:\/\/codewave.com\/insights\/#\/schema\/person\/3657f01be1b168c52f7d5ba8996fd2f2\"},\"description\":\"Write test cases that fail with test driven development to build high quality robust & secure software. TDD helps boost agility of your team.\",\"breadcrumb\":{\"@id\":\"https:\/\/codewave.com\/insights\/test-driven-development\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/codewave.com\/insights\/test-driven-development\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codewave.com\/insights\/test-driven-development\/#primaryimage\",\"url\":\"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg\",\"contentUrl\":\"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg\",\"width\":1200,\"height\":628,\"caption\":\"test driven development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/codewave.com\/insights\/test-driven-development\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/codewave.com\/insights\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test driven development \u2013 your door to quality and secure software development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/codewave.com\/insights\/#website\",\"url\":\"https:\/\/codewave.com\/insights\/\",\"name\":\"\",\"description\":\"Innovate with tech, design, culture\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/codewave.com\/insights\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/codewave.com\/insights\/#\/schema\/person\/3657f01be1b168c52f7d5ba8996fd2f2\",\"name\":\"Codewave\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codewave.com\/insights\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8eaea4760f144032645a66b5f0e21153?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8eaea4760f144032645a66b5f0e21153?s=96&d=mm&r=g\",\"caption\":\"Codewave\"},\"description\":\"Codewave is a design thinking led digital transformation company enabling organisations with playful innovation using AI &amp; ML, IoT &amp; Edge, AR, VR, Cloud, Blockchain, and Data.\",\"sameAs\":[\"https:\/\/codewave.com\",\"https:\/\/www.facebook.com\/codewave.inc\",\"https:\/\/www.instagram.com\/codewavetech\/\",\"https:\/\/in.linkedin.com\/company\/codewave-inc\",\"https:\/\/x.com\/https:\/\/twitter.com\/codewave_inc\"],\"url\":\"https:\/\/codewave.com\/insights\/author\/codewaveinsdev\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Test driven development for quality software development","description":"Write test cases that fail with test driven development to build high quality robust & secure software. TDD helps boost agility of your team.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/codewave.com\/insights\/test-driven-development\/","og_locale":"en_US","og_type":"article","og_title":"Test driven development for quality software development","og_description":"Write test cases that fail with test driven development to build high quality robust & secure software. TDD helps boost agility of your team.","og_url":"https:\/\/codewave.com\/insights\/test-driven-development\/","article_author":"https:\/\/www.facebook.com\/codewave.inc","article_published_time":"2022-02-09T11:43:45+00:00","article_modified_time":"2023-08-01T15:32:16+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg","type":"image\/jpeg"}],"author":"Codewave","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/codewave_inc","twitter_misc":{"Written by":"Codewave","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/codewave.com\/insights\/test-driven-development\/","url":"https:\/\/codewave.com\/insights\/test-driven-development\/","name":"Test driven development for quality software development","isPartOf":{"@id":"https:\/\/codewave.com\/insights\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codewave.com\/insights\/test-driven-development\/#primaryimage"},"image":{"@id":"https:\/\/codewave.com\/insights\/test-driven-development\/#primaryimage"},"thumbnailUrl":"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg","datePublished":"2022-02-09T11:43:45+00:00","dateModified":"2023-08-01T15:32:16+00:00","author":{"@id":"https:\/\/codewave.com\/insights\/#\/schema\/person\/3657f01be1b168c52f7d5ba8996fd2f2"},"description":"Write test cases that fail with test driven development to build high quality robust & secure software. TDD helps boost agility of your team.","breadcrumb":{"@id":"https:\/\/codewave.com\/insights\/test-driven-development\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codewave.com\/insights\/test-driven-development\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codewave.com\/insights\/test-driven-development\/#primaryimage","url":"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg","contentUrl":"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development.jpg","width":1200,"height":628,"caption":"test driven development"},{"@type":"BreadcrumbList","@id":"https:\/\/codewave.com\/insights\/test-driven-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codewave.com\/insights\/"},{"@type":"ListItem","position":2,"name":"Test driven development \u2013 your door to quality and secure software development"}]},{"@type":"WebSite","@id":"https:\/\/codewave.com\/insights\/#website","url":"https:\/\/codewave.com\/insights\/","name":"","description":"Innovate with tech, design, culture","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codewave.com\/insights\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/codewave.com\/insights\/#\/schema\/person\/3657f01be1b168c52f7d5ba8996fd2f2","name":"Codewave","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codewave.com\/insights\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8eaea4760f144032645a66b5f0e21153?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8eaea4760f144032645a66b5f0e21153?s=96&d=mm&r=g","caption":"Codewave"},"description":"Codewave is a design thinking led digital transformation company enabling organisations with playful innovation using AI &amp; ML, IoT &amp; Edge, AR, VR, Cloud, Blockchain, and Data.","sameAs":["https:\/\/codewave.com","https:\/\/www.facebook.com\/codewave.inc","https:\/\/www.instagram.com\/codewavetech\/","https:\/\/in.linkedin.com\/company\/codewave-inc","https:\/\/x.com\/https:\/\/twitter.com\/codewave_inc"],"url":"https:\/\/codewave.com\/insights\/author\/codewaveinsdev\/"}]}},"featured_image_src":"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development-600x400.jpg","featured_image_src_square":"https:\/\/codewave.com\/insights\/wp-content\/uploads\/2022\/08\/test-driven-development-600x600.jpg","author_info":{"display_name":"Codewave","author_link":"https:\/\/codewave.com\/insights\/author\/codewaveinsdev\/"},"_links":{"self":[{"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/posts\/4431"}],"collection":[{"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/comments?post=4431"}],"version-history":[{"count":0,"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/posts\/4431\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/media\/4433"}],"wp:attachment":[{"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/media?parent=4431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/categories?post=4431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codewave.com\/insights\/wp-json\/wp\/v2\/tags?post=4431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}