软件测试与测试方法的浅析1.docx
- 文档编号:29847670
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:12
- 大小:23.90KB
软件测试与测试方法的浅析1.docx
《软件测试与测试方法的浅析1.docx》由会员分享,可在线阅读,更多相关《软件测试与测试方法的浅析1.docx(12页珍藏版)》请在冰豆网上搜索。
软件测试与测试方法的浅析1
软件测试与测试方法的浅析
中文摘要:
随着软件产业的发展,市场对软件质量的不断提高,软件测试不断受到重视。
几乎每个中大型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作。
目前,中国软件产业在产品功能和性能测试领域都存在着严重不足,中国软件企业已开始认识到,软件测试的广度和深度决定了中国软件企业的前途命运。
软件测试的重要性已成为企业生存与发展的核心。
关键词:
软件质量性能测试软件测试
Abstract:
Withthedevelopmentofthesoftwareindustry,themarketforsoftwarequalityandcontinuousimprovement,constantattentiontosoftwaretesting.AlmosteverylargeITenterpriseproductbeforereleasingitwillneedalotofqualitycontrol,testinganddocumentationwork.Atpresent,China'ssoftwareindustryinproductfeaturesandperformancetestfieldthereisaseriousshortage,Chinesesoftwareenterpriseshavebeguntorecognize,softwaretestingofthebreadthanddepthofdecidestheChinesesoftwareenterprise'sfutureanddestiny.Theimportanceofsoftwaretestinghasbecomethecoreofsurvivalanddevelopment.
Keywords:
SoftwarequalityPerformancetestSoftwareTesting
前言
随着计算机技术的迅速发展和越来越广泛深入地应用于国民经济和社会生活的各个方面,随着软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存在的缺陷和故障造成的各类损失大大增加,甚至会带来灾难性的后果。
软件质量问题已成为所有使用软件和开发软件的人关注的焦点。
由于软件是人脑的高度智力化的体现和产品这一特殊性,不同于其他科技和生产领域,因此软件与生俱来的就有可能存在缺陷。
随着软件系统的复杂性和规模的不断增加,软件工程和软件质量保证中存在的问题已越来越成为制约我国软件业快速发展的重要因素,对软件测试的忽略和运用不够是其主要表现之一。
随着人们对软件本质的进一步认识,软件测试在软件开发中的作用也越来越重要,软件测试的地位得到空前的提高。
测试是目前验证软件是否达到了预期功能的最有效方法,测试贯穿于整个软件开发的过程,因此,专业化、高效率的软件测试要求越来越高。
1软件测试的概念
1.1什么是软件测试
软件测试就是在软件投入运行之前,对软件需求分析、设计规格说明和编码实现的最终审查,他是软件质量保证的关键步骤。
通常对软件测试的定义有两种描述:
定义1:
软件测试是为了发现错误而执行程序的过程。
定义2:
软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。
1.2软件测试的意义
软件测试的意义在于保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。
一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。
测试是为了证明软件有缺陷,从而加以改正,而不是保证软件没有缺陷,缺陷是软件与生俱来的。
1.3软件测试技术的发展现状
我国的软件测试仍处于原始的初期,由于种种原因,我国的软件生产尚处于原始的“小作坊”型,离软件工程的需要,即实行工程化管理,用工业化,自动化的方法生产软件还有很大的距离。
软件测试更是属于原始时期的初期,即程序员凭自己的经验对程序进行调试。
因此,以普遍情况而言,我国目前尚无真正意义上的“测试”,这将大大影响高质量软件产品的推出和软件产业的形成。
国外的软件测试,自从上世纪90年代末出现软件工程以来,软件测试工程作为一个专门的领域得到了发展。
七十年代开始,软件测试职业化水平明显增长。
在一些机构,已对多个测试岗位定义了工作范围和目标,“测试经理”、“主测人员”、“测试分析员”和“测试技术员”已成为公认的名称。
但是,只在少数公司内软件测试成为正式职业;在大多数公司,测试是由其他专业的人员兼职。
测试工作者仍在争取与软件开发工作者有同等地位。
2软件测试的内容及测试过程
2.1软件测试的内容
软件测试主要工作内容是验证(Verification)和确认(Validation),下面分别给出其概念:
软件验证(Verification)是“评估系统或部件在特定的开发阶段是否满足该阶段开始时人们对它提出的要求”。
软件确认(validation)是“评估系统或软件部件在开发过程中或开发结束时是否满足特定要求”。
软件验证和确认是软件测试的两种技术。
软件验证是在软件开发的各个阶段,从软件技术人员的角度,测试当前的开发成果(文档,代码等)符合设计的规范,保证按照设计流程和要求进行开发,即“正确地做了事”。
软件确认是从用户的角度,测试当前的开发成果符合用户的真正需求,即“做了正确的事”。
作为软件质量控制中的重要一环,软件测试工程师应运而生。
软件测试工程师的工作就是利用测试工具按照测试方案和流程对产品进行功能测试和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对侧四方案可能出现的问题惊醒分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的差频频满足需要。
2.2软件测试的测试过程
软件测试过程按测试的先后顺序可分为单元测试、集成测试、确认(有效性)测试、系统测试、验收(用户)测试。
1、单元测试:
软件单元测试是检验程序的最小单位,即检查模块有无错误,它是在编码完成后必须进行的测试工作。
单元测试一般由程序开发者完成,因而单元测试大多是从程序内部结构出发设计测试用例,即采用白盒测试方法,当有多个程序模块时,可并行独立开展测试工作。
2、集成测试:
在将所有的单元经过测试以后,接着进行集成测试。
集成测试也称综合测试,即将已分别通过测试的单元按要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。
要求参与的人熟悉单元的内部细节,又要求他们能够从足够高的层次上观察整个系统。
集成测试阶段是以黑盒法为主,在自底向上集成的早期,白盒法测试占一定的比例,随着集成测试的不断深入,这种比例在测试过程中将越来越少,渐渐地,黑盒法测试占据主导地位。
3、确认测试:
在集成测试完成之后,分散开发的各个模块将连接起来,从而构成完整的程序。
其中各个模块之间的接口存在的各种错误都已消除,此时可以进行系统工作的最后部分,即确认测试。
确认测试是检验所开发的软件是否能按用户提出的要求进行。
若能达到这一要求,则认为开发的软件是合格的。
确认测试也称为合格测试。
4、系统测试:
软件在计算机系统当中是重要的组成部分,因此,在软件开发完成之后,最终还要和系统中的其他部分,比如硬件系统、数据信息集成起来,在投入运行以前要完成系统测试,以保证各组成部分不仅能单独的得到检验,而且在系统各部分协调工作的环境下也能正常工作。
系统测试要进行的几种必要测试:
恢复测试、安全测试、强度测试、性能测试、正确性测试、可靠性测试、兼容性测试。
5、验收测试:
验收测试时检验软件产品质量的最后一道工序。
验收测试通常更突出客户的作用,同时软件开发人员也有一定的参与。
6、测试后的调试:
软件测试和软件调试有完全不同的意义。
测试的目的是现实错误,而调试的目的是发现错误或找出导致程序失效的错误原因,并修改程序以修正错误。
通常情况是在测试以后紧接着要进行调试,调试时测试之后的活动。
3常用的软件测试方法
3.1黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。
“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
3.1.1黑盒测试用例设计方法简介
任等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。
每一类的代表性数据在测试中的作用等价于这一类中的其他值。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:
等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:
测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:
有效等价类和无效等价类。
有效等价类:
是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:
与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理
的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:
下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
3、设计测试用例:
在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
输入条件,有效等价类,无效等价类.
然后从划分出的等价类中按以下三个原则设计测试用例:
①为每一个等价类规定一个唯一的编号。
②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。
直到所有的有效等价类都被覆盖为止。
③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步。
直到所有的无效等价类都被覆盖为止。
3.2白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。
六种覆盖标准:
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。
语句覆盖每条语句至少执行一次。
判定覆盖每个判定的每个分支至少执行一次。
条件覆盖每个判定的每个条件应取到各种可能的值。
判定/条件覆盖同时满足判定覆盖条件覆盖。
条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
路径覆盖使程序中每一条可能的路径至少执行一次。
3.2.1白盒测试之基本路经测试法
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。
其中运用最为广泛的是基本路径测试法。
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次
基本路径测试法的步骤:
第一步:
画出控制流图
流程图用来描述程序控制结构。
可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。
在流图中,每一个圆,称为流图的结点,代表一个或多个语句。
一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。
一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:
if-else-then结构)。
由边和结点限定的范围称为区域。
计算区域时应包括图外部的范围。
第二步:
计算圈复杂度
圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。
独立路径必须包含一条在定义之前不曾用到的边。
有以下三种方法计算圈复杂度:
流图中区域的数量对应于环型的复杂性;
给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;
给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。
第三步:
导出测试用例 根据上面的计算方法,可得出四个独立的路径。
(一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。
V(G)值正好等于该程序的独立路径的条数。
)
路径1:
4-14
路径2:
4-6-7-14
路径3:
4-6-8-10-13-4-14
路径4:
4-6-8-11-13-4-14
根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。
3.3黑盒测试与白盒测试的区别
任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:
已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:
已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。
这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
因此黑盒测试又叫功能测试或数据驱动测试。
黑盒测试主要是为了发现以下几类错误:
1.是否有不正确或遗漏的功能
2.在接口上,输入是否能正确的接受?
能否输出正确的结果
3.是否有数据结构错误或外部信息(例如数据文件)访问错误
4.性能上是否能够满足要求
5.是否有初始化或终止性错误
软件的白盒测试是对软件的过程性细节做细致的检查。
这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。
因此白盒测试又称为结构测试或逻辑驱动测试。
白盒测试主要是想对程序模块进行如下检查:
1.对程序模块的所有独立的执行路径至少测试一遍。
2.对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3.在循环的边界和运行的界限内执行循环体。
4.测试内部数据结构的有效性,等等。
结论
随着计算机技术的飞速发展,软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存在的缺陷和故障造成的各类损失大大增加,软件的质量问题已成为人们关注的焦点,软件测试已经不是传统意义上软件产品交付前单一的“找错”过程,而是软件正常交付、应用提升的一大利器。
它贯穿于软件生产过程的始终,是一个科学的质量控制过程。
从一个软件项目的需求调研、设计、编码、验收,直到运行维护,整个过程都需要有软件测试工程师的介入和把关。
通过对软件测试方法的了解,制定完善的测试流程,做好测试设计,有效执行测试,从而顺利完成质量保证和测试任务。
做到了理论联系实际,将书本上学到的知识与具体实践充分结合起来,进一步了解了软件测方法和测试技术的发展。
加深了对软件测试方法的认识,又进一步巩固了以前所学的计算机软件开发方面的知识,提高了软件开发的水平,从而为今后在实际工作中更好的应用计算机软件测试技术打下了坚实的基础。
参考文献
[1]黄清清,软件测试与测试方法浅析!
[J]船舶电子工程2009年第一期,32-35
[2]许静,陈宏刚,王庆人,软件测试方法简述与展望[J]计算机工程应用,2008,年第13期,75-78
[3]刘超,金茂忠.软件测试过程的基本模型POCERM.[J]北京航空航天天大学学报,V01.23,2009
55-60
[4]李秋英;陆民燕;阮镰软件可靠性测试充分性问题的理论研究[J]北京航空航天大学学报2009(04)23-27
[5]安金霞,王国庆,李树芳,朱纪洪,基于多维度覆盖率的软件测试动态评价方法[J],软件学报,2010年9月,2135-2148
[6]赵斌.软件测试技术经典教程[M].北京:
科学出版社,2009:
109
[7]路晓丽,葛玮,龚晓庆,软件测试技术[M],北京:
机械工业出版社,2007:
69
[8]古乐,史九林,软件测试技术概论[M],北京:
清华大学出版社,2008:
89
[9]柳胜,软件自动化测试框架设计与实践[M]北京:
人民邮电出版社,2009:
43
[10]林宁,孟庆余软件测试实用指南[M]北京:
清华大学出版社,2010:
45
致谢
光阴似箭,转眼间,三年的大学生活即将结束,依依不舍之情难以言表,总结大学三年的生活,感觉获益还是颇多的,在这里需要感谢的人很多,是他们让我这大学三年从知识到人格上有了全新的改变。
经过一个月的忙碌和工作,本次毕业设计已经接近尾声,作为一个专科生的毕业设计由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及曾给予我帮助的同学们的支持,我想完成这个设计会是很苦难的。
在这里首先要感谢我的导师马老师。
马老师平日里工作繁多,一个人同时要顾及到十多个人的论文考核工作。
但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期检查,后期详细设计,整个过程中都给予了我悉心的指导。
除了敬佩马老师的专业水平外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。
一直觉得能师从马老师,是一种缘分,这种缘分让我懂得读书之道、学问之理。
重要的是,我需要去实践所学到的点点滴滴。
其次,要感谢大学三年来所有的老师,为我们打下软件技术专业知识的基础;同时还要感谢的同学们,感谢我的同学在这大学三年里对我生活上、学习上的帮助。
在这里,我祝愿我的每一位同学在以后的人生道路上一路走好!
也正是因为有了你们的支持和鼓励。
此次毕业设计才会顺利完成。
最后感谢我的母校辽宁对外经贸学院多年来对我的大力栽培,在这里,我开阔了见识,增长了知识,锻炼了能力。
在论文即将完成之际,我的心情无法平静,要感谢的人太多,要说得话也太多,尽管文字很无力,但我还是想用无力的语言表达我想说的话,故借写论文致谢信之机向各位可敬的师长、同学、朋友表达我最诚挚的谢意!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 方法 浅析
![提示](https://static.bdocx.com/images/bang_tan.gif)