{"id":15627,"date":"2016-02-12T08:00:48","date_gmt":"2016-02-12T13:00:48","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=15627"},"modified":"2016-07-17T14:38:39","modified_gmt":"2016-07-17T18:38:39","slug":"proper-test-case-design-for-testing-part-2","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/","title":{"rendered":"Proper Test Case Design for Testing &#8211; Part 2 &#8211; Boundary Value Analysis"},"content":{"rendered":"<p>Our second post in this series focuses on efficient test case design using black box testing. The goal of these posts is to make you better at designing test cases so that you can develop higher quality systems. In-depth explanations and practice exercises are at the core of these tutorials.\\n\\n<a href=\"https:\/\/simpleprogrammer.com\/2016\/01\/20\/proper-test-case-design-for-testing-equivalence-partitioning\/\">In part one of this tutorial, we discussed:<\/a>\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>What a well-designed test case is<\/li>\n<p>\\n    <\/p>\n<li>Different types of software testing<\/li>\n<p>\\n    <\/p>\n<li>Black Box Testing<\/li>\n<p>\\n    <\/p>\n<li>Equivalence Partitioning<\/li>\n<p>\\n<\/ul>\n<p>\\n\\n<\/p>\n<h2>Boundary Value Testing<\/h2>\n<p>\\n\\nToday, we are going to continue working on learning Black Box Testing techniques. Specifically, we will learn <em><strong>Boundary Value Testing (BVT)<\/strong><\/em>. BVT further expands upon the concepts that you mastered in the Equivalence Partitioning Tutorial. You will utilize the equivalence partitioning technique to help you with boundary value testing.\\n\\nIn the previous post, I started with an example of a very simple test case. I will further expand upon it here.\\n\\n<em>Test Scenario<\/em>\\n\\nConsider the following situation where a text box allows the following integers to be entered:\\n\\n1 \u2013 5 Success\\n\\n5 \u2013 9 Monkeys\\n\\n9 \u2013 11 Bananas\\n\\nUse your newly found skills to create equivalence classes. (<em>See the completed example below.<\/em>) You might notice that you run into an issue at all of the <em><strong>boundaries<\/strong><\/em>, or <strong><em>edge cases<\/em><\/strong>. For example, if you enter a 5, does that return a \u201cSuccess\u201d or \u201cMonkeys\u201d? Same goes for the 9; will that return \u201cMonkeys\u201d or \u201cBananas\u201d?\\n\\nTesting the edge conditions in software testing is known as <strong><em>boundary value testing<\/em><\/strong>. Isn\u2019t it awesome how the name makes complete sense?\\n\\n<\/p>\n<h2>Boundary Value Testing<\/h2>\n<p>\\n\\n<\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-15654\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/Depositphotos_8913954_m-2015.jpg\" alt=\"Silhouette man walking musing looking up\" width=\"299\" height=\"400\" \/>What is boundary value testing in software testing?<\/h3>\n<p>\\n\\nBVT is used to test the boundaries between the equivalence partitions. BVT is most appropriate where the input is a continuous range of values, simply because this is where so many defects exist. Let us consider the previous example.\\n\\n<em>Test Scenario<\/em>\\n\\nConsider the following situation where a text box allows the following integers to be entered:\\n\\n1 \u2013 5 Success\\n\\n5 \u2013 9 Monkeys\\n\\n9 \u2013 11 Bananas\\n\\nA developer with any kind of skill would code something like this:\\n\\n<script src=\"https:\/\/gist.github.com\/simpleprogrammer-shared\/33947e28c5300143716cea6cedbbb1b7.js\"><\/script>\\n\\nObviously, you will run into the problems of overlapping conditions as mentioned before. However, the biggest problem involving boundaries is the developer mistakenly coding incorrect equality operators. Rather than a \u201c&lt;=\u201d, they might code \u201c&lt;\u201d, and so on.\\n\\nThese kinds of mistakes are common. That is why BVT is so effective. I have made small mistakes like this when coding at 2 a.m., and I have seen really smart developers make the same mistakes. We\u2019re all human.\\n\\n<\/p>\n<h3>What are the steps to designing boundary value test cases?<\/h3>\n<p>\\n\\n<\/p>\n<ol>\\n    <\/p>\n<li>Identify the equivalence classes<\/li>\n<p>\\n    <\/p>\n<li>Identify the boundaries of each class<\/li>\n<p>\\n    <\/p>\n<li>Create test cases for each boundary<\/li>\n<p>\\n<\/ol>\n<p>\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>a) One point below the boundary<\/li>\n<p>\\n    <\/p>\n<li>b) One point at the boundary<\/li>\n<p>\\n    <\/p>\n<li>c) One point above the boundary<\/li>\n<p>\\n<\/ul>\n<p>\\n\\n<\/p>\n<h3>Practice designing a test case<\/h3>\n<p>\\n\\n<em>Simple Scenario<\/em>\\n\\nLet\u2019s assume that there is a textbox that accepts a range of integers from 1 to 5.\\n\\n<\/p>\n<ol>\\n    <\/p>\n<li><em>Identify the equivalence class<\/em><\/li>\n<p>\\n<\/ol>\n<p>\\n\\n<\/p>\n<ol start=\"2\">\\n    <\/p>\n<li><em>Identify the boundary of each class<\/em><\/li>\n<p>\\n<\/ol>\n<p>\\n\\nThe boundaries are the edges where something can go wrong, like entering the incorrect equality operator.\\n\\n<\/p>\n<ol start=\"3\">\\n    <\/p>\n<li><em>Create test cases around each boundary<\/em><\/li>\n<p>\\n<\/ol>\n<p>\\n\\nBecause our unit of measurement is an integer, our unit for testing is going to be an integer. Therefore, plus or minus one around each boundary. If our unit was a percent with two decimal points, your test cases would be plus or minus .01 per boundary. In this scenario, with two boundaries, there are six boundary test cases.\\n\\n<\/p>\n<h3>What are the advantages of boundary value testing?<\/h3>\n<p>\\n\\nBVT is an excellent method to find bugs in your application. This technique is extremely easy to apply but very effective. When you are short on testing time, this technique may be applied to give you the best return on investment for your efforts.\\n\\n<\/p>\n<h3>What are the disadvantages of boundary value testing?<\/h3>\n<p>\\n\\nAs with all black box testing techniques, BVT does not guarantee full test coverage of the application under test (AUT). It has the potential to leave many parts of the application untested. Ideally, BVT should be used with <a href=\"https:\/\/simpleprogrammer.com\/2015\/08\/05\/specification-based-test-design-techniques-enhancing-unit-tests-part-1\/?preview_id=14034&amp;preview_nonce=c00d9f4915&amp;post_format=standard&amp;preview=true\">other test design techniques<\/a> to maximize test coverage.\\n\\n<\/p>\n<h3>Practice exercises for boundary value testing<\/h3>\n<p>\\n\\n<em>More Complex Scenario<\/em>\\n\\nLet\u2019s assume that there is a textbox that accepts a range of numbers from .50 to .60. What are all of the boundary value conditions required to test this system?\\n\\nThink about this one. What are the boundaries, and what are the numbers that surround those boundaries?\\n\\n<em>Solution<\/em>\\n\\nThe boundaries of the equivalence classes are at .50 and .60. Therefore, you need to have a test case for one increment below a boundary, one at the boundary, and one above the boundary.\\n\\nYou will arrive at six test cases: .49, .50, .51, .59, .60, .61\\n\\n<em>Test Scenario 2<\/em>\\n\\nLet\u2019s assume that there is a textbox that accepts a range of numbers from .50 to .52. Using BVT, what are all of the test cases required to test this system? Think about this on your own, and write down the answer. Increase that retention rate!\\n\\n<em>Solution<\/em>\\n\\nAll the test cases required are: .49, .50, .51, .52, .53. That\u2019s right, you only need five test cases instead of six. When some boundary value falls into the equivalence class of a different boundary(.51), you do not need to duplicate that test case. Just use it and test both of the relevant partitions.\\n\\n<em>Test Scenario 3<\/em>\\n\\nA mortgage company called Software Testing Mortgage (STM) will issue mortgages based on the person\u2019s income level. They will only issue a mortgage if the person\u2019s income is between $1000\/mo and $5000\/mo. Furthermore, STM will only issue between 1-2 mortgages per person.\\n\\nUsing BVT, create all of the test cases that are required to test this scenario. As always, use as few test cases as possible.\\n\\n<em>Solution<\/em>\\n\\nDon\u2019t get overwhelmed and just follow all the steps one at a time. The difference in this scenario is that there are three variables that affect our test cases rather than just one. Therefore, we need to plot our data on an x-y coordinate graph rather than just a single dimension number line.\\n\\nWith my excellent graphic <a href=\"https:\/\/simpleprogrammer.com\/2015\/06\/08\/design-patterns-simplified-the-bridge-pattern\/\">design<\/a> skills, I created the following to give you an example.\\n\\nNotice how the x-axis represents the income per month and the y-axis represents the number of houses. Red dots represent the invalid partitions and green dots represent valid partitions. At the intersections, the colors do not represent the correct partition because that point may be valid for one partition and invalid for another partition.\\n\\nAfter everything is done, this almost looks like a Cartesian coordinate plane. To create the test cases, just pick a starting point and starting axis. I started at 999 which is an invalid income on the x-axis. Afterwards, just traverse the y-axis for all the other partitions.\\n\\nThis process will yield four test cases for each boundary value on the y-axis (the number of houses) multiplied by each of the boundary test cases for the x-axis (income per month), yielding 24 boundary test cases total.\\n\\n<\/p>\n<table style=\"height: 755px;\" width=\"502\">\\n<\/p>\n<tbody>\\n<\/p>\n<tr>\\n<\/p>\n<td>Income<\/td>\n<p>\\n<\/p>\n<td># of houses<\/td>\n<p>\\n<\/p>\n<td>Expected<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>999<\/td>\n<p>\\n<\/p>\n<td>0<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>999<\/td>\n<p>\\n<\/p>\n<td>1<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>999<\/td>\n<p>\\n<\/p>\n<td>2<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>999<\/td>\n<p>\\n<\/p>\n<td>3<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1000<\/td>\n<p>\\n<\/p>\n<td>0<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1000<\/td>\n<p>\\n<\/p>\n<td>1<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1000<\/td>\n<p>\\n<\/p>\n<td>2<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1000<\/td>\n<p>\\n<\/p>\n<td>3<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1001<\/td>\n<p>\\n<\/p>\n<td>0<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1001<\/td>\n<p>\\n<\/p>\n<td>1<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1001<\/td>\n<p>\\n<\/p>\n<td>2<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>1001<\/td>\n<p>\\n<\/p>\n<td>3<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>4999<\/td>\n<p>\\n<\/p>\n<td>0<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>4999<\/td>\n<p>\\n<\/p>\n<td>1<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>4999<\/td>\n<p>\\n<\/p>\n<td>2<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>4999<\/td>\n<p>\\n<\/p>\n<td>3<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5000<\/td>\n<p>\\n<\/p>\n<td>0<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5000<\/td>\n<p>\\n<\/p>\n<td>1<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5000<\/td>\n<p>\\n<\/p>\n<td>2<\/td>\n<p>\\n<\/p>\n<td>valid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5000<\/td>\n<p>\\n<\/p>\n<td>3<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5001<\/td>\n<p>\\n<\/p>\n<td>0<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5001<\/td>\n<p>\\n<\/p>\n<td>1<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5001<\/td>\n<p>\\n<\/p>\n<td>2<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/p>\n<tr>\\n<\/p>\n<td>5001<\/td>\n<p>\\n<\/p>\n<td>3<\/td>\n<p>\\n<\/p>\n<td>invalid<\/td>\n<p>\\n<\/tr>\n<p>\\n<\/tbody>\n<p>\\n<\/table>\n<p>\\n\\n<\/p>\n<h2>Conclusions<\/h2>\n<p>\\n\\n<img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-15656\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/Depositphotos_73405325_m-2015.jpg\" alt=\"Depositphotos_73405325_m-2015\" width=\"400\" height=\"262\" \/>Be sure to actually put all this knowledge into practice so that your retention rate is better. You will be able to see that this technique is actually really useful in helping you to come up with possible test cases.\\n\\nIn the next tutorial, you will learn the <em>Decision Table<\/em> technique for test case design. Talk to you then. Comments are always welcome here.\\n\\n<strong>Citations<\/strong>\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li>Copeland, Lee. <a href=\"http:\/\/www.amazon.com\/exec\/obidos\/ASIN\/158053791X\/makithecompsi-20\" target=\"_blank\">A Practitioner&#8217;s Guide to Software Test Design<\/a><\/li>\n<p>\\n<\/ul>\n<p>\\n\\n<strong>Great Resources<\/strong>\\n\\n<\/p>\n<ul>\\n    <\/p>\n<li><a href=\"http:\/\/istqbexamcertification.com\/what-is-a-static-test-technique\/\">Site that teaches a bunch of ISTQB techniques<\/a><\/li>\n<p>\\n    <\/p>\n<li><a href=\"http:\/\/agile.csc.ncsu.edu\/SEMaterials\/BlackBox.pdf\">Testing Overview and Black-Box Testing Techniques<\/a><\/li>\n<p>\\n    <\/p>\n<li><a href=\"http:\/\/users.ece.cmu.edu\/~koopman\/des_s99\/sw_testing\/\">Software Testing<\/a><\/li>\n<p>\\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Our second post in this series focuses on efficient test case design using black box testing. The goal of these posts is to make you better at designing test cases so that you can develop higher quality systems. In-depth explanations and practice exercises are at the core of these tutorials.\\n\\nIn part one of this tutorial,&#8230;<\/p>\n","protected":false},"author":40,"featured_media":15653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[2185,148,415,162229803,5895,162229840,2260],"tags":[],"class_list":["post-15627","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices","category-design","category-guest-post","category-programming","category-self-improvement","category-skills","category-web-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Proper Test Case Design for Testing - Part 2 - Boundary Value Analysis - Simple Programmer<\/title>\n<meta name=\"description\" content=\"Become better at\u00a0designing test cases using boundary value analysis,\u00a0so that you can develop higher quality systems.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Proper Test Case Design for Testing - Part 2 - Boundary Value Analysis - Simple Programmer\" \/>\n<meta property=\"og:description\" content=\"Become better at\u00a0designing test cases using boundary value analysis,\u00a0so that you can develop higher quality systems.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-12T13:00:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-07-17T18:38:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/test-case.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1089\" \/>\n\t<meta property=\"og:image:height\" content=\"598\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Antonio Cucciniello\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Cucciniello\" \/>\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\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/\"},\"author\":{\"name\":\"Antonio Cucciniello\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/efe2e182a2e0f4b10015f305da31fc52\"},\"headline\":\"Proper Test Case Design for Testing &#8211; Part 2 &#8211; Boundary Value Analysis\",\"datePublished\":\"2016-02-12T13:00:48+00:00\",\"dateModified\":\"2016-07-17T18:38:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/\"},\"wordCount\":1483,\"commentCount\":8,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/test-case.png\",\"articleSection\":[\"Best Practices\",\"Design\",\"Guest Post\",\"Programming\",\"Self Improvement\",\"Skills\",\"Web Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/\",\"name\":\"Proper Test Case Design for Testing - Part 2 - Boundary Value Analysis - Simple Programmer\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/test-case.png\",\"datePublished\":\"2016-02-12T13:00:48+00:00\",\"dateModified\":\"2016-07-17T18:38:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/efe2e182a2e0f4b10015f305da31fc52\"},\"description\":\"Become better at\u00a0designing test cases using boundary value analysis,\u00a0so that you can develop higher quality systems.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/test-case.png\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/test-case.png\",\"width\":1089,\"height\":598},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/proper-test-case-design-for-testing-part-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Proper Test Case Design for Testing &#8211; Part 2 &#8211; Boundary Value Analysis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/\",\"name\":\"Simple Programmer\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpleprogrammer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/efe2e182a2e0f4b10015f305da31fc52\",\"name\":\"Antonio Cucciniello\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ec013d4cc89abd9206c7dd1941527cfcb2caf44787ac8bbd8163b681923792aa?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ec013d4cc89abd9206c7dd1941527cfcb2caf44787ac8bbd8163b681923792aa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ec013d4cc89abd9206c7dd1941527cfcb2caf44787ac8bbd8163b681923792aa?s=96&d=mm&r=g\",\"caption\":\"Antonio Cucciniello\"},\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/author\\\/antoniocucciniello\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Proper Test Case Design for Testing - Part 2 - Boundary Value Analysis - Simple Programmer","description":"Become better at\u00a0designing test cases using boundary value analysis,\u00a0so that you can develop higher quality systems.","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:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Proper Test Case Design for Testing - Part 2 - Boundary Value Analysis - Simple Programmer","og_description":"Become better at\u00a0designing test cases using boundary value analysis,\u00a0so that you can develop higher quality systems.","og_url":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/","og_site_name":"Simple Programmer","article_published_time":"2016-02-12T13:00:48+00:00","article_modified_time":"2016-07-17T18:38:39+00:00","og_image":[{"width":1089,"height":598,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/test-case.png","type":"image\/png"}],"author":"Antonio Cucciniello","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Antonio Cucciniello","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/"},"author":{"name":"Antonio Cucciniello","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/efe2e182a2e0f4b10015f305da31fc52"},"headline":"Proper Test Case Design for Testing &#8211; Part 2 &#8211; Boundary Value Analysis","datePublished":"2016-02-12T13:00:48+00:00","dateModified":"2016-07-17T18:38:39+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/"},"wordCount":1483,"commentCount":8,"image":{"@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/test-case.png","articleSection":["Best Practices","Design","Guest Post","Programming","Self Improvement","Skills","Web Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/","url":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/","name":"Proper Test Case Design for Testing - Part 2 - Boundary Value Analysis - Simple Programmer","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/test-case.png","datePublished":"2016-02-12T13:00:48+00:00","dateModified":"2016-07-17T18:38:39+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/efe2e182a2e0f4b10015f305da31fc52"},"description":"Become better at\u00a0designing test cases using boundary value analysis,\u00a0so that you can develop higher quality systems.","breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/test-case.png","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2016\/02\/test-case.png","width":1089,"height":598},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/proper-test-case-design-for-testing-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Proper Test Case Design for Testing &#8211; Part 2 &#8211; Boundary Value Analysis"}]},{"@type":"WebSite","@id":"https:\/\/simpleprogrammer.com\/#website","url":"https:\/\/simpleprogrammer.com\/","name":"Simple Programmer","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpleprogrammer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/efe2e182a2e0f4b10015f305da31fc52","name":"Antonio Cucciniello","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ec013d4cc89abd9206c7dd1941527cfcb2caf44787ac8bbd8163b681923792aa?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ec013d4cc89abd9206c7dd1941527cfcb2caf44787ac8bbd8163b681923792aa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec013d4cc89abd9206c7dd1941527cfcb2caf44787ac8bbd8163b681923792aa?s=96&d=mm&r=g","caption":"Antonio Cucciniello"},"url":"https:\/\/simpleprogrammer.com\/author\/antoniocucciniello\/"}]}},"_links":{"self":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/15627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/comments?post=15627"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/15627\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/15653"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=15627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=15627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=15627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}