引言
软件测试是保障软件质量的重要手段,用于鉴定软件是否满足正确性与完整性,验证软件是否满足软件研制任务书和软件需求规格说明的要求。例如,为不同的输入提供正确的输出且能够在规定的时间内完成某项测试任务。软件复杂化程度不断增加使用户对软件测试过程的标准化需求越来越迫切,有必要改进测试方法来提高软件测试过程的管理水平。
1软件特性
装备产品软件对安全和可靠性的要求较高,所以装备产品软件一般用嵌入式软件进行开发,来实现系统人机交互、多层总线数据交互处理、同步时统生成与分发、系统配电及状态检测、综合控制、安全联锁控制、系统故障诊断等功能。而嵌入式软件与硬件紧密相连,验证其功能只能通过烧写可执行文件至目标板上来实现运行。嵌入式软件对安全性要求较高,通过外部接口实现数据的输入输出时,对数据有值域及精度处理要求;对实时性要求较高,数据采集和输出,有严格的响应时间要求。
2结构测试
结构测试的方法总体上分为静态分析和动态分析两大类。路径测试是一种重要的动态分析技术,该方法通过设计足够的测试数据覆盖程序中所有可能的路径。路径编码是路径测试数据生成的基础,已有的编码方式很多,有的采用程序的语句编号序列表示,有的采用分支节点序列表示。但是,这两种方式不仅路径表示序列很长,而且在表示不同路径时会产生冗余编码。鉴于此,我们曾提出路径的Huffman编码表示,进一步提高路径测试效率。但是此方法面对逻辑结构很复杂的程序时,匹配度的计算是不合理的。为解决该问题,将边界符号加入Huffman编码中。此改进方法可以有效地分离每个分支,每个迭代和每个循环。此外,研究提出了一种关键点路径表示法,通过该表示法可将路径分成易覆盖、难覆盖和不可行路径,更快的生成测试用例。对于含有多个进程的并行程序,将多个进程的路径组合成一条路径进行编码。对于覆盖测试数据生成,目前已有许多研究成果,主要有4种方法,即随机法、静态法、动态法和启发式方法。其中,随机法通过对输入空间随机采样得到测试数据;静态法通过对程序静态分析得到测试数据;动态法通过执行程序得到测试数据;启发式方法使用诸如遗传算法及其改进方法的元启发式优化技术自动生成测试数据。
3存在问题
传统的软件工程中将软件开发分为七个阶段,即可行性分析、需求分析、概要设计、详细设计、编码、测试和维护。测试是开发的一个阶段,编码完成后进行软件测试工作。测试主要针对查找代码中存在的缺陷。而编码之后的测试不易发现需求分析本身的错误,在需求分析阶段产生的缺陷带入设计和编码,会使隐性错误的积累越来越多,需要花费更多的时间分析软件中存在的潜在缺陷,延长测试时间,增加开支与成本。另外,单一地使用一种或两种测试方法对软件质量的提高有限。一般在程序开发过程中进行单元测试,系统完成后进行大量的集成测试和系统测试。经过这样的测试,功能上的缺陷会被检测出来,但无法保证软件交付后的运行能够平稳无差错。如高校中的教务管理系统,期末教师成绩录入成绩和大量学生频繁登录系统查阅成绩会使系统经常出现崩溃的现象,高访问量的冲击下系统运行出故障,这时往往需要停止系统维护几个小时,错开高峰期访问后系统才能正常运行。性能测试、自动化测试和接口测试显得尤为重要,软件交付前模拟成千上万用户访问系统的测试势在必行,甚至可以模拟黑客攻击被测系统以提高软件的健壮性。总之,测试与开发未并行工作,测试方法的单一使得软件测试理念有待更新,软件测试技术有待改进,软件质量有待提高。
4软件测试路径选择优化模型及其进化求解
4.1实现自动化测试
从计算机软件测试的需求分析,自动化测试为主要内容。传统的人工测试难以避免存在不足,软件自动化测试技术可谓是应运而生。实际应用中,采用自动化测试技术,主要是利用自动化工具开展。实际上,软件测试工具自身也是一-种软件,研究者将自动化思想植入测试工具内,使其具备人们所需的功能,协助人类完成计算机软件测试工作”。从未来的发展分析,随着云计算的应用和发展,将会改变软件平台架构,同时也会使得软件测试模式发生变化。例如,改变计算机软件测试的环境,由实体计算机转到运算服务器,能够节约硬件成本,提高测试的效率,不过此项技术的实现还面临很多的挑战,尤其是实际操作比较困难,还要克服很多技术难题才能满足计算机软件测试的需求。
4.2测试项目的横向覆盖
按照测试要求对测试项目进行模块化划分,在同批次产品中按照产品的性能及实际情况进行分块测试,模块划分应遵循以下3个原则:①模块划分应具备独立原则,要求测试模块划分应做到相对独立,模块间耦合程度低,界限明确;②模块划分应具备高效原则,要求被测试模块划分应简单高效,对测试人员来说,在测试过程中应尽可能地减少模块间的切换时间,使测试工作具有连续性;③模块划分应具备精准原则,产品模块的划分有简单和复杂之分,测试人员的测试能力也有强弱之分,划分测试模块后应结合测试人员的实际测试能力做到合理安排。
4.3引入大数据技术
从计算机软件测试的实际情况分析,通常要消耗很多的资源,如何提高资源的利用率是研究的重点”。一般来说,人们希望投入最少的资源,高效化完成计算机软件测试。在传统的软件测试环境中难以实现,主要是因为资源的消耗和测试可靠性存在线性关系。不过,大数据技术的应用,借助数据挖掘技术的优势,实现对各类资源的高效化管理,能够达到提高软件测试效率的目的。利用大数据技术,助力计算机软件测试工作的开展,能够优化测试用例的选择,高效化完成测试。除此之外,测试中产生的各类bug报告,采用大数据技术手段能够实现高效化分析,为计算机软件测试提供更多的支持。从实现计算机软件测试技术的创新和优化角度分析,涉及到很多的难题和问题,需要加大相关技术人员的培养,积极挖掘人力资源力量,助力测试技术的开发,为计算机软件测试的创新提供支持,全面提高计算机软件质量控制水平。
结束语
对测试原则和测试策略进行研究,在继电保护装置整机测试中仍是一个值得研究的理论方向,本研究通过对测试原则和测试策略进行分析,在保证测试质量的前提下,可有效提高测试效率,力争在繁重的测试任务中找到一条新路子、发现一种新方法、解决一个新问题、达到一个新高度,使测试人员在完成测试任务的同时,思想和能力得到进一步提高。
参考文献
[1]赫彦文,刘紫阳,李建义,彭新宇.基于遗传算法的测试用例自动生成方法综述[J].廊坊师范学院学报(自然科学版),2020,20(04):16-20.
[2]杨文凯,张志浩,陈立佳,魏青松,刘杨.基于C#的直流稳压电源控制软件设计[J].内蒙古科技与经济,2020(24):129-130.
[3]曹鹤玲,软件错误定位原型工具设计与应用.河南省,河南工业大学,2020-12-28.
[4]卜晔.软件测试策略和测试方法的应用分析[J].科技风,2020(36):105-106.
[5].等级保护移动应用软件渗透测试技术研究[C]//.2020中国网络安全等级保护和关键信息基础设施保护大会论文集.,2020:43-47+68.