{"id":26418,"date":"2017-08-02T09:00:44","date_gmt":"2017-08-02T13:00:44","guid":{"rendered":"https:\/\/sdtimes.com\/?p=26418"},"modified":"2017-08-02T11:16:25","modified_gmt":"2017-08-02T15:16:25","slug":"test-driven-development-alive-well","status":"publish","type":"post","link":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/","title":{"rendered":"Test Driven Development is alive and well"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Despite what you might have heard around the industry and on the Internet, Test Driven Development (TDD) is not dead. The practice is still alive and well, especially in this new modern agile world. <\/span><\/p>\n<p>TDD is a developer-focused practice where developers, not testers, write the test before they write their code, and then they keep refactoring their code until it passes the test.<\/p>\n<p><span style=\"font-weight: 400;\">David Heinemeier Hansson, creator of Ruby on Rails, first <\/span><a href=\"http:\/\/david.heinemeierhansson.com\/2014\/tdd-is-dead-long-live-testing.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400;\">declared<\/span><\/a><span style=\"font-weight: 400;\"> TDD was dead in 2014. Hansson stated while the practice taught him to think about testing at a deeper level, he believed it was actually hurting his software designs. More recently, Microsoft\u2019s senior software design engineer Eric Gunnerson said that while he is grateful for what TDD has taught him, it didn\u2019t live up to his expectations. \u201cWhat I&#8217;ve seen is a consistent pattern of TDD working in a laboratory setting \u2013 developers are quick to pick up the workflow and can create working code and tests during classes\/exercises\/katas \u2013 and then failing in the real world,\u201d he <\/span><a href=\"https:\/\/blogs.msdn.microsoft.com\/ericgu\/2017\/06\/22\/notdd\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400;\">wrote<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><\/p>\n<p>While the practice is not for everyone, and it depends on the development team and team members, Kelly Emo, director of life-cycle and quality product marketing at Hewlett Packard Enterprise (HPE), believes there is a misunderstanding about what TDD can and can\u2019t do. \u201cThe Test Driven Development is dead belief is often coupled with the belief that testing as a practice is dead, and if you just speed everything up fast enough and operate lean enough, you don\u2019t really need to spend a lot of time in pre-production testing because you are continuously delivering, rolling back, and operating at such speed that the impact is minimal,\u201d she said.<\/p>\n<p><span style=\"font-weight: 400;\">According to Emo, what is missing in this mindset is quality. A mistake in TDD is just assuming that quality is baked in because you are moving fast, she explained.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cIt is fundamentally easier to adjust when you are pushing out very small incremental implementation. You can stay closer to user sentiment, and you can stay closer to what actually works and what doesn\u2019t. But that isn\u2019t going to solve the fundamental technical debt issues or risk of defects,\u201d she said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Test Driven Development promotes the idea of understanding what you are trying to build before you start building it, according to Walter Capitani, product manager for Klocwork at Rogue Wave. \u201cIt exposes weaknesses in requirements, in the architecture, and even in your test infrastructure before you start trying to build something. The counterpoint to that is you start building something and then realize you can\u2019t properly test it. Then you put yourself in a situation where you are going to end up releasing something that was never properly testing,\u201d he said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">When Test Driven Development is done correctly, developers should actually be developing better code, more efficiently, according to Jason Hammon, director of product management at TechExcel. \u201cTDD is actually beneficial to developers because the process of writing the test will help establish clear requirements, the scope of what they are creating and perhaps what interdependencies are involved with it,\u201d he said. <\/span><\/p>\n<p><b>How TDD enables speed and quality<\/b><br \/>\n<span style=\"font-weight: 400;\">Developers may be resistant to the approach because they feel like it is unnecessary work, according to Hammon, but down the line it actually results in a clearer understanding of the software, more accurate estimates, more successful sprints, less chance of complications, and better quality code. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cWhile at first, the practice of TDD may feel to agile teams that it is adding overhead and effort, it actually keeps the ongoing delivery more agile. With lean and continuous delivery practices, serious issues can build up that will stop the agile release train if technical debt is allowed to seep in and build up over time,\u201d HPE\u2019s Emo added. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">TDD enables developers to create code that is always testable, and free from defects, instability, or rigidness overtime. \u201cBy reducing technical debt, code additions or changes can be included in agile sprints and release trains much more quickly,\u201d Emo said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Writing the tests first also confirms the requirements that developers are looking for, according to Rogue Wave\u2019s Capitani. \u201cSometimes if we start with the feature, we make assumptions about requirements or we simply miss requirements because we are thinking about designing something else,\u201d he said. \u201cBy writing the tests first, you take a deeper dive into the requirements, which leads you to have a better understanding of them once you start writing the actual feature itself.\u201d <\/span><\/p>\n<p><span style=\"font-weight: 400;\">By building things in right from the beginning and ensuring upfront whether what they are building is right or wrong, TDD allows development teams to achieve today\u2019s necessary speed, according to Alex Martins, advisor for continuous testing at CA Technologies. In the past, the development team would do all the work only to find out in the next sprint or release a lot of the business concepts originally thought of were no longer relevant. This resulted in a lot of unnecessary work and rework as well as a huge loss in time, Martins explained. \u201cThe market is just moving too fast. The users are changing what they want too fast. So instead of building things the old way, TDD really helps the developer focus on building what is meaningful towards their current scope right now,\u201d he said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The speed in TDD also comes from incremental improvement in the actual quality of the software, and the repetition of short cycles that are tuned to testing a very specific thing in greater deal to improve the cycle, according to Thomas Hooker, vice president of marketing for CollabNet. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, that doesn\u2019t mean that Test Driven Development is not without challenges. In an ideal world of TDD, developers verify functionality of their software features, and verify the correct behavior over time. They ensure long-term reliability of their software, according to Rogue Wave\u2019s Capitani.<\/span><\/p>\n<p>Capitani explained that the reality of TDD is that developers are not exercising the software in the way it will be used in the real world, and that is because more sophisticated tests are expensive to write, and take a lot of time. \u201cDeveloper\u2019s don\u2019t really want to write them because they are not verifying features, they are proving the software is reliable, has no security vulnerabilities, or other things that are not directly related to the features customers are asking for,\u201d he said. Capitani said TDD approaches need to be coupled with static code analysis solutions so it can verify the quality of the software such as looking for memory leaks, security weaknesses, and reliability issues. \u201cYou have to ensure you are reproducing the real world environment that your software is going to encounter, and not just testing that something works,\u201d he said.<\/p>\n<p><span style=\"font-weight: 400;\">Emo added the \u201cfox guarding the hen house\u201d can also be a risk of TDD. In TDD, the developer that is writing the test is also writing the code to go along with that test. According to Emo, in an ideal world two individual developers would be working together &#8212; one to write the test, and one to write the code. \u201cOften in agile teams, roles may switch off during different sprints to expand experience across pure developers and dev\/testers, but during a sprint, they should be two different people working on the sprint,\u201d she said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">According to CA\u2019s Martins, it isn\u2019t always feasible to have a two developer approach because from a budgeting perspective, if it is increasing the workload of another developer, it is not going to be very well received. Developers don\u2019t want to think about adopting something new if it means adding more work, he explained. However, new tools and solutions are coming out that will help automatically generate the tests that can be used by developers to drive their application development. \u201cThis is not necessarily increasing the workload, but using better solutions and better technology that wasn\u2019t available before,\u201d he said. <\/span><\/p>\n<p><b>Measuring success<\/b><br \/>\n<span style=\"font-weight: 400;\">The biggest challenge for teams trying to adopt TDD is figuring out how to measure that they are truly getting better, according to CA\u2019s Martins. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">There is often pushback from teams to do TDD because developers feel like it is extra work, and QA teams don\u2019t feel like it is sufficient enough or broad enough. In addition, developers might be worried they aren\u2019t going to write the best tests, and that maintaining them will be expensive and time consuming. However, if developers are running tests as part of an extra step in their development process, getting feedback from QA that the code quality is higher or bug rates are going down, and that it is making their cycles shorters, that is a good indication that they are on the right track, according to TechExcel\u2019s Hammon.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cIf it can be implemented, developers can do it, it is not making their work take a lot longer, and it is increasing the quality of code, that is a sign that is is beneficial,\u201d he said. \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Martins says there are four pillars that support software quality: Code quality, pipeline quality, application quality and customer experience. To visualize how they are performing throughout the lifecycle, teams should be value-stream mapping. That technique shows how much time is being spent on coding and testing, and the cost from a effort perspective and timing perspective, according to Martins.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cIf you are able to showcase to the developers that they are not spending more time, but they just \\ shifting the amount of time spent upfront in defining the tests, and they are just going to do it once and move on, it will help them to see why they are doing this and how they are getting better,\u201d he said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Successful TDD developers will not only write tests that pass, they will write tests that are comprehensive, according to Rogue Wave\u2019s Capitani. To do so, they need to understand how software is going to interact with the rest of the work around it and have the mental skill to look for weaknesses, he said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Developers need to sit in backlog grooming sessions and start thinking about potential flaws or potential points they have to validate before they know or think they know the code is accomplishing what was in scope, according to Martins. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cThere is a mindset change that needs to happen. Developers have to start thinking about what is it that this code is suppose to do, and how will they validate that it is actually doing what it is supposed to do. They need to write the tests for each of the methods they are building, define the test, write the code for the test to pass, and then refactor until it is good enough. This helps developers focus on just writing enough code &#8212; not more, not less &#8212; so they can move onto the next task on their list knowing it will not come back to them because from their perspective they have already embedded quality,\u201d he said. <\/span><\/p>\n<p><b>TDD drives customer experience<\/b><br \/>\n<span style=\"font-weight: 400;\">The reason why software development and delivery has to move so fast is because customer expectations are changing so quickly, and that makes Test Driven Development so much more important in a modern agile software world, according to CollabNet\u2019s Hooker. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Hooker explained users are not driven by brand loyalty, they are driven by experience loyalty. For instance, if a user is trying to catch a ride using the Uber app and the application is experiencing glitches, the user gets aggravated, and instead of continuing to try with the application, he or she will often leave the app and click on a competitor&#8217;s application like Lyft. \u201c[Users] are driven by the experience, so when increasingly the developer\u2019s end work touches the customer directly, developers have to have high quality assurance that the outcome is going to give the customer what they want,\u201d he said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Today, software drives how companies interact with customers, how customers interact with companies, and how companies drive their business. Test Driven Development is an important part of that, Hooker explained. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cWe have to find every little step in our process and optimize that step to deliver high quality software that meets the needs of our customer. Once we get done doing it, we go back through the system and we find where is the next area to improve,\u201d he said. \u201cTest Driven Development folds very nice into our agile driven CI\/CD DevOps world because it is all focused on innovating quickly, providing not just a high quality product, but a high quality experience for the customer,\u201d he said. <\/span><\/p>\n<p><b>The tester\u2019s role in TDD<\/b><br \/>\n<span style=\"font-weight: 400;\">While Test Driven Development is very much developer focused, that doesn\u2019t mean the software tester\u2019s role is pushed to the side. \u201cTest Driven Development does not replace testing, it is an addition to improve quality of code and speed,\u201d said CollabNet\u2019s Hooker. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">TDD is just one step in the process of improving things. Applications are large and contain hundreds of thousands if not millions of lines of code involving lots of developers. There are still all sorts of things like integration testing and platform testing, and a number of different ways to test that TDD does not address so that at the end of the day, a great user experience for the customer is being delivered, Hooker explained. TDD simply just improves the process with better upfront testing and upfront quality that has the ability to propagate its way through the lifecycle. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">A tester is responsible for creating automated test scripts or assets that go beyond unit or functional testing; creating tests for load, performance, and application security; and continually assessing the quality and the overall experience, according to HPE\u2019s Emo. \u201cThere are many different roles that testing practitioners play in agile teams doing TDD. TDD is driving the building of inherently higher quality code and a dev\/tester or test engineer will build the TDD test cases for the developers based off the user stories; however they may also engage in a number of other key practices in the sprint,\u201d she said. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">CA\u2019s Martins said it is important to note that while TDD tells you whether what you built was right or wrong, it doesn\u2019t tell you if the application is doing what it was supposed to do. To understand if you built what was intended by the business and compare how the system is working against what the requirement was originally saying it should, Acceptance Test Driven Development (ATDD) is necessary. According to Martins, ATDD addresses whether or not the application is doing what it was intended to do while TDD at the unit level addresses if the code is correct and properly working.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The testing team helps provide those acceptance tests to the developers so developers can better ensure their code is good. \u201cHere, the testing team can help the developer early on because it is all about preventing defects, catching them as early as possible and shifting everything left as much as possible,\u201d said Martins. \u201cTesters are starting to be seen more as enabler for more speed in the pipeline, for better quality and not just as an entity that works against the developer.\u201d<\/span><\/p>\n<p>Testers can also use Business Driven Development (BDD) to validate the business process and the code function, and develop quality earlier, HPE\u2019s Emo added. \u201cBDD is designed to get people thinking about the business process and the behavior you want,\u201d she said. \u201cIt does a nice job of shrinking down the gap between writing requirements, writing automated tests and writing code because right upfront it because your documentation.\u201d.<\/p>\n<p><span style=\"font-weight: 400;\">A successful testing strategy needs to look at the whole cycle of what you are creating and releasing. Following a test-driven approach to make sure developers are checking in high-quality code is a good place to start and will ensure better results down the road, but having a holistic approach is also very important, according to TechExcel\u2019s Hammon. <\/span><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Despite what you might have heard around the industry and on the Internet, Test Driven Development (TDD) is not dead. The practice is still alive and well, especially in this new modern agile world. TDD is a developer-focused practice where developers, not testers, write the test before they write their code, and then they keep  &hellip; <a class=\"read-more\" href=\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\">continue reading<\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":490,"featured_media":26419,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"cybocfi_hide_featured_image":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[2398,1],"tags":[1316,2874,349,8083,7995,814,7333,1208,1325,4890,1194,11345],"coauthors":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Test Driven Development is alive and well - SD Times<\/title>\n<meta name=\"description\" content=\"Test Driven Development is a developer focused approach to being more agile and providing high quality software\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test Driven Development is alive and well - SD Times\" \/>\n<meta property=\"og:description\" content=\"Test Driven Development is a developer focused approach to being more agile and providing high quality software\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\" \/>\n<meta property=\"og:site_name\" content=\"SD Times\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SDTimesD2\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-02T13:00:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-08-02T15:16:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"660\" \/>\n\t<meta property=\"og:image:height\" content=\"371\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Christina Cardoza\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@chriscatdoza\" \/>\n<meta name=\"twitter:site\" content=\"@sdtimes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Christina Cardoza\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\"},\"author\":{\"name\":\"Christina Cardoza\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/8291872d437355f6b12cbcd6857a1972\"},\"headline\":\"Test Driven Development is alive and well\",\"datePublished\":\"2017-08-02T13:00:44+00:00\",\"dateModified\":\"2017-08-02T15:16:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\"},\"wordCount\":2683,\"commentCount\":8,\"publisher\":{\"@id\":\"https:\/\/sdtimes.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg\",\"keywords\":[\"CA Technologies\",\"code\",\"CollabNet\",\"Hewlett Packard Enterprise\",\"HPE\",\"programming\",\"refactoring\",\"Rogue Wave\",\"software testing\",\"TDD\",\"TechExcel\",\"Test Driven Development Behavior Driven Development\"],\"articleSection\":[\"Buyers Guide\",\"Latest News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\",\"url\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\",\"name\":\"Test Driven Development is alive and well - SD Times\",\"isPartOf\":{\"@id\":\"https:\/\/sdtimes.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg\",\"datePublished\":\"2017-08-02T13:00:44+00:00\",\"dateModified\":\"2017-08-02T15:16:25+00:00\",\"description\":\"Test Driven Development is a developer focused approach to being more agile and providing high quality software\",\"breadcrumb\":{\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage\",\"url\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg\",\"contentUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg\",\"width\":660,\"height\":371},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sdtimes.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test Driven Development is alive and well\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sdtimes.com\/#website\",\"url\":\"https:\/\/sdtimes.com\/\",\"name\":\"SD Times\",\"description\":\"Software Development News\",\"publisher\":{\"@id\":\"https:\/\/sdtimes.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sdtimes.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sdtimes.com\/#organization\",\"name\":\"SD Times\",\"url\":\"https:\/\/sdtimes.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png\",\"contentUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png\",\"width\":225,\"height\":90,\"caption\":\"SD Times\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SDTimesD2\",\"https:\/\/x.com\/sdtimes\",\"https:\/\/www.linkedin.com\/company\/sdtimes\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/8291872d437355f6b12cbcd6857a1972\",\"name\":\"Christina Cardoza\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/image\/66d89d09eb7f22eba27a82092a3bae8e\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/940fd7e02753c2aff1d037c42e0603ac?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/940fd7e02753c2aff1d037c42e0603ac?s=96&d=mm&r=g\",\"caption\":\"Christina Cardoza\"},\"description\":\"Christina Cardoza is the News Editor of SD Times. She is responsible for the oversight of the daily news published to the website as well as the company's weekly newsletter, News on Monday. She covers agile, DevOps, AI, machine learning, mixed reality and software security. She is an undeniable nerd who loves Marvel comics and Star Wars. On Follow her on Twitter at @chriscatdoza!\",\"sameAs\":[\"https:\/\/x.com\/chriscatdoza\"],\"url\":\"https:\/\/sdtimes.com\/author\/christina-mulligan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Test Driven Development is alive and well - SD Times","description":"Test Driven Development is a developer focused approach to being more agile and providing high quality software","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:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/","og_locale":"en_US","og_type":"article","og_title":"Test Driven Development is alive and well - SD Times","og_description":"Test Driven Development is a developer focused approach to being more agile and providing high quality software","og_url":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/","og_site_name":"SD Times","article_publisher":"https:\/\/www.facebook.com\/SDTimesD2","article_published_time":"2017-08-02T13:00:44+00:00","article_modified_time":"2017-08-02T15:16:25+00:00","og_image":[{"width":660,"height":371,"url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg","type":"image\/jpeg"}],"author":"Christina Cardoza","twitter_card":"summary_large_image","twitter_creator":"@chriscatdoza","twitter_site":"@sdtimes","twitter_misc":{"Written by":"Christina Cardoza","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#article","isPartOf":{"@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/"},"author":{"name":"Christina Cardoza","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/8291872d437355f6b12cbcd6857a1972"},"headline":"Test Driven Development is alive and well","datePublished":"2017-08-02T13:00:44+00:00","dateModified":"2017-08-02T15:16:25+00:00","mainEntityOfPage":{"@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/"},"wordCount":2683,"commentCount":8,"publisher":{"@id":"https:\/\/sdtimes.com\/#organization"},"image":{"@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage"},"thumbnailUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg","keywords":["CA Technologies","code","CollabNet","Hewlett Packard Enterprise","HPE","programming","refactoring","Rogue Wave","software testing","TDD","TechExcel","Test Driven Development Behavior Driven Development"],"articleSection":["Buyers Guide","Latest News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/","url":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/","name":"Test Driven Development is alive and well - SD Times","isPartOf":{"@id":"https:\/\/sdtimes.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage"},"image":{"@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage"},"thumbnailUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg","datePublished":"2017-08-02T13:00:44+00:00","dateModified":"2017-08-02T15:16:25+00:00","description":"Test Driven Development is a developer focused approach to being more agile and providing high quality software","breadcrumb":{"@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#primaryimage","url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg","contentUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2017\/07\/BGart.jpg","width":660,"height":371},{"@type":"BreadcrumbList","@id":"https:\/\/sdtimes.com\/ca-technologies\/test-driven-development-alive-well\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sdtimes.com\/"},{"@type":"ListItem","position":2,"name":"Test Driven Development is alive and well"}]},{"@type":"WebSite","@id":"https:\/\/sdtimes.com\/#website","url":"https:\/\/sdtimes.com\/","name":"SD Times","description":"Software Development News","publisher":{"@id":"https:\/\/sdtimes.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sdtimes.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sdtimes.com\/#organization","name":"SD Times","url":"https:\/\/sdtimes.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/","url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png","contentUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png","width":225,"height":90,"caption":"SD Times"},"image":{"@id":"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SDTimesD2","https:\/\/x.com\/sdtimes","https:\/\/www.linkedin.com\/company\/sdtimes\/"]},{"@type":"Person","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/8291872d437355f6b12cbcd6857a1972","name":"Christina Cardoza","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/image\/66d89d09eb7f22eba27a82092a3bae8e","url":"https:\/\/secure.gravatar.com\/avatar\/940fd7e02753c2aff1d037c42e0603ac?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/940fd7e02753c2aff1d037c42e0603ac?s=96&d=mm&r=g","caption":"Christina Cardoza"},"description":"Christina Cardoza is the News Editor of SD Times. She is responsible for the oversight of the daily news published to the website as well as the company's weekly newsletter, News on Monday. She covers agile, DevOps, AI, machine learning, mixed reality and software security. She is an undeniable nerd who loves Marvel comics and Star Wars. On Follow her on Twitter at @chriscatdoza!","sameAs":["https:\/\/x.com\/chriscatdoza"],"url":"https:\/\/sdtimes.com\/author\/christina-mulligan\/"}]}},"_links":{"self":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/26418"}],"collection":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/users\/490"}],"replies":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/comments?post=26418"}],"version-history":[{"count":1,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/26418\/revisions"}],"predecessor-version":[{"id":26420,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/26418\/revisions\/26420"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/media\/26419"}],"wp:attachment":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/media?parent=26418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/categories?post=26418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/tags?post=26418"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/coauthors?post=26418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}