软件测试策略与过程_第1页
软件测试策略与过程_第2页
软件测试策略与过程_第3页
软件测试策略与过程_第4页
软件测试策略与过程_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试策略与过程本章教学目标理解软件测试的复杂性理解软件测试的方法与策略明确单元测试的主要任务和过程明确集成测试的方法和确认测试的准则明确系统测试的八个领域测试要点明确验收测试的主要内容和相关配置第2页,共31页,2024年2月25日,星期天2.1软件测试的复杂性分析1、无法对程序进行完全测试(1)测试所需要的输入量太大(2)测试的输出结果太多(3)软件实现的途径太多(4)软件规格说明没有一个客观标准2、测试无法显示潜在的软件缺陷和故障

——通过软件测试只能报告软件已被发现的缺陷和故障,无法报告隐藏的软件故障。3、存在的故障现象与发现的故障数量成正比

——结论:应当对故障集中的程序段进行重点测试第3页,共31页,2024年2月25日,星期天软件测试的复杂性分析(续)

4、不能修复所有的软件故障

——原因:没有足够的时间进行修复;修复的风险较大;不值得修复;可不算做故障的一些缺陷;“杀虫剂现象”。

结论:关键是要进行正确的判断、合理的取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复。

第4页,共31页,2024年2月25日,星期天软件测试的复杂性分析(续)

5、软件测试的代价

——工作原则:针对软件风险做出恰当选择,去粗存精,找到最佳的测试量,既能达到测试的目的,又能较为经济。

第5页,共31页,2024年2月25日,星期天2.2软件测试方法与策略2.2.1静态测试与动态测试2.2.2黑盒测试与白盒测试2.2.3软件测试过程Return第6页,共31页,2024年2月25日,星期天软件测试策略什么是软件测试策略?

——是为软件工程过程定义的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤。软件测试策略的特征:(1)测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中。(2)不同的测试技术适用于不同的时间点。(3)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。(4)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。第7页,共31页,2024年2月25日,星期天软件测试充分性准则P40对任何软件都存在有限的充分测试集合。如果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的。这一特性称为单调性。即使对软件所有成分都进行了充分的测试,也并不表明整个软件的测试已经充分了。这一特性称为非复合性。即使对软件系统整体的测试是充分的,也并不意味软件系统中各个成分都已经充分地得到了测试。这个特性称为非分解性。软件测试的充分性应该与软件的需求和软件的实现都相关。软件越复杂,需要的测试数据就越多。这一特性称为复杂性。测试得越多,进一步测试所能得到的充分性增长就越少。这一特性称为回报递减率。请同学们自己慢慢体会以下定义:第8页,共31页,2024年2月25日,星期天2.2.1静态测试与动态测试根据程序是否运行,测试分为静态测试与动态测试。1.静态测试:指不实际运行被测软件,只是静态地检查程序代码、界面或文档中可能存在的错误的过程,主要是对软件的编程格式、结构等方面进行评估。包括三个方面:对于代码测试:主要测试代码是否符合相应的标准和规范。对于界面测试:主要测试软件的实际界面与需求中的说明是否符合。对于文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求。

第9页,共31页,2024年2月25日,星期天案例1:C语言程序的静态分析和动态测试#include<stdio.h>max(floatx,floaty)floatz;z=x>y?x:yreturn(z);}main(){floata,b;intc;scanf(“%f,%f”,&a,&b);c=max(a,b);printf(“Maxis%d\n”,c);}第10页,共31页,2024年2月25日,星期天案例1修改后,如下#include<stdio.h>max(floatx,floaty)//返回两个单精度数中的大数

{floatz;z=x>y?x:yreturn(z);}main(){floata,b,c;scanf(“%f,%f”,&a,&b);c=max(a,b);printf(“Maxis%d\n”,c);}

可参考C语言编码规范第11页,共31页,2024年2月25日,星期天2.2.1静态测试与动态测试静态测试:静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。静态测试方法也可称为“静态分析”。第12页,共31页,2024年2月25日,星期天静态测试与动态测试(续)

代码检查代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面。具体内容:变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等。优点:实际使用中,能快速找到缺陷,发现30%~70%的逻辑设计和编码缺陷;。缺点:耗费时间,需要知识和经验的积累。第13页,共31页,2024年2月25日,星期天静态测试与动态测试(续)

静态结构分析静态结构分析主要是以图形的方式表现程序的内部结构。例如函数调用关系图、函数内部控制流图。

——函数调用关系图以直观的图形方式描述一个应用程序中各个函数的调用和被调用关系;

——控制流图显示一个函数的逻辑结构,由许多节点组成,一个节点代表一条语句或数条语句,连接结点的叫边,边表示节点间的控制流向。第14页,共31页,2024年2月25日,星期天静态测试与动态测试(续)

