{"id":13043,"date":"2019-02-13T08:11:00","date_gmt":"2019-02-13T13:11:00","guid":{"rendered":"https:\/\/en.ennov.com\/?p=13043"},"modified":"2021-10-27T08:53:31","modified_gmt":"2021-10-27T13:53:31","slug":"pv-auto-testing-revolution","status":"publish","type":"post","link":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/","title":{"rendered":"Ennov PV \u2013 An Auto-Testing Revolution"},"content":{"rendered":"\n<p>[Reading time 5 minutes]<\/p>\n\n\n\n<p>Acceptance testing has always been an important part of our lives at <a href=\"https:\/\/en.ennov.com\/ennov-pharmacovigilance\/\">Ennov PV<\/a>. Understandably, our customers have high expectations with respect to quality in the products that we deliver. <a href=\"https:\/\/en.ennov.com\/ennov-pharmacovigilance\/pv-works-human-pharmacovigilance-software-system\/\">Pharmacovigilance software<\/a> is synonymous with reliability and dependability and it has always been our goal to test our software as thoroughly as possible. Nonetheless, as with any development activity, there is always a chance of introducing errors; the complex nature of our products and the high degree of configurability mean that regression, or unexpected behaviour in other areas of the system, may occur as an unanticipated consequence of changes to the code.<\/p>\n\n\n\n<p>To counter the risk, we have deployed a broad range of testing strategies to mitigate. All of our development stories are tested a number of times:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>By the developer, against a set of pre-determined acceptance criteria (created with input and impact assessment by the collective team)<\/li><li>Through a developer peer-review process called \u2018code review\u2019<\/li><li>By an expert QA specialist, tasked with cross-checking the fulfilment of the acceptance criteria and encouraged to use their knowledge and experience of the product to \u2018test-to-break\u2019<\/li><li>A formal test execution designed to verify the acceptance of the changes<\/li><li>Finally a manual regression test prior to release<\/li><\/ol>\n\n\n\n<p>With our ongoing web-development projects, we have introduced three new significant improvements to the process that further strengthen our testing and code quality strategy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unit testing<\/h2>\n\n\n\n<p>When developing individual stories, our engineers are tasked with the inclusion of suitable \u2018unit tests\u2019 in their code. These are so-called as they confirm the structure and functionality of individual small components (or \u2018units\u2019) of the application code. The testing is built into the fabric of the application itself, and is executed every time a build is produced \u2013 if a unit test fails, the application cannot be built successfully. As a result, the code is effectively testing itself at the level of its constituent parts.<\/p>\n\n\n\n<p>A specific set of these unit tests are used as general \u2018smoke tests\u2019 to ensure the general integrity of the application at the time of building the code into a useable application.<\/p>\n\n\n\n<p>Not only does unit testing promote a more considered and organised development approach (the engineer has to think through their design in a way that supports the testing), it means that the code is routinely and consistently checked for integrity prior to release to the testing team. The net result is the delivery of better and more reliable code to the QA team.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sonar code scanning<\/h2>\n\n\n\n<p>We have also implemented the use of a novel technology called \u2018Sonar\u2019 (<a href=\"https:\/\/www.sonarsource.com\/\">https:\/\/www.sonarsource.com\/<\/a>) to continually and automatically examine the code for compliance and consistency.<\/p>\n\n\n\n<p>Each sprint we review the results of the Sonar scan and apply any recommended corrective action. We are taking advantage of tools like this to improve our own internal standards and promote quality wherever possible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Automated regression testing<\/h2>\n\n\n\n<p>The manual regression testing has proved invaluable in trapping unwanted side effects prior to release, but is time-consuming to execute and occurs only at a late stage in the release cycle.<\/p>\n\n\n\n<p>Since the beginning of the year, the QA team have at their disposal a fully automated regression test suite for PV-Entry using Selenium. The suite is executed in full, every night, against the latest built code served up by Jenkins (the build management tool we use). A confirmation report is generated and circulated automatically; any issues arising from the previous days coding are immediately addressed.<\/p>\n\n\n\n<p>Each execution consists of more than 260 distinct tests (extrapolated from the original 80+ tests in the manual plan) and takes around 100 minutes to complete. In practice, this means we can continually evaluate all core functionality and eliminate potential regression throughout the development cycle. The content of the automated plan will continue to evolve as new functionality is added to the application.<\/p>\n\n\n\n<p>Furthermore, we have the opportunity of running duplicate copies of the test suite against different known configurations of the application. It is anticipated that this would reduce the phenomenon of a feature that is added deliberately for one customer, being viewed as a detrimental change by another customer with a different configuration or business use case.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Benefits of automation<\/h2>\n\n\n\n<p>As a direct result of these changes to our testing strategy, we can have much more confidence in the reliability of the application code at any given build. This means that as we move forward with the new modules we will be able to provide more regular, more manageable updates to our customers that we (and they) can be confident in. In time, this will help to reduce the long-term problems of long issue backlogs and customers falling significantly behind in released version (owing to the pressure of extensive re-validation).<\/p>\n\n\n\n<p><em>NB: In addition to the advancements described, ALL development stories are still manually tested by the developer, a development peer during code review, and a member of the QA team in accordance with our procedures. We are however, able to consolidate the formal paper based testing (step 4 above), and the manual regression testing (step 5 above) into this new automation. Additional manual testing will still be used for all high-risk stories (identified during backlog grooming) that carry additional regulatory risk.<\/em><\/p>\n\n\n\n<p>All three new methods are being utilised for all of our ongoing web development projects, including <a href=\"https:\/\/en.ennov.com\/ennov-pharmacovigilance\/pv-entry-efficient-data-entry\/\" target=\"_blank\" rel=\"noreferrer noopener\">PV-Entry<\/a>, PV-Reporter, &amp; PV-Admin. Whilst quality has always been our primary objective, automation is becoming one of the cornerstones of our testing and quality strategy.<\/p>\n\n\n\n<p>Thanks for your interest!<\/p>\n\n\n\n<p>Nic<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Reading time 5 minutes] Acceptance testing has always been an important part of our lives at Ennov PV. Understandably, our customers have high expectations with respect to quality in the products that we deliver. Pharmacovigilance software is synonymous with reliability and dependability and it has always been our goal to test our software as thoroughly [&hellip;]<\/p>\n","protected":false},"author":232,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[146],"tags":[],"type_content":[],"job":[],"employees_type":[],"class_list":["post-13043","post","type-post","status-publish","format-standard","hentry","category-pharmacovigilance-blog","entry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v19.2.1 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Ennov PV \u2013 An Auto-Testing Revolution<\/title>\n<meta name=\"description\" content=\"How sonar code scanning, automated regression testing, and the benefits of automation can produce reliabile and dependable results.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ennov PV \u2013 An Auto-Testing Revolution\" \/>\n<meta property=\"og:description\" content=\"How sonar code scanning, automated regression testing, and the benefits of automation can produce reliabile and dependable results.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/\" \/>\n<meta property=\"og:site_name\" content=\"Ennov Software for Life\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-13T13:11:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-27T13:53:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dqdev.co\/ennov\/wp-content\/uploads\/2022\/09\/Ennov-Software-for-Life-Hiring.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alex Chappell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EnnovGroup\" \/>\n<meta name=\"twitter:site\" content=\"@EnnovGroup\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Chappell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/\"},\"author\":{\"name\":\"Alex Chappell\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#\\\/schema\\\/person\\\/ebc4deb7c360f7a979b3af96c6150941\"},\"headline\":\"Ennov PV \u2013 An Auto-Testing Revolution\",\"datePublished\":\"2019-02-13T13:11:00+00:00\",\"dateModified\":\"2021-10-27T13:53:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/\"},\"wordCount\":915,\"publisher\":{\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#organization\"},\"articleSection\":[\"Pharmacovigilance - Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/\",\"url\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/\",\"name\":\"Ennov PV \u2013 An Auto-Testing Revolution\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#website\"},\"datePublished\":\"2019-02-13T13:11:00+00:00\",\"dateModified\":\"2021-10-27T13:53:31+00:00\",\"description\":\"How sonar code scanning, automated regression testing, and the benefits of automation can produce reliabile and dependable results.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/blog\\\/pharmacovigilance-blog\\\/pv-auto-testing-revolution\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ennov PV \u2013 An Auto-Testing Revolution\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#website\",\"url\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/\",\"name\":\"Ennov Software for Life\",\"description\":\"Unified Content Management Platform Software for Life Sciences\",\"publisher\":{\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#organization\",\"name\":\"Ennov\",\"url\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/en.ennov.com\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/ennov-social-graph-1.jpg\",\"contentUrl\":\"https:\\\/\\\/en.ennov.com\\\/wp-content\\\/uploads\\\/2019\\\/02\\\/ennov-social-graph-1.jpg\",\"width\":672,\"height\":672,\"caption\":\"Ennov\"},\"image\":{\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/EnnovGroup\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/81570\\\/admin\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/#\\\/schema\\\/person\\\/ebc4deb7c360f7a979b3af96c6150941\",\"name\":\"Alex Chappell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/ennov-e.png\",\"url\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/ennov-e.png\",\"contentUrl\":\"https:\\\/\\\/dqdev.co\\\/ennov\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/ennov-e.png\",\"caption\":\"Alex Chappell\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ennov PV \u2013 An Auto-Testing Revolution","description":"How sonar code scanning, automated regression testing, and the benefits of automation can produce reliabile and dependable results.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Ennov PV \u2013 An Auto-Testing Revolution","og_description":"How sonar code scanning, automated regression testing, and the benefits of automation can produce reliabile and dependable results.","og_url":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/","og_site_name":"Ennov Software for Life","article_published_time":"2019-02-13T13:11:00+00:00","article_modified_time":"2021-10-27T13:53:31+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/dqdev.co\/ennov\/wp-content\/uploads\/2022\/09\/Ennov-Software-for-Life-Hiring.png","type":"image\/png"}],"author":"Alex Chappell","twitter_card":"summary_large_image","twitter_creator":"@EnnovGroup","twitter_site":"@EnnovGroup","twitter_misc":{"Written by":"Alex Chappell","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/#article","isPartOf":{"@id":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/"},"author":{"name":"Alex Chappell","@id":"https:\/\/dqdev.co\/ennov\/#\/schema\/person\/ebc4deb7c360f7a979b3af96c6150941"},"headline":"Ennov PV \u2013 An Auto-Testing Revolution","datePublished":"2019-02-13T13:11:00+00:00","dateModified":"2021-10-27T13:53:31+00:00","mainEntityOfPage":{"@id":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/"},"wordCount":915,"publisher":{"@id":"https:\/\/dqdev.co\/ennov\/#organization"},"articleSection":["Pharmacovigilance - Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/","url":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/","name":"Ennov PV \u2013 An Auto-Testing Revolution","isPartOf":{"@id":"https:\/\/dqdev.co\/ennov\/#website"},"datePublished":"2019-02-13T13:11:00+00:00","dateModified":"2021-10-27T13:53:31+00:00","description":"How sonar code scanning, automated regression testing, and the benefits of automation can produce reliabile and dependable results.","breadcrumb":{"@id":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dqdev.co\/ennov\/blog\/pharmacovigilance-blog\/pv-auto-testing-revolution\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dqdev.co\/ennov\/"},{"@type":"ListItem","position":2,"name":"Ennov PV \u2013 An Auto-Testing Revolution"}]},{"@type":"WebSite","@id":"https:\/\/dqdev.co\/ennov\/#website","url":"https:\/\/dqdev.co\/ennov\/","name":"Ennov Software for Life","description":"Unified Content Management Platform Software for Life Sciences","publisher":{"@id":"https:\/\/dqdev.co\/ennov\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dqdev.co\/ennov\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dqdev.co\/ennov\/#organization","name":"Ennov","url":"https:\/\/dqdev.co\/ennov\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dqdev.co\/ennov\/#\/schema\/logo\/image\/","url":"https:\/\/en.ennov.com\/wp-content\/uploads\/2019\/02\/ennov-social-graph-1.jpg","contentUrl":"https:\/\/en.ennov.com\/wp-content\/uploads\/2019\/02\/ennov-social-graph-1.jpg","width":672,"height":672,"caption":"Ennov"},"image":{"@id":"https:\/\/dqdev.co\/ennov\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/EnnovGroup","https:\/\/www.linkedin.com\/company\/81570\/admin\/"]},{"@type":"Person","@id":"https:\/\/dqdev.co\/ennov\/#\/schema\/person\/ebc4deb7c360f7a979b3af96c6150941","name":"Alex Chappell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dqdev.co\/ennov\/wp-content\/uploads\/2022\/02\/ennov-e.png","url":"https:\/\/dqdev.co\/ennov\/wp-content\/uploads\/2022\/02\/ennov-e.png","contentUrl":"https:\/\/dqdev.co\/ennov\/wp-content\/uploads\/2022\/02\/ennov-e.png","caption":"Alex Chappell"}}]}},"_links":{"self":[{"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/posts\/13043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/users\/232"}],"replies":[{"embeddable":true,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/comments?post=13043"}],"version-history":[{"count":0,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/posts\/13043\/revisions"}],"wp:attachment":[{"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/media?parent=13043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/categories?post=13043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/tags?post=13043"},{"taxonomy":"type_content","embeddable":true,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/type_content?post=13043"},{"taxonomy":"job","embeddable":true,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/job?post=13043"},{"taxonomy":"employees_type","embeddable":true,"href":"https:\/\/dqdev.co\/ennov\/wp-json\/wp\/v2\/employees_type?post=13043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}