软件测试方法研究

2020-12-05 00:09:49邢晓伟
缔客世界 2020年5期

邢晓伟

(华为技术有限公司 江苏 南京 210000)

在当前经济的发展过程中,经济全球化在一定的程度上推动了互联网科技的发展,其中计算机软件的发展取得了显著的成就。同时,人们对各种软件产品的实用性和质量的要求也在不断提高。目前,软件产品的数量相对来说比较多,但在实际的应用过程中会发现,很多产品的质量方面并没有很好的保证。因此在实际的发展过程中需要对软件的测试的方法进行详细的研究和分析,提高软件产品的质量势在必行。

1 软件测试的重要性

当前社会对现代软件的质量和效率的要求逐渐提高,因此对测试工作也提出了越来越高的要求。测试手段在发展过程中也不断创新。以前软件测试主要是以手工测试为主。手工测试具有一定的创造性和自由度,可以通过相关的测试用例的执行来验证系统的逻辑和功能。但是对于功能非常复杂的软件,手工测试会遇到以下问题:一是测试的准确性得不到一定的保证;二是测试的效率得不到提升。还有一些特殊的软件的试验,很难或不可能进行全量人工的测试。因而产生了由相关人员通过手工编写可重用的自动化脚本或工具辅助对软件进行测试,从而实现软件的自动化测试就很有必要了。

2 软件测试方法

2.1 从测试的位置角度分析

2.1.1 黑盒测试

该测试方法主要是对测试软件的各项功能进行执行并对输出结果进行相应的检查。通常也称其功能测试。在整个测试的过程中,可以将测试比作成一个不透光的盒子,只对程序的开放界面或接口进行相应的测试,忽略内部的结构和特性。在黑盒的测试过程中,为了使软件的质量得到相应的保证,我们在实际的测试过程中需要对其进行测试设计来进行测试场景的设计。主要的设计方法有:边界值、等价类、因果分析等。

2.1.2 白盒测试

白盒测试这种测试方法在实际的应用过程中也被叫做测试结构的测试方法。被测程序就像一个打开的盒子,测试人员可以看到里面的实际内容。在测试过程中根据其内部的逻辑结构进行相应的测试,进而可以详细分析测试的实际覆盖度。测试可以有效覆盖代码的每一个分支。但是其相对于黑盒测试比较抽象。没有具体的应用场景来做测试。

2.2 从使用工具与否的角度开分析

2.2.1 手动测试

手动测试是测试人员对测试步骤进行手动实现,并观察实际的执行结果。例如,结构化演练、界面的操作员测试、大型软件的手工验证。

2.2.2 自动化测试

自动化测试是基于程序语言编写的测试程序,是在传统手工测试的基础上的创新。在测试过程中,进行自动化的测试执行,实现测试系统的测试过程。为程序回归测试提供了方便,如果回归测试程序良好,则可以获得预期的测试结果,从而减少测试时间,提高测试效率。此外,软件自动测试可以重用,测试结果和内容高度一致的情况下,比如同一套软件在不同的项目上测试软件可以重复使用。

3 软件自动化测试方法的探索与应用

3.1 初始自动化测试技术

自动化测试技术是九十年代就出现的一种不算很新的软件测试技术,它取代了传统的手工测试。在最初使用这种技术时,主要是借助相关硬件来记录输入和操作。在这种操作模式下,脚本记录操作和操作数据混在一起,维护成本较高。另外,如果界面发生变化,脚本不能使用,测试人员必须重新记录,以确保软件测试的成功完成。因此,这种测试方法在实际应用中不仅效率低,而且成本高。

3.2 自动化测试脚本技术

自动化测试脚本技术是一种代码架构下的测试执行工具,以确保测试用例可读、可维护。目前,脚本主要包括以下几种类型:bat脚本、shell脚本、python脚本。其中bat脚本主要用于Windows操作系统下的自动化测试,其编写的测试脚本是bat格式的。Shell脚本是用于linux操作系统下的测试脚本,使用shell命令进行脚本编写,调用相应功能对被测系统进行测试。上述两种测试脚本都有其局限性。现在随着python语言的流行,使用python进行测试脚本的编写更加流行,它可以同时用于Windows平台和Linux平台,同时功能更为强大。

3.3 结构化测试技术

结构化测试是使用结构化的编程语言,进行软件自动化测试工具的编写。它通常会被做成通用的测试工具,在上面可以集成各种测试脚本与测试方法。目前各大软件公司均有其独立开发的软件测试工具,如华为的ecloud wind,中兴通讯的Zsmart平台等。上面集成了各种软件测试的能力,如接口测试、数据库操作、脚本预制、脚本调度、环境检查、测试用例调度,测试机管理、测试环境关机等。结构化测试使软件的自动化测试从单兵作战拓展到了多兵种组合作战。功能更为强大。

3.4 在线测试

当前随着互联网技术的飞速发展,在线自动化测试也渐渐的被各大公司所采用,其工具成熟,流程完善,适用于各种中小型企业。这种企业有很多的测试需求,但是受限于规模与投资,很难单独开发独立的测试软件与系统。而目前专门有专业测试公司开发了线上的测试平台。可以直接接入被测系统,测试工程师可以直接在线进行测试工作。极大地满足了中小企业的测试需求。

4 结论

为了保证软件的质量,我们必须对软件进行系统全面的测试,为软件各项功能的顺利实现提供可靠的保证。在迭代式开发过程中,出于对于历史功能质量保障的需求,需要应用自动化测试方法进行回归测试。自动化测试可以减少测试所需的人力和物力,并给企业带来良好的经济效益。是软件开发过程中必不可少的一部分。