功能图方法其实是一种灰盒测试(因其兼有黑盒和白盒测试)用例设计方法,用功能图FD形式化地表示程序的功能说明,机械地生成功能图的测试用例。通常情况一个程序的功能说明有动态说明和静态说明组成。
动态说明描述了输入数据的次序或转移的次序;静态说明描述了输入条件与输出条件之间的对应关系。
对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对于测试来说往往是不够的,必须用动态说明来补充功能说明。
功能图模型有状态迁移图和逻辑功能模型构成。
状态迁移图用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系,只适合于描述静态说明,输出数据仅由输入数据决定。
测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。
测试用例生成方法: 从功能图生成测试用例,得到的测试用例数十可以接受的。问题的关键是如何从状态迁移图中选取测试用例。若用节点代替状态,用弧线代替迁移,则状态迁移图就可转化成一个程序的控制流程图形式。问题就转化为程序的路径测试问题了。 为了把状态迁移(测试路径)的测试用例与逻辑模型(局部测试用例)的测试用例组合起来,从功能图生成实用的测试用例,须定义下面的规则。在一个结构化的状态迁移(SST)中,定义三种形式的循环:顺序,选择和重复。但分辨一个状态迁移中的所有循环式有困难的。 测试用例生成过程: A.生成局部测试用例:在每个状态中,从因果图生成局部测试用例。局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。 B.
测试路径生成:利用上面的规则(3种)生成从初始状态到最后状态的测试路径。 C.
测试用例合成:合成测试路径与功能图中每个状态的局部测试用例。结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。 测试用例的合成算法:采用条件构造数。 状态迁移图法简介: A.许多需求用状态机的方式来描述,状态机的测试主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,可能不可能产生非法的状态转移等 B.
通过构造能导致状态迁移的事件来测试状态之间的转换,常用于协议测试 C.
用这种方法可以设计逆向的测试用例,如状态和时间的非法组合 状态迁移图的步骤: A.画出状态迁移图; B.
列出状态——事件表; C.
得到状态转换树; D.推出测试路径‘ E.
根据测试路径编写测试用例。
案例:
手机中MP3播过功能状态-事件表如下,请用状态迁移法设计用例。其中没有选择MP3曲目时不能按任何键,并且当MP3曲目在起点时不能按R键,当MP3曲目在末端时不能按P、F键。解答: 画出的状态迁移图如下:
得到状态-事件表如下:
根据状态-事件表,得到状态树如下:
以上的每一条路径,都是一个测试用例:
|