摘要:实施软件测试的主要目的,是保证软件质量,确保软件所存在的各项问题可以得到及时处理,以便实现对软件的高质量运用,是保证软件开发过程质量的有效措施。以测试技术应用流程介绍为切入点,通过对软件测试常用技术的分析,对软件测试技术现状与发展趋势展开深层次探讨,期望能够为国内软件测试技术运用与发展提供一定启示。
关键词:测试流程; 软件开发; 软件测试技术; 静态测试;
软件测试技术是实现软件性能优化的有效措施,也是保证软件高质量运用的关键。在完成软件设计编程之后,技术人员会通过对软件测试技术的运用,对软件内存在的漏洞展开检测,并会对其中存在的漏洞展开及时修复,且会通过再次展开测试的方式,直至软件测试符合相关标准要求为止。在测试技术支持下,技术人员可准确掌握软件在各种环境中的运行性能,能够按照环境展开风险规避设计,可以为软件高水平运用奠定良好基础。
1 软件测试流程
软件测试是贯穿于软件开发全过程的技术,在软件项目研发生命周期各个阶段,都有着不可忽视的作用。具体内容如下:(1)需求分析阶段。软件测试技术人员需要参与到需求调研工作中,要通过对系统需求的深层次研究,为测试计划制定以及软件开发做好铺垫;(2)分析设计阶段。在此阶段,测试人员需要对系统工作流程展开深入参差,应按照测试需求展开测试方案规划,并确定测试技术以及测试对象范围等细节,且要对开发文档展开审查,保证设计与计划合理程度;(3)开发阶段。测试人员需要按照系统情况,将其分解成多个独立子系统,并逐一对各个子系统展开检测,并会重点对用例设计展开测试,用例测试情况会对软件测试成效产生直接影响,需要引起测试人员足够重视;(4)测试阶段。在实际展开测试执行过程中,测试人员需要按照事前制定测试用例以及测试计划,对硬件环境以及软件项目展开全面性检测;(5)测试完成阶段。完成全过程测试后,测试人员需要撰写测试报告,将测试过程所发现问题以及测试思路等认真填写在报告中,且会就软件项目是否合格给出判断[1]。
2 软件测试技术
现代较为常用软件测试技术种类相对较为丰富,按照测试过程程序执行状态,可分为动态测试以及静态测试两种;而依据系统内部结构、实现算法细节等,可分为灰盒测试、黑盒测试以及白盒测试3部分内容;此外就程序执行方式而言,可分为自动化测试以及人工测试两类[2]。具体技术及其运用情况如下所示:
2.1 动态测试
动态测试主要分为3个步骤,即展开测试实例构建、执行测试程序以及实施结果分析。测试全过程会通过对测试程序的运用,按照预期结果,对所得到测试结果展开分析研究,进而确定软件健壮性能以及运行效率等内容[3]。
2.2 静态测试
被测程序在不运行状态下,单纯依靠分析或检查手段,对程序过程以及语句等展开检查,确定检查程序是否存在问题[4]。测试人员会通过对源程序结构、规格说明书以及设计说明书等内容的分析,完成软件漏洞寻找。
2.3 灰盒测试
此种测试技术是位于白盒测试以及黑盒测试之间的技术,极为注重输出相对于出入正确性检测,即会将软件内部表现作为检测重点。整体测试技术应用完整性以及详细性相对有限,会通过对一些象征性标志与现象的分析,对软件内部运行情况展开判断,检测结果精准度相对较低。一般在内部结果出现问题,但输出结果却显示为正确的状态下,会运用此种测试方式展开软件检测。具有测试效率高以及适用性广等优势,具有一定运用价值[5]。
2.4 黑盒测试
在实施黑盒测试时,被测程序会处于无法打开的黑盒状态,测试人员需要在不对程序内部特性条件与内部机构等展开考虑的前提下,按照规格说明书展开测试实例设计,且需要对程序功能展开检查,确定其是否与规范说明内容相符合[6]。此种测试技术主要以软件功能测试以及界面测试为主,在实施测量过程中需要通过增加量化的方式,保障软件质量。
2.5 白盒测试
与黑盒测试有所不同,在实施白盒测试过程中,测试人员会通过对程序内信息数据与逻辑关系的运用,对内部动作展开检查,确定其是否是按照设计规格说明书设定展开执行的,并要做好通路工作状态分析。此种测试是从程序结构方面着手,对测试用例实施设计的[7]。技术会重点对逻辑结构设置展开检查,会通过测试确定模块独立路径、内部结构是否符合相应标准要求。程序变异、控制流分析以及数据流分析等,经常会选择此种方式展开测试。
2.6 自动化测试与手动测试
手动测试是在完成测试用例设计后,按照设计内容执行情况获得测试结果的,会通过对实际结果的分析,确定其和预期结果是否保持一致。同时自动化测试是软件自动化测试技术,会按照事前设置条件,对被测程序运行情况展开分析。
3 软件测试技术发展现状
3.1 国外
发达国家软件测试技术发展水平相对较高,整体技术发展与运用较为成熟,在软件技术行业中有着举足轻重的地位,已经发展成为独立产业。在进行软件开发时,测试人员在项目开发团队中的占比极高,人员作用发挥较为理想。发达国家极为注重测试技术研究与开发,在测试自动化以及精准度提升等方面投入了大量人力、物力以及财力支持,测试流程自动化水平相对较高,测试部署以及开发过程融合质量较高,闭环形成较为理想。软件测试技术应用过程并不需要人为参与干预,灵活程度相对较高,不仅测试效率水平较高,而且成本投入较低。
3.2 国内
相较于发达国家,国内软件测试技术发展时间相对较短,在技术应用以及研发方面和发达国家相比还存在着一定距离。就整体技术应用情况来看,技术运用具有以下几个方面的问题:(1)测试技术被重视程度有待提升;(2)专业人才数量相对较少;(3)整体测试水平与发达国家相比存在一定差距;(4)测试服务体系还存在一些问题,需要完善。
计算机软件技术的快速发展,使得软件应用范围出现明显扩张趋势,软件重要性逐渐凸显出来,逐渐发展成为诸多业务与行业运行的基础与关键。鉴于此用户对于软件质量的要求变得更加严格,软件测试技术重要性也在此环境中得到凸显,开始在软件工程中得到广泛运用。为满足市场需求,软件开发企业加大了对软件测试技术的重视力度,并开始展开专业人才培养与选拔,加大了对人才专业软件技能以及语言编程等能力的培养力度,整体软件测试技术发展势头较为良好。
4 技术发展趋势
4.1 测试规范性不断提升
测试规范性是保证测试精准度的重要依据与保障,为保证测试技术可以得到更好的发展,技术人员需要做好测试标准优化与完善,应通过提升标准化、规范化水平的方式,为测试技术长久性发展奠定扎实基础。在计算机信息技术发展带动下,测试技术应用会得到不断改进与调整,技术应用会变得更加成熟,应用多态性以及封装性特点会逐渐凸显出来,在此环境下需要通过对各种新型测试技术的运用,像云测试等,为测试工作开展提供可靠技术方面保障。
4.2 测试自动化不断提高
测试用例在测试操作中有着不可忽视的作用,随着软件行业对于软件测试重视程度的不断提升,测试工作任务量也会呈现出不断增加的趋势。在此背景下单纯使用手工测试,已经无法满足测试工作开展要求,自动化测试模式会得到更加广泛的运用。自动化软件测试,如上文所述是对软件实施部分或全部自动化测试的处理技术,在进行测试过程中一般不需要人为参与操作,能够达到切实降低测试人工成本投入以及提高软件开发效率的效果。在今后,该项技术将成为软件测试主流技术。
4.3 测试范围不断拓展
为保证测试精准度,在今后的软件测试中,需要做好测试范围拓展,要通过对测试数据的科学性分析,为软件开发全过程提供可靠支持与保障。同时,在实施测试范围拓展时,需要做好事后控制以及事前预防工作,要通过对各种潜在缺点的有意识规避,做好测试成本控制,保证软件测试效益可以达到切实提升。
4.4 云计算、物联网广泛运用
现代企业极为注重云计算技术应用,多数企业都将自身业务数据储存放置在了云端之中。就目前用户应用程序运用情况来看,超过75%的程序都是以云服务为基础展开的。而物联网布局模式的推广,也使业务决策变得更加精准、智能。以云端、物联网为基础展开软件测试,能够完成可拓展测试以及安全性分析等测试,能够对设备版本兼容性以及授权准确性等展开检测,并做好数据评估。
4.5 大数据测试更加成熟
大数据技术的运用,为软件测试带来了更多有利支持,技术在软件测试中的重要性也变得更加突出。在今后,大数据技术会在软件测试中起到更多理想的作用,会按照各种特征,像重复性、一致性等,对数据质量展开检查。同时也会对TB级数据形成有效处理,会为商用集群提供更加优质的服务。
5结语
鉴于软件测试技术在软件开发与使用中所起到的重要作用,有关机构应进一步加强对软件测试技术的研究力度。应在明确软件测试流程与基本技术的基础上,结合软件测试现状,对技术今后发展做出预估,以便按照技术应用与发展趋势,制定出较为合理的技术优化与完善方案,确保各项技术应用不足问题可以得到妥善处理,以便实现对测试技术的有效运用,保障技术所具有功能可以得到完全性发挥,从而实现对软件行业发展的有效推动。
参考文献
[1]汤希祝.刍议大数据背景下软件测试技术的发展趋势[J].信息系统工程, 2019,(006):47.
[2]任力子,王婉人,高优.探讨计算机软件测试的相关技术应用[J].信息系统工程, 2017,(5).
[3]杨晓明,刘祯.计算机软件中安全漏洞检测技术的应用研究[J].无线互联科技, 2018,(10).
[4]袁瑞铭,巨汉基,汪萍萍,等.基于黑盒测试技术的智能电能表软件测试方法研究[J].电测与仪表,2017, 55(22).
[5]潘宇.浅析云计算环境下的软件测试服务[J].科技与创新, 2017,(018):52-52, 55.
[6]张文娴.软件测试自动化中构建可维护脚本技术[J].电子技术与软件工程, 2017,(24):62.
[7]王旸.计算机软件基于多平台的测试方法研究[J].电脑知识与技术, 2017,(34):242-243.