“互联网+”时代软件测试新技术研究

2017-04-14 03:12福建船政交通职业技术学院吴小惠
电子世界 2017年20期
关键词:单元测试软件测试互联网+

福建船政交通职业技术学院 吴小惠

“互联网+”时代软件测试新技术研究

福建船政交通职业技术学院 吴小惠

软件测试是伴随着软件研发诞生的,在最初的软件研发过程中,软件系统的功能简单、规模较小,程序员开发较为随意,此时软件测试的人员少,测试介入的时间也较晚,往往等到整个系统代码设计完毕才进行测试。因此,本文从不同的角度理解软件测试,针对软件产品进行确认和验证,可以尽早地为软件测试工作提供参考,准确评估软件的质量是否达到需求。软件测试历经数十年的研究和实践,已经取得了较大的成就,主要技术包括V模型、X模型、复用模型等技术,可以为软件开发提供强大的单元测试、集成测试、系统测试、验证测试功能,覆盖了软件研发的每一个环节,确保软件的可靠性、完整性和正确性。

软件测试;V模型;迭代测试;回归测试;复用模型

1.引言

随着云计算、大数据、光纤通信等技术的快速发展和改进,人们已经进入到了“互联网+”时代,电子政务、物流仓储、电子商务、金融银行、电力通信等领域已经开发了许多智能化、自动化软件,经过多年的普及和使用,这些软件的功能越来越多,软件的规模也越来越大,软件构成变得更加复杂。为了保证软件的可靠性、正确性,软件测试成为一个重要的保障工作[1]。

软件测试是软件工程的重要组成部分,也是软件质量的有力保障。软件测试主要是指利用最为先进的测试工具、测试用例等发现软件中存在的错误,将这些错误检测出来之后,可以定位错误位置,将软件代码修改正确[2]。经过多年的发展和普及,软件测试已经不仅仅是发现软件中的错误,同时更可以体现各类型的测试技术和方法,提高人们对软件产品质量的信心[3]。目前,软件开发是工程师的主要工作,人们无法预知软件中会有多少错误存在,即使经过测试,依然无法保证软件系统中不存在错误,但是软件测试可以尽可能地降低系统出错的概率,避免系统出现的问题产生严重后果[4]。软件测试一经诞生就得到了许多软件公司、科研院校的研究和改进,研究成果非常丰富,目前常用的软件测试模型包括V模型系列、X模型系列,同时引入了机器学习、模式识别等智能算法,实现了软件测试工作的智能化、自动化和共享化,更加有效地提升了人们对软件产品的信心,保证软件系统能够正常可靠运行[5]。

2.“互联网+”时代软件测试应用

软件研发是一个系统的、复杂的、长周期的工程项目,需要很多的人力、物力和财力,涉及到软件需求分析、可行性分析、总体设计、详细设计、编程实现、部署运行、升级维护等多个阶段,研发过程非常复杂,规模非常庞大,每一个阶段的工作都由不同的人完成,因此非常容易出现各类型的纰漏[6]。为了降低软件面临的风险,提高软件产品的质量,必须引入软件测试。

本文对现有软件测试技术进行总结,从深层次挖掘现有软件内在问题及缺陷,这样就可以从本质上指出软件测试作用和改进方法。目前,应用软件是由人进行开发的,应用软件理论框架模型也明确指出了软件运行是一个动态的、构件化的系统,这个系统由不同的模块组成,在一起时就会存在不适应的可能,因此软件固有的缺陷是无法清除的,软件测试可以在一定程度上减少软件缺陷或错误数量,降低软件出错的概率,确保软件的正常和可靠运行。

软件测试的主要流程可以划分为四个阶段,分别是单元测试、集成测试、确认测试、系统测试。单元测试可以针对每一个程序员的编码模块进行测试,可以有效地进行正确性检验和验证,发现最小的代码模块中是否存在错误,保证每一个单元模块的代码尽可能地准确。集成测试是指在单元测试的基础上,可以按照软件实现的功能将单元模块代码集成在一起,验证这个功能模块是否准确,能否满足需求分析中的功能[7]。确认测试可以验证软件的操作功能、性能以及其他的指标是否满足实际需求,比如系统的性能测试是否良好,处理速度是否满足操作管理需求。系统测试可以将整个软件装配在一起,并且将其部署到一个计算机硬件、外设中,根据系统测试结果查看软件是否可以正常运行,进行系统测试时需要找一个纯净版的计算机操作系统,这样就可以对没有任何基础的计算机进行测试,保证可以把软件安装到任何一个计算机上。

