这块没遇到过,挺生的,总结下。
如题:2020年8月
分析
想不起判定表是什么样子的,只记得有PAD相关的细节……。还不是很清楚。c++与软工,讲义还是比较重要的,要多看,多理解。
相关讲义的内容:软件工程复习之结构化分析,其实只是一个简单的介绍,没有涉及驱动层次的原理。可以说,有些似懂非懂,如四个象限写的,就挺模糊的。
解决
判定表的作用
虽然是加工处理的设计工具,能够将复杂的问题按照各种可能的情况全部列举出来,另一种作用,设计出完整的测试用例集合。从这里可以看出还是软件测试部分出大题,一定要重视起来。
判定表组成,也就是所谓的四个象限
比较专业点的叫法,如下图所示:
条件桩(Condition Stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
条件项(Condition Entry):列出针对它所列条件的取值。在所有可能情况下的真假值。
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
划分四个象限的驱动原理
任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。
有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。那就需要化简
判定表的建立步骤
- 确定规则的个数。假如有n个条件。每个条件有两个取值(0,1),故有2^n种规则;
- 列出所有的条件桩和动作桩;
- 填入条件项;
- 填入动作项。等到初始判定表;
- 简化,合并相似规则(相同动作)。
实战
- 由条件确定规则个数。
题意,其实有三个条件,一个是疲倦与否,二是感不感兴趣,三是理解有无困难,初步推测,规则数为2^3=8个。 - 列出所有条件桩与动作桩
- 填入条件项;
- 填入动作项。等到初始判定表;//可以化一步来实现=
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
---|---|---|---|---|---|---|---|---|---|
条件 | 疲倦吗 | Y | Y | Y | Y | N | N | N | N |
感兴趣吗 | N | Y | Y | N | Y | Y | N | N | |
理解困难吗 | N | N | Y | Y | N | Y | N | Y | |
动作 | 继续阅读 | 1 | |||||||
跳到下一章 | 1 | 1 | |||||||
休息 | 1 | 1 | 1 | 1 | |||||
重读 | 1 |
- 简化
1 | 2 | 3 | 4 | ||
---|---|---|---|---|---|
条件 | 疲倦吗 | Y | N | N | N |
感兴趣吗 | Y | Y | N | ||
理解困难吗 | N | Y | |||
动作 | 继续阅读 | 1 | |||
跳到下一章 | 1 | ||||
休息 | 1 | ||||
重读 | 1 |
总结
不是很难,关键是理解。根据题意,列出所有的条件项和动作项是关键。