提示:仅供参考
一、概述
黑盒测试(Black-box Testing)又称为功能测试、数据驱动测试或基于规格说明的测试(Specification-based Testing)。黑盒测试相对于白盒测试而言,并不关心被测对象的内部实现而是把被测对象当作一个不透明的黑盒子来看待,针对被测对象从其提供的外部功能与规格出发来设计测试用例进行测试。
二、等价类划分
把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量有代表性的测试数据取得较好的测试效果。
相比穷举法大大的提高了测试执行的效率。
三、边界值分析
边界值分析方法是等价类划分方法的补充。
该方法是基于经验而得到的,经验告诉我们,大量的错误是发生在输入或输出范围的边界上,边界值分析就是在划分的等价类区域的边界及其附近进行测试数据的选取,选取原则就是选取正好等于、刚刚大于或刚刚小于边界值的数据作为测试数据。
关于边界的基本概念:
上点、离点、内点
四、错误推测
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的进行测试的方法。
基于经验的测试设计能够使测试经验得到共享,使测试用例的设计更加具有针对性、有效性。
例如在进行某产品某版本测试用例设计时首先对该产品或其他同类型产品的网上问题情况进行分析,得到一个网上问题分析报告。分析报告中有对于网上问题出现的位置、几率、严重程度、原因进行的分析,那么在进行该版本测试用例设计时就可根据该报告中分析的结论有针对性的设计相应的测试用例。
五、因果图
采用因果图法能够帮助我们按照一定步骤,高效的在大量的组合情况下进行测试用例的选取,解决了在考虑组合时组合情况太多问题,在一定程度上促进了测试用例设计的全面性。
利用因果图生成测试用例的步骤:
1.分析并标识出原因与结果
2.通过语义分析给出原因与结果的关系画出因果图
3.将因果图转换为判定表
4.根据判定表设计测试用例
因果图法的优点是综合考虑了输入、输出条件的组合,使测试设计更加全面。
这种方法的缺点也是显而易见的,即方法过程比较复杂,方法本身比较难以掌握;输入与输出之间的因果关系比较难以从规格描述中得到,需要一个分析过程;如果被测对象本身比较复杂,那么分析过程以及最后得到的因果图可能会非常复杂,得到的测试用例数量很庞大,需要耗费比较多的工作量。
基于以上原因,这种方法实际得到的应用并不多。
六、判定表
条件桩(Condition Stub):列出了问题得所有条件,通常认为列出得条件的次序无关紧要。
动作桩(Action Stub):列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
条件项(Condition Entry):列出针对它左列条件的取值,在所有可能情况下的真假值。
动作项(Action Entry ):列出在条件项的各种取值情况下应该采取的动作。
规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。
判定表分析步骤:
1.确定规则个数。假如有n个条件,每个条件有两个取值,就有2的n次方个规则。
2.列出所有的条件桩和动作桩。
3.填入条件项。
4.填入动作项。得到初始判定表。
5.简化、合并相似规则和动作。
Beizer 指出的适合使用判定表设计测试用例的条件:
1.规格说明以判定表形式给出,或很容易转换成判定表。
2.条件的排列顺序不会也不影响执行哪些操作。
3.规则的排列顺序不会也不影响执行哪些操作。
4.每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
5.如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
判定表的基本思路是采用表格的形式,列出所有条件和所有结果的组合,做到无遗漏的覆盖。
判定表适合于条件项各自独立,互不影响的情况。
判定表使用的技巧在于,把条件项划分清晰,对条件进行合理得组合,使得到得规则数最小。
七、正交分析
正交试验设计法,是从大量的试验点中选取适量的有代表性的点,应用依据伽罗华理论推导出的正交表,合理地安排实验的一种科学的实验设计方法。利用这种方法,可使所有的因子和水平在试验中均匀地分配与搭配,均匀地有规律地变化。
1.提取功能说明,构造因子–状态表
影响实验指标的条件称为因子,而影响实验因子的条件叫因子的状态。
2.加权筛选,生成因素分析表
对因子与状态的选择可按其重要程度分别加权。可根据各个因子及状态的作用大小、出现频率的大小以及测试的需要,确定权值的大小。
3.利用正交表构造测试数据集
正交表的推导依据Galois 理论
八、功能图
问题:前面谈到的判定表和正交试验设计,输入条件之间是没有相互关系的,即输入条件的次序相互独立,一个输入条件的取值不会影响其它条件的取值。但在很多实际应用中输入条件间是相互影响的。
功能图模型由状态迁移图和逻辑功能模型构成。
状态迁移图用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系。
逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。功能图方法其实是是一种黑盒白盒混合用例设计方法。
对于较复杂的功能,条件之间存在制约关系相互影响。如果不考虑条件之间的关系,就会存在大量的无意义组合。
这种功能仅用静态说明组成的规格说明往往是不够的,必须用动态说明来补充功能说明。
对于用状态图来表达的功能,用功能图法来进行测试设计将达到测试用例的最简,其它静态的设计方法没有功能图法设计清晰实用。