一、等价类
如图所示等价类划分规则1 :
需求规定了输入域的取值个数或某个范围时,则确定一个有效等价类和两个无效等价类。
如:输入值是题目答案,取值个数是2个;
一个有效等价类是2个;两个无效等价类是1个和3个;
输入值是学生成绩,取值范围是0~100;
一个有效等价类是88;两个无效等价类是-1和101;
对等价类划分规则4 增加说明内容,如果用户需求规定了输入域是一组值(假定n个),并且要对每一个输入值都或部分处理时,可确定n个或若干个有效等价类和一个无效等价类。
对等价类划分规则5举例说明,规定小学生在8点打卡
一个有效等价类是小学生在8点打卡;若干个无效等价类小学生在7点打卡,小学生在9点打卡;大学生在8点打卡;
在等价类中细分又有 强一般等价类、弱一般等价类、强健壮等价类、弱等价类(强指多缺陷假设,表明笛卡尔乘积的概念;弱指单缺陷假设;一般指只考虑正常值;健壮性指考虑异常值)
二、边界值
设计方法:确定边界情况(输入或输出等价类的边界);选取正好等于(上点)、刚刚大于或刚刚小于边界值(离点)作为测试数据、在边界内的值(内点)。
三、判定表
一个判定表由“条件和活动”两部分组成,也就是列出了一个测试活动执行所需的条件组合,所有可能的条件组合定义了一系列的选择,而测试活动需要考虑每一个选择。
判定表元素:
条件桩:列出问题的所有条件
动作桩:列出可能针对问题所采取的操作
条件项:针对所列条件的具体赋值
动作项:列出在条件项(各种取值)组合情况下应该采取的动作
规则:任何一个条件组合的特定取值及其相应要执行的操作
判定表方法步骤:列出所有的条件桩和动作桩;填入条件项;填入动作项,制定初始判定表;简化、合并相似规则或者相同动作
四、因果图
优点:
因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例
因果图分析还能为我们指出,软件规格说明描述中存在的问题
可以依据因果图检验需求的逻辑和程序未来应包含的函数或方法。
缺点:
输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到。
即时得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目极其庞大。
五、正交实验
设计方法:
确定影响功能的因子与状态
选择一个合适的正交表
利用正交表构造测试数据集
六、状态迁移
每个程序的功能通常由静态说明和动态说明组成:静态说明描述了输入条件和输出条件之间的对应关系;动态说明描述了输入数据的次序或者转移的次序。
功能图法就是为了解决动态说明问题的一种测试用例的设计方法
功能图由状态迁移图(state transition diagram,STD)和逻辑功能模型(logic function model, LFM)构成
状态迁移图:用于表示输入数据序列以及相应的输出数据,由输入和当前的状态决定输出数据和后续状态。
案例
飞机售票系统
(1)客户向航空公司打电话预定机票,此时机票信息处于“预定”状态;
(2)顾客支付了机票费用后,机票信息变为“已支付”状态;
(3)旅行当天到达机场,拿到机票后,机票信息变为“已出票”状态;
(4)登机检票后,机票信息变为“已使用”状态;
(5)在登机之前任何时间都可以取消自己的订票信息,如果已经支付了机票的费用,则可以退款,取消后,订票信息处于“已取消”状态。
状态节点及状态迁移图
状态迁移树
抽取测试用例
从起始节点到叶子节点抽取一条测试用例
预定->已取消
预定->已支付->已取消
预定->已支付->已出票->已取消
预定->已支付->已出票→已使用
七、场景设计
用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。
构造场景的步骤:根据事件流描述,构造事件流图;根据事件流图,构造场景覆盖从用例开始到结束的路径
设计场景法测试用例的步骤:确定执行用例场景所需的数据元素;构造矩阵(确定列内容:除了需要包含执行场景所需的数据元素,还需要包含测试用例标识、被测场景标识或名称;确定行内容:根据每一场景,确定与其相关的测试用例输入项,在设计时,须保证每个场景至少包含一个正面测试用例和一个负面测试用例;根据被测场景特征,补充相应测试用例)