当前位置:文档之家› 软件测试技术理论与方法高效率化探究

软件测试技术理论与方法高效率化探究

软件测试技术理论与方法高效率化探究
摘要:近年来,随着软件系统规模的不断扩大,软件的功能也随之逐
渐增强,并且软件的复杂性也变得越来越高,使得软件测试的难度大
大增加。在软件开发中,软件测试是其中不可或缺的组成部分,同时
也是软件工程极其重要的一个分支,长期以来受到了计算机应用界与
计算机学术界的高度重视。为了充分确保软件的质量,并提高软件的
可靠性,研究软件测试方法和测试技术,至关重要。针对软件测试技
术的研究现状,对软件测试技术理论与方法高效率化进行了深入探
究。
关键词:软件开发;软件测试;高效率化
0引言
在软件的开发过程中,不可避免地会遇到许多复杂问题,同样地,
在软件的运行中也会产生各种各样的错误。尽管软件运行的每个生命
阶段和各个模块都需要进行严格检查,进而尽早发现错误并加以纠
正,然而,这也无法真正解决所有的问题。如果在软件的测试阶段能
及时发现问题,那么就能有效地避免恶劣后果的发生。软件测试的目
的就是尽可能地在软件投入运行前发现其中的错误。由此可见,研究
软件测试技术,有着十分重要的现实意义。
1软件测试的意义
将软件开发出来以后,在将其投入运行前都必须进行相应的系统
测试,以便充分保证软件与客户的需求相符。软件测试是开发软件必
不可少的重要环节,同时也是对软件的性能及质量与用户要求相符合
与否的检验。就软件测试而言,通常对于不同的立场有着不同的测试
目的,一般软件的开发者希望借助于软件测试能够表明软件真正满足
规格要求,而如果站在用户的立场来看,软件开发者则希望能够借助
一定的方法和技术尽可能早地将软件产品中所存在的缺陷及错误找
到,以便于考虑接受此软件与否。实际上,软件测试仅仅能够证明软
件是否存在缺陷和错误,但是却无法证明软件是否完善。
2传统软件测试中存在的问题
2.1利用的自动化测试较少,难以保证测试的充分性
由于软件测试有着较大的工作量,再加上软件逻辑路径的组合
性、软件需求的不完整性以及输入数据结果的多样性和大量性等诸多
因素的影响,往往使得非常简单的一个程序,都不得不对所有的逻辑
路径加以探试,而验证所有的结果和所有输入数据是极其困难的。比
如,对于相对较为简单的程序,要将两个整数最大的公约数求出来,
两个正整数为输入的信息,但是如果测试整个整数域的所有数字,则
是一个根本无法完成的任务,但在整个软件过程中测试是极有可能借
助于计算机进行自动化的一种工作,在需求细致注意力、非智力创造
性以及操作重复性的测试工作中,只有计算机能够替代人类加以完
成。企业在此方面的投资,往往会对开发工作的整个周期、成本和质
量带来直接影响,而在实际的应用过程中,特别是我国国内,极少使
用自动化测试工具,软件测试即便得以重视,也是在重复性的测试上
浪费过多的时间,使得测试的结果与预期的效果相差甚远,软件的质
量无法得到充分的保证。
2.2测试的起步时间较晚,未参与到开发的整个流程中
传统的软件测试流程一般是在开发软件中首先进行少量的单元
测试,接着在软件开发结束时期进行大量的、集中的测试,主要包括
性能和功能的系统测试以及集成测试。单元测试被开发人员经常性地
以进度要求、时间压力等理由进行推诿,使得单元测试无法真正地进
行和实施,造成大量软件错误的发生,而只有到了后期系统测试阶段
才可以发现这些问题。通常发现错误的时间越晚,问题解决就越要付
出更多的代价,并且项目失败的风险也会越高。与此同时,在软件开
发的整个过程中,相关管理人员对软件质量情况缺乏必要的控制和了
解,进而在很大程度上将会使项目管理的难度加大。有关统计数据充
分表明,延期交付的软件项目大约有90%,并且软件交付使用以后,
必须长时间地将新发现的问题加以修改,在系统稳定性的维持上也往
往花费较长的时间。这些问题基本上都是软件测试起步时间较晚所导
致的结果,没有将软件测试放到每一个产品的开发阶段。
2.3测试实际与测试理论脱节,缺乏可操作性
绝大多数软件测试的结果都属于无形资产,这种无形资产的价值
是无法衡量的。很多人认为优秀的软件就是具有娴熟的编程技巧、高
超的程序设计、成熟的软件过程,但是几乎没有人想到优秀的软件是
经过了全面和严格的软件测试,软件测试经常性地被人们遗忘。对测
试价值的过多强调会导致测试与开发相互对立,因此,许多产品经理
会将测试的功效弱化,而趋向于一种平衡的构建,这些问题造成产品
开发中测试处在尴尬的地位。传统的软件测试却忽略了这些问题,传
统软件测试的技术理论是在理想化的前提下所建立的,错误地认为任
何开发流程都是绝对规范的,全部都有详实的可参考文档,未切实地
考虑到进度及时间的压力,使得现有的软件测试技术理论理想化程度
偏高,严重脱离了软件开发的实际。
3软件测试管理及组织
现阶段,软件开发的复杂度逐渐变得越来越高,因而寻找软件中
的错误与缺陷便困难重重,确保软件的质量受到越来越多人的高度重
视。所以,为了尽量全面地发现软件中的错误,加强测试工作的管理
及组织变得尤为重要。
软件设计结束后,应当开始准备软件测试工作,一方面必须有科
学的测试大纲,测试大纲要由熟悉软件设计的相关设计人员进行编
写,将测试的范畴、测试的内容、选用合理的测试用例以及通过的准
则加以确定,以便展开全面性的系统测试;另一方面,在制定好测试
大纲后,就应当开始进行具体测试环节的组织实施,初步验收所开发
的程序以后,应当由测试人员对软件测试加以组织,具体的组织主要
包括以下环节:
(1)准备工作。
(2)审查代码。
(3)测试模块。开发软件的过程通常将系统划分成相对独立的
几个功能模块,所以应当首先局部测试这些功能模块,将模块中所存
在的逻辑错误和编码措施先排除,一般模块相对较小,因而程序的复
杂度也比较简单。软件测试人员应当借助于模块说明源程序,对模块
的逻辑结构和模块的输入输出条件加以全面了解,要对结构测试的用
例加以采用,最大限度地实现彻底测试,然后采用功能测试的用例,
使其能够响应及鉴别任何不合理或者合理的输入。(4)系统测试。对
各个模块进行局部测试后,应当组装各个模块,检查这些模块是否能
够根据预期的要求实现整体功能。所谓系统测试指的是按照设计的要
求把模块加以组装,然后进行系统测试,这样做的目的在于对各个接
口问题进行检查。
(5)验收。系统测试和模块测试完成以后,此软件便已成为完
整的一个软件系统了,功能模块的接口错误和内部错误已基本排除,
再就是对该软件与用户预定的要求符合与否进行验证,也就是验证软
件的有效性,完成最后的验收任务。将以上的软件测试工作完成后,
软件便基本上能够满足开发的要求,这时就可以把软件提交给用户。
4软件测试人才培养
近年来,随着我国软件行业的飞速发展,软件产品的质量管理及
质量控制已逐渐成为企业发展和生存的核心内容。为了从根本上保持
软件出厂阶段的最佳状态,绝大多数企业在发布软件产品前都必须进
行大量的质量控制工作。在控制软件质量的过程中,非常关键性的环
节便是拥有高水平、高素质的软件测试人才,因此,对当前紧缺的软
件测试人才进行培养,已经成为我国诸多软件企业有待于迫切解决的
一个问题。所以,一方面,软件企业应不断加大人才培养的投入力度,
为软件测试人才的培养提供坚实的后盾;另一方面,软件企业应当定
期对在职软件测试人员进行专业知识的培训及教育,更新软件测试人
员的知识和技能,提高软件测试水平和职业素质,使他们能够更好地
胜任软件测试工作,保证软件产品的质量。此外,软件企业还应当积
极响应时代的号召,紧跟时代发展的步伐,想法设法地引进现代化高
素质的软件测试人才,使他们能够全面带动企业的发展。只有这样,
才能够实现软件测试技术理论和软件测试方法的高效率化,才能够保
证软件产品的质量。
5结语
总而言之,软件在人们的现代化生活中所发挥的作用越来越重
要,软件几乎被广泛应用于各行各业,软件的质量问题无疑成为当前
软件行业至关重要的问题。正是由于软件所具备的特殊性,使得软件
在其开发过程中不可避免地存在缺陷和错误,而要想保证软件的质量
则需要强有力的软件测试。从总体上来看,软件测试逐步经历了从不
重视到普遍关注、从无到有的发展进程,但目前的软件测试理论水平
与技术水平却无法切实满足软件行业发展的迫切需求,这极大地制约
了软件产业的健康发展。特别是我国软件测试起步较晚,所以,我们
必须尽快将软件测试纳入软件理论研究和软件技术研究的日程上来,
通过软件测试尽可能多地发现软件产品中所存在的问题,从根本上保
证软件产品的质量。
参考文献:
[1]郭晓丹.软件测试技术理论与方法高效率化探讨[J].黑龙江科
技信息,2011(10).
[2]李金鹏.软件测试技术理论与方法高效率化研究[J].数字技术
与应用,2012(2).
[3]任洪丽.基于形式化方法的软件测试技术研究[D].无锡:江南大
学,2011.

相关主题