软件测试技术与测试管理

(整期优先)网络出版时间:2020-08-04
/ 2

软件测试技术与测试管理

王继娜、刘洋、张宏宇

辽宁省先进装备制造业基地建设工程中心

辽宁省信息安全与软件测评认证中心) 辽宁省 沈阳市 11000

摘要:软件测试是软件质量保证的重要手段,可通过软件测试发现软件缺陷,以便修改缺陷,提高软件质量,软件测试不仅需检测工具,更需测试人员的判断,对业务知识的掌握程度和测试用例的设计能力、知识及经验。基于此,本文详细探讨了软件测试技术与测试管理。

关键词:软件测试;测试技术;测试管理

对软件开发而言,软件测试起着不可替代的作用,它能发现程序中的错误,同时执行程序,通过帮助识别错误来完成开发,对于计算机软件的中间或最终版本,实现了软件整体或部分的完全度及正确度,是SQA中的一个关键子域。

一、软件测试概

软件测试是指软件产品在投放市场前,对软件产品所进行的需求分析,设计的规格和编码等内容的复审,是确保软件产品质量的关键性步骤。

1、必要性。从软件测试的功能角度而言,其具有三方面作用,其中正确性是最为基本的测试保障,脱离了软件的正确性保障任何测试都无意义;而完整性则从代码覆盖率、功能实现的完整性等角度予以探讨;质量性是通过分析、测试软件性能,获得软件运行的可靠性保障。通过对编制的软件进行测试可发现软件运行错误,实现有效程序代码高覆盖率,对软件性能获得初步的了解,是交付给用户最终程序的质量保障。甚至在一些开发领域,“测试先行”的做法也大量存在,根据程序文档编制好测试用例,以测代写的程序编制过程,从而规范了程序开发过程,避免无效代码的出现。总之,软件测试十分关键,应重视软件测试对程序开发质量的保障。

2、目的和流程。随着科技的发展和智能电子终端的普及,各种应用软件蓬勃发展起来,我国的应用软件技术也高速发展起来。但相对国际市场而言,我国的应用软件技术水平还需提高。我国与国际市场产生差距的主要原因是软件测试技术还不成熟,无法保障软件产品的最终质量。当前,提高我国软件产品质量的主要途径是提高软件测试能力。软件测试的目的在于掌控软件产品的质量,软件测试人员的基本目标是发现软件中的错误。通常,软件测试应由独立的产品评测部门或小组负责,严格按软件测试流程进行,首先制定测试计划、测试方案、测试规范,然后实施测试,对测试记录进行分析,并根据测试分析结果撰写测试报告,交给开发人员,开发人员再根据测试报告上的问题针对性修正完善。软件测试并不仅仅只能找出错误,还可通过分析错误产生的原因及分布特征,帮助软件开发人员确定软件的可靠性,以及检验软件的功能与用户需求是否相符合。

二、软件测试技术的应用与优势

1、降低成本,提升质量。软件测试技术通过数据采集及测试分析,对软件系统的性能与速率进行准确评估,帮助设计人员找出软件存在的漏洞与问题,提高设计人员的开发效率,同时,帮助使用者评估软件产品的安全等级。软件测试技术可帮助软件系统的设计人员了解项目中的问题,提高软件系统的整体质量,降低软件开发成本,有利于提高软件系统的核心竞争力。

2、提高软件等级。计算机信息技术的发展迅猛,已发展出了很多功能全面、结构复杂的软件产品,这些庞杂的系统带来了大量的网络安全隐患,软件测试技术能提高软件的稳定性,保证网络通信与计算机数据库的安全,同时,软件测试技术还能促进软件基础设施的发展。计算网络的发展给软件系统带来了更大的挑战,计算机网络呈现的开放性,导致计算机网络更加的依赖软件的维护。软件测试技术可验证软件是否达标,确保网络底层的软件产品功能、性能等要素。同时,网络也需具备一定的软件检测能力,判断软件的安全性,从而保证软件的安全。

三、软件测试的相关技术

