软件工程第六章-软件测试课件.ppt





《软件工程第六章-软件测试课件.ppt》由会员分享,可在线阅读,更多相关《软件工程第六章-软件测试课件.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6 6讲讲 软件测试软件测试6.1 6.1 软件测试的基本概念软件测试的基本概念6.2 6.2 测试的原则、类型和文档测试的原则、类型和文档6.3 6.3 黑盒测试方法黑盒测试方法6.4 6.4 白盒测试方法白盒测试方法6.5 6.5 软件测试的基本过程软件测试的基本过程6.6 6.6 软件纠错软件纠错(1 1)什么是软件测试?其目的是什么?)什么是软件测试?其目的是什么?(2 2)什么是成功的测试?什么是失败的测试?)什么是成功的测试?什么是失败的测试?(3 3)什么是好的软件测试?)什么是好的软件测试?(4 4)穷举测试能够把所有的错误找完吗?)穷举测试能够把所有的错误找完吗?(5 5
2、)通过测试能够证明软件无错吗?)通过测试能够证明软件无错吗?(6 6)测试的基本工作有哪些?)测试的基本工作有哪些?(7 7)什么是测试用例?)什么是测试用例?(8 8)测试由谁来完成?)测试由谁来完成?(9 9)测试与纠错有何关系?)测试与纠错有何关系?(1010)纠错由谁来完成?)纠错由谁来完成?(1111)测试的信息流之间有何关系?)测试的信息流之间有何关系?6.1 6.1 软件测试的基本概念软件测试的基本概念 (1 1)什么是软件测试?其目的是什么?)什么是软件测试?其目的是什么?测试的定义测试的定义软件(程序)测试是为了发现错误而执行程软件(程序)测试是为了发现错误而执行程序的过程。
3、序的过程。测试的目的测试的目的发现程序的错误。发现程序的错误。测试为什么重要nARIANE火箭耗资70亿美元,1996年发射37秒后爆炸nbeginsensor_get(vertical_veloc_sensor);sensor_get(horizontal_veloc_sensor); vertical_veloc_bias := integer(vertical_veloc_sensor);horizontal_veloc_bias := integer(horizontal_veloc_sensor); . exceptionwhen numeric_error = calculate_
4、vertical_veloc();when others = use_irs1(); end; v发射失败的原因 程序中试图将6464位浮点数转换成1616位整数时的溢出错误 如果看其浮点转换程序,并没有任何问题。问题在于他们复用了Ariane 4的部分软件需求文档因而软件工程师不知道其Ariane 5的水平加速度比Ariane 4快5倍因此要求额外3位整数存储,所以其背后的真正原因是系统需求。 测试为什么重要测试为什么重要n 爱国者导弹第一次海湾战争期间,美国爱国者导弹系统拦截伊拉克飞毛腿导弹失败。导弹摧毁了一个美军兵营,造成28名士兵死亡,100人受伤。v 起因 导弹拦截软件的取整错误导致
5、计时不正确,令爱国者忽略了飞毛腿导弹 (2 2)什么是成功的测试?什么是失败的测试?)什么是成功的测试?什么是失败的测试?什么是成功的测试?什么是成功的测试?能够找到至今尚未发现的错误。能够找到至今尚未发现的错误。什么是失败的测试?什么是失败的测试?没有找到至今尚未发现的错误。没有找到至今尚未发现的错误。(3 3)什么是好的软件测试?什么是好的软件测试?用最少的代价用最少的代价能够找到至今尚未发现的更多的错误。能够找到至今尚未发现的更多的错误。测试工作反映了经济学的观点测试工作反映了经济学的观点。(4 4)穷举测试能够把所有的错误找完吗?)穷举测试能够把所有的错误找完吗?例例1 1 对于程序内
6、部路径的测对于程序内部路径的测试试如图中所示从如图中所示从A A到到B B的中间有一的中间有一个个2020次的循环,循环中有次的循环,循环中有5 5条路条路径,那么从径,那么从A A到到B B的独立路径数的独立路径数约为约为10101414(即(即5 520205 519195 51 1)例例2 2 对于程序功能的测试对于程序功能的测试一个程序需要一个程序需要3 3个整型数的输入。个整型数的输入。假设计算机字长是假设计算机字长是1616位,则每位,则每个整数可能取值有个整数可能取值有2 21616个,那么个,那么3 3个输入整数的各种可能值的情个输入整数的各种可能值的情况约为况约为2 2161
7、6 2 21616 2 21616 2 24848 3 3 10 101414AB20(5 5)通过测试能够证明软件无错吗?)通过测试能够证明软件无错吗?穷举测试是不可取的。穷举测试是不可取的。通过测试不可能把所有的软件错误找完。通过测试不可能把所有的软件错误找完。因此,通过测试不可能证明软件不存在错误。因此,通过测试不可能证明软件不存在错误。测试只能证明错误存在,而不能证明错误不存在(不彻底性)。测试只能证明错误存在,而不能证明错误不存在(不彻底性)。(6 6)测试的基本工作有哪些测试的基本工作有哪些?制定测试计划制定测试计划建立测试环境建立测试环境设计测试用例设计测试用例执行测试执行测试结
8、果分析结果分析完成测试报告完成测试报告(7 7)什么是测试用例?)什么是测试用例?测试用例测试用例(Test Case)(Test Case)测试数据测试数据+ +期望的结果期望的结果测试用例的重要作用:测试用例是连接测试计测试用例的重要作用:测试用例是连接测试计划与实施测试的桥梁。划与实施测试的桥梁。设计测试用例是搞好软件测试的关键。设计测试用例是搞好软件测试的关键。(8 8)测试由谁来完成?)测试由谁来完成?一般情况下,应该由非程序员或非程序开发机一般情况下,应该由非程序员或非程序开发机构来完成。构来完成。这样做的主要原因主要:这样做的主要原因主要:从心理学的角度考虑;从心理学的角度考虑;
9、从质量的观点看,应该有专门的机构或组织来完成。从质量的观点看,应该有专门的机构或组织来完成。(9 9)测试与纠错有何关系?)测试与纠错有何关系?纠错的目的和任务:根据测试所发现的错误,确定错纠错的目的和任务:根据测试所发现的错误,确定错误发生的位置、性质,并纠正这些错误。误发生的位置、性质,并纠正这些错误。纠错的过程就是程序调试的过程。纠错的过程就是程序调试的过程。测试是纠错测试是纠错/排错排错/调试的基础和依据;纠错需要测试所调试的基础和依据;纠错需要测试所发现的错误现象,才能确定错误发生的性质、位置,发现的错误现象,才能确定错误发生的性质、位置,并纠正这些错误。并纠正这些错误。(1010)
10、纠错由谁来完成?)纠错由谁来完成?程序员程序员(测试数据测试数据)(1111)测试的信息流之间有何关系?)测试的信息流之间有何关系?测试过程的输入测试过程的输入测试过程中需要测试过程中需要3 3类输入类输入( (见上图见上图) ):软件配置软件配置包括软件需求规格说明、软件设计规格说明、源代码等。包括软件需求规格说明、软件设计规格说明、源代码等。测试配置测试配置包括测试计划、测试用例、测试驱动程序等。包括测试计划、测试用例、测试驱动程序等。测试工具测试工具为测试的实施提供某种服务,以减轻完成测试任务中的手工劳动。为测试的实施提供某种服务,以减轻完成测试任务中的手工劳动。测试工具测试工具测试数据
11、自动生成程序测试数据自动生成程序静态分析程序静态分析程序动态分析程序动态分析程序测试结果分析程序测试结果分析程序驱动测试的测试数据库等等。驱动测试的测试数据库等等。分析测试结果分析测试结果测试完成后,要对所有的测试结果进行分析,如果发现测试完成后,要对所有的测试结果进行分析,如果发现软件有错误,就要排错并修正有关文档,接着再测试,软件有错误,就要排错并修正有关文档,接着再测试,直到通过为止。直到通过为止。如果经常出现需要修改设计的严重错误,则软件质量与如果经常出现需要修改设计的严重错误,则软件质量与可靠性值得怀疑,需进一步测试。可靠性值得怀疑,需进一步测试。如果测试未发现错误,则应重新审查测试
12、配置如果测试未发现错误,则应重新审查测试配置。6.2 6.2 测试的原则、类型和文档测试的原则、类型和文档1)测试原则(1)所有的测试都应追溯到用户需求。软件测试的目标在于揭示错误。而最严重的错误是那些导致程序无法满足需求的错误。(2)充分注意测试中的群集现象。在被测程序段中,若发现错误数目多,则残存错误数目也比较多。因此,应当对错误群集的程序段进行重点测试,以提高测试投资的效益。(3)测试应从“小规模”开始,逐步转向”大规模”。(4)测试应该由非程序员或非开发机构来进行。(5)对于非法的和非预期的输入情况也要象正常测试一样,编写测试用例。检查程序是否做了要做的事仅仅是成功的一半,另一半是看程
13、序是否做了不该做的事。(6)妥善保存测试计划、测试用例、出错统计和最终分析报告。回归测试 2)软件测试方法(1)静态分析:通过对被测程序的静态检查,发现代码中潜在的错误。静态分析包括2种方式: 静态分析器分析(自动方式);如PMD 扫描java源代码,查找潜在的问题:可能的bugs,如空的try/catch/finally/switch声明 死亡的代码,没有使用的本地变量,参数和私有方法 过于复杂的表达式,如不必要的if表达式 重复的代码,拷贝、粘贴的代码 代码评审(人工方式),包括代码会审、走查、办公桌检查等。 (2)动态测试(简称测试):将被测程序在机器上运行来发现程序中的错误。动态测试包
14、括2类方式: 黑盒测试(测试程序的功能) 白盒测试(测试程序的结构) 3 3)测试的文档)测试的文档(1)测试计划主体是测试内容说明。包括:测试项目名称,各项测试的目的、步骤、进度,测试用例的设计等。 (2)测试报告主体是测试结果。包括:测试项目名称,实测结果与期望结果的比较,发现的问题,测试达到的效果等。(3)测试用例(1)黑盒测试的基本概念不考虑程序的内部结构和处理过程,只在程序的接口处进行测试,以检查程序功能是否能按规格说明书中的要求正常实现。黑盒测试又称为功能测试,其主要目的是为了发现程序在功能方面的错误。6.3 6.3 黑盒测试方法黑盒测试方法n黑盒法分类黑盒法分类等等价价类类化化分
15、分法法边边界界值值分分析析法法错错误误猜猜测测法法因因果果图图法法(2 2)等价类划分法)等价类划分法基本思想:根据程序的I/O特性,将程序的输入域划分为有限个等价区段 “等价类”,并从等价类中选出最有“代表性”的用例。 等价类:是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。如果一个测试用例不能检测出某个错误,那么等价类中其它测试用例也不能发现这一错误。等价类分为: 有效等价类 对于程序的规格说明是合理的、有意义的输入数据构成的集合。 无效等价类 对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合
16、。等价类划分法的步骤等价类划分法的步骤划分等价类划分等价类合理的(有效的)、不合理的(无效的)合理的(有效的)、不合理的(无效的)2 2类类找出测试用例找出测试用例给每个等价类规定一个惟一的编号;给每个等价类规定一个惟一的编号;设计一个新的测试用例,使其尽可能多地覆盖未被覆设计一个新的测试用例,使其尽可能多地覆盖未被覆盖的有效等价类,直到所有合理等价类被覆盖完为止;盖的有效等价类,直到所有合理等价类被覆盖完为止;设计一个测试用例,使其仅仅覆盖一个未被覆盖的无设计一个测试用例,使其仅仅覆盖一个未被覆盖的无效等价类,直到所有不合理等价类被覆盖完为止。效等价类,直到所有不合理等价类被覆盖完为止。例例
17、 如下是一个程序的功能描述,用等价类划分法设计测试用例。如下是一个程序的功能描述,用等价类划分法设计测试用例。功能描述:某城市的电话号功能描述:某城市的电话号码由码由3 3部分组成。假定被测程部分组成。假定被测程序能接收一切符合下述规定序能接收一切符合下述规定的电话号码,拒绝所有不符的电话号码,拒绝所有不符合规定的电话号码。合规定的电话号码。地区码:空白或地区码:空白或3 3位数字;位数字;前缀:非前缀:非0 0或或1 1开头开头的的3 3位数字;位数字;后缀:后缀:4 4位数字。位数字。输入条件输入条件合理的等价类合理的等价类不合理的等价类不合理的等价类地区码地区码空白空白(1) 3(1)
18、3位数字位数字(2)(2)有非数字字符有非数字字符(5) (5) 少于少于3 3位数字位数字(6) (6) 多于多于3 3位数字位数字(7) (7) 前缀前缀从从200200到到999999的的3 3位数字位数字(3)(3)有非数字字符有非数字字符(8) (8) 少于少于3 3位数字位数字(9) (9) 多于多于3 3位数字位数字(10)(10)起始位为起始位为0 0(11) (11) 起始位为起始位为 1 1 (12) (12)后缀后缀4 4位数字位数字(4)(4)有非数字字符有非数字字符(13) (13) 少于少于3 3位数字位数字(14) (14) 多于多于3 3位数字位数字(15)(1
19、5)测试用例测试用例测试范围测试范围期望结果期望结果 276 2345 276 2345等价类等价类(1) (3) (4) (1) (3) (4) 有效有效027 805 9321027 805 9321等价类等价类(2) (3) (4)(2) (3) (4)有效有效20A 123 435620A 123 4356等价类等价类(5)(5)无效无效剩下的剩下的1010个用例个用例无效等价类无效等价类(6)-(15)(6)-(15) 无效无效测试用例的设计:测试用例的设计:(3 3)边界值分析)边界值分析基本思想基本思想: :人们从长期的测试工作中发现,大量的错误是发生人们从长期的测试工作中发现,
20、大量的错误是发生在输入或输出范围的边界,而不是在输入范围的内在输入或输出范围的边界,而不是在输入范围的内部。部。因此,针对各种边界情况设计测试用例,可以查出因此,针对各种边界情况设计测试用例,可以查出更多的错误。更多的错误。边界条件边界条件相对于输入与输出等价类直接在其边缘上,稍高相对于输入与输出等价类直接在其边缘上,稍高于或稍低于其边界的这些状态条件。于或稍低于其边界的这些状态条件。边界值分析方法与等价类划分方法的区别:边界值分析方法与等价类划分方法的区别:边界值不是从某个等价类中随便挑选一个作为代表,而边界值不是从某个等价类中随便挑选一个作为代表,而是选出一个或几个元素,使得这个等价类的每
21、个边界都是选出一个或几个元素,使得这个等价类的每个边界都要作为测试对象;要作为测试对象;边界值分析不仅仅考虑输入条件,同时还要考虑输出条边界值分析不仅仅考虑输入条件,同时还要考虑输出条件(即输出等价类)。件(即输出等价类)。边界值分析方法选择测试用例的步骤边界值分析方法选择测试用例的步骤首先应确定边界情况。首先应确定边界情况。其次,选取测试数据。其次,选取测试数据。应当选取正好等于、刚刚大于或刚刚小于边界的值作应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。作为测试数据。例例 边界值分析边界
22、值分析模块模块bubblesort(a,n)bubblesort(a,n)是对数组是对数组a a中的中的n n个整型数从小到个整型数从小到大进行排序。大进行排序。假设假设n n为为1010。那么可以用。那么可以用5 5组数据进行测试:组数据进行测试:0 0个数据个数据1 1个数据个数据9 9个数据个数据1010个数据个数据1111个数据个数据(4 4)错误猜测法)错误猜测法 基本思想:基本思想: 根据经验或直觉推测程序中可能存在的各种错根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误地测试误,从而有针对性地编写检查这些错误地测试用例。用例。 例:模块例:模块bubbl
23、esort(a,n)bubblesort(a,n)是对数组是对数组a a中的中的n n个整型个整型数从小到大进行排序。假设数从小到大进行排序。假设n n为为1010。那么可以用。那么可以用3 3组数据进行测试:组数据进行测试:0 0个数据个数据已经从小到大排好序的已经从小到大排好序的1010个数据个数据从大到小的从大到小的1010个逆序数据个逆序数据(5 5)因果图法)因果图法等价类划分和边界值分析方法,都是着重考虑输入条件,等价类划分和边界值分析方法,都是着重考虑输入条件,而未考虑输入条件之间的联系。如果在测试时必须考虑而未考虑输入条件之间的联系。如果在测试时必须考虑输入条件的各种组合则可能
24、又会产生一些新的情况。输入条件的各种组合则可能又会产生一些新的情况。因此,必须考虑使用一种适合于多种条件组合的动态测因此,必须考虑使用一种适合于多种条件组合的动态测试方法,这就是因果图法试方法,这就是因果图法把输入条件视为把输入条件视为“因因”,把输出条件视为把输出条件视为“果果”,采用逻辑图的形式来表达功能,采用逻辑图的形式来表达功能说明书中输入条件的说明书中输入条件的各种组合各种组合与输出的关系。与输出的关系。 因果图方法最终生成的是判定表,它适合于检查程序输因果图方法最终生成的是判定表,它适合于检查程序输人条件的各种组合情况。人条件的各种组合情况。n因果图方法实例因果图方法实例某电力公司
25、有某电力公司有A A、B B、C C、D D四类收费标准四类收费标准, ,并规定:并规定:居民用电居民用电 100100度度/ /月月 按按A A类收费类收费 100100度度/ /月按月按B B类收费类收费动力用电动力用电 1000010000度度/ /月月, ,非高峰非高峰, ,B B类收费类收费 1000010000度度/ /月月, ,非高峰非高峰, ,C C类收费类收费 1000010000度度/ /月月, , 高峰高峰, ,C C类收费类收费 1000010000度度/ /月月, , 高峰高峰, ,D D类收费类收费1 1I1I12 2B B4 4A AC C3 35 5D DI4I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第六 软件 测试 课件

限制150内