| <?xml version="1.0" encoding="UTF-8"?> |
| <org.eclipse.epf.uma:TaskDescription xmi:version="2.0" |
| xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore" |
| xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmi:id="-7v9Ia3BxJdgAGS6Kol2L3w" |
| name="develop_unit_tests,_ioCPkDzEEdyA6a_I80swHw" guid="-7v9Ia3BxJdgAGS6Kol2L3w" |
| changeDate="2007-08-23T12:59:51.718-0700"> |
| <mainDescription><a id="XE_unit_tests__develop" name="XE_unit_tests__develop"></a> 
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| Rule Unit Testing is the process of testing a specific rule in the context of the rule set in which it is deployed.
 |
| Rule Unit Testing allows rule writers to:
 |
| </p>
 |
| <ul style="MARGIN-TOP: 0cm" type="disc">
 |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">
 |
| Validate each rule in the context of its rule set
 |
| </li>
 |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">
 |
| Control the rule set quality
 |
| </li>
 |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">
 |
| Conduct some impact analysis when rules are in conflict
 |
| </li>
 |
| <li class="MsoNormal" style="MARGIN: 3pt 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">
 |
| Helps to have non-regression tests
 |
| </li>
 |
| </ul>
 |
| <p class="MsoNormal" style="MARGIN: 3pt 0cm">
 |
| <span style="mso-bidi-language: HE">There is a major difference between testing a code, and a rule. A rule engine per
 |
| design may not put a rule in the agenda if the conditions are not matched. This means that when the rule writer write a
 |
| new rule, even if the data are sent to trigger the execution of this new rule it is possible that a rule fired before
 |
| the new one, with change the condition of the data so that this new rule will never be eligible. Developing a complete
 |
| set of unit test is an efficient way to see this problem, and to improve the rule set design. Some powerful BRMS
 |
| platform has rules consistency checking which helps to do some static analysis of those potential conflict by analyzing
 |
| the conditions and the actions of the rules. For sure real test cases will complete the picture.</span>
 |
| </p><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br />
 |
| <span
 |
| style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US">Using
 |
| a Test Driven Development approach rule writer can develop the test script preparing the data to trigger each rule,
 |
| depending of the BRMS platform used, the script generation can be done automatically or not. What is important is develop
 |
| reusable test case organized in test suite which include assertion statement to validate the expected results. This is
 |
| efficient tool to put in place automatic non regression tests.</span></mainDescription> |
| <purpose><br class="MsoNormal" style="MARGIN: 3pt 0cm" />
 |
| <br /></purpose> |
| </org.eclipse.epf.uma:TaskDescription> |