1、白盒测试。白盒测试关心软件内部逻辑结构、测试覆盖率,是由逻辑驱动的测试,也称结构测试或逻辑驱动测试。它知道产品内部工作过程,检测产品内部动作是否按规格正常进行,按程序内部的结构测试程序,检验程序每条通路是否都能按要求正确工作。

白盒测试期望达到的目的是:1)所有独立路径至少都能测试一遍;2)所有逻辑判断都能测试True和False两条路径;3)所有循环结构都能测试到边界和循环域内的情况;4)所有的内部结构都能被测试以确保其有效性。

白盒测试主要方法包括:基本路径覆盖测试和控制结构测试。

2、黑盒测试。它又称为功能测试,数据驱动的测试或基于规格说明书的测试。黑盒测试可从软件的功能为起始,根据功能的需求说明测试所用的方式,并依据该方式的需求来运行被测试的程序。从名字上来解释,就是将软件看成是不透明的黑盒子,对盒子内部的结构不理会,只关注软件的实用功能,并对这些功能进行测试。

3、静态测试和动态测试技术。通过计算机进行辅助测试可称之为区别于机器运行的静态分析法,其通过人工检测技术实现对程序的有效检测。因此相比于其他检测技术,静态分析测试法具有独特的查错优势、分析功能,可及时高效的发现文档中存在的问题。利用静态测试进行代码校验,具有关键性、自动化特点。但在运行中的程序难以利用此技术进行检测,即利用静态检测技术难以获取程序执行结果。

对运行中的程序进行测试可称之为动态测试技术,输入测试用例,对测试结果与需求进行对比,观察其相符性,进而实现对程序的准确判断,保证程序的稳定性。进行检测时,动态测试技术应用较为广泛,不仅可应用于集成测试单元测试中,同时还可应用在验收测试、系统测试中,测试效果显著。但动态测试不具有明确文档现存问题的局限性,必须要待程序代码完成后才可实施检测,问题感知具有迟缓性,一旦发现问题,需对编码重新设计,从而增加了不良质量成本。

4、自动化测试技术。基于持续拓展软件应用范围和扩大软件系统规模的影响下,软件系统的测试变得日益困难化,这样一来,传统的测试业已难以实现实际测试的要求,因此出现了自动化测试技术。自动化测试技术是基于预设基础实现应用程序与系统的运行,以及对运行结果进行有效评估,这涵盖异常条件及正常条件。自动化分析的重点在于自动化的用例生成、测试脚本技术、测试框架技术等。同时,借助资料基于C语言显示C-ATFM模型,针对对象集成环境,借助嵌入的源码,对软件的一些指令、代码、词法等进行有效研究。

四、软件测试管理

1、采用B/S结构。B/S结构能在网络服务器中实现对软件的测试,促进软件测试的自动化和现代化,测试人员可在任何时间和地点进行软件测试,打破了传统软件测试管理在时间和空间上的局限性。测试人员可利用互联网登录到软件工作页面中,输入测试人员的账号与密码登录网页进行软件测试,给测试人员的工作带来了很大便利,提高了软件测试效率和质量。

2、资源共享。在软件测试管理过程中,软件开发负责企业会提供以往测试用例数据库资料和软件缺陷的数据库,负责软件开发的相关技术人员可申请访问权限,从而共享和使用这些资料。通过对以往软件管理成功经验的吸取及对失败经验的反思,才能进一步开发出优质的软件,提高软件测试技术,并提高软件测试管理水平。

3、加强工作人员的沟通。软件测试人员可在任意时间地点查看测试资料、成功用例和软件缺陷等信息,可针对软件测试信息数据进行讨论,并积极发表自己的意见,从而有效增强软件测试相关工作人员的团队能力和协作精神,营造一个良好的工作氛围。

综上所述,软件测试是软件生命周期中的关键环节,是保证软件质量的关键因素,同时也是软件工程的组成部分之一,另外,软件测试也是软件开发人员和用户验证软件产品是否合格的重要手段。

参考文献:

[1]崔哲.软件测试技术与测试管理[J].电子技术与软件工程,2018(04):40

[2]赵坤.软件测试技术与测试管理研究[J].电子测试,2016(23):141+134

[3]黄斌.探究软件测试技术与测试管理[J].电脑与电信,2016(08):107-109