网站首页  词典首页

请输入您要查询的论文:

 

标题 软件测试方法研究
范文

    刘宇轩

    摘 要:当今社会的软件行业发展迅速,软件产品的规模和质量都有了显著的提升。然而由于其知识密集度高、复杂程度高,不可避免会出现错误,而软件测试方法正是解决这一棘手问题的主要途径。其能够有效地降低软件产品的错误率,减少不必要的软件投資,对于软件开发有非常重要的意义。本文简要阐述软件测试的各种方法和测试过程。

    关键词: 计算机软件;软件测试方法;软件开发

    计算机的发明吹起了科技革命的号角,从一开始的计算复杂数据到今天的信息传递,计算机成为当今世界发展最为迅猛的一门科学技术。近些年,微电子技术的突破直接带动计算机硬件设备高速发展,成本大幅下降,使计算机真正进入人们的日常生活。软件作为计算机不可或缺的“灵魂”也有着重要作用。但总体看,软件技术在成本质量和技术性能方面都要低于硬件技术的发展。随着软件规模的扩大和复杂性增加,由软件发生错误导致的经济损失必然增加。当前解决这一问题的主要手段是通过软件测试来对软件的设计和功能进行最终审定。简要阐述现有的计算机软件测试方法[1]。

    1 软件测试方法

    早在1983年IEEE就在软件工程标准术语中给出了软件测试的定义:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”[2]。即以发现和消除软件内部隐藏的问题为核心,为提高软件的质量所采用的方法。软件测试方法的分类有很多种,以测试过程中程序执行状态为依据可分为静态测试(Static Testing,ST)和动态测试(Dynamic Testing,DT);以具体实现算法细节和系统内部结构的相关情况为根据可分黑盒测试、白盒测试和灰盒测试三类;从程序执行的方式来分类,可分为人工测试(Manual Testing,MT)和自动化测试(Automatic Testing,AT)。

    1.1 静态测试和动态测试

    (1) 静态测试。

    静态测试的含义是被测程序不运行,只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误。即通过对软件的需求规格说明书、设计说明书以及源程序做结构分析和流程图分析,从而来找出错误。例如不匹配的参数,未定义的变量等。

    (2) 动态测试。

    动态测试与静态测试相对应,其是通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析,同时分析运行效率和健壮性能等。这种方法可简单分为三个步骤:构造测试实例、执行程序以及分析结果。

    1.2 黑盒测试、白盒测试和灰盒测试

    (1) 黑盒测试。

    之所以被称为黑盒测试是因为可以将被测程序看成是一个无法打开的黑盒,而工作人员在不考虑任何程序内部结构和特性的条件下,根据需求规格说明书设计测试实例,并检查程序的功能是否能够按照规范说明准确无误的运行[3]。其主要是对软件界面和软件功能进行测试。对于黑盒测试行为必须加以量化才能够有效的保证软件的质量。

    (2) 白盒测试。

    其与黑盒测试不同,它主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否按照设计规格说明书的设定进行,检查每一条通路能否正常工作。白盒测试是从程序结构方面出发对测试用例进行设计。其主要用于检查各个逻辑结构是否合理,对应的模块独立路径是否正常以及内部结构是否有效。常用的白盒测试法有控制流分析、数据流分析、路径分析、程序变异等,其中逻辑覆盖法是主要的测试方法。

    (3) 灰盒测试。

    灰盒测试则介于黑盒测试和白盒测试之间。灰盒测试除了重视输出相对于出入的正确性,也看重其内部表现。但是它不可能像白盒测试那样详细和完整。它只是简单的靠一些象征性的现象或标志来判断其内部的运行情况,因此在内部结果出现错误,但输出结果正确的情况下可以采取灰盒测试方法。因为在此情况下灰盒比白盒高效,比黑盒适用性广的优势就凸显出来了。

    1.3 手动测试和自动化测试

    自动化测试,顾名思义就是软件测试的自动化,即在预先设定的条件下运行被测程序,并分析运行结果。总的来说,这种测试方法就是将以人驱动的测试行为转化为机器执行的一种过程。对于手动测试,其在设计了测试用例之后,需要测试人员根据设计的测试用例一步一步来执行测试得到实际结果,并将其与期望结果进行比对 [4]。

    2 软件测试过程

    软件测试并不等同于程序测试,因为软件测试是在软件定义与开发的整个过程中进行的。软件开发是一个从上到下,分步细化的过程。而测试过程则与其不同,测试过程是从下而上,逐步集成的过程。软件测试过程可以分为四个主要步骤。即单元测试→集成测试→确认测试→系统测试。

    (1) 单元测试。

    单元测试是正确检查软件设计中的最小单位,也可理解为程序模块。其目的是为了发现各个模块内部的错误。单元测试的工作原理是通过测试单元模块中所有数据的完整性和正确性来检测其出现的错误。同时利用模块接口处流动数据和模块算法来检查操作数据库中各个字段所储存的信息的准确性和完整性。在这里完整性不仅包括长度与位数,也包括表中状态的正确性[]。

    (2) 集成测试。

    单位测试全部完成之后,就需要进行集成测试。集成测试又常常被称为联合测试或组装测试。其原理是将所有模块根据设计和需求合成一个系统,借助之前设计好的文档进行测试,内容包括功能性、可靠性、易用性、效率、维护性和可移植性中有关的部分。

    (3) 确认测试。

    确认测试也可以叫做有效性测试,它是用于检查软件的性能、特性和功能能否满足用户的需要。其大多采用的方法是先清空数据库,然后在某个开发环境或模拟实际环境下进行测试,以此来确定是否满足客户的需求。

    (4) 系统测试。

    作为最后一步的系统测试是通过测试软件将自身作为整个计算机系统的一个元素,并且和工作人员、计算机硬件、外设、一部分能够支持的软件以及数据等其他元素结合在一起,对计算机进行相关的集成测试和确认测试。其主要目的是通过对比系统需求来发现系统设定和软件之间是否存在相互矛盾。

    3 结语

    综上所述,软件测试能够有效降低软件的错误,提升软件的质量。因此软件测试在软件开发中起着不可替代的作用。但是,其最大的局限性就是软件测试费用相对较高。由此来看,改进传统的测试方法或者开发新的测试方法来降低成本和提高软件测试效率,有着十分重要的现实意义。

    参考文献:

    [1]赵瑞莲. 软件测试方法研究[D]. 中国科学院计算技术研究所, 2001.

    [2]IEEEComputerSociety. IEEE standard glossary of software engineering terminology[M].The Institute of Electrical and Electronics Engineers, 1983.

    [3]Kaner C, Falk J L, Nguyen H Q. Testing Computer Software, Second Edition[M]. John Wiley & Sons, Inc. 1999.

    [4]戴凌宸, 张朕荣, 黎丰泽.传统的软件测试方法浅析[J].科技风, 2011(16):136-137.

    [5]杨培培,赵海生,李振星.实用软件测试方法研究[J].计算机应用, 2015(s1):166-167.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/11 23:35:42