黑盒测试(一)和白盒测试(二)实验
背景知识
结构性测试是知道产品内部工作过程,检测产品内部动作是否按照规格说明书的规定正常进行。结构性测试允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 一、 逻辑覆盖
结构性测试力求提高测试覆盖率。逻辑覆盖是一系列测试过程的总称,它是在使用白盒测试法时,选用测试用例执行程序逻辑路径的方法。 逻辑覆盖按覆盖程度由低到高大致分为以下几类:
(1) 语句覆盖:设计若干测试用例,使程序中每一可执行语句至少执行一次;
(2) 判断覆盖:设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次; (3) 条件覆盖:设计用例,使判断中的每个条件的可能取值至少满足一次;
(4) 判断/条件覆盖:设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次;
(5) 条件组合覆盖。设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;显然,满足⑤的测试用例也一定是满足②、③、④的测试用例。
(6) 路径覆盖。设计足够的测试用例,使程序的每条可能路径都至少执行一次。 如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例。 二、 基本路径测试
如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。它是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。 ① 程序的控制流图
控制流图是描述程序控制流的一种图示方法。符号○称为控制流图的一个结点,一组顺序处理框可以映射为一个单一的结点。控制流图中的箭头称为边,它表示了控制流的方向,在选择或多分支结构中分支的汇聚处,即使没有执行语句也应该有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。 ② 计算程序环路复杂性
进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。
所谓独立路径,是指包括一组以前没有处理的语句或条件的一条路径。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次,每个条件的取真分支和取假分支也能得到测试。
基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。 通常环路复杂性可用以下三种方法求得。 *将环路复杂性定义为控制流图中的区域数。
*设E 为控制流图的边数,N 为图的结点数,则定义环路复杂性为 V(G)=E-N+2。 *若设P 为控制流图中的简单判定结点数,则有 V(G)=P+1。 ③ 导出测试用例
利用逻辑覆盖方法生成测试用例,确保基本路径集中每条路径的执行。
测试用例格式(参考)
表1-2测试用例表 测试项目名称 编制日期 测试数据 预期输出 实际输出 测试路径 测试人员 测试覆盖标准 测试用例名称编号 1 2 测试结果分析 题目: A.
上图是某银行历史明细帐的查询界面。历史明细帐功能可以查询查询2年内的存折明细(不包括当天)。帐号是一个16位的数字,但是后四位的和除以5总是余3。请根据所学测试用例设计方法给该功能设计测试用例 输入有效等价类 数据 帐号 1. 全部为数字, 16位字符, 最后四位数字的和除以5总是3 无效等价类 2. 有非数字存在 3. 为空 4. <16 or >16位字符 5. 最后四位数字的和除以5不一定等于5 日期 1. 起始日期与截止日期均为数字且截止日期小于20160418 为8位数字 起始日期>=20140418且截止日期<=2016 MM={1.3.5.7.8.10.12}&&{1<=DD<=31} Or MM={4,6,9,11}&&{1<=DD<=30} Or MM={2}&&{1<=DD<=28} 验证码 1.为1274 2. 3. 4. 5. 有非数字存在 为空 <8 or >8位字符 起始日期<20140418 or截止日期>20160418 6.MM={1.3.5.7.8.10.12}&&{DD>31} Or MM={4,6,9,11}&&{DD>30} Or MM={2}&&{DD>28} 2. 除1274以外其他字符 2. <6 or >12位字符 3. 存在特殊符号 4. 为空 5. 存在空格 输入有效 输入无效 输入无效 输入无效 输入无效 输入有效 输入无效 输入无效 输入无效 输入无效 输入无效 输入有效 输入无效 输入有效 输入无效 输入无效 输入无效 1 2 3 4 1 2 1 2 3 4 5 1 2 3 4 5 6 密码 1. 6-12位字符, 不能有特殊符号, 不能有空格 帐号 日期 验证码 密码 1327483658111112 47127348ifufh233 76876875 3423432345660006 20150418 20160305 2016oi-4 2015okij 201655 201699999 20140318 20170505 20160331 20141302 1274 7657 Zhangtao1906 @#$%^#&! Zhnagtao 33
B.
问题描述如下:
1. 程序读入三个正整数,这三个正整数代表同一三角形三条边的长度,程序根据这三个值
判断三角形属于不等边,等腰,等边三角形中的一种,假定输入的三个正整数的值都是0~100。 2. 一元二次方程式
AX+BX+C=0 的求根程序有以下功能: ①.输入A、B、C三个系数;
②.输出根的性质的信息,包括两个相等或不相等的实根,或无实根 ③. 打印根的值(如有实根)
2
提示:b2?4ac?0时,方程ax2?bx?c?0的解:
?b?b2?4ac?b?b2?4acx?或x = 。 2a2a要求:
1. 根据问题1、2的说明,画出对应的程序流程图
开始输入三边x,y.zx+y>z&&x+z>y&&y+z>xNY0