孙少英
软件可靠性测试方法探析
孙少英
广东省电信规划设计院有限公司,广东 广州 510630
随着信息技术的不断发展,软件技术、计算机硬件工程也在不断发展,人们的生活以及工作过程中对计算机的依赖也越来越强,而且各种技术创新也使得计算机的功能变得越来越强大。计算机软件在计算机功能的实现过程中发挥了十分重要的作用,必须加强对计算机软件可靠性的研究,提高计算机性能。对计算机软件的测试方法进行分析,旨在确保计算机软件运行更加可靠、稳定。
软件测试;可靠性测试;方法
计算机功能的实现必须依靠各种软件。随着计算机信息技术不断发展,软件工程也逐渐发展起来,各种软件的应用使计算机的功能越来越强大,而且能够解决多种多样的问题。在人们的生活中,计算机的使用越来越广泛。计算机软件作为影响计算机功能的主要原因,在计算机管理过程中必须做好软件的研发和测试,对软件的内容、功能等进行开发与设计,在软件投入应用之前,必须做好相应的测试,确保整个软件的性能、结构等都是完整的,以防软件使用过程中出现错误。计算机软件测试的重点内容是软件的可靠性,其可靠性的高低直接决定了软件的功能是否真正、全面实现,软件可靠性越高,其实现软件设计、开发之初的目标也就越近,才能真正解决实际问题。
目前,随着软件技术的发展及人们对计算机需求的增多,软件开发的类型越来越多,计算机能够实现的功能也越来越强,与之相适应的,计算机软件也越来越复杂,对软件可靠性就提出了更高的要求。
计算机软件的可靠性主要包括两个方面的内容。(1)在规定的时间内,运行软件的计算机如果能够正常运行,不会失效,则计算机软件可靠性符合要求;如果引起计算机运行失效,则软件可靠性不达标或者很低。(2)在规定的时间内,如果运行软件的计算机能够完成预设的功能,则软件可靠;如果不能完成预设的功能或者完成部分功能,则说明软件的可靠性低。
为提高软件可靠性,使运行软件的计算机在规定的时间完成预设的功能,需要对计算机软件进行测试。
软件的可靠性测试,是软件开发过程中的重要内容。软件可靠性的影响因素有很多,如人的行为,特别是技术人员在操作软件时的行为,还有软件运行的环境,都能影响到软件测试的可靠性。对软件的可靠性进行测试,具有十分重要的意义,可以在软件投入使用之前就立即解决软件中的问题,防止有问题的软件流入市场。
1.2.1 解决影响软件可靠性的问题
在软件设计过程中难免会出现一些客观和主观因素,对软件的性能、结构等产生影响。在软件设计过程中需要满足一系列条件。相对而言,比较客观或者不易改变的条件有计算机系统。计算机系统相对而言,是不会短时间内改变的;比较主观或者容易改变的条件,指的是外部的输入,由于输入的内容随时可能变化,因此属于动态变化的条件。在测试软件可靠性的时候,可以首先将一些比较明显的问题暴露出来,然后将一些不明显的问题暴露出来,那些发生的概率较高、最为明显的缺陷对软件的可靠性的影响最大,通过软件的可靠性测试,可以及时找到问题的原因,并且解决这些问题,以提高软件可靠性[1]。
1.2.2 验证软件的可靠性满足要求
软件可靠性是软件正常投入使用的重要指标,不管什么软件,均须通过可靠性测试达标才能使用。软件的可靠性测试,是了解软件可靠性指标的重要方法和手段。通过软件可靠性测试,如果满足要求,则投入使用;如果测试后发现可靠性不能满足要求或者不能完全实现预设功能,则需要对软件程序部分修订或者全部重新设计,最终实现可靠性的提高,满足投入使用的要求。
1.2.3 预计软件可靠性水平
软件可靠性测试是软件设计过程中的重要内容,可以实现测试软件的真实可靠性与软件设计之初预设的可靠性之间的差异,真正了解软件的可靠性程度。
软件测试是了解软件的设计内容、设计结构,并且对软件的缺陷进行解决,以提高软件功能性和完整度的过程,是软件设计中十分关键的步骤。软件测试的结果直接决定了软件的处置方式。如果可靠性测试合格,则可以安排软件上市投入使用;如果测试不合格,则需要进行整改,严重的时候需要花费较多时间进行修改,甚至可能导致整个软件不能使用,整个开发项目终止。因此,在软件投入使用之前,必须加强软件可靠性测试,得到准确、真实的测试结果。随着软件开发行业对软件测试重视度的提高,软件测试水平逐步提高,但依然存在一些问题,导致软件测试结果不够准确,测试过程不够合理,影响了软件技术的发展。
首先,在传统的思维中,人们认为软件测试是在软件开发之后进行的,有一个时间先后顺序。但在实际软件开发过程中,软件测试是和软件开发同时进行的,软件设计开发必须有软件测试。软件设计开发一段程序需要立即进行软件测试,确保已经完成的程序是正确的、可靠的。但是某些技术人员的思想观念比较传统,依旧将软件测试和开发过程分开,从而导致整个软件几乎是在设计完成之后才出现一些问题,此时要对软件的问题进行查找和解决的难度就会很大,这对于软件测试工程的开展有很大影响[2]。
其次,在软件测试过程中,一旦发现了软件中的问题,一般都会将责任归咎于软件测试人员,或者完全归咎于软件设计和开发人员。这也是不正确的,因为软件测试过程中影响测试结果的因素有很多。当软件在测试过程中报错的时候,应考虑多方面因素,查找相应的原因之后再确定问题出在哪一个环节,以及是谁的责任。
最后,软件测试工作的要求较低,测试人员的水平不高。在我国传统的软件技术发展中,软件设计、开发才是重中之重,多数软件开发企业重视软件开发设计,投入更多的人力、物力到软件开发设计,而忽视了软件测试的重要性,而且测试人员的数量也比较少,有的时候甚至没有设置专业的测试岗位,由程序设计人员直接担任测试人员,程序的设计和测试都由一个人完成,从而使得测试结果不准确。技术人员在开发的时候形成了思维定式,测试时也很容易受到自己的思维定式的影响,导致不能很好地分辨出软件的问题。
为确保软件测试的顺利进行,得到可靠的数据指标,必须坚持一定的工作原则。第一,要及时测试,软件可靠性测试和软件的开发同步,不能分割,尽量在一个子项目、子模块的设计结束之后就立即进行测试,确保每一个子模块的内容都是正确的、完整的,从而提高软件的性能。第二,完整性。软件测试过程具有整体性和连续性,软件程序可分段测试,但软件的测试结果应是整体性的,实现的功能也应是软件整体的功能。第三,科学性。在对软件可靠性进行测试的时候必须确保科学、客观,采用科学的方法进行测评,而且必须客观,不能用主观心态来评价软件的可靠性,更不能随意测评,防止测试结果出现误差,造成较大的损失[3]。
3.2.1 白盒测试
常见的软件测试即白盒测试。白盒测试过程中,需要测试人员对软件的程序内容、程序结构等方面都比较熟悉,根据软件的逻辑结构、编码内容等进行测试。由于测试人员能够看到软件程序设计的结构和内容,因此可以检查程序的逻辑性是否正确,可以对软件的内容进行全面检查,发现其中的错误。为了对软件进行测试,还需要设计相应的测试例子。这些例子的设计也是根据软件程序的内容来确定的。
白盒测试过程中,软件程序处于运行的状态,通过测试软件运行的情况及运行结果测试被检测软件的设计执行状况以及执行路径等等,并实现对路径的跟踪,从而实时发现软件程序的问题。
3.2.2 黑盒测试
黑盒测试的主要内容是软件设计的功能。在黑盒测试过程中,测试人员可以不了解软件程序的逻辑结构、编码内容等等,只需要软件开发设计人员给出的软件介绍或者说明文件,就可以找到软件的基本功能。软件对于测试人员来讲就好像一个“黑盒”。黑盒测试的主要目的是验证软件预设的功能是否全面实现,其测试角度侧重用户体验。测试的主要内容有:软件设计的功能、性能、余量、强度、边界等内容。
在当前软件测试中,软件开发商更倾向于黑盒测试,其优点是减少测试人员的主观因素的影响。测试人员并不知道软件的内容、内部结构,测试的时候也需要更多地考虑用户的体验,但白盒测试也有其优势。所以在测试的过程中最好做到合理分配,全面结合黑盒测试与白盒测试,充分发挥各自的优点,侧重黑盒测试,合理、科学分配黑盒、白盒测试方法的比例,实现对软件的整体性、全面性测试,从而收获可靠性指标。
综上所述,软件可靠性是软件的一个重要参数,可靠的软件产品才有更大的应用价值。软件测试在软件开发过程中具有十分重要的作用,必须积极将软件的开发和测试结合起来,做到开发与测试同步,不断提高软件的可靠性,使软件的功能更完善、结构更完整。
[1]戴艳芳. 软件可靠性与测试方法探析[J]. 软件导刊,2012,11(11):30-31.
[2]尚艳玲,张云锋. 软件可靠性测试方法研究[J]. 现代计算机:专业版,2007(6):126-127.
[3]于琛琛,刘瑞方. 软件可靠性测试方法探析[J]. 国防技术基础,2009(11):30-33.
Analysis of Software Reliability Test Method
Sun Shaoying
Guangdong Planning and Designing Institute of Telecommunications Co., Ltd., Guangdong Guangzhou 510630
With the continuous development of information technology, software technology and computer hardware engineering have also been continuously developed. People’s lives and work processes are increasingly dependent on computers, and various technological innovations have also made the functions of computers more and more powerful. Computer software plays a very important role in the realization of computer functions. It is necessary to strengthen the research on the reliability of computer software and improve the performance of computers. The paper analyzes the test methods of computer software to ensure that computer software runs more reliably and stably.
software testing; reliability test; test method
TP311.52
A