{"id":103,"date":"2021-10-17T19:27:27","date_gmt":"2021-10-17T19:27:27","guid":{"rendered":"http:\/\/qleaders.net\/?p=103"},"modified":"2021-10-17T19:27:28","modified_gmt":"2021-10-17T19:27:28","slug":"extract-all-requirement-cases-using-causeeffect-analysis","status":"publish","type":"post","link":"https:\/\/qleaders.net\/index.php\/2021\/10\/17\/extract-all-requirement-cases-using-causeeffect-analysis\/","title":{"rendered":"Extract All requirement cases using Cause&#038;Effect Analysis"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>This article describes in detail an organized method to extract all possible cases from the requirement, this can help the system analyst in defining all the cases and also can help developers while preparing the unit TCs and of course will help the testers to write unified test cases.<\/p>\n\n\n\n<p>First of all, suppose you have the following requirement:<\/p>\n\n\n\n<p><em>A mailing is to be sent out to customers.<\/em><\/p>\n\n\n\n<p><em>The content of the mailing is about the current level of discounting and potential levels of discounting.&nbsp;The content is different for different types of customers.<\/em><\/p>\n\n\n\n<p><em>Customer Types A, B, and C get a normal letter except Customer Type C, who gets a special letter.\u00a0Any customer with 2 or more current lines or with a credit rating of \u2018X\u2019 gets a special paragraph added with an offer to subscribe to another level of discounting.<\/em><\/p>\n\n\n\n<p>The problem is if you give this requirement to any 4 different testers, the 4 will produce different no of TCs, I will explain how to derive a unified number of TCs using cause and effect analysis and a decision table.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Step 1: Break the specification down to cause and effect:<\/h1>\n\n\n\n<p>First, the analyst must break down the requirement to causes and effects<\/p>\n\n\n\n<p>\u2013\u00a0Cause:\u00a0is a distinct input condition or an equivalence class of input conditions\u00a0(the cause which triggers the effect) in our above example Customer Type (A, B, C, Other) is a cause<\/p>\n\n\n\n<p>\u2013\u00a0Effect: is an output condition. Determine the logical relationship between the cause and the effects, in our above example \u201cGet a normal letter\u201d is an effect for the cause customer type(A, B,C, Other )<br>Usually, the effect is an output action (Ex. Error message, application action, executing specific application job, etc\u2026)<\/p>\n\n\n\n<p>After this step you should have causes and effects like that:<\/p>\n\n\n\n<p>C1: Customer Type A, B, C, Other<\/p>\n\n\n\n<p>C2: 2 or more lines<\/p>\n\n\n\n<p>C3: Credit Rating<\/p>\n\n\n\n<p>E1: Normal Letter<\/p>\n\n\n\n<p>E2: Special Letter<\/p>\n\n\n\n<p>E4: Add a special paragraph<\/p>\n\n\n\n<p>E5: Get a Normal letter<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Step 2: Put Causes and Effects in the decision Table.<\/h1>\n\n\n\n<p>Then we should fill the decision table by putting the cause and the effects together in that table as a following:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-fixed-layout\"><tbody><tr><td>Cause\\Effect<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C1:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C2:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C3:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E3:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E4:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E5:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Step 3: Calculate all possible Combinations<\/h1>\n\n\n\n<p>This is a very important step to know no of columns in our decision table, simply use this formula to know all no of combinations that can occur:<\/p>\n\n\n\n<p>\u2022&nbsp;If all causes are simply Y\/N values:<br>2<sup>number of causes<\/sup><\/p>\n\n\n\n<p>\u2022&nbsp;If 1 cause with 3 values and 3 with 2:<br>3<sup>1<\/sup>&nbsp;* 2<sup>3<\/sup>&nbsp;= 24<\/p>\n\n\n\n<p><strong>In our example<\/strong>, C1 has 4 values (A or B or C or Other)&nbsp;AND C2 has 2 values (YES or NO) also C3 has 2 values (YES or NO) so our formula should be :<\/p>\n\n\n\n<p>1<sup>4&nbsp;<\/sup>* 2<sup>2&nbsp;<\/sup>= 16 combinations<\/p>\n\n\n\n<p>So we should draw for the decision table 16 columns which present 16 different combinations.<\/p>\n\n\n\n<p>Now the table should be like that:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Cause\\Effect<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C1:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C2:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C3:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E3:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E4:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E5:<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Step 4: Fill Columns<\/h1>\n\n\n\n<p>We can fill columns 2 methods:<\/p>\n\n\n\n<p>1-\u00a0Logical method: in this method, you start filling column by column, start with the causes and end up with the effect (put into consideration that every column is a case).<\/p>\n\n\n\n<p>2-&nbsp;Repeating Factor Algorithm method:<\/p>\n\n\n\n<p>a.&nbsp;Determine Repeating Factor (RF):&nbsp;divide remaining combinations by the number of possible values for that cause<\/p>\n\n\n\n<p>b.\u00a0Write RF times the first value, then RF times the next, etc. until the row is full<\/p>\n\n\n\n<p>Example for using Repeating Factor Algorithm: suppose you have the following decision table:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><\/tr><tr><td>C1(Y\\N)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C2(Y\\N)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C3(Y\\N)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Fill first row: RF = number of remaining combination (8) \/ possible value for this<\/p>\n\n\n\n<p>Cause (2) = (8\/2 = 4), so we will fill 4 from Y and 4 of N, the DT will be :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><\/tr><tr><td>C1(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C2(Y\\N)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C3(Y\\N)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Fill Second row: RF = number of remaining combination (4) \/ possible value for this<\/p>\n\n\n\n<p>Cause (2) = (4\/2 = 2), so we will fill 2 from Y and 2 of N, the DT will be :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><\/tr><tr><td>C1(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C2(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C3(Y\\N)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Fill Third row: RF = number of the remaining combination (2) \/ possible value for this<\/p>\n\n\n\n<p>Cause (2) = (2\/2 = 1), so we will fill 1 from Y and 1 of N, the DT will be :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><\/tr><tr><td>C1(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C2(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C3(Y\\N)<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Filing DT in example1:<\/p>\n\n\n\n<p>In example 1 we have 3 causes and 5 effects with the total number of combinations = 16 combinations<\/p>\n\n\n\n<p>Fill first row: RF = number of remaining combination (16) \/ possible value for this<\/p>\n\n\n\n<p>Cause (4) = (16\/4 = 4) , so we will fill 4 from every type (A,B,C,O) , the DT will be :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Cause\\Effects<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C1(A,B,C,O)<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>O<\/td><td>O<\/td><td>O<\/td><td>O<\/td><\/tr><tr><td>C2(Yes\\No)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>C3(yes\\No)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E3<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E4<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E5<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Fill Second row: RF = number of remaining combination (2*2) \/ possible value for this<\/p>\n\n\n\n<p>Cause (2) = (4\/2 = 2), so we will fill 2 from every Y and 2 from N, the DT will be :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Cause\\Effects<\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><td>9<\/td><td>10<\/td><td>11<\/td><td>12<\/td><td>13<\/td><td>14<\/td><td>15<\/td><td>16<\/td><\/tr><tr><td>C1(A,B,C,O)<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>O<\/td><td>O<\/td><td>O<\/td><td>O<\/td><\/tr><tr><td>C2(Yes\\No)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C3(yes\\No)<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E3<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E4<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E5<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Fill Third row: RF = number of the remaining combination (2) \/ possible value for this<\/p>\n\n\n\n<p>Cause (2) = (2\/2 = 1), so we will fill 1 from every Y and 1 from N, the DT will be :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Cause\\Effects<\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><td>9<\/td><td>10<\/td><td>11<\/td><td>12<\/td><td>13<\/td><td>14<\/td><td>15<\/td><td>16<\/td><\/tr><tr><td>C1(A,B,C,O)<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>O<\/td><td>O<\/td><td>O<\/td><td>O<\/td><\/tr><tr><td>C2(Yes\\No)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C3(yes\\No)<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E3<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E4<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E5<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Step 5: Reduce Combinations<\/h1>\n\n\n\n<p>1-\u00a0In our simple example find a don\u2019t care \u201c-\u201d sign and place it,<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><\/tr><tr><td>C1(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C2(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C3(Y\\N)<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>In the above DT suppose in column 3 and column 4, when the C2 become \u201cN\u201d the program end, so we will put in C3\u00a0the sign \u201c-\u201d which mean done care, the DT will become as follow :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><\/tr><tr><td>C1(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C2(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C3(Y\\N)<\/td><td>Y<\/td><td>N<\/td><td>&#8211;<\/td><td>&#8211;<\/td><td>Y<\/td><td>N<\/td><td>&#8211;<\/td><td>&#8211;<\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>2-\u00a0After placing the \u201c-\u201d don\u2019t care sign, now remove the repeated columns, column 3 and 4 now become identical so will remove one of them, also column 7 and 8 now identical so I will remove one of them too, so the DT will be :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>5<\/td><td>6<\/td><td>8<\/td><\/tr><tr><td>C1(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>N<\/td><\/tr><tr><td>C2(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><\/tr><tr><td>C3(Y\\N)<\/td><td>Y<\/td><td>N<\/td><td>&#8211;<\/td><td>Y<\/td><td>N<\/td><td>&#8211;<\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>After removing the columns you must do a checksum for the table to assure that the DT still<\/p>\n\n\n\n<p>cover all the original combination = 8<\/p>\n\n\n\n<p>To do checksum:<\/p>\n\n\n\n<p>\u2022&nbsp;For each column calculate the combinations it represents<\/p>\n\n\n\n<p>\u2022&nbsp;A \u2018-\u2019 represents as many combinations as the cause has<\/p>\n\n\n\n<p>\u2022&nbsp;Multiply for each \u2018-\u2019 down the column<\/p>\n\n\n\n<p>\u2022\u00a0Add up the total and compare with step 2<\/p>\n\n\n\n<p>So the checksum will be as follow:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>5<\/td><td>6<\/td><td>8<\/td><td><\/td><\/tr><tr><td>C1(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>N<\/td><td><\/td><\/tr><tr><td>C2(Y\\N)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td><\/td><\/tr><tr><td>C3(Y\\N)<\/td><td>Y<\/td><td>N<\/td><td>&#8211;<\/td><td>Y<\/td><td>N<\/td><td>&#8211;<\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E2<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>Checksum<\/td><td>1<\/td><td>1<\/td><td>2<\/td><td>1<\/td><td>1<\/td><td>2<\/td><td>8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Step 6: Add effects to table<\/h1>\n\n\n\n<p>\u2022&nbsp;Read column by column and determine the effects<\/p>\n\n\n\n<p>\u2022&nbsp;One effect can occur in multiple test combinations<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Cause\\Effects<\/td><td>1<\/td><td>2<\/td><td>3<\/td><td>4<\/td><td>5<\/td><td>6<\/td><td>7<\/td><td>8<\/td><td>9<\/td><td>10<\/td><td>11<\/td><td>12<\/td><td>13<\/td><td>14<\/td><td>15<\/td><td>16<\/td><td><\/td><\/tr><tr><td>C1(A,B,C,O)<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>A<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>B<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>C<\/td><td>O<\/td><td>O<\/td><td>O<\/td><td>O<\/td><td><\/td><\/tr><tr><td>C2(Yes\\No)<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td>Y<\/td><td>Y<\/td><td>N<\/td><td>N<\/td><td><\/td><\/tr><tr><td>C3(yes\\No)<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td>Y<\/td><td>N<\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>E1: Normal letter<\/td><td>X<\/td><td>X<\/td><td>X<\/td><td>X<\/td><td>X<\/td><td>X<\/td><td>X<\/td><td>X<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td>?<\/td><td>?<\/td><td>?<\/td><td>?<\/td><td><\/td><\/tr><tr><td>E2: Special Letter<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td>X<\/td><td>X<\/td><td>X<\/td><td>X<\/td><td>?<\/td><td>?<\/td><td>?<\/td><td>?<\/td><td><\/td><\/tr><tr><td>E3: Add paragraph<\/td><td>?<\/td><td>X<\/td><td>X<\/td><td><\/td><td>?<\/td><td>X<\/td><td>X<\/td><td><\/td><td>?<\/td><td>X<\/td><td>X<\/td><td><\/td><td>?<\/td><td>?<\/td><td>?<\/td><td>?<\/td><td><\/td><\/tr><tr><td>E4: No Letter<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>Checksum<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>1<\/td><td>16<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>As we see in the above table after adding effects to the table you can:<\/p>\n\n\n\n<p>1-\u00a0Determine if you have a missing requirement or not as in the case we place \u201c?\u201d, the requirement is missing if the customer type is other than the 3 types A, B,C<\/p>\n\n\n\n<p>2-\u00a0You can determine if there is a redundant requirement, example in columns 6 and 7 by looking into the table you will find the 2 columns have the same effects, so you can ask the client or the analyst about this situation and if it doesn\u2019t matter to have a credit line or not in case of customer type B<\/p>\n\n\n\n<p>3-\u00a0Finally you will be sure that you cover all possible scenarios by doing this analysis.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Finally, In QLeaders we help you to analyze your requirement to ensure the maximum coverage of the requirement in the testing <\/p>\n\n\n\n<p>QLeaders, Your Quality Gate!<\/p>\n\n\n\n<p>Ahmed Ibrahim.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"745\" src=\"https:\/\/qleaders.net\/wp-content\/uploads\/2021\/10\/Amti3ndzIO0JpT62DE-XpU7QuU_HIcchkFRioFWv8kYR-1024x745.jpg\" alt=\"\" class=\"wp-image-106\" srcset=\"https:\/\/qleaders.net\/wp-content\/uploads\/2021\/10\/Amti3ndzIO0JpT62DE-XpU7QuU_HIcchkFRioFWv8kYR-1024x745.jpg 1024w, https:\/\/qleaders.net\/wp-content\/uploads\/2021\/10\/Amti3ndzIO0JpT62DE-XpU7QuU_HIcchkFRioFWv8kYR-300x218.jpg 300w, https:\/\/qleaders.net\/wp-content\/uploads\/2021\/10\/Amti3ndzIO0JpT62DE-XpU7QuU_HIcchkFRioFWv8kYR-768x559.jpg 768w, https:\/\/qleaders.net\/wp-content\/uploads\/2021\/10\/Amti3ndzIO0JpT62DE-XpU7QuU_HIcchkFRioFWv8kYR-1536x1117.jpg 1536w, https:\/\/qleaders.net\/wp-content\/uploads\/2021\/10\/Amti3ndzIO0JpT62DE-XpU7QuU_HIcchkFRioFWv8kYR.jpg 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction This article describes in detail an organized method to extract all possible cases from the requirement, this can help the system analyst in defining all the cases and also can help developers while preparing the unit TCs and of course will help the testers to write unified test cases. First of all, suppose you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/posts\/103"}],"collection":[{"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/comments?post=103"}],"version-history":[{"count":2,"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/posts\/103\/revisions"}],"predecessor-version":[{"id":107,"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/posts\/103\/revisions\/107"}],"wp:attachment":[{"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/media?parent=103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/categories?post=103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qleaders.net\/index.php\/wp-json\/wp\/v2\/tags?post=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}