[互联网]第06章软件项目的测试.ppt
《[互联网]第06章软件项目的测试.ppt》由会员分享,可在线阅读,更多相关《[互联网]第06章软件项目的测试.ppt(76页珍藏版)》请在三一文库上搜索。
1、软件工程,桂林山水职业学院计算机系 朱笑雷,第六章 软件项目的测试,6.1 软件测试基本概念,测试的目的是确保软件的质量,尽量找出软件错误并加以纠正,而不是证明软件没有错。,1963年美国飞往火星的火箭爆炸,原因是FORTRAN程序: DO 5 I=1,3 误写为:DO 5 I=1. 3 损失1000万美元。 1967年苏联“联盟一号”宇宙飞船返回时因忽略一个小数点,在进入大气层时打不开降落伞而烧毁。,6.1 软件测试基本概念,一、为什么要进行软件测试 软件中存在错误是不可避免的 软件是一种高密集度的智力产品 客观系统的复杂性 人主观认识的局限性 信息通信不一致 协调管理不完善,6.1 软件测
2、试基本概念,二、测试的概念 1、软件测试 软件测试是对软件计划、软件设计、软件编码进行查错和纠错的活动(包括代码执行活动与人工活动)。测试的目的是找出软件设计开发全周期中各个阶段的错误,以便分析错误的性质与位置而加以纠正。纠正过程可能涉及到改正或者重新设计相关的文档活动。找错活动称为测试,纠错活动称为调试。,6.1 软件测试基本概念,2、程序测试 程序测试是早已流行的概念。它是对编码阶段的语法错、语义错、运行错进行查找的编码执行活动。找出编码中错误的代码执行活动称程序测试。纠正编码中的错误的执行活动称程序调试。通过查找编码错与纠正编码错来保证算法的正确实现。 软件测试与调试覆盖软件生存周期的整
3、个阶段,而程序测试与调试则仅限于编码阶段,软件测试中的单元测试与程序测试十分相似,不同在于,单元测试还要测试模块间的接口,并要设计与接口相关的模块。,6.1 软件测试基本概念,3、软件确认与程序确认 软件确认是广义上的软件测试,它是企图证明程序软件在给定的外部环境中的逻辑正确性的一系列活动和过程,指需求说明书的确认,程序的确认。程序确认又分成静态确认与动态确认。静态确认包括,正确性证明,人工分析,静态分析。动态分析包括动态确认与动态测试。,6.1 软件测试基本概念,静态分析是不执行程序本身,分析程序正文可能导致错误的异常情况。可以人工的进行分析,也可以用测试工具静态分析程序来进行,被测试程序的
4、正文做为输入,经静态分析程序分析得出分析结果。静态分析包括结构检查,流图分析,符号执行。 动态分析是执行被测程序,从执行结果分析程序可能出现的错误。可以人工设计程序测试用例,也可以由测试工具动态分析程序来做检测与分析。动态测试包括功能测试和结构测试。动态测试的内容包括:单元测试,也称逻辑测试,模块测试,功能测试。组装测试也称集成测试,综合测试,或结构测试,子系统测试。系统测试是软硬件或子系统的组装测试。,6.1 软件测试基本概念,4、各种软件错误的出现比例 功能错,占整个软件错误27,是需求分析设计不完整而引起的。 系统错,占整个软件错误16,是总体设计错误而引起 数据错,占整个软件错误10,
5、由编码错误引起的 编码错,占整个软件错误4,程序员编码错误引起的 其它错,占整个软件错误16,文档错和硬件错所引起,6.1 软件测试基本概念,三、软件测试的目标 测试是为了发现程序中的错误而执行程序的过程; 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 成功的测试是发现了至今为止尚未发现的错误的测试,6.1 软件测试基本概念,四、软件测试的原则 1、测试前要认定被测试软件有错,不要认为软件设有错。 2、要预先确定被测试软件的测试结果。 3、要尽量避免测试自己编写的程序。 4、测试要兼顾合理输入与不合理输入数据。 5、测试要以软件需求规格说明书为标准。 6、测试是相对的,不能穷尽所
6、有的测试,要据人力物力安排测试,并选择好测试用例与测试方法。 7、充分注意测试中的群集现象:测试中发现的80%的错误可能来自于20%的程序代码,6.1 软件测试基本概念,四、软件测试的原则 8、严格执行测试计划,尽量避免测试的随意性,从工程的角度理解软件测试,它是有组织、有计划、有步骤的活动 9、妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便 10、应当把“尽早地和不断地进行软件测试”作为软件测试人的座右铭,6.2 软件测试的方法,6.2.1 软件测试方法的分类 软件测试方法分为两类:静态分析、动态测试。 一、静态分析技术 不执行被测软件,可对需求分析说明书、软件设计说明书
7、、源程序做结构检查、流程分析、符号执行来找出软件错误。 二、动态测试技术 当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。,6.2 软件测试的方法,动态测试的算法有: 选取定义域中的有效值,或定义域外无效值。 对已选取值决定预期的结果。 用选取值执行程序。 观察程序行为,记录执行结果。 将的结果与的结果相比较,不吻合则程序有错。,6.2 软件测试的方法,三、黑盒测试与白盒测试 动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用黑盒法做功能结枸的测试,接口的测试,它们都是以执行程序并分析执行结果来查错的。 1、黑盒测试
8、法 黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。,6.2 软件测试的方法,2、白盒测试法 白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。 使用白盒测试法,为了做到穷尽测试,程序中每条可能的通路至少都应该执行一次,但即使测试很小的程序,通常也
9、不能做到这一点。一段程序对嵌套的语句循环执行20次,而循环体中有5条可能的路径,则在这段程序中共有520条可能的通路,即使每条通路只执行一次,也是不可能的,因此,要注意,不可能进行穷尽测试,也说明,测试不可能发现程序中的所有错误。,6.2 软件测试的方法,6.2 软件测试的方法,6.2.2 测试方案设计 一、白盒法 白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。,语 句 覆 盖,判 定 覆 盖,条 件 覆 盖,判 定 条 件 覆 盖,条 件 组 合 覆 盖,弱,强,6.2 软件测试的方法,语句覆盖: 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。 判定覆盖: 执
10、行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。,6.2 软件测试的方法,白盒测试法步骤: 选择逻辑覆盖标准。 按照覆盖标准列出所有情况。 选择确定测试用例。 验证分析运行结果与预期结果。,例:用白盒法测试以下程序段: Procedure(VAR A,B,X:REAL); BEGIN IF (A1) AND (B=
11、0) THEN X:=X/A ; IF (A=2) OR (X1) THEN X:=X+1 END;,满足语句覆盖的情况: 执行路径:ace 用例格式: 输入(A,B,X),输出(A,B,X) 选择用例: (2,0,4),(2,0,3),1、语句覆盖 使得程序中每个语句至少都能被执行一次,6.2 软件测试的方法,覆盖情况:应执行路径 ace abd 或: acd abe 选择用例(其一): (2,0,4),(2,0,3) ace (1,1,1),(1,1,1) abd (2,1,1),(2,1,2) abe (3,0,3),(3,1,1) acd,2、判定覆盖 使得程序中每个判定至少为TRUE
12、 或FALSE各一次。,6.2 软件测试的方法,3、条件覆盖 使得判定中的每个条件获得各种可能的结果。,应满足以下覆盖情况: 判定一: A1, A1, B=0, B0 判定二: A=2, A2, X1, X1 选择用例: (2,0,4),(2,0,3) (1,1,1),(1,1,1) 注意: (1,0,3),(1,0,4) (2,1,1),(2,1,2) 满足条件覆盖,但不满足判断覆盖,6.2 软件测试的方法,4、判定/条件覆盖 同时满足判断覆盖和条件覆盖,应满足以下覆盖情况: 条件: A1, A1, B=0, B0 A=2, A2, X1, X1 应执行路径 ace abd 或: acd a
13、be,选择用例: (2,0,4),(2,0,3)(ace) (1,1,1),(1,1,1) (abd),6.2 软件测试的方法,5、条件组合覆盖 使得每个判定中条件的各种可能组合都至少出现一次。,编译系统下的执行情况: 部分路径未被执行。,满足以下覆盖情况: A1, B =0 A1, B0 A1, B =0 A1, B0 A=2, X1 A=2, X1 A2, X1 A2, X1,选择用例: (2,0,4),(2,0,3) (2,1,1),(2,1,2) (1,0,3),(1,0,4) (1,1,1),(1,1,1) ,6.2 软件测试的方法,6、路径覆盖 被测程序的每条可能执行到的路径都至少
14、经过一次。,选择用例: (2,0,4),(2,0,3) a、c、e (2,1,1),(2,1,2) a、b、e (3,0,3),(3,0,1) a、c、d (1,1,1),(1,1,1) a、b、d,6.2 软件测试的方法,6.2 软件测试的方法,二、黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。,等 价 分 类 法,边 值 分 析 法,错 误 推 测 法,因 果 图 法,1、等价分类法 基本思想:根据程序的I/O特性,将程序的定义域划分为有限个等价区段 “等价类”,从等价类中选择出的用例,具有“代表性”。 等价类分为: 有效等价类 对于程序的规格说明是合理的
15、、有意义的输入数据构成的集合。 无效等价类 对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。,6.2 软件测试的方法,等价分类法步骤,应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。 例如:每个学生可选修1-3门课程 可以划分一个有效等价类:选修1-3门课程。 可以划分两个无效等价类:未选修课,选修课超过3门。 又如:标识符的第一个字符必须是字母。 可以划分为一个有效等价类:第一个字符是字母。 可以划分一个无效等价类:第一个字符不是字母。, 划分“等价类”,A、为每个等价类编号; B、使一个测试用例尽可能覆盖多个有效等价类 C
16、、特别要注意的是:一个测试用例只能覆盖一个无效等价类。, 选择测试用例,等价分类法步骤,2、边值分析法 基本思想: 选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。 分析步骤: A、先划分等价类。 B、选择测试用例,测试等价类边界。 边界选择原则: A、按照输入值范围的边界。 B、按照输入/输出值个数的边界。 C、输出值域的边界。 D、输入/输出有序集的边界。,6.2 软件测试的方法,边值分析法举例: A、按照输入值范围的边界。 例如:输入值的范围是-1.0至1.0,则可选择用例 1.0、1.0、-1.001、1.001。 B、按照输入/输出值个
17、数的边界。 例如:输入文件可有1-255个记录,则 设计用例:文件的记录数为 0个、1个、255个、256个。 C、输出值域的边界。 例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇(错误)。 D、输入/输出有序集(如顺序文件、线性表)的边界。 应选择第一个元素和最后一个元素。,6.2 软件测试的方法,3、错误推测法 凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例。,4、因果图法(cause effcet graphicei) 把输入条件视为“因”,把输出条件视为“果”,将黑盒看成是从因到果的网络图,采用逻辑图的形式来表达功能说明
18、书中输入条件的各种组合与输出的关系。根据这种关系可选择高效的测试用例。因果图是一种形式化语言,是一种组合逻辑。,6.2 软件测试的方法, 因果图的基本符号: 0 - 表示“不出现”,1 - 表示“出现”,恒等:若a为1,则b为1,否则b为0。 “非”函数 :若a为1,则b为0,否则b为1。 “或”函数:若a或b为1,则d为1,否则d为0。 “与”函数:若a与b同为1,则d为1,否则d为0。,6.2 软件测试的方法,对“与”、“或”函数的限制符号,E约束(异) 排斥 即a、b不能同时为1。 I约束(或) 包容 a、b、c不能同时为0。 O约束(唯一) 选一 a、b中仅有一个为1。 R约束(要求)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 互联网 06 软件 项目 测试
链接地址:https://www.31doc.com/p-1998574.html