代码质量度量软件质量包括六个方面:功能性、可靠性、易用性、效率、可维护性和可移植性。软件的质量是软件属性的各种标准度量的组合。针对软件的可维护性,目前业界主要存在三种度量参数:Line复杂度、Halstead复杂度和McCabe复杂度。其中Line复杂度以代码的行数作为计算的基准。Halstead以程序中使用到的运算符与运算元数量作为计数目标(直接测量指标),然后可以据以计算出程序容量、工作量等。McCabe复杂度一般称为圈复杂度,它将软件的流程图转化为有向图,然后以图论来衡量软件的质量。第15页,共31页,2024年2月25日,星期天静态测试与动态测试(续)静态测试阶段的任务:P41(1)检查算法的逻辑正确性。(2)检查模块接口的正确性。(3)检查输入参数是否有合法性检查。(4)检查调用其他模块的接口是否正确。(5)检查是否设置了适当的出错处理。(6)检查表达式、语句是否正确,是否含有二义性。(7)检查常量或全局变量使用是否正确。(8)检查标识符的使用是否规范、一致。(9)检查程序风格的一致性、规范性。(10)检查代码是否可以优化,算法效率是否最高。(11)检查代码注释是否完整,是否正确反映了代码的功能。第16页,共31页,2024年2月25日,星期天静态测试与动态测试(续)静态测试可以完成以下工作:(1)发现下列错误:错用局部变量和全局变量;未定义的变量、不匹配的参数;不适当的循环嵌套或分支嵌套、死循环、不允许的递归;调用不存在的子程序,遗漏标号或代码。(2)找出以下问题的根源:从未使用过的变量;不会执行到的代码、从未使用过的标号;潜在的死循环。(3)提供程序缺陷的间接信息:所用变量和常量的交叉应用表;是否违背编码规则;标识符的使用方法和过程的调用层次。(4)为进一步查找做好准备。(5)选择测试用例。(6)进行符号测试。第17页,共31页,2024年2月25日,星期天静态测试与动态测试(续)2、动态测试指实际运行被测程序,输入相应的测试数据,检查实际输出结果与预期结果是否相符的过程。例如,前面的案例1,输入数据1.2,3.5则输出为:1.200000与预期的相符第18页,共31页,2024年2月25日,星期天静态测试与动态测试(续)动态测试包括:(1)功能确认与接口测试:测试各单元功能正确性、单元间的接口等。(2)覆盖率分析:对代码的执行路径覆盖范围进行评估。(3)性能分析:查找性能瓶颈(4)内存分析:测量内存使用情况,了解内存分配情况,找出发生错误的原由。第19页,共31页,2024年2月25日,星期天2.2.2黑盒测试和白盒测试(续)1、黑盒测试(Black-boxTesting):指把被测软件看作是一个黑盒子,不关心里面的结构,只关心输入数据和输出结果。例如,只关心输入x=2时,输出结果是否为y=4。测试规划是基于产品的功能。也称为功能测试、数据驱动测试和基于规格说明的测试,实际上还包括性能测试。第20页,共31页,2024年2月25日,星期天输入输出黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。也被称为用户测试。第21页,共31页,2024年2月25日,星期天黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试的特点:(1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。(2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。第22页,共31页,2024年2月25日,星期天黑盒测试主要用于发现以下几类错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息访问错误?性能上是否满足用户需求?是否有初始化或终止性错误?黑盒测试的具体技术方法:边界值分析法等价类划分法因果图法决策表法第23页,共31页,2024年2月25日,星期天2、白盒测试(White-boxTesting):指将被测软件看作一个打开的盒子,研究盒子里面的代码和程序结构。测试规划基于产品的内部结构。

又称为结构测试,一般用来分析程序的内部结构。

第24页,共31页,2024年2月25日,星期天白盒测试需要完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。也被称为程序员测试。应用程序第25页,共31页,2024年2月25日,星期天白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。通常的程序结构覆盖有:语句覆盖判定覆盖条件覆盖判定/条件覆盖路径覆盖第26页,共31页,2024年2月25日,星期天?X=2

y=2xY=4X=2Y=4未知等式与已知等式黑盒白盒3、黑盒测试法和白盒测试法的比较第27页,共31页,2024年2月25日,星期天黑盒测试和白盒测试的比较P45黑盒测试:

——根据输入数据与输出数据的对应关系进行测试,而不考虑内部结构及工作情况。

——注重于软件的范围,通过划分程序的输入和输出域来确定测试用例。

——若外部特性本身存在问题或规格说明的规定有误,则应用黑盒测试方法是不能发现问题的。白盒测试:

——只根据程序的内部结构进行测试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论