1、黑盒测试技术第一部分:1. 概述: .22. 等价划分法 .23. 边界值分析法 .24. 错误推测法 .35. 因果图法 .36. 判断表驱动法 .37. 正交试验法 .48. 功能图法 .49. 场景法 .510. 测试方法的综合策略。 .51. 等价类表示例子: .52. 因果图用例 .73. 判断表: .84. 正交实验法 .95. 功能图: .126. 场景发 .131. 概述:分析每个模块的测试本质(运行的本质等) ,着重确立用什么测试技术测试,再用该测试技术的方法和工具进行测试用例设计。2. 等价划分法将程序输入域划分成若干部分,从每个部分中选取少数代表性数据作为测试用例。有效等
2、价类和无效等价类等价类的原则;1. 在输入条件规定了取值范围和值的个数的情况下,可以确定一个有效和两个无效等价类。2. 在输入条件规定了输入值的集合或规定了“必须如何”的条件的情况下,可确立一个有效和一个无效等价类。3. 在输入条件是一个布尔量的情况下,可以确定一个有效和一个无效等价类。4. 在规定了输入数据的一组值(假定N个),并且程序要对每一个输入值分别处理的情况下,可确立一个N个有效和一个无效等价类。5. 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违法规则)。6. 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则
3、应再将该等价类进一步划分为更小的等价类。根据等价类表,确定测试用例:1. 为美工等价类规定一个唯一的编号。2. 设计一个新的用例,使其尽可能多地覆盖有效等价类,重复这一步,最后使得所有有效等价类均被测试用例覆盖。3. 设计一个新用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。3. 边界值分析法相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。边界值的原则:1. 如果输入的条件规定了值的范围,这应取刚达到这个范围的边界的值,以及刚刚超越一个范围遍及的值作为测试输入数据。2. 如果输入条件规定了值的个数,则用最大个数、最小个数分别加减一作为测试数据
4、。3. 根据规格说明的每个输出条件,使用原则1.4. 根据规格说明的每个输出条件,应用原则2.5. 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为用例。6. 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为用例。7. 分析规格说明,找出其他可能的边界条件。4. 错误推测法基于经验和直觉推测程序中所有可能存在的各种错误。1. 设计一下非法、错误、不正确、垃圾数据进行输入测试5. 因果图法考虑描述多种条件的组合,相应的产生多个动作的形式来考虑用例。用因果图导出用例的步骤:1. 分析程序规格说明的描述,那些是原因,那些是结构。原
5、因常为输入条件或输入条件等价类,而结果为输出条件。2. 分析程序规格说明的描述中的语义内容,将其表示成链接各个原因与各个结果的因果图。3. 标明约束条件。4. 把因果图转换成判断表。5. 为判断表每一列表示的情况设计用例。因果图生成的用例,包括了所有输入数据的取TRUE与FALSE的情况,构成的用例数目最少。6. 判断表驱动法1. 条件桩:列出问题所有条件。通常认为列出的条件的次序不重要。2. 动作桩:列出问题规定可能采取的操作。这些操作的排列顺序没有约束。3. 条件项:列出针对它所列条件的取值,在所有可能的情况下的真假值。4. 动作项:列出针对它所列条件的取值,在所有可能情况下的真假值。5.
6、 规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,条件项和动作项就有多少列。判断表建立依据和步骤:1. 确定规则的个数。假如有N个条件,每个条件有两个取值(0 、 1),故2N种规则。2. 列出所有的条件桩和动作桩。3. 填入条件项。4. 填入动作项。制定初始判定表。5. 简化。合并相似规则或者相同动作。适合使用规定判定表设计用例的条件:1. 规则说明以判定表的形式给出,或很容易转换成判定表。2. 条件的排序顺序不影响执行那些操作。3. 规则的排列顺序不影响执行那些操作。4. 当某一规则的
7、条件已经满足,并确定要执行的操作后,不必检验别的规则。5. 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。7. 正交试验法从大量的实验数据中挑选适量的、有代表性的点,合理安排测试的设计方法。1. (1)提取功能说明,构造因子-状态表把影响实验指标的条件称为因子,而影响实验因子的条件叫因子的状态。利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子;而把各个因子的取值当作状态。对软件需求规格说明中的功能要求进行划分,把整体的、概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的、基本的功能要求。这样就可以
8、把被测试软件中所有的因子都确定下来,并为确定每个因子的权值提供参考的依据。确定因子与状态是设计测试用例的关键。因此要求尽可能全面的、正确的确定取值,以确保测试用例的设计作到完整与有效。2. 加权筛选,生成因素分析表对因子与状态的选择可按其重要程度分别加权。可根据各个因子及状态的作用大小、出现频率的大小以及测试的需要,确定权值的大小。3. 利用正交表构造测试数据集利用正交实验设计方法设计测试用例,比使用等价类划分、边界值分析、因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。8. 功能图法用功能图形象地表示程序的功能说明,机械的生成功能图的用例。功能图
9、是一个黑盒、白盒混合用例设计方法。功能图由状态迁移图和逻辑功能模型构成1. 状态迁移图用于表示输入数据序列及其相应的输入数据。在状态迁移图中,有输入数据和当前状态决定输出数据和后续状态。2. 逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系。逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定。测试用例则由测试中经过的一系列状态和每个状态中必须依靠输入/输出数据满足的一对条件组成。功能图方法中要用到逻辑覆盖和路径测试的概念和方法。要求设计人员对程序逻辑结构有清楚的了解。生成用例:1. 生成局部测试用例:在每个状态中,从因果图生成局部测试用例。局部测试库有原因值(输入数据)组合
10、与对应的结果值(输出数据或状态)构成。2. 测试路径生成:利用上面的规则生成从初始化状态到最后状态的测试路径。3. 测试用例合成:合成测试路径与功能图中每个状态的局部测试用例。结果是视状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据组合。4. 测试用例的合成算法:采用条件构造树。9. 场景法事件触发时的情景便形成场景,而同一事件不同的触发顺序和处理结果就形成事件流.10. 测试方法的综合策略。1. 首先进行等价划分,包括输入、输出条件的等价划分,将无限测试变成有限测试。2. 使用边界值分析法。3. 使用错误推测发,追加一些用例。4. 对照程序逻辑,检查用例设计的逻辑覆盖,力求
11、达到覆盖标准。5. 程序功能说明中有输入条件组合,就可选用因果图和判定表驱动法。6. 对于参数配置类软件,用正交试验法选择较少组合到达最佳效果。7. 功能图是用例设计的好方法,通过不同时期条件的有效性设计不同的测试数据。8. 对应业务流程清晰的系统,用场景法贯穿测试过程,在案例中综合使用各种测试方法。第二部分:例子1. 等价类表示例子:输入条件 有效等价类 无效等价类。 。 。 。 。 。 。 。 。 。 。 。2. 因果图用例3. 判断表:4. 正交实验法一、正交表的由来拉丁方名称的由来 古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表。数
12、学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方。什么是 n 阶拉丁方?用 n 个不同的拉丁字母排成一个 n 阶方阵(n (2,3) (3,1) (1,2)3 1 2 2 3 1 (3,2) (1,3) (2,1)二、正交实验法正交试验设计(Orthogonal experimental design)是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐 整可比”的特点,正交试验设计是分式析因设计的主要方法。是一种高效率、快速、经济的实验设计方法。日本著名的统计学家田口玄一将正交试验选择的水平
13、组合列成表格,称为正交表。例如作一个三因素三水平的实验,按全面实验要求,须进行 33=27 种组合的实验,且尚未考虑每一组合的重复数。若按 L9(33) 正交表按排实验,只需作 9 次,按 L18(37) 正交表进行 18 次实验,显然大大减少了工作量。因而正交实验设计在很多领域的研究中已经得到广泛应用。 利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊 人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。正交实
14、验设计方法:依据 Galois 理论,从大量的(实验)数据(测试例)中挑选适量的、有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。类似的方法有:聚类分析方法、因子方法方法等。三、利用正交实验设计测试用例的步骤: (1)提取功能说明,构造因子-状态表 把影响实验指标的条件称为因子,而影响实验因子的条件叫因子的状态。利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子;而把各个因子的取值 当作状态。对软件需求规格说明中的功能要求进行划分,把整体的、概要性的功能要求进行层层分解与展开,分解成具体的有相对独立
15、性的、基本的功能要求。这样 就可以把被测试软件中所有的因子都确定下来,并为确定每个因子的权值提供参考的依据。确定因子与状态是设计测试用例的关键。因此要求尽可能全面的、正确的 确定取值,以确保测试用例的设计作到完整与有效。 (2)加权筛选,生成因素分析表 对因子与状态的选择可按其重要程度分别加权。可根据各个因子及状态的作用大小、出现频率的大小以及测试的需要,确定权值的大小。 (3)利用正交表构造测试数据集 利用正交实验设计方法设计测试用例,比使用等价类划分、边界值分析、因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。在使用正交实验法时,要考虑到被测系
16、统中要准备测试的功能点,而这些功能点就是要获取的因子或因素,但每个功能点要输入的数据按等价类划分有多个,也就是每个因素的输入条件,即状态或水平值。四、正交表的构成行数(Runs):正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。 因素数(Factors) :正交表中列的个数,即我们要测试的功能点。 水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从 0 到数“水平数-1”或从 1 到“水平数” 。即要测试功能点的输入条件。正交表的形式: L 行数 (水平数 因素数 ) 如:L 8(27)五、正交表的正交性整齐可比性在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在试验中每个因素的每个水平与其它因素的每个水平参与试验的机率是完全相同的,这就保 证在各个水平中最大程度的排除了其它因素水平的干扰。因而,能最有效地进行比较和作出展望,容易找到好的试验条件。均衡分散性在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的试验条件。5. 功能图:6. 场景发