{"id":3036,"date":"2020-06-16T13:27:01","date_gmt":"2020-06-16T12:27:01","guid":{"rendered":"https:\/\/www.brainbox.consulting\/?p=3036"},"modified":"2020-08-27T09:32:07","modified_gmt":"2020-08-27T08:32:07","slug":"an-introduction-to-context-driven-testing","status":"publish","type":"post","link":"https:\/\/brainbox.consulting\/talent\/an-introduction-to-context-driven-testing\/?lang=nl","title":{"rendered":"An Introduction to Context Driven Testing"},"content":{"rendered":"<h2><strong>What is Context driven testing?<\/strong><\/h2>\n<p>The context-driven testing is a model based on the context of the project rather than going by books methodology testing or some fixed notion of best. It recommends testers to choose their testing techniques, test deliverables, test documentation and test objectives by looking into the details of a specific situation. Context-driven software testing is not a testing technique, it is a set of values about test methodology.<\/p>\n<p>With this type of testing there is no single best practice that applies to all cases. Its value is contingent upon the amount of useful and timely information gathered during the testing process and its success depends on whether the software solution resolves the problem or situation it is intended to address.<\/p>\n<p>Context-driven testers define their testing objectives, techniques, and deliverables by identifying the details of the specific situation such as desires of the stakeholders who commissioned the testing. The key strength of context-driven testing is project-appropriate application of skills and judgement rather than conventional methodologies.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2509\" src=\"https:\/\/www.brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-1-300x130.png\" alt=\"\" width=\"648\" height=\"281\" srcset=\"https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-1-300x130.png 300w, https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-1-768x333.png 768w, https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-1-1024x444.png 1024w, https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-1.png 1663w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Basic Principles of Context driven testing:<\/strong><\/h2>\n<p>According to Cem Kaner, Brian Marick, James Bach and Bret Pettichord, the founders of Context driven school, the 7 basic principles in context driven testing are,<\/p>\n<ol>\n<li><span style=\"color: #000000;\">The value of any practice depends on its context.<\/span><\/li>\n<li><span style=\"color: #000000;\">There are good practices in context, but there are no best practices.<\/span><\/li>\n<li><span style=\"color: #000000;\">People, working together, are the most important part of any project&#8217;s context.<\/span><\/li>\n<li><span style=\"color: #000000;\">Projects unfold over time in ways that are often not predictable.<\/span><\/li>\n<li><span style=\"color: #000000;\">The product is a solution. If the problem isn&#8217;t solved, the product doesn&#8217;t work.<\/span><\/li>\n<li><span style=\"color: #000000;\">Good software testing is a challenging intellectual process.<\/span><\/li>\n<li><span style=\"color: #000000;\">Only through judgement and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.<\/span><\/li>\n<\/ol>\n<h2><strong>Context driven testing <\/strong>vs<strong> Standard testing<\/strong><\/h2>\n<p><span style=\"color: #000000;\">A traditional testing process in general follows a series of standard steps mentioned below to complete the testing,<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">Requirement analysis<\/span><\/li>\n<li><span style=\"color: #000000;\">Test Planning<\/span><\/li>\n<li><span style=\"color: #000000;\">Test documentation \u2013 test scenarios, test case development<\/span><\/li>\n<li><span style=\"color: #000000;\">Test environment setup<\/span><\/li>\n<li><span style=\"color: #000000;\">Test execution<\/span><\/li>\n<li><span style=\"color: #000000;\">Test reporting<\/span><\/li>\n<\/ul>\n<p>These steps are decided based on the best practices, QA standards, industry guidelines etc. Now there is nothing wrong with this process. It will work fine and give the desired end result, as this is a time tested and standard approach. But if we raise a question whether this approach gives way for an optimal result, then the answer may be &#8216;doubtful&#8217;.<\/p>\n<p>On the other hand context driven testing does not advocate following a set of same steps for every projects. As the name suggests, context driven testing gives more importance to the current context of a specific project rather than blindly following an established method\/process. Because every project we deal with has di<span style=\"color: #000000;\">fferent circumstances like,<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">Documented or undocumented requirements<\/span><\/li>\n<li><span style=\"color: #000000;\">Testing and development teams belong to different companies<\/span><\/li>\n<li><span style=\"color: #000000;\">Tight schedules or relaxed schedule<\/span><\/li>\n<li><span style=\"color: #000000;\">Testing tools used<\/span><\/li>\n<li><span style=\"color: #000000;\">Availability\/composition of testing team<\/span><\/li>\n<li><span style=\"color: #000000;\">Type of the project etc.<\/span><\/li>\n<\/ul>\n<p>Before deriving a test plan it is also important to ask questions like what, why, who, where, when and how to the stakeholders to know the project\u2019s context.<\/p>\n<p>Take an example of end to end testing of a healthcare application. The company wants to pursue context-driven testing to boost user satisfaction of its software product, minimize production defects and enhance the product by gaining a better understanding of the needs of users. Company has a short time frame for testing of the application.<\/p>\n<p>In this case, \u201cwho\u201d the application is intended to is the main question to be asked. Here the intended users are nurses and healthcare executives working on field. \u201cHow\u201d and \u201cwhere\u201d these users use the application also becomes imperative. Nurses will mostly access it from hospitals and healthcare executives from remote locations. Asking these questions will help identifying the risks in different areas. Similarly, based on other information available for the project, context-driven test plan has to be derived. Since the schedule is tight for testing, it is also important to minimize the documentation and spend more time in testing the application.<\/p>\n<p>So rather than following a test plan with specific lists of actions, testing teams are trusted to use their judgement and skill to determine how they need to test to meet the expectations of users. Successfully conducting context-driven testing involves identifying the intended market and evaluating the environment in which people are likely to use the software product. Context-driven testing is when you let these circumstances decide your test practices, techniques and even definitions rather than standard, industry-perceived \u2018best practices\u2019.<\/p>\n<h2><strong>Values of Context-Driven Testing<\/strong><\/h2>\n<p>Context driven testing is,<\/p>\n<ul>\n<li><strong>Skeptical<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Skepticism is not the rejection of belief, but a rejection of certainty. Skepticism helps in observing and analyzing more thoroughly, opening our minds to new and different ideas.<\/p>\n<ul>\n<li><strong>Empiricist<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">In context driven testing, role of a human is considered vital. The experiences people involved bring to a project is of great value.<\/p>\n<ul>\n<li><strong>Adaptable<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Testing should be focused on adaptability, not creating as few tests as possible, but as many as possible, as challenging as possible. It is important to adapt to changing contexts and requirements.<\/p>\n<ul>\n<li><strong>Diversified<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">It is important to consider how we can run more tests, more quickly, more powerful, while increasing our capacity to observe multiple quality criteria.<\/p>\n<ul>\n<li><strong>Humanist<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Testing must focus on human values. If quality is value to some person, then we need to understand people and their values. So it is a must to learn to observe people; customers, managers, programmers and project community.<\/p>\n<ul>\n<li><strong>Heuristic<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Context driven testing is heuristic as it does not follow any process blindly. It allows to discover and learn about the best approach to follow depending on the situation.<\/p>\n<h2><strong>When to use Context Driven Testing?<\/strong><\/h2>\n<p>Consider the following questions,<\/p>\n<p>\u2013 Do you value more in individuals rather than their interactions over processes or tools?<\/p>\n<p>\u2013 Do you value more in seeing working software over documentation?<\/p>\n<p>\u2013 Do you value more in collaborating with your customers (including development) over negotiating contracts (and specs)?<\/p>\n<p>\u2013 Do you value more in responding to change over following the plan?<\/p>\n<p>If the answer to all the above questions is a \u201cyes\u201d, this is when context based testing approach can be followed.<\/p>\n<p>It does not mean that this approach doesn\u2019t believe in documentation. Documentation is important, but it values conversations more than that as it is clearer, faster and effective.<\/p>\n<p>Conte<span style=\"color: #000000;\">xt-driven testing will be used when one is trying to attain the objectives mentioned below:<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">Clarify your objective.<\/span><\/li>\n<li><span style=\"color: #000000;\">Supervise the major test planning challenges.<\/span><\/li>\n<li><span style=\"color: #000000;\">Evaluate the product.<\/span><\/li>\n<li><span style=\"color: #000000;\">Analyze any risk associated with the product.<\/span><\/li>\n<li><span style=\"color: #000000;\">Set up logistics.<\/span><\/li>\n<li><span style=\"color: #000000;\">Plan the test strategy.<\/span><\/li>\n<li><span style=\"color: #000000;\">Share the idea.<\/span><\/li>\n<\/ul>\n<h2><strong>When not to use Context driven testing<\/strong><\/h2>\n<p>Context Driven Testing is not good for stable, predictable and repeatable projects; using it in such cases would be a waste of resources. There is no need of understanding a context in such cases and following context driven approach will only delay the project without adding any additional value to the end result.<\/p>\n<h2><strong>Effective Context Driven Testing approaches<\/strong><\/h2>\n<p>Context driven testing believes there are no best practices that is suitable in all conditions. But the following are few of the generally suggested approaches that help in effectiveness of context driven testing:<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2517\" src=\"https:\/\/www.brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-effective-approaches-300x203.png\" alt=\"\" width=\"429\" height=\"290\" srcset=\"https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-effective-approaches-300x203.png 300w, https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-effective-approaches-768x519.png 768w, https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-effective-approaches-1024x692.png 1024w, https:\/\/brainbox.consulting\/talent\/wp-content\/uploads\/2020\/04\/CDT-effective-approaches.png 1151w\" sizes=\"(max-width: 429px) 100vw, 429px\" \/><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Ask questions<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">It is very important to know the context of a project to get the maximum test coverage. So it is necessary for testers to ask questions to the stakeholders and developers, to understand the circumstances and factors involved to design a suitable test.<\/p>\n<ul>\n<li><strong>Plan ahead<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Planning helps to efficiently carry out the testing process. By creating a good test plan and sharing it with relevant stakeholders, helps them get an insight of what they can expect from it. It helps build rapport within the team and the company, invoking meaningful conversations.<\/p>\n<ul>\n<li><strong>Adjust your plan<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">It is possible for software projects to not go entirely as planned. So one has to be ready to make adjustments as they arise. New features may be added, priorities may change and the plan should be adapted to these changes accordingly.<\/p>\n<ul>\n<li><strong>Let stakeholders decide on the project completion<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">Stakeholders should be given the power and responsibility on deciding the timeline for project completion. This helps testers to focus on testing the software thoroughly and provide as much information back as possible.<\/p>\n<ul>\n<li><strong>Avoid applying any practice blindly<\/strong><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\">This is the most important and obvious part on which the context driven testing is based. Best practices or a set of procedures will not work in every situation. Sometimes there is no time to make a detailed test plan ahead. In such cases, it does not make sense to use all the time to just plan and leave no time for testing. So it is essential to not just follow a practice blindly, but to do to what is effective for that particular scenario.<\/p>\n<h2><strong>Summary<\/strong><\/h2>\n<p>Context driven testing is an approach that advocates testing in a way that conforms to the context of the project. It declares that good testing is a matter of skill and not just procedure. Ultimately, context driven testing is about doing the best we can with what we get.<\/p>\n<p>&nbsp;<\/p>\n<p>Contact us at <a href=\"mailto:sales@brainbox.consulting\">sales@brainbox.consulting<\/a> for more information and we would be happy to assist you with testing related services.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Codeless test automation is creating automated tests which allows you to test an application without writing a single piece code\/script. This approach has been steadily evolving with constant innovation on this technology.<\/p>\n","protected":false},"author":8,"featured_media":3039,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false},"categories":[23],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/posts\/3036"}],"collection":[{"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/comments?post=3036"}],"version-history":[{"count":2,"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/posts\/3036\/revisions"}],"predecessor-version":[{"id":3038,"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/posts\/3036\/revisions\/3038"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/media\/3039"}],"wp:attachment":[{"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/media?parent=3036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/categories?post=3036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brainbox.consulting\/talent\/wp-json\/wp\/v2\/tags?post=3036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}