资源预览内容
第1页 / 共74页
第2页 / 共74页
第3页 / 共74页
第4页 / 共74页
第5页 / 共74页
第6页 / 共74页
第7页 / 共74页
第8页 / 共74页
第9页 / 共74页
第10页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,大唐软件公司测试部,软 件 测 试 技 术,2,目录:,软件测试技术 静态测试 动态测试 黑盒测试 白盒测试,软件测试步骤 单元测试 集成测试 确认测试 系统测试 回归测试,3,软件测试技术,静 态 测 试 技 术,4,静态测试技术,不执行程序代码而寻找程序代码中可能存在的错误或评估程序代码的过程 特点: * 不必进行测试用例的设计。 * 充分发挥人的逻辑思想优势,行之有效。 * 他的实施不需特别条件,容易开展。 * 一旦发现错误就可定位错误,并可同时 揭示一批错误。 静态测试技术包括主要由人工进行的桌面检查、代码走查以及静态分析。广义范围还包括软件需求分析和设计阶段的技术评审。,5,软件测试技术,动 态 测 试 技 术,6,动态测试技术(一),在抽样测试数据上执行程序并分析输出以发现错误的过程。 特点: * 实际运行被测程序,取得其运行的真实 情况,动态情况,进而进行分析。 * 必须生成测试用例来运行程序。 * 生成测试用例、分析测试结果工作量大。,7,动态测试技术(二),动态测试的三部分核心内容: * 生成测试用例 * 执行程序 * 验证程序的输出结果 动态测试技术包括有黑盒测试和白盒测试,它们是生成测试用例的主要策略。,8,动态测试技术(三),黑盒测试 以需求说明为依据 常用的方法为:等价类划分、边界值分析、错误推测 使用黑盒测试的典型测试项目为功能测试,输入,输出,INPUT,OUTPUT,程序 P,P=f ( input , output ),9,动态测试技术(四),采用黑盒测试的方法,是为了发现以下错误: 是否有不正确或遗漏了的功能? 在接口上,输入能否正确地接受? 能否输出正确的结果? 是否有数据结构错误或外部信息(例如数据文件)访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误?,10,动态测试技术(五),用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。,11,假设一个 程序P 有 输入量X 和 Y 及 输出量Z 。在字长为32位的计算机上运行。若 X、Y 取整数,按黑盒方法进行穷举测试: 可能采用的 测试数据组: 2 322 32 2 64 如果测试一组数据需要1毫秒,一年工作 36524 小时,完成所有测试需5亿年。,动态测试技术(六),X,Y,Z,P,12,白盒测试 以程序源代码及概要、详细设计为依据 常用的方法为:逻辑覆盖、基本路径测试、循环测试 白盒测试通常只应用于单元测试,动态测试技术(七),P,13,动态测试技术(八),采用白盒测试的方法,主要想对程序模块进行如下检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次; 在循环的边界和运行界限内执行循环体;,14,程序的流程图,它包括了一个 执行20次的循环。 包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需3170年。,动态测试技术(九),15,软件测试技术,黑盒测试的测试用例设计,16,黑盒测试的测试用例设计,等价类划分 边界值分析 错误推测法,17,等价类划分,设计思想: 等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。 优点:减少测试用例的设计量 等价类分为有效等价类和无效等价类 设计步骤: * 划分等价类 * 确定测试用例,18,依据:需求说明中的每一项功能需求 等价类的种类: 有效等价类:是指对程序的规格说明来说,是 合理的,有意义的输入数据构成 的集合。 无效等价类:是指对程序的规格说明来说,是 不合理的,无意义的输入数据构 成的集合。,等价类划分步骤划分等价类(一),19,原则:,如果输入条件规定了取值范围或值的个数,则可以确立一个有效等价类和两个无效等价类,如果输入条件需要特定的值,或者是规定了必须如何的条件,则可以确立一个有效等价类和一个无效等价类。,如果输入条件规定一组可能的值,而且程序可以对每个输入值分别进行处理,则可以为每一个值确定一个有效等价类,同时对这一组值确定一个无效等价类。,等价类划分步骤划分等价类(二),20,原则 1:,如果输入条件规定了取值范围或值的个数,则可以确立一个有效等价类和两个无效等价类,等价类划分步骤划分等价类(三),例如,在程序的规格说明中,对输入条件有一句话: “ 项数可以从1到999 ” 则有效等价类是“1项数999” 两个无效等价类是“项数1”或“项数999”。 在数轴上表示成:,21,原则 2:,如果输入条件需要特定的值,或者是规定了必须如何的条件,则可以确立一个有效等价类和一个无效等价类。,等价类划分步骤划分等价类(四),例如,在Pascal语言中对变量标识符规定为 “以字母打头的串” 那么所有以字母打头的构成有效等价类, 而不在此集合内(不以字母打头)的归于无效等价类。,22,原则 3:,如果输入条件规定一组可能的值,而且程序可以对每个输入值分别进行处理,则可以为每一个值确定一个有效等价类,同时对这一组值确定一个无效等价类。,等价类划分步骤划分等价类(五),例如,在教师上岗方案中规定 对 教授、副教授、讲师和助教 分别计算分数,做相应的处理 因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合,如实验员 等。,23,建立等价类表,建立等价类表后,为每一个等价类规定一个唯一的编号,输入条件,有效等价类,无效等价类,等价类表,等价类划分步骤划分等价类(六),24,设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止,设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。,等价类划分步骤确定测试用例,举 例,25,等价类划分的实例,对于这个功能点的具体描述,如下:输入光缆表中在用的光缆名称,故障序号可以是1到99的整数,故障描述不超过50个字符,修复情况可以是 Y 也可以是 N 。,将要测试的功能点:新增光缆故障信息,26,等价类划分的实例,将要测试的功能点:新增光缆故障信息,27,设计思想: 大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部,针对边界情况设计测试用例,可以发现更多的错误。 举 例 它是对等价类划分方法的补充 设计步骤: * 确定边界值 * 确定测试用例,边界值分析,28,边界值分析,例如,在做三角形计算时,要输入三角形的三个边长:A、B 和 C 。 我们应注意到这三个数值应当满足 A0、B0、C0、 ABC、ACB、BCA, 才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。,29,通常输入等价类和输出等价类的边界,就是应着重测试的边界情况。 应当选取正好等于、刚刚小于和刚刚大于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。 分析需求说明,发挥你的智慧,找出其它可能的边界条件!,边界值分析确定边界值,30,边界值分析确定测试用例,结合等价类划分的测试用例确定方法,举例说明。,31,将要测试的功能点:新增光缆故障信息,输入条件,有效等价类、边界值及编号,无效等价类、边界值及编号,光缆名称,在光缆表中不存在的光缆名称(2),故障序号,1 (3),99 (4),0(5), 100(6),故障描述,1 (7),50 (8),空(9), 51(10),修复情况,Y或N(11),非Y/N的字符(12),在光缆表中存在的光缆名称(1),等价类表,依据上表,选取了如下测试用例:,序号,用例包含的等价类编号,用例1,1、3、7、11,1、4、8、11,2、3、8、11,1、5、7、11,序号,1、6、8、11,用例3,用例5,用例2,用例4,用例包含的等价类编号,1、4、10、11,1、4、7、12,用例7,用例8,用例6,1、3、9、11,32,错误推测法,设计思想: 人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。 它是对等价类划分、边界值分析的补充 设计方法: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例,33,软件测试技术,白盒测试的测试用例设计,34,白盒测试的测试用例设计,逻辑覆盖 * 语句覆盖 * 判定覆盖 * 条件覆盖 * 判定 条件覆盖 * 条件组合覆盖 * 路径覆盖 基本路径测试 循环测试,35,软件测试技术,逻 辑 覆 盖,36,白盒测试的测试用例设计,逻辑覆盖 逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术,属白盒测试。,覆盖技术分类,不同的覆盖技术考察不同层次的结构, 也反映出测试的全面性和彻底性!,37,逻辑覆盖 参考示例,四条不同的路径:,L1: a、c、e,L2: a、b、d,L3: a、b、e,L4: a、c、d,38,逻辑覆盖 语句覆盖,所有的执行语句都在路径L1(a、c、e)上,设计满足语句覆盖的测试用例: 输入:A=2、B=0、X=4 覆盖路径 L1,程序中的每一条语句至少执行一次。,39,逻辑覆盖 判定覆盖,又称分支覆盖,程序中每个判断的取真分支和取假分支句至少执行一次。,选择路径L1(a、c、e)和 L2(a、b、d)可满足判定覆盖,设计测试用例: 覆盖路径 L1 (判断的取真分支) 输入:A=2、B=0、X=4 覆盖路径 L2 (判断的取假分支) 输入:A=1、B=1、X=1,40,逻辑覆盖 条件覆盖,程序中每个判断的每个条件的可能取值至少执行一次。,选择路径L3(a、b、e)可满足条件覆盖,设计测试用例: 1、覆盖路径 L3:使条件 A1取真、 B=0取假、 A=2取真、 X1取假 输入:A=2、B=1、X=1 2、覆盖路径 L3:使条件 A1取假、 B=0取真、 A=2取假、 X1取真 输入:A=1、B=0、X=3,41,逻辑覆盖 判定 - 条件覆盖,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次。,设计测试用例: 1、覆盖路径 L1 (a、c、e) : 使所有条件都取真,所有判断结 果也都取真 输入:A=2、B=0、X=4 2、覆盖路径 L2 (a、b、d) : 使所有条件都取假,所有判断结 果也都取假 输入:A=1、B=1、X=1,42,逻辑覆盖 条件组合覆盖,程序中,每个判断的所有可能的条件取值组合至少执行一次。,设计测试用例: 1、覆盖路径 L1 : 输入:A=2、B=0、X=4 2、覆盖路径 L3 : 输入:A=2、B=1、X=1 3、覆盖路径 L3 : 输入:A=1、B=0、X=3 4、覆盖路径 L2 : 输入:A=1、B=1、X=1,43,逻辑覆盖 路径覆盖,覆盖程序中所有可能的路径。,设计测试用例: 1、覆盖路径 L1 (a、c、e) : 2、覆盖路径 L2 (a、b、d) : 3、覆盖路径 L3 (a、b、e) : 4、覆盖路径 L4 (a、c、d) :,44,测试部内部培训,软 件 测 试 步 骤,45,测试过程按4个步骤进行,即: 单元测试 集成测试 确认测试 系统测试,软件测试步骤,46,单元 测试,单元 测试,集成 测试,确认 测试,系统 测试,设 计 信 息,软 件 需 求,系 统 其 元 它 素,已集成的软件,单元 测试,集成 测试,设 计 信 息,已集成的软件,已确认的软件,可交付的软件,被测模块,被测模块,已测试的模块,47,软件测试
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号