3.“互联网+”时代软件测试新技术

3.1 V软件测试模型

V模型是一种基于瀑布模型的测试技术,适用于基于瀑布模型开发的软件,强调在软件研发中要尽可能早地开始测试工作,但是测试活动与软件开发活动具有固定的环节,这些环节是无法改变和难以逾越的,软件研发到某一个进度时,需要综合分析软件测试活动。V模型也无法体现出来软件规划、可行性分析阶段的验证工作,只能在软件开发过程中作为一个阶段性的检验存在,软件研发完全等同于错误检查工作,每一个测试活动都是独立的,与其他的测试活动不存在联系。

V模型存在的缺陷很多,独立的软件测试活动无法实现信息共享,改进V模型时需要着眼于实际项目测试,比如重点研究系统测试和验收测试,及时地发现系统整体存在的问题,避免将较低的测试错误集中于单元测试中,这样就可以实现对单元测试的回归测试分析,具有重要的作用和意义。目前,针对V模型测试人们已经提出了改进方案,这些改进方案就是构建一个并发的测试模型,允许相邻阶段的测试活动并发执行,各个测试活动在一定程度上存在重叠,这样就可以提高软件的测试效率。比如,改进后的V模型可以将单元测试延迟到集成测试阶段,每一个测试阶段都可以采用回归测试技术,从单元测试开始进行修改,严格执行越早发现错误、修复成本越低的基本原则,提高了软件测试效率。

3.2 X软件测试模型

X模型是一种基于实践操作的软件测试技术,其可以针对每一个单独的代码程序段进行编码和测试,并且可以频繁地对新增代码进行测试,将所有的代码程序段集成在一起,实现一个可执行的功能,然后针对该功能代码进行测试。X模型重点描述软件程序编写的低级别活动,无法描述完整的软件研发周期活动,并且不需要指明软件研发各个阶段的测试设计活动,也没有明确要求角色确认测试活动,因此X模型具有较强的松散性,如果软件需求发生变更,此时软件测试活动就无法满足新需求。但是,X模型增加了探索性测试思想,这样就不需要制定复杂的测试计划和用例,就可以尽可能地发现软件中的缺陷,探索性测试会在实际的活动中造成极大的人力、物力和财力浪费。

改进X模型时可以引入迭代测试和回归测试,将原来的软件测试活动进行调整,将软件测试活动划分为两个部分,分别是左半部分和右半部分,模块之间的测试活动可以不断地进行交接,逐步地进行集成测试。具体地,任意测试活动都要求不同的用户参与,定义每一个测试用户的角色和任务,模型对各个阶段的测试工作可以进行验证,提出测试终止条件,尽可能多地适用各类型具体项目测试过程,主要优点在于各个模块之间的单元测试和集成测试允许迭代,如果某一个测试阶段遇到问题,就可以将测试活动回溯到前一阶段,有效解决需求变化造成的测试变更问题。

3.3 基于复用的软件测试

经过多年的研究,软件工程得到了快速发展,人们提出了复用的软件研发模式,将一些公共的模块设计为构件,比如模块之间的通信传输、数据存储等,这样就可以加快软件研发的速度,缩短软件研发周期。因此,软件测试工程师为了适应软件研发提出了基于复用的测试技术,这样就可以将公共模块测试用例保存到一个数据库集合中,如果存在测试需求,就提取测试用例,并且在测试分析的基础上针对软件进行补充完善。

4.未来软件测试技术发展趋势

随着大数据、云计算、移动通信等技术的快速发展和普及,人们开发了更多的软件,包括嵌入式软件、移动终端软件等,这些软件不仅仅可以安装在PC机、智能手机上,还可以安装到传感器等终端上,因此软件的可用领域越来越广泛,为了保证软件执行的准确性、可靠性,人们越来越重视软件测试工作。在传统的软件测试研究基础上提出了一系列的改进测试技术,未来软件测试技术将会引入机器学习、模式识别等技术,构建一个面向对象的软件测试方法或技术,保证软件测试的有效性。通过对软件测试研究文献、工程实践进行分析,未来软件测试的发展趋势包括以下几个方面:

