rules的第一列表明,如果条件c1,c2,c3都为true,则应当采取行动a1和a2;第二列表明如果c1,c2为true,c3为false,则应当采取行动a1和a3。
三角形问题决策表示例:
创建决策表需要验证规则的完整性、去冗余、解决不一致性规则。
几种功能性测试方法的比较:
图片来自CaiFerriday:AReviewPaperonDecisionTable-BasedTesting
边界值分析法的测试用例数量最多(冗余最多),最容易确定测试用例;基于决策表的测试用例最少,却最难确定测试用例。
结构性测试StructuralTesting
1.路径测试
DD路径DD-Path(Decision-to-DecisionPath)
命令式程序语言可以使用有向图论来分析。将程序语句、语句片断作为节点,控制流作为有向边,就构成了程序有向图。
DD-路径:主要着眼测试覆盖率问题。程序有向图中存在分支,覆盖率考虑的是对各个分支情况的测试覆盖程度,因此对有向图中线性串行的部分进行压缩,在压缩图(即DD-路径)的基础上进行测试用例设计,用测试覆盖指标考察测试效果。
例如下面图示的有向图:
对应的DD-Path为: