《软件工程软件测试.ppt》由会员分享,可在线阅读,更多相关《软件工程软件测试.ppt(64页珍藏版)》请在三一办公上搜索。
1、软件工程,第7章 软件实现编码与测试,编码设计-程序编码风格,软件存在错误是必然的,软件产品存在错误,是必然的软件本身是复杂的、知识密集的逻辑产品人类自身能力的局限性软件开发全过程由人来完成,人在工作中难免有错误,1.软件测试 定义,为了发现错误而审查文档和执行程序的过程根据软件的规格说明及程序内部结构设计一批测试用例并利用这些测试用例去运行程序,以发现软件错误的过程,?,测试是为了表明程序是正确的?成功的测试是没有发现错误的测试?程序员最熟悉程序所以最好由程序员自己进行测试?,经过测试无错?,软件测试,查找错误的过程,只能证明错误的存在,不能证明无错不可能发现所有错误,只能在有限的时间与经济
2、条件下,尽可能发现错误软件测试是手段,根本目的是为了纠错,软件测试 目的,以最少的人力、物力和时间投入,尽可能多地发现软件中的错误测试是为了发现错误而执行程序的过程一个好的测试用例是很可能找到之前尚未发现的错误的用例成功的测试是指发出了之前尚未发现的错误,软件测试 原则,追溯到用户需求不能满足用户需求的错误是严重错误尽早地、不断地不是一个独立阶段,应贯穿到整个软件开发过程由第三方进行测试工作选择测试错误的群集现象,80/20法则从“小规模”到“大规模”,软件测试 对象,软件测试贯穿于整个软件开发过程测试对象包括需求分析与设计与编码等所获得的一切文档和程序,2.软件测试 方法,静态测试,不在计算
3、机上实际执行程序人工测试,人工阅读分析评审计算机辅助静态分析,分析工具程序正确性证明动态测试,机器测试白盒法黑盒法,设计测试用例执行被测程序分析执行后的结果并发现错误,测试用例,定义:为了测试软件而设计的一组数据,包括输入的数据和预期输出的结果。测试用例输入数据+预期结果好的测试用例最有可能发现最多错误但花费最小时间和最小代价的测试用例,白盒法测试,又称结构测试完全了解程序的内部结构和处理过程按照程序内部逻辑结构,设计测试用例逻辑覆盖循环测试基本路径测试,黑盒测试法,又称功能测试根据已知程序的功能和性能,只从程序接口进行测试完成规定功能,可操作性很好地接收数据,产生正确的结果是否做了不该做的事
4、情等价分类法边界值分析法错误猜测法,白盒法逻辑覆盖(选择结构),语句覆盖每条语句至少执行一次判定覆盖,分支覆盖每个判定至少获得一次真假条件覆盖每个条件获得各种不同的结果判定-条件覆盖每个条件+每个判定条件组合覆盖条件的各种可能组合,白盒法逻辑覆盖 用例格式(A,B,X;X),语句覆盖sabcde(2,0,3;2.5)判定覆盖,分支覆盖TFTF(2,0,3;2.5)TT(1,1,1;1)FF,白盒法逻辑覆盖 用例格式(A,B,X;X),条件覆盖A1 A1 X=1(2,0,3;2.5)(1,1,1;1)判定-条件覆盖(2,0,3;2.5)TT(1,1,1;1)FF,白盒法逻辑覆盖 用例格式(A,B
5、,X;X),条件组合覆盖条件组合:A1 B=0A1 B!=0A1A=2 X1A!=2 X=1,A1andB=0,X=X/A,A=2orX1,X=X+1,返回,入口,T,T,F,F,s,d,b,a,e,c,用例:(2,0,4;3)(2,1,1;2)(1,0,2;3)(1,1,1;1),逻辑覆盖标准,举例:下图为一个被测程序流程图,试用条件组合覆盖方法为它设计足够的测试用例,2)选择并确定测试用例测试用例格式:(x,y)测试用例 覆盖组合 执行路径(1.5,9.5)abhi(1,2sin1-1)acdhi(2,2sin2-1)acdhi(3,sqrt(10)acefhi(4,29)acegi,1)
6、列出满足条件组合覆盖标准的所有情况:x1,x1,x2 x1,x2x3x3x4x4,即x1即x2无效,设有如下程序流程图,根据表中的测试数据回答如下问题:(1)满足语句覆盖的最少测试组合是什么?(2)满足判定覆盖的最少测试组合是什么?(3)满足条件组合覆盖的最少测试组合是什么?,白盒测试循环测试(循环结构),简单循环测试跳过整个循环循环执行一次,二次,m次,n-1次,n次嵌套循环测试由内而外,最内简单循环测试,外最小次循环中间,内典型值,外最小次循环串接循环测试独立,简单不独立,嵌套,白盒测试法基本路径测试,程序过程描述(程序流程图、PAD、伪代码)程序流图(控制流图、流图),有向图计算环路复杂
7、性V(G)=E-N+2=谓词结点数+1确定线性独立的基本路径集独立路径:至少引入一个新处理语句或一个析条件的路径(至少包含一条之前不曾用过的边)设计测试用例,测试每一条路径,步骤1:根据程序逻辑画出流程图,void Func(int nPosX,int nPosY)while(nPosX 0)int nSum=nPosX+nPosY;if(nSum 1)nPosX-;nPosY-;else if(nSum-1)nPosX-=2;else nPosX-=4;/end of while,步骤2:将流程图转换为流图(1/2),流图刻画了程序的控制结构但不涉及程序的过程性细节节点(过程块,结合点,判定
8、点)有向边谓词结点不含复合条件,否则应按照下列方式增加谓词结点,步骤2:将流程图转换为流图(2/2),步骤3:计算环路复杂度,V(G)=E N+2V(G)=11-9+2=4,步骤3:确定基本路径的集合,流图环路复杂度正好是基本路径的数目1-111-2,3-6-7-9-10-1-111-2,3-4,5-10-1-111-2,3-6-8-9-10-1-11,步骤4:针对基本路径设计测试用例,1-11nPosX 取-1,nPosY取任意值1-2,3-4,5-10-1-11nPosX 取1,nPosY取11-2,3-6-7-9-10-1 11nPosX 取1,nPosY取-11-2,3-6-8-9-1
9、0-1-11 nPosX 取1,nPosY取-3,下面是某程序的程序流程图1)将程序流程图转换成程序图2)计算程序图的环路复杂性3)确定基本路径,下面是一段伪码程序(代码前的数字只作标号用,不参与程序执行):START1:INPUT(A,B,C,D)2:IF(A0)AND(B0)THEN3:X=A+BELSE4:X=A-B5:END6:IF(CA)OR(DB)THEN7:Y=C-DELSE8:Y=C+D9:END10:PRINT(X,Y)STOP根据以上的描述(1)画出对应的程序流程图和流图。(2)计算程序图的环形复杂度。,复杂度13-10+2=5,黑盒测试法,又称功能测试只从程序接口进行测试
10、检查程序是否完成所规定的功能很好地接收数据,产生正确的结果验证程序是否做了不该做的事情模块外部信息的完整性输入全部有效数据和全部无效数据?等价分类法边界值分析法错误猜测法,黑盒测试法-等价分类法,思想把程序所有可能的输入数据按输入条件划分为若干个等价类每个类中一个典型值在测试中的作用等价于这一类中的其他值然后为每一个等价类设计一个测试用例优点减少测试次数,不丢失发现错误的机会方法:等价类划分、选择测试用例,等价分类法-等价类划分,输入条件为一范围划分出三个等价类:1有效(在范围内),2无效(大于输入最大值,小于输入最少值)输入条件为一组值(集合)划分为2个等价类:1有效(在集合内),1无效(在
11、集合外)输入条件为一个布尔量划分二个等价类,1有效(布尔量的是),1无效(布尔量的非)输入条件是规则划分为若干,1有效(符合规则),若干无效(不同角度违反规则)已划分的等价类在程序中的处理不同,则将此等价类划分为更小的等价类,等价分类法选择测试用例,有效设计一个新的测试用例,尽可能多地覆盖还末被覆盖的有效等价类重复,直到所有有效等价类都被覆盖无效设计一个析的测试用例,只覆盖一个还末被覆盖的无效等价类重复,直到所有无效等价类都被覆盖,例:黑盒法设计测试用例,为一个程序设计一个测试用例,该程序的功能是读入三角形的三条边长(a,b,c),三条边都取整数,判断并输出由这三条边能否构成三角形,而且识别输
12、出该三角形是什么三角形的信息(等边、等腰、任意)。,黑盒测试法-边界值分析法,软件常在它的边界上出错,边界值和邻近数据都属于最有效区在边界上选到测试用例,用得最多的方法之一输入条件是一范围(a,b)a,b以及紧挨a,b左右的值应作为测试用例输入条件规定了个数选择最大、最小,次大和次小个数作为测试用例如果程序的内部数据结构是有界的应设计测试用例使它能够检查该数据结构的边界,等价分类法-例子,z=func(x,y):当 0,;,;,习题,函数Find(array,L,R,value)的功能是在一个整数数组array中搜索第一个值为value的整数,搜索的范围在数组下标L到R范围内。如搜索到有这个数
13、,则函数值为第1个等于该数的下标,否则函数值等于-1。假设数组非空,数组长度可由一内置函数得知,数组第一个元素的下标为1。请根据题意采用等价分类法设计测试用例。,黑盒测试法错误猜测法,经验是宝贵的凭借实践经验和感觉,猜测被测程序最容易出错的情况,依此设计测试用例,3.软件测试策略,单元测试,对软件的最小单元模块进行测试多采用白盒测试,依据是编码与详细设计单元测试内容(1)模块接口测试(2)模块局部数据结构测试(3)模块独立执行路径测试(4)模块边界条件测试(5)模块中各出错误处理通道测试,单元测试-辅助模块,驱动模块:被测模块的调用模块桩模块(存根模块):被测模块的下属模块,集成测试,组装测试
14、、联合测试,依据是概要设计模块相互调用时引入接口问题=集成测试集成测试方法非增量式系统集成:已测试模块一次性组装成一个系统增量式系统集成:一个个模块逐步接入系统,一边接入一边测试,使系统逐步扩大自顶向下集成:从主控模块开始,按照软件的控制层次结构,以深度优先或者广度优先的策略把各个模块逐渐集成在一起进行测试需要桩模块自底向上集成:从软件结构最底层模块开始自底向上进行组装和测试需要驱动模块,集成测试-例子,确认测试,有效性测试模拟环境下的黑盒法实现依据和标准软件需求规格说明书任务判断目标软件系统是否满足用户的功能和性能需求;文档资料是否完整性、准确性,与程序的一致性确认测试的类型测试用户,开发场
15、地,指导,开发者记录测试用户们,多个场地,用户记录报告,系统测试,软件与其他系统的集成恢复测试安全测试压力测试性能测试,软件测试W过程模型,调试与排错,调试,又称纠错,排错,就是找出产生错误的原因和准确位置,并进行改正,排除错误方法与技术强行排错法,printf,单步跟踪等回溯法归纳法演绎法对分查找法,习题,在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试()A.单元测试B.系统测试C.集成测试D.确认测试单元测试阶段主要涉及的文档为()A需求设计B.编码和详细设计C详细设计D概要设计检查软件产品是否符合需求定义的过程称为()A确认测试B集成测试C系统测试D
16、单元测试,习题,以下哪种测试的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合()A集成测试B确认测试C单元测试D系统测试集成测试是为了发现()A接口错误B编码错误C性能、质量不合要求D功能错误软件调试技术包括()A回溯法调试B循环覆盖调试C边界值分析调试D集成测试调试,1.下面是某程序的流程图:(1)计算它的环路复杂性。(2)为了完成基本路径测试,求它的一组独立的路径。,2.根据下列输入条件使用等价类法和边界值分析法设计测试用例:某一8位微机,其十六进制常数定义为:以0 x或0X开头的数是十六进制整数,其值的范围是-7f7f(表示十六进制的大小写字母不加区别),如0 x13,
17、0X6A,-0 x3c。,举例:,8、下面是某程序的流程图:(1)计算它的环路复杂性。(2)为了完成基本路径测试,求它的一组独立的路径。,独立路径指包含一组以前没有处理的语句或条件的一条路径。,(1)环路复杂性=判断数1617(个)(2)路径1:(0)(13)(19)路径2:(0)(14)(19)路径3:(0)(15)(19)路径4:(0)(16)(19)路径5:(0)(17)(19)路径6:(0)(18)(19)路径7:(0)(12)(19),用例1:0 x7F,覆盖等价类(1)(4)(6)(8)用例2:-0Xb,覆盖等价类(1)(4)(6)(8)用例3:0X0,覆盖等价类(1)(4)(6)
18、(8)用例4:0 x,覆盖等价类(1)(7)用例5:A7,覆盖等价类(2)用例6:-1A,覆盖等价类(3)用例7:0X8h,覆盖等价类(1)(5)用例8:0 x80,覆盖等价类(1)(4)(10)用例9:-0XaB,覆盖等价类(1)(4)(9),举例:,(1)环路复杂性=判断数1617(个)(2)路径1:0-13-19路径2:0-14-19路径3:0-15-19路径4:0-16-19路径5:0-17-19路径6:0-11-18-19路径7:0-12-19,用例1:0 x7F,覆盖等价类(1)(4)(6)(8)用例2:-0X7f,覆盖等价类(1)(4)(6)(8)用例3:0X0,覆盖等价类(1)
19、(4)(6)(8)用例4:0 x,覆盖等价类(7)(1)出错处理用例5:A7,覆盖等价类(2)出错处理用例6:-1A,覆盖等价类(3)出错处理用例7:0X8g,覆盖等价类(5)(1)出错处理用例8:0 x80,覆盖等价类(10)(1)(4)出错处理用例9:-0X80,覆盖等价类(9)(1)(4)出错处理,习题,软件测试的目的是()A.为了表明程序没有错误B.为了说明程序能正确地执行C.为了发现程序中的错误D.为了评价程序的质量,习题,关于软件测试的目的,下面观点错误的是()A.为了发现错误而执行程序的过程B.一个好的测试用例能够发现至今尚未发现的错误C.证明程序是正确、没有错误的D.一个成功的测试用例是发现了至今尚未发现的错误的测试,下列属于静态测试方法的是()A.黑盒法B.路径覆盖C.白盒法D.人工检测下列属于用白盒技术设计测试用例的是()A错误推测B逻辑覆盖C等价类划分D因果图,在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法A.应用范围 B.内部逻辑 C.功能 D.输入数据在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强(/弱)的是()A语句覆盖B判定/条件覆盖C条件组合覆盖D判定覆盖,软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试()A结构合理性B软件外部功能C程序正确性D程序内部逻辑,
链接地址:https://www.31ppt.com/p-4096073.html