(1)转变软件测试的思想和理念。软件质量的持续提升不仅仅取决于软件测试技术,还取决于软件测试的工作理念和态度。如果软件研发中不引入一种科学的测试理念,则软件测试仅仅被视为软件产品交付前一种走过场的工作,则软件测试无法准确地发现软件产品中存在的缺陷,不能够为提高软件质量做出贡献。因此,软件研发人员需要转变思想和理念,将软件测试工作提高到一个顶层设计高度,在软件可行性分析阶段都要严格设计测试方案,根据软件研发周期实施测试工作,全方位地评估软件需求、设计架构、程序代码的鲁棒性。

(2)引入机器学习和模式识别技术。目前,软件测试工作越来越复杂,为了保证软件测试的有效性和完整性,需要设计一个完备的测试用例,但是许多测试用例在测试时是重复的,具有相同的作用,因此为了避免重复性的工作,系统测试用例可以引入BP神经网络、支持向量机、遗传算法、贝叶斯网络等方法进行分类操作,这样就可以将具有相同测试功能的用例约简,将所有的用例都约简到一个最小的集合中,将这些用例约简完毕之后就可以减少测试数量。

(3)创新软件测试流程和技术。软件测试将会一改以往的软件开发流程,要想做好软件测试,需要创新软件测试流程,以便能够在检查软件错误的基础上改变软件测试内容,实现对软件的全过程测试监控,并且能够重点地预防和控制软件执行出现的问题,不仅可以保证持续提升软件质量,同时还可以大大地缩短软件研发生命周期。目前,软件开发技术日新月异,这也对软件测试技术提出了更新的要求,许多以往的测试方法无法满足当前的测试需求,软件工程师需要创新开发技术,同时寻找软件产品测试新方法,更好地保证软件准确检查错误,定位软件潜在的故障。

(4)平衡软件项目研发质量、进度和成本。软件测试的目标是寻找软件中潜藏的错误和提升软件产品质量,这就要求软件研发项目团队付出更多的努力和成本,同时也会延长软件研发的进度,亟需平衡软件测试、软件研发进度、软件研发成本和软件质量之间的关系,以便能够确保项目管理层、软件研发团队、质保人员、测试团队协同工作,完善软件测试的过程管理、团队管理、人才管理、质量管理内容,团队的知识结构、创新能力、凝聚力将会是软件测试的基础,因此制定一个有效的软件测试计划,方便项目组组织、领导和控制各类型的内容,组建一个高效的团队,制定一个完善的软件项目测试流程,做好软件项目测试工作,强化软件项目全过程监控跟踪能力,确保研发一个优秀的软件产品。

5.结束语

随着“互联网+”教育、医疗、科技、金融、警务、购物等行业软件的普及和使用,互联网承载的应用软件功能越来越多,软件架构设计得更加复杂,如果不构建一个良好的软件测试计划,将会造成软件产品质量低下,漏洞和错误百出,这样就会导致软件产品体验性能大大降低,无法在广大互联网用户中普及和推广,阻碍社会信息化进程。因此,创新软件测试方法、技术,可以在一定程度上持续提升软件性能,保证软件在人群中得到良好推广,扩充计算机软件的功能,具有重要的作用和意义。

[1]林贝.浅谈面向对象软件测试及其对软件新技术应用的影响[J].中国电子商务,2014(5):32-32.

[2]郭玉.移动互联网的软件测试系统的设计与实现[J].湖南邮电职业技术学院学报,2016,15(4):44-46.

[3]张振华.大数据背景下软件测试的挑战及其展望探析[J].电子技术与软件工程,2016(6):61-61.

[4]李明艳.基于移动互联网的软件测试技术研究及应用[J].电子技术与软件工程,2016(4):42-42.

[5]付宇.基于多平台的计算机软件测试方法分析[J].电脑知识与技术:学术交流,2014(3X):1981-1982.

[6]蔡立志,阎婷.大数据背景下软件测试的挑战与展望[J].计算机应用与软件,2014(02):5-8.

[7]李鑫.基于脚本技术的自动化软件测试方法研究[J].电子技术与软件工程,2016(6):210-210.

猜你喜欢
单元测试软件测试互联网+
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究
一年级上册第五单元测试
一年级上册一、二单元测试
第五单元测试卷
第六单元测试卷