| <?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.6/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmi:id="-7v9Ia3BxJdgAGS6Kol2L3w" name="develop_unit_tests,_ioCPkDzEEdyA6a_I80swHw" guid="-7v9Ia3BxJdgAGS6Kol2L3w" changeDate="2007-08-23T00:59:51.000-0700" version="7.5.1"> |
| <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> |