(精品)第7章_测试.ppt
《(精品)第7章_测试.ppt》由会员分享,可在线阅读,更多相关《(精品)第7章_测试.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、可行性研究可行性研究需求分析需求分析总体设计总体设计详细设计详细设计编码编码测试测试运行运行/维护维护软件生命周期模型结构图软件生命周期模型结构图问题定义问题定义第六部分 测试软件测试的基本概念软件测试的基本概念软件测试方法软件测试方法软件测试的步骤软件测试的步骤软件可靠性软件可靠性测试工具测试工具1 软件测试的基本概念软件测试的定义软件测试的定义软件测试的基本原则软件测试的基本原则软件测试的步骤软件测试的步骤软件测试的信息流软件测试的信息流软件测试的定义为什么为什么要进行软件测试?要进行软件测试?测试的测试的目标目标是什么?是什么?G.Myers认为:认为:1)测试是为了发现程序中的错误而执
2、行程序的过程;)测试是为了发现程序中的错误而执行程序的过程;2)好的测试方案是极可能发现迄今为止尚未发现的错误)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;的测试方案;3)成功的测试是发现了至今为止尚未发现的错误的测试。)成功的测试是发现了至今为止尚未发现的错误的测试。测试的测试的定义定义:为了发现程序中的为了发现程序中的错误错误而执行程序的过程。而执行程序的过程。软件测试的特点软件测试的特点1 1、软件测试的开销大、软件测试的开销大、软件测试的开销大、软件测试的开销大按照按照Boehm的统计,软件测试的开销大约占总成本的的统计,软件测试的开销大约占总成本的30%-50%。例如:
3、。例如:APOLLO登月计划,登月计划,80%的经费用于的经费用于软件测试。软件测试。2 2、不能进行、不能进行、不能进行、不能进行“穷举穷举穷举穷举”测试测试测试测试 只只有有将将所所有有可可能能的的情情况况都都测测试试到到,才才有有可可能能检检查查出出所所有有的的错误。但这是不可能的:错误。但这是不可能的:例例:程程序序P有有两两个个整整型型输输入入量量 X、Y,输输出出量量为为Z,在在32位位机机上运行。所有的测试数据组(上运行。所有的测试数据组(Xi,Yi)的数目为:)的数目为:PXYZ323264222假假设设1毫毫秒秒执执行行1次次,如如要要进进行行完完全全测测试,共需试,共需5亿
4、年。亿年。软件测试的基本原则1、尽量不由程序设计者进行测试、尽量不由程序设计者进行测试 因因为为由由程程序序设设计计者者进进行行测测试试,他他会会有有意意无无意意地地在在测测试试过过程中去证明自己的程序是正确的,因而会影响测试的效果。程中去证明自己的程序是正确的,因而会影响测试的效果。2 2、关键是注重测试用例的选择、关键是注重测试用例的选择测试用例由两部分组成(输入数据、预期的输出结果)。测试用例由两部分组成(输入数据、预期的输出结果)。既有合理输入数据,也有不合理的输入数据。既有合理输入数据,也有不合理的输入数据。3、充分注意测试中的群集现象、充分注意测试中的群集现象 群集现象是指在测试过
5、程中,发现错误比较集中的程序群集现象是指在测试过程中,发现错误比较集中的程序段,往往可能残留的错误数较多。因此必须注意这种群集现段,往往可能残留的错误数较多。因此必须注意这种群集现象,对错误群集的程序段进行重点测试,以提高测试的效率。象,对错误群集的程序段进行重点测试,以提高测试的效率。软件测试的步骤1.单元测试单元测试:指对源程序中每一个:指对源程序中每一个程序单元程序单元进行测试,进行测试,检查各检查各个模块是否正确实现规定的功能,从而发现模块在编码中或个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。算法中的错误。该阶段涉及编码和详细设计的
6、文档。2.集成测试集成测试:各模块经过单元测试后,将各:各模块经过单元测试后,将各模块组装模块组装起来进行起来进行集成测试,集成测试,以检查与设计相关的软件体系结构的有关问题。以检查与设计相关的软件体系结构的有关问题。3.确认测试确认测试:主要检查已实现的软件是否满足:主要检查已实现的软件是否满足需求说明书需求说明书中确中确定了的各种需求。定了的各种需求。4.系统测试系统测试:指把已确定的软件:指把已确定的软件与其他系统元素与其他系统元素(如硬件、其(如硬件、其他支持软件、他支持软件、数据和人工等)结合在一起进数据和人工等)结合在一起进行测试。行测试。软件测试的信息流测试工具 软件配置:软件配
7、置:指需求说明书、指需求说明书、设计说明书和源程序等。设计说明书和源程序等。测试配置:测试配置:指测试方案、指测试方案、测试用例和测试驱动程序等。测试用例和测试驱动程序等。测试工具:测试工具:指计算机辅助测试的有关工具。指计算机辅助测试的有关工具。2 软件测试方法 软件测试方法分为两类:软件测试方法分为两类:静态分析、动态测试静态分析、动态测试,在进,在进行软件测试时,通常两种方法都应同时使用。行软件测试时,通常两种方法都应同时使用。一、静态分析方法一、静态分析方法静态测试静态测试,是通过对被测程序的静态审查,发现代码中潜在的错误。是通过对被测程序的静态审查,发现代码中潜在的错误。计算机并不真
8、正运行被测试的程序,只对被测程序进行特性分析。计算机并不真正运行被测试的程序,只对被测程序进行特性分析。桌前检查桌前检查(Desk Checking)由程序员检查自己的程由程序员检查自己的程序,对源代码进行分析、检验。序,对源代码进行分析、检验。代码会审代码会审(Code Reading Review)由程序员和测由程序员和测试员组成评审小组,按照试员组成评审小组,按照“常见的错误清单常见的错误清单”,进行,进行会议讨论检查。会议讨论检查。步行检查步行检查(Walkthroughs)与代码会审类似,也要进与代码会审类似,也要进行代码评审,但评审过程主要采取人工执行程序的方行代码评审,但评审过程
9、主要采取人工执行程序的方式,故也称为式,故也称为“走查走查”。二、动态测试方法二、动态测试方法 动动态态测测试试方方法法与与静静态态分分析析方方法法的的区区别别是是:需需要要通通过过选选择择适适当的测试用例,上机执行程序进行测试。当的测试用例,上机执行程序进行测试。任何产品都可以使用以下两种方法进行测试:任何产品都可以使用以下两种方法进行测试:测试用例测试用例:测试数据预期结果:测试数据预期结果测试方案测试方案:测试目的测试用例:测试目的测试用例(1)如果已知产品的功能,则可以对)如果已知产品的功能,则可以对它的它的每一个功能每一个功能进行测试进行测试 -黑盒法黑盒法(2)如果已知产品的内部工
10、作过程,)如果已知产品的内部工作过程,则可以对它的则可以对它的每种内部操作每种内部操作进行测试进行测试 -白盒法白盒法无论是白盒法还是黑盒法,关键都是如何选择高效的测试用例。无论是白盒法还是黑盒法,关键都是如何选择高效的测试用例。白盒测试v测测试试时时按按照照程程序序内内部部的的逻逻辑辑测测试试程程序序、检检验验程程序序中中的的每每条通路是否都能按预定的要求正确工作。条通路是否都能按预定的要求正确工作。v白盒测试又称为白盒测试又称为结构结构测试测试,主要用于单元测试。,主要用于单元测试。v逻逻辑辑覆覆盖盖是是以以程程序序的的内内部部逻逻辑辑结结构构为为基基础础的的测测试试用用例例设设计技术,在
11、白盒法中,规定了不同的覆盖标准。计技术,在白盒法中,规定了不同的覆盖标准。语语句句覆覆盖盖判判定定覆覆盖盖条条件件覆覆盖盖判判定定条条件件覆覆盖盖条条件件组组合合覆覆盖盖弱弱强强语句覆盖语语句句覆覆盖盖就就是是设设计计足足够够的的测测试试用用例例,使使得得程程序序中中的的每每个个语句至少执行一次语句至少执行一次。满足语句覆盖的情况是:满足语句覆盖的情况是:执行路径:执行路径:ace用例格式,用例格式,由输入数据和预由输入数据和预期的输出结果两部分组成:期的输出结果两部分组成:输入输入(A,B,X),输出,输出(A,B,X)选择用例:选择用例:(2,0,4),(2,0,3)若第一个判断中的逻辑运
12、算若第一个判断中的逻辑运算符符“&”若错写成了若错写成了“|”,利用上面的数据能检查出,利用上面的数据能检查出这个错误吗?这个错误吗?A1 AND B=0aX=X/A A=2 OR X1X=X+1bcdeTFTF判定覆盖覆盖情况:覆盖情况:共有两个判定,应执共有两个判定,应执行路径:行路径:ace abd或:或:acd abe选择用例:选择用例:(1)(2,0,4),(2,0,3)ace (1,1,1),(1,1,1)abd或:或:(2)(3,0,3),(3,0,1)acd (2,1,1),(2,1,2)abev如如果果x1错错写写成成了了x1,能能检检查查出这个错误吗?出这个错误吗?A1 A
13、ND B=0X=X/A A=2 OR X1X=X+1abcdeTFTF覆盖标准:覆盖标准:使得程序中使得程序中每个判定每个判定的取的取“真真”分分支和取支和取“假假”分支至少都执行一次。分支至少都执行一次。条件覆盖条件:条件:A1,B0,A2,x1。选择输入数据:选择输入数据:A2,B0,x4A1,B1,x1v如下数据:如下数据:A1,B0,x3 A2,B1,x1v满满足足条条件件覆覆盖盖,但但不不满满足足判判定定覆覆盖。盖。条件覆盖:使得程序判定中的条件覆盖:使得程序判定中的每个条件每个条件能获得各种可能的结果。能获得各种可能的结果。A1 AND B=0X=X/A A=2 OR X1X=X+
14、1abcdeTFTF判定条件覆盖条件:条件:A1,B0,A2,x1。判定:判定:(A1)and(B0)(A2)or(x1)选择输入数据:选择输入数据:A2,B0,x4 A1,B1,x1 A1 AND B=0X=X/A A=2 OR X1X=X+1abcdeTFTF判定条件覆盖:使得判定中的判定条件覆盖:使得判定中的每个每个条件条件都取到各种可能的值,而且都取到各种可能的值,而且每个每个判定表达式判定表达式也都取到各种可能的结果。也都取到各种可能的结果。条件组合覆盖可能的条件组合:可能的条件组合:(1)A1,B0(2)A1,B0(3)A1,B0(4)A1,B0(5)A2,x1(6)A2,x1(7
15、)A2,x1(8)A2,x1相应的输入数据:相应的输入数据:A2,B0,x4 满满足足(1)和和(5)A2,B1,x1 满满足足(2)和和(6)A1,B0,x2 满满足足(3)和和(7)A1,B1,x1 满满足足(4)和和(8)条件组合覆盖条件组合覆盖:使得每个判定中的条使得每个判定中的条件的件的各种可能组合各种可能组合都至少出现一次。都至少出现一次。A1 AND B=0X=X/A A=2 OR X1X=X+1abcdeTFTF路径覆盖u 选选择择以以下下输输入入数数据据,覆覆盖盖程程序序中中的的 4 4 条路径:条路径:a=2,b=0,x=2 (ace),和和 a=2,b=1,x=1 (ab
16、e),和和 a=1,b=1,x=1 (abd),和和 a=3,b=0,x=1 (acd),和和u 可可看看出出满满足足路路径径覆覆盖盖却却未未满满足足条条件件组合覆盖。组合覆盖。路径覆盖是指设计足够的测试用例,路径覆盖是指设计足够的测试用例,覆盖被测程序中覆盖被测程序中所有可能的路径所有可能的路径。A1 AND B=0X=X/A A=2 OR X1X=X+1abcdeTFTF覆盖标准的比较基本路径测试基本路径测试v在在实实际际问问题题中中,一一个个不不太太复复杂杂的的程程序序其其路路径径是是一一个个庞庞大大的的数数字字。为为了了解解决决这这一一难难题题,只只得得把把覆覆盖盖的的路路径径数数压压
17、缩缩到到一一定定的的限限度内,例如,循环体度内,例如,循环体只执行一次。只执行一次。v基基本本路路径径测测试试是是在在程程序序流流程程图图的的基基础础上上,通通过过分分析析由由控控制制构构造造的的环环路路复复杂杂性性,导导出出基基本本路路径径集集合合,从从而而设设计计测测试试用用例例,保保证这些路径至少通过一次。证这些路径至少通过一次。v 基本路径测试的步骤为:基本路径测试的步骤为:(1)以以详详细细设设计计或或源源程程序序为为基基础础,导导出出程程序序流流程程图图的的拓拓补补结构结构程序图。程序图。基本路径的导出步骤(1)以详细设计或源程序为基础,以详细设计或源程序为基础,导出程序流程图的拓
18、补导出程序流程图的拓补结构结构程序图。程序图。(2)计算程序图计算程序图G的环路复杂性的环路复杂性V(G)。)。McCabe定定义义程程序序图图的的环环路路复复杂杂性性为为此此平平面面图图中中区区域域的的个个数。数。区区域域个个数数为为边边和和结结点点圈圈定定的的封封闭闭区区域域数数加加上上图图形形外外的的区区域域数数1。例例如如图图(b)的的V(G)=4,也也可可按按另另一一种种方方法法计计算算,即即V(G)=判判定结点数定结点数+1。(3)确定只包含独立路径的基本路径集。确定只包含独立路径的基本路径集。环环路路复复杂杂性性可可导导出出程程序序基基本本路路径径集集合合中中的的独独立立路路径径
19、条条数数,这这是是确确保保程程序序中中每每个个执执行行语语句句至至少少执执行行一一次次所所必必需需的的测测试试用用例例数目的上界数目的上界。独独立立路路径径是是指指包包括括一一组组以以前前没没有有处处理理的的语语句句或或条条件件的的一一条条路路径径。从程序图来看,从程序图来看,在图在图(b)所示的图中,一组独立的路径是:所示的图中,一组独立的路径是:path1:1-11 path2:1-2-3-4-5-10-1-11 path3:1-2-3-6-8-9-10-1-11 path4:1-2-3-6-7-9-10-1-11 从从例例中中可可知知,一一条条新新的的路路径径必必须须包包含含有有一一条条
20、新新边边。这这 4 条条路径组成了图路径组成了图(b)所示的程序图的一个基本路径集。所示的程序图的一个基本路径集。只只要要测测试试用用例例确确保保这这些些基基本本路路径径的的执执行行,就就可可以以使使程程序序中中每每个个可可执执行行语语句句至至少少执执行行一一次次,每每个个条条件件的的取取“真真”和和取取“假假”分分支支也能得到测试。也能得到测试。基基本本路路径径集集不不是是唯唯一一的的,对对于于给给定定的的程程序序图图,可可以以得得到到不不同同的基本路径集。的基本路径集。黑盒测试黑盒黑盒测试时完全不考虑程序内部的结构和处理测试时完全不考虑程序内部的结构和处理过程,只按照过程,只按照规格说明书
21、的规定规格说明书的规定来检查程序是来检查程序是否符合它的功能要求。否符合它的功能要求。黑盒测试是在程序接口进行的测试,又称为黑盒测试是在程序接口进行的测试,又称为功功能能测试。测试。黑盒测试检查的主要方面有:黑盒测试检查的主要方面有:程序的程序的功能功能是否正确或完善;是否正确或完善;数据的数据的输入输入能否正确接收,能否正确接收,输出输出是否正确;是否正确;是否能保证是否能保证外部信息外部信息(如数据文件)的完整性;(如数据文件)的完整性;性能性能上是否能够满足要求。上是否能够满足要求。黑盒测试-等价类划分v等等价价类类划划分分是是一一种种实实用用的的测测试试技技术术,属属于于黑黑盒盒测测试
22、试。与与逻逻辑辑覆覆盖盖不不同同,使使用用等等价价类类划划分分设设计计测测试试用用例例时时,完完全全不不需需要要考考虑虑程程序序的的内内部部逻逻辑辑结构,而主要依据程序的结构,而主要依据程序的功能功能说明。说明。v穷穷尽尽测测试试是是不不可可能能实实现现的的。如如何何选选择择这这个个子子集集,使使得得这这个个子子集集具具有有代代表表性性,能能尽尽可可能能多多地地发发现现程程序序中中的的错错误误,等等价价类类划划分分就就是是基基于于这这种种考考虑虑的的一一种种实实现现方方法法。该该方方法法根根据据输输入入数数据据和和输输出出数数据据的的特特点点,将将程程序序输输入入域域划划分分成成若若干干个个部
23、部分分,即即子子集集,然然后后从从每每个个子子集集中中选选取取具具有有代代表表性性的的数据作为测试用例。数据作为测试用例。1.划分等价类v等等价价类类的的划划分分在在很很大大程程度度上上依依靠靠的的是是测测试试人人员员的的经经验验,下面给出几条基本原则:下面给出几条基本原则:(1)如如果果输输入入条条件件规规定定了了取取值值范范围围,则则可可划划分分出出一一个个有有效效的的等等价价类类(输输入入值值在在此此范范围围内内)和和两两个个无无效效的的等等价类(输入值小于最小值、输入值大于最大值)。价类(输入值小于最小值、输入值大于最大值)。例例如如输输入入值值是是学学生生的的成成绩绩,范范围围为为0
24、100,确确定定一一个个合合理理的的等等价价类类为为“0成成绩绩100”,两两个个不不合合理理的的等等价价类类为为“成绩成绩0”和和“成绩成绩100”。(2)如如果果输输入入条条件件规规定定了了输输入入数数据据的的个个数数,则则可可相相应应地地划划分分出出一一个个有有效效的的等等价价类类(输输入入数数据据的的个个数数等等于于给给定定的的个个数数要要求求)和和两两个个无无效效的的等等价价类类(输输入入数数据据的的个个数数少少于于给给定定的的个个数数要要求求、输输入入数数据据的的个个数数多多于于给给定定的的个数要求)。个数要求)。(3)如果输入条件规定了输入数据的)如果输入条件规定了输入数据的一组
25、可一组可能的值能的值,而且程序对这组可能的值做相同的处,而且程序对这组可能的值做相同的处理,则可将这组理,则可将这组可能的值可能的值划分为一个有效的等划分为一个有效的等价类,而这些价类,而这些值以外值以外的值划分成无效的等价类。的值划分成无效的等价类。例如,输入条件上说明教师的职称可为助教、例如,输入条件上说明教师的职称可为助教、讲师、讲师、副教授及教授副教授及教授 4 种职称之一,则分别取这四个值作为种职称之一,则分别取这四个值作为4 个合理等价类,另外把个合理等价类,另外把 4 个职称之外的任何职称作为个职称之外的任何职称作为不合理等价类。不合理等价类。(4)如果输入条件规定了输入数据的一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 测试
限制150内