第2章软件测试策略与过程课件

上传人:txadgkn****dgknqu... 文档编号:241971995 上传时间:2024-08-08 格式:PPT 页数:31 大小:299.78KB
返回 下载 相关 举报
第2章软件测试策略与过程课件_第1页
第1页 / 共31页
第2章软件测试策略与过程课件_第2页
第2页 / 共31页
第2章软件测试策略与过程课件_第3页
第3页 / 共31页
点击查看更多>>
资源描述
A Free sample background from,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Slide,1,第,2,章 软件测试策略与过程,2.1,软件测试的复杂性分析,2.2,软件测试方法与策略,2.3,单元测试,2.4,集成测试,2.5,确认测试,2.6,系统测试,2.7,验收测试,2.8,测试后的调试,2.9,面向对象的软件测试,第2章 软件测试策略与过程2.1 软件测试的复杂性分析,本章教学目标,理解软件测试的复杂性,理解软件测试的方法与策略,明确单元测试的主要任务和过程,明确集成测试的方法和确认测试的准则,明确系统测试的八个领域测试要点,明确验收测试的主要内容和相关配置,本章教学目标理解软件测试的复杂性,2.1 软件测试的复杂性分析,1、无法对程序进行完全测试,(1)测试所需要的输入量太大,(2)测试的输出结果太多,(3)软件实现的途径太多,(4)软件规格说明没有一个客观标准,2、测试无法显示潜在的软件缺陷和故障,通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐藏的软件故障。,3、存在的故障现象与发现的故障数量成正比,结论:应当对故障集中的程序段进行重点测试,2.1 软件测试的复杂性分析 1、无法对程序进行完全测试,软件测试的复杂性分析,(续),4,、不能修复所有的软件故障,原因:,没有足够的时间进行修复;,修复的风险较大;,不值得修复;,可不算做故障的一些缺陷;,“杀虫剂现象,”,。,结论:关键是要进行正确的判断、合理的取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复。,软件测试的复杂性分析(续)4、不能修复所有的软件故障,软件测试的复杂性分析,(续),5,、软件测试的代价,工作原则:针对软件风险做出恰当选择,去粗存精,找到最佳的测试量,既能达到测试的目的,又能较为经济。,软件测试的复杂性分析(续),2.2 软件测试方法与策略,2.2.1,静态测试与动态测试,2.2.2,黑盒测试与白盒测试,2.2.3,软件测试过程,Return,2.2 软件测试方法与策略2.2.1 静态测试与动态测试,软件测试策略,什么是软件测试策略?,是为软件工程过程定义的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤。,软件测试策略的特征:,(,1,)测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中。,(,2,)不同的测试技术适用于不同的时间点。,(,3,)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。,(,4,)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。,软件测试策略什么是软件测试策略?,软件测试充分性准则,P40,对任何软件都存在有限的充分测试集合。,如果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。这一特性称为,单调性,。,即使对软件所有成分都进行了充分的测试,也并不表明整个软件的测试已经充分了。这一特性称为,非复合性,。,即使对软件系统整体的测试是充分的,也并不意味软件系统中各个成分都已经充分地得到了测试。这个特性称为,非分解性,。,软件测试的充分性应该与软件的需求和软件的实现都相关。,软件越复杂,需要的测试数据就越多。这一特性称为,复杂性,。,测试得越多,进一步测试所能得到的充分性增长就越少。这一特性称为,回报递减率,。,请同学们自己慢慢体会以下定义:,软件测试充分性准则 P40对任何软件都存在有限的充分测试,2.2.1,静态测试与动态测试,根据程序是否运行,测试分为静态测试与动态测试。,1.静态测试:,指不实际运行被测软件,只是静态地检查程序代码、界面或文档中可能存在的错误的过程,主要是对软件的编程格式、结构等方面进行评估。,包括三个方面:,对于代码测试:主要测试代码是否符合相应的标准和规范。,对于界面测试:主要测试软件的实际界面与需求中的说明是否符合。,对于文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求。,2.2.1 静态测试与动态测试 根据程序是否运行,测试,案例1:,C,语言程序的静态分析和动态测试,#,include,max(float x,float y),float z;,z=xy?x:y,return(z);,main(),float a,b;,int c;,scanf(“%f,%f”,c=max(a,b);,printf(“Max is%dn”,c);,案例1:C语言程序的静态分析和动态测试,案例1修改后,如下,#,include,max(float x,float y)/,返回两个单精度数中的大数,float z;,z=xy?x:y,return(z);,main(),float a,b,c,;,scanf(“%f,%f”,c=max(a,b);,printf(“Max is%dn”,c);,可参考,C,语言编码规范,案例1修改后,如下,2.2.1,静态测试与动态测试,静态测试:,静态测试包括代码检查、静态结构分析、代码质量度量 等。它可以由人工进行,也可以借助软件工具自动进行。,静态测试方法也可称为“静态分析”。,2.2.1 静态测试与动态测试静态测试:,静态测试与动态测试,(续),代码检查,代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面。,具体内容:变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等。,优点:实际使用中,能快速找到缺陷,发现,30%,70%,的逻辑设计和编码缺陷;。,缺点:耗费时间,需要知识和经验的积累。,静态测试与动态测试(续),静态测试与动态测试,(续),静态结构分析,静态结构分析主要是以图形的方式表现程序的内部结构。例如函数调用关系图、函数内部控制流图。,函数调用关系图以直观的图形方式描述一个应用程序中各个函数的调用和被调用关系;,控制流图显示一个函数的逻辑结构,由许多节点组成,一个节点代表一条语句或数条语句,连接结点的叫边,边表示节点间的控制流向。,静态测试与动态测试(续),静态测试与动态测试,(续),代码质量度量,软件质量包括六个方面:功能性、可靠性、易用性、效率、可维护性和可移植性。软件的质量是软件属性的各种标准度量的组合。,针对软件的可维护性,目前业界主要存在三种度量参数:,Line,复杂度,、,Halstead,复杂度,和,McCabe,复杂度,。其中,Line,复杂度以代码的行数作为计算的基准。,Halstead,以程序中使用到的运算符与运算元数量作为计数目标(直接测量指标),然后可以据以计算出程序容量、工作量等。,McCabe,复杂度 一般称为圈复杂度,它将软件的流程图转化为有向图,然后以图论来衡量软件的质量。,静态测试与动态测试(续),静态测试与动态测试,(续),静态测试阶段的任务:,P41,(1)检查算法的逻辑正确性。,(2)检查模块接口的正确性。,(3)检查输入参数是否有合法性检查。,(4)检查调用其他模块的接口是否正确。,(5)检查是否设置了适当的出错处理。,(6)检查表达式、语句是否正确,是否含有二义性。,(7)检查常量或全局变量使用是否正确。,(8)检查标识符的使用是否规范、一致。,(9)检查程序风格的一致性、规范性。,(10)检查代码是否可以优化,算法效率是否最高。,(11)检查代码注释是否完整,是否正确反映了代码的功能。,静态测试与动态测试(续)静态测试阶段的任务:P41,静态测试与动态测试,(续),静态测试可以完成以下工作:,(1),发现下列错误:错用局部变量和全局变量;未定义的变量、不匹配的参数;不适当的循环嵌套或分支嵌套、死循环、不允许的递归;调用不存在的子程序,遗漏标号或代码。,(2)找出以下问题的根源:从未使用过的变量;不会执行到的代码、从未使用过的标号;潜在的死循环。,(3)提供程序缺陷的间接信息:所用变量和常量的交叉应用表;是否违背编码规则;标识符的使用方法和过程的调用层次。,(4)为进一步查找做好准备。,(5)选择测试用例。,(6)进行符号测试。,静态测试与动态测试(续)静态测试可以完成以下工作:,静态测试与动态测试,(续),2、动态测试,指实际运行被测程序,输入相应的测试数据,检查实际输出结果与预期结果是否相符的过程。,例如,前面的案例,1,,,输入数据1.2,3.5,则输出为:1.200000,与预期的相符,静态测试与动态测试(续)2、动态测试,静态测试与动态测试,(续),动态测试包括:,(,1,)功能确认与接口测试:,测试各单元功能正确性、单元间的接口等。,(,2,)覆盖率分析:,对代码的执行路径覆盖范围进行评估。,(,3,)性能分析:,查找性能瓶颈,(,4,)内存分析:,测量内存使用情况,了解内存分配情况,找出发生错误的原由。,静态测试与动态测试(续),2.2.2 黑盒测试和白盒测试,(续),1、黑盒测试,(Black-box Testing),:,指把被测软件看作是一个黑盒子,不关心里面的结构,只关心输入数据和输出结果。,例如,只关心输入,x=2,时,输出结果是否为,y=4。,测试规划是基于产品的功能。,也称为功能测试、数据驱动测试和基于规格说明的测试,实际上还包括性能测试。,2.2.2 黑盒测试和白盒测试(续)1、黑盒测试(Black,输入,输出,黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。,也被称为用户测试,。,输入输出黑盒测试是在程序接口进行测试,它只是检查程序功能是否,黑盒测试,主要根据,规格说明书设计,测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。,黑盒测试的特点:,(1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。,(2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。,第2章软件测试策略与过程课件,黑盒测试主要用于发现以下几类错误:,是否有不正确或遗漏了的功能?,在接口上,输入能否正确地接受?能否输出正确的结果?,是否有数据结构错误或外部信息访问错误?,性能上是否满足用户需求?,是否有初始化或终止性错误?,黑盒测试的具体技术方法:,边界值分析法 等价类划分法,因果图法 决策表法,黑盒测试主要用于发现以下几类错误:,2、,白盒测试,(White-box Testing),:,指将被测软件看作一个打开的盒子,,研究盒子里面的代码和程序结构。测试规划基于产品的内部结构。,又称为结构测试,一般用来分析程序的内部结构。,2、白盒测试(White-box Testing):,白盒测试需要,完全了解程序结构和处理过程,,它按照程序内部逻辑测试程序,检验程序中,每条通路是否按预定要求正确工作。,也被称,为程序员测试。,应用程序,白盒测试需要完全了解程序结构和处理过程,应用程序,白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是,“,基于覆盖率的测试,”,。,通常的程序结构覆盖有:,语句覆盖 判定覆盖,条件覆盖 判定,/,条件覆盖,路径覆盖,白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说,?,X=2,y=2x,Y=4,X=2,Y=4,未知等式与已知等式,黑盒,白盒,3、黑盒测试法和白盒测试法的比较,?X=2 y=2x Y=4 X=2Y=4未知等式与已知等,黑盒测试和白盒测试的比较,P45,黑盒测试:,根据输入数据与输出数据的对应关系进行测试,而不考虑内部结构及工作情况。,注重于软件的范围,通过划分程序的输入和输出域来确定测试用例。,若外部特性本身存在问题或规格说明的规定有误,则应用黑盒测试方法是不能发现问题的。,白盒测试:,只根据程序的内部结构进行测试。,测试用例的设计要保证测试时程序的所有语句至少执行一次,而且要检查所有的逻辑条件。,如果程序的结构本身有问题,比如说程序逻辑有错误或者有遗漏,那也是无法发现的。,黑盒测试和白盒测试的比较 P45黑盒测试:,项目,黑盒测试法,白盒测试法,规划,方面,功能和性能的测试,结构的测试,优点,方面,能确保从用户的角度出发进行测试,能对程序内部的特定部位进行覆盖测试,缺点,方面,无法测试程序内部特定部位;当规格说明有误,则不能发现问题,无法检查程序的外部特性;,无法对未实现规格说明的程序内部欠缺部分进行测试,应用,范围,边界分析法,等价类划分法,决策表测试,因果图法,语句覆盖,判定覆盖,,条件覆盖,判定/条件覆盖,,路径覆盖,循环覆盖,,模块接口测试,P45,黑盒测试与白盒测试的比较,项目黑盒测试法白盒测试法规划功能和性能的测试结构的测试优点,白盒测试,黑盒测试,软件公司一般两种测试相结合,对软件,的整体功能和性能进行黑盒测试,对软,件的源代码采用白盒测试。,灰盒测试(,grey-box testing),白盒测试黑盒测试软件公司一般两种测试相结合,对软件灰盒测试(,白盒测试,黑盒测试,白盒测试工程师,黑盒测试工程师,白盒测试黑盒测试白盒测试工程师黑盒测试工程师,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!