首页 > 范文大全 > 正文

试论软件工程内软件测试的必要性

开篇:润墨网以专业的文秘视角,为您筛选了一篇试论软件工程内软件测试的必要性范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:软件工程内,软件测试有着非常强的必要性,本文在浅谈了对软件测试认识的基础上,对测试分类、测试对象进行了总结,最后探讨了测试的目的及原则,希望能够对软件测试工作起到一定的指导组要。

关键词:软件工程;软件测试;必要性

中图分类号:TP315 文献标识码:A 文章编号:1007-9599 (2013) 01-0250-02

1 引言

随着计算机技术不断地发展,计算机软件在我们生活和工作方面所起到的作用越来越大。对于计算机来说,软件可以看做其灵魂,一旦软件出现失效的情况,必然会引起比较大的经济损失,严重的时候还会对人的生命安全造成威胁,举例来看,1996年的Ariane 5运载火箭的发射失败就是因软件故障导致的。基于此,做好软件测试的研究不仅有其学术意义,也有着比较强的实践指导作用。

2 关于软件测试的认识

在软件开发的每一个阶段中,人员的参与都是离不开的部分,而人的工作以及人们之间的通信质量有很难做到完美无缺,这就导致了错误是不可避免的。另外,伴随着计算机控制对象越来越复杂,且软件的功能及规模也在不断的提升,这也使得错误相对而言更容易发生,比如对于Windows NT操作系统来说,其代码约为3200万行。总体来看,在软件设计阶段,人们所犯的错位是引起软件失效的主要原因,而软件缺陷的根源则在于软件的复杂性。

在确保软件可靠性以及质量的过程中,软件测试属于最为主要的手段,以当前的软件工程来看,多以结构化分析及设计作为核心,因此在开发阶段,需求分析以及设计都是以工程管理以及技术评审作为质量的保障手段,而工程管理以及技术评审又存在着主观上的缺陷,很容易遗漏错误使其延续至开发阶段。

客观来说,软件测试在发掘软件中隐藏缺陷的过程中的确有着很好的效果,以英国的SHOLIS项目来看,这一项目使用形式化方法对软件规约进行描述及证明,而且利用程序正确性证明方法对前期的很多缺陷进行排除,但是通过软件测试却依旧发现了整个过程15.175%的缺陷。

此外,随着人们对软件测试重要性的认识越来越深,其所在软件开发周期中所占的比例也越来越高,当前很多软件开发机构已经将其40%的研制力量投放到了软件测试中,而对一些比较重要的软件来说,其测试的费用往往会高达其他阶段费用的3至5倍,由此可见,不管从哪个角度出发,软件测试都是非常重要的。

3 软件测试分类

当前的软件测试技术主要可以分为动态测试以及静态测试,其中,静态测试主要是指在不执行程序代码的情况下找到程序中有可能存在的缺陷或者对程序代码进行评估的过程中,广义上看,静态测试还包括软件需求分析以及技术评审。

至于动态测试,则是通过抽样测试数据对程序进行运行以起到检查程序中存在的缺陷。在动态测试的过程中,其核心内容主要包括测试用例、运行正与以及对于程序运行结果进行验证这3部分内容,此外还包括一些数据管理、文档编制、操作规程等辅助方面的工作。

4 软件测试的对象

在软件测试的过程中,不单单进行一些比较简单的程序测试,也就是说仅对程序能否运行进行测试是远远不够的。具体来看,软件测试要贯穿在软件定义以及开发的整个过程中,因此软件测试的对象包括需求分析、系统设计、程序编码以及各阶段说明文档。此外,因软件开发过程中各个阶段之间有着非常金敏的衔接,因此如果前一阶段出现问题必然会对下一阶段段的工作造成影响,所以为了确保每一个阶段的正确性,我们要做好确认及验证工作。

具体来看,确认主要是对需求规格以及程序进行确认,这既含有静态确认,又有动态确认,其中静态确认大多数是由人工进行分析,而动态确认则是利用动态分析以及程序测试对程序执行的情况进行检查。至于验证,则主要是采取一定手段对程序执行情况进行检查,进而证明软件各阶段中的完备性、正确性以及逻辑协调性。举例来说,我们验证的对象包括测试用户需求和系统分析员报告是否想和、设计说明书和测试需求说明书是否匹配等。

5 软件测试目的及原则

5.1 软件测试目的

测试目前因立场的不同又可以分为两种,从客户角度来看,总是会希望通过测试来发现软件中的缺陷及隐蔽错误。而从软件开发者角度来看的话,则是希望产品少出现错误,对软件已经符合客户需求进行验证,在这种思路下,测试人员会使用一些导致程序失效概率小的测试模块进行测试,并对容易导致错误暴露的测试用例进行回避,而且对于有可能出现副作用的语句也并不会去刻意的检查。基于此,在程序中,还存在很多预料不到的问题,而这类问题往往要在一些比较特殊的环境之下才能够表现出来。从以上分析我们可以看出,在对软件进行测试的过程中还是要更多的站在用户角度对问题进行考虑。

5.2 软件测试原则

(1)“尽早和不断的进行软件测试”,只有时刻牢记这一原则才能够降低软件开发中由于工作多样化、人员配置复杂化所带来的不利影响。具体实践的时候,我们首先要端正态度,对各阶段技术审核要认真进行,另外,我们

还要将软件测试贯彻到每一个环节中,进而早对错误进行发现和预防。

(2)测试用例选择的过程中要有输入数据和以及和输入数据相对应的预期输出结果,具体来看,在我们进行软件测试的过程中要选择比较适合程序段的测试用例,这些用例可以对程序员所编制的程序是否存在错误进行分析,而给出预期的输出结果则可以对程序段是否存在错误进行更为快捷的判断。

(3)要避免程序员对自己的程序进行测试,在软件测试的过程中,冷静的情绪以及客观的态度是不可避免的,而人又很难对自己的劳动成果进行否定,因此在程序员对自己程序进行检查的过程中会从主观上出现偏差,导致测试结果不准确、不客观。

(4)设计测试用例的过程中要注意使用不合理输入套件,所谓不合理输入条件主要包括输入异常或者会导致异变的条件。在软件正常使用的过程中,不合理输入是不可避免的,轻则会导致运算错误,严重的时候甚至会使软件失效。

(5)对测试工作中的群集现象进行注意,针对测试过程中错误较多的程序段,要对其进行详细认真的检查,这是因为从经验上看,程序段中残存的错误于已发现的错误往往会成正比。

(6)对测试要认真执行,这是指我们要做好一个详细的规划,具体来说,规划主要包括:软件功能、输入、输出以及每一功能测试的进度安排等。

(7)对测试计划、用例、出错统计以及分析报告等进行妥善的保管,进而为日后的软件维护提供更为便捷的服务。

总体来看,在我们的工作中如果能够把握住以上原则必然能够对提升测试工作的效果起到很强促进作用。

6 结语

在软件开发工程中,软件测试属于一个重要的环节,一旦缺乏了这一环节,所开发出的产品必然难以满足用户的要求。本文关于软件测试必要性的分析还存在很多不足之处,也希望各位测试人员能够对其进行补充及指正,进而共同促进这方面研究水平的提升。

参考文献:

[1]李娇.自动测试平台Aegis的研究与实现[D].电子科技大学,2012.

[2]王犇.CGSP网格服务自动化测试技术研究与实现[D].西北工业大学,2012.

[3]韩振斌.基于网格系统的自动化测试系统的研究与实现[D].西北工业大学,2011.

[4]徐崇浪.集群系统自动化测试技术研究及其工具开发[D].西北工业大学,2010