{"id":595,"date":"2018-08-13T17:41:44","date_gmt":"2018-08-13T14:41:44","guid":{"rendered":"https:\/\/lasoft.org\/blog\/?p=595"},"modified":"2024-06-24T21:21:33","modified_gmt":"2024-06-24T18:21:33","slug":"what-is-developer-driven-testing","status":"publish","type":"post","link":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/","title":{"rendered":"Developer Driven Testing"},"content":{"rendered":"<h2>The other side of the moon<\/h2>\n<p>We\u2019ve all heard about the <a href=\"..\/test-driven-development-tdd\/\">Test-Driven Development<\/a>, but how about the reversed approach \u2013 Developer Driven Testing (DDT)? What can we gain and what can we lose by writing our code before writing tests? Let\u2019s explore this approach to <a href=\"https:\/\/lasoft.org\/software-development\/\">software development<\/a>, which implies setting up QA processes without a QA team.<\/p>\n<h2>What guru says<\/h2>\n<p>Developer Driven Testing was first time described by the originator of Test-Driven Development (TDD) Kent Beck in his article <a href=\"http:\/\/members.pingnet.ch\/gamma\/junit.htm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u201cTest Infected: Programmers Love Writing Tests\u201d<\/a>, dated 1998. He explained the process like \u201ccode a little, test a little, code a little, test a little.\u201d<\/p>\n<h2>The difference<\/h2>\n<p>In Test-Driven Development a developer initially writes a group of tests that will fail because of no code, and then they write code that will pass those tests. On the contrary, in Developer Driven Testing a developer writes a small amount of code, then writes a small test, splitting the monolithic application into microservices. In TDD the code is driven by the tests, and in DDT the tests are driven by the code.<\/p>\n<h2>Everyone can be turned into a tester<\/h2>\n<p>The general vision of DDT is \u201cEvery coded feature should be tested completely once, by the developer responsible for implementing it\u201d. In Developer Driven Testing developers write their tests by themselves, only when they feel they\u2019re done with the code. They are the people who have to verify that the code is \u201cgood enough,\u201d not the testers. The purpose of this approach is to make developers responsible for their code. Developers employ manual testing, code reviews, and a wide variety of automated testing solutions.<\/p>\n<h3>Developer Driven Testing Manifesto lists the following DDT statement of values:<\/h3>\n<ul>\n<li>Early Developer Testing over Scheduled QA Testing<\/li>\n<li>Quality Assistance over Quality Control<\/li>\n<li>Bug Prevention over Bug Correction<\/li>\n<li>Rapid Communication of Results over Consequence Documentation<\/li>\n<\/ul>\n<h3>Will DDT empower software development process?<\/h3>\n<p>Let\u2019s study the main pros of DDT:<\/p>\n<ul>\n<li>Fewer bugs in every iteration<\/li>\n<li>No extra testing<\/li>\n<li>More responsibility is given to developers<\/li>\n<li>Increased velocity<\/li>\n<li>QA processes without additional headcount for QA team<\/li>\n<li>No bouncing back and forth between developer and tester<\/li>\n<li>QA is integrated into the developer\u2019s workflow<\/li>\n<li>Time-saving due to speed up in testing processes<\/li>\n<li>Lightweight and effective development<\/li>\n<li>More accountability<\/li>\n<\/ul>\n<p>Surely, DDT is not without its challenges:<\/p>\n<ul>\n<li>A tendency for the amount of time between tests to become longer and longer<\/li>\n<li>Harder to have a working feedback loop<\/li>\n<li>Sometimes developers don\u2019t address emerging bugs with diligence<\/li>\n<li>Harder to keep a big test suite up-to-date<\/li>\n<\/ul>\n<h2>Testing without testers<\/h2>\n<p>Developer Driven Testing can enable you to build up QA processes with faster test execution and more coverage while adding no dedicated testers at all. Instead of having the team of testers, developers rely on their own\u00a0and write both the code and the tests. In DDT developers are responsible for the product at all levels, and this approach makes them care about the quality and the customer satisfaction. Developers know that there is no tester to check everything, and they tend to do the work more seriously. This results in a better bug-free product. <\/p>\n","protected":false},"excerpt":{"rendered":"The other side of the moon We\u2019ve all heard about the Test-Driven Development, but how about the reversed approach \u2013 Developer Driven Testing (DDT)? What can we gain and what can we lose by writing our code before writing tests? Let\u2019s explore this approach to software development, which implies setting up QA processes without a&hellip;","protected":false},"author":2,"featured_media":597,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[240,180],"tags":[],"coauthors":[133],"class_list":["post-595","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-software-development"],"yoast_head":"<title>Developer Driven Testing<\/title>\n<meta name=\"description\" content=\"What can we gain and what can we lose by writing our code before writing tests?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developer Driven Testing\" \/>\n<meta property=\"og:description\" content=\"What can we gain and what can we lose by writing our code before writing tests?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Development Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/lasoftians\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-13T14:41:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-24T18:21:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/08\/muhammad-raufan-yusup-254422-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"679\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Vasyl Varkholyak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@LaSoftAgency\" \/>\n<meta name=\"twitter:site\" content=\"@LaSoftAgency\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vasyl Varkholyak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>","yoast_head_json":{"title":"Developer Driven Testing","description":"What can we gain and what can we lose by writing our code before writing tests?","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:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/","og_locale":"en_US","og_type":"article","og_title":"Developer Driven Testing","og_description":"What can we gain and what can we lose by writing our code before writing tests?","og_url":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/","og_site_name":"Software Development Blog","article_publisher":"https:\/\/www.facebook.com\/lasoftians\/","article_published_time":"2018-08-13T14:41:44+00:00","article_modified_time":"2024-06-24T18:21:33+00:00","og_image":[{"width":1024,"height":679,"url":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/08\/muhammad-raufan-yusup-254422-unsplash.jpg","type":"image\/jpeg"}],"author":"Vasyl Varkholyak","twitter_card":"summary_large_image","twitter_creator":"@LaSoftAgency","twitter_site":"@LaSoftAgency","twitter_misc":{"Written by":"Vasyl Varkholyak","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/#article","isPartOf":{"@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/"},"author":{"name":"Vasyl Varkholyak","@id":"https:\/\/lasoft.org\/blog\/#\/schema\/person\/a697f96359d5b4a29e494d6f4f51ac29"},"headline":"Developer Driven Testing","datePublished":"2018-08-13T14:41:44+00:00","dateModified":"2024-06-24T18:21:33+00:00","mainEntityOfPage":{"@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/"},"wordCount":523,"publisher":{"@id":"https:\/\/lasoft.org\/blog\/#organization"},"image":{"@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/08\/muhammad-raufan-yusup-254422-unsplash.jpg","articleSection":["Programming","Software Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/","url":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/","name":"Developer Driven Testing","isPartOf":{"@id":"https:\/\/lasoft.org\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/#primaryimage"},"image":{"@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/08\/muhammad-raufan-yusup-254422-unsplash.jpg","datePublished":"2018-08-13T14:41:44+00:00","dateModified":"2024-06-24T18:21:33+00:00","description":"What can we gain and what can we lose by writing our code before writing tests?","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lasoft.org\/blog\/what-is-developer-driven-testing\/#primaryimage","url":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/08\/muhammad-raufan-yusup-254422-unsplash.jpg","contentUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2018\/08\/muhammad-raufan-yusup-254422-unsplash.jpg","width":1024,"height":679,"caption":"Developer Driven Testing"},{"@type":"WebSite","@id":"https:\/\/lasoft.org\/blog\/#website","url":"https:\/\/lasoft.org\/blog\/","name":"Software Development Blog","description":"Insightful Analysis of IT Markets and Emerging Technologies","publisher":{"@id":"https:\/\/lasoft.org\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lasoft.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/lasoft.org\/blog\/#organization","name":"LaSoft","url":"https:\/\/lasoft.org\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lasoft.org\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2024\/06\/lasoft.jpg","contentUrl":"https:\/\/lasoft.org\/blog\/wp-content\/uploads\/2024\/06\/lasoft.jpg","width":1200,"height":628,"caption":"LaSoft"},"image":{"@id":"https:\/\/lasoft.org\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/lasoftians\/","https:\/\/x.com\/LaSoftAgency","https:\/\/www.instagram.com\/lasoftians\/","https:\/\/www.linkedin.com\/company\/la'soft-","https:\/\/www.youtube.com\/channel\/UCGiINdBnqPoBpK1WaCEZMHQ\/"]},{"@type":"Person","@id":"https:\/\/lasoft.org\/blog\/#\/schema\/person\/a697f96359d5b4a29e494d6f4f51ac29","name":"Vasyl Varkholyak","description":"Vasyl Varkholyak, Co-Founder and CTO of LaSoft, leads a team of 55 multi-talented and experienced professionals, including software engineers, designers, project managers, and QAs. Vasyl helps companies elevate their technology capabilities by providing top IT talent and technical expertise. He believes that every company will eventually become an IT company, and having the right talent onboard is crucial for staying competitive. By offering free evaluations and aligning visions with clients, Vasyl ensures that LaSoft delivers efficient, effective, and affordable technology solutions.","sameAs":["https:\/\/www.linkedin.com\/in\/vasyl-varkholyak\/"],"url":"https:\/\/lasoft.org\/blog\/author\/vasyl-varkholyak\/"}]}},"_links":{"self":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts\/595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/comments?post=595"}],"version-history":[{"count":16,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts\/595\/revisions"}],"predecessor-version":[{"id":1654,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/posts\/595\/revisions\/1654"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/media\/597"}],"wp:attachment":[{"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/media?parent=595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/categories?post=595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/tags?post=595"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/lasoft.org\/blog\/wp-json\/wp\/v2\/coauthors?post=595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}