PDF下载
基于数据驱动的软件质量测试方法

彭钦青 陈文平 刘叶楠

南方电网数字电网研究院有限公司,510663

摘要: 软件测试不准确主要是由于数据提取存在不明确问题。基于数据驱动的软件质量测试方法,可以通过Gath-Geva算法提取特征数据,解决程序模块间的问题,建立数据关系将特殊数据设置为测试用例,以保证一个或多个测试用例同时实现,进一步构建软件质量测试研发平台,以确保软件质量测试的准确性。本文将所提方法与两种传统方法,分别对7种不同输入数据进行测试实验。实验结果表明所提方法的测试结果接近零失误,优于两种传统方法,能够为软件质量测试提供有效参考。
关键词: 数据驱动;软件质量;测试平台
DOI:10.12721/ccn.2022.157015
基金资助:
文章地址:

0引言

随着时代的发展,软件的使用越来越广泛,为人类生活带来了极大的便利。人们对软件的依赖性也在不断提升。然而,在软件开发的过程中,由于现代软件功能强大,系统变得越来越复杂,可能会出现各种各样的问题。针对这些问题一些学者提出分布式技术,在组件的软件系统内,将组件看作成实体,结合这些实体使其形成一个新系统。此方法为组件的软件工程开发提供了支撑。目前我国组件测试技术发展的不理想。虽然一些研究者根据组件的软件系统提出了许多的测试方法,但是有关软件方面的测试工具研究还不够完善。在国外对此方面的研究略早于我国,因此研究成果也优于我国。随着信息科学的不断发展,工业现场收集和存储了海量数据,为建立基于数据的软测量提供了可靠的基础。基于数据的软测量方法仅依赖工业数据,不需要任何先验条件和复杂的专家知识,是一种典型的黑箱模型。

1基于数据驱动的软件质量测试方法

1.1基于Gath-Geva算法的特征数据提取模块

常见的代码审查问题包括以下主要类别:不符合代码规范、现有代码重复、冗余、无注释问题、无注释或注释错误、算法性能、代码逻辑错误、业务逻辑错误等。代码审查的主要工作是检查代码错误,其检查过程是使用工具将程序的源代码与所使用的语言编码规范进行比较,列出不符合规范的代码行,通过测试人员手动进行查看代码,以查看是否存在任何可能的故障。单元测试库是测试库的对象。单元是一个软件库中可以进行测试的最小软件单元。集成单元测试管理是在经过单元测试的多个软件应用单元,集成成为一个测试平台之后执行的一种测试管理活动。单元测试的目的是检测程序单元中的内部错误。在测试每个软件单元后,每个单元都可以无错误地运行,但不能保证每个软件单元在相互连接时都能正常工作。局部无法体现的问题,整体表现出来就是集成测试的需要[1]。基于Gath-Geva算法提取特殊数据进行集成单元测试的计算,如下公式1所示:

            1.png

公式1中:表示软件质量中的特征数据;表示特征数据聚类数目;表示数据累计贡献率;表示数据的多阶段特性;表示数据聚类中心;表示加权值;表示模糊指数。验证针对Gath-Geva算法的特殊数据,经过单元测试和集成测试后,程序已经解决了模块内和模块间的问题,进入验证测试阶段。验证测试的目的是向用户证明系统可以作为需求规范中的预配置功能正常运行。

1.2数据转换模块

将特殊数据设置为测试用例主要涉及如何准备一个测试数据脚本、测试数据输入、测试分析数据和一个预期测试输出。在数据驱动中测试指令脚本是所有使用正常脚本的实验数据和测试指令的集合。测试程序执行管理工具通常以简体文本格式进行保存在测试平台中。一个好的测试用例脚本系统可以同时实现一个或多个测试用例。将特殊数据转换为多个测试用例,如下公式2所示:

   2.png

公式2中:表示数据重叠量;表示最佳模型个数;表述分割系数。测试中的脚本文件可以采用手动或非手动方式运行。预期测试输入文件和预期测试输出文件可以分别包含在测试脚本中或以基于数据库的文件形式进行保存。目前市场上主流的测试模型是预测试模型。所有这些模型都基于其他模型的缺陷添加了修改方案,但仅在目标项目模型中更具优势。因此,在测试过程管理中,需要根据项目本身的特点选择合适的测试模型。在充分考虑了技术成本以及技术等实际应用限制后,数据中心驱动的智能故障分析诊断解决方法就具有其自身的巨大优势[2]。正常生产采样过程数据或特定工业故障发生条件下的采样数据,用于故障实时监测工业生产过程状态监控、故障状态检测、模式识别等。

1.3基于数据驱动构建软件质量测试平台

通过收集和分析评估所有测试试验结果,能够有效将提高测试方法可靠性的主要质量指标变清晰。如果企业有人员需要定期纠正技术错误,就可能需要进一步进行测试。在其他情况下,软件功能似乎成功完成,可以轻松检测发生的任何错误。因此,得出两个不同的基本结论:它在软件的运行质量和系统可靠性上都是完全可以被广泛接受使用的。假设执行的测试不充分,则可能会发生严重的程序错误。如果没有发现错误,可能仅仅是因为没有及时充分考虑整个测试器的配置,实际上的错误就会潜伏在整个软件中。如果过去发生过错误,则必须在维护阶段被用户发现,修复成本可能是开发阶段的40倍[3]。在测试结果中,包括测试人的名字、测试时间、测试的对象等内容,测试结果为用户提供了信任的凭证。以下是测试结果的获得过程图:

图片4.png

图1 测试平台

启动测试平台,生成测试结果,将测试结果看作一个对象,服务器端获得测试结果对象,判断结果信息表中是否有信息,如果没有信息,则加载测试结果对象,显示结果信息,如果有信息,则清空信息,加载测试结果对象,显示结果信息。在被测软件运行时使用测试用例。对于手动随机测试,测试人员根据预先工作准备好的手动测试工作流程手动测试运行随机测试。测试仪可以输入大量数据,观察信号输出,并实时记录当前发现的任何重要问题。对于运行自动化后的测试,很有可能仅需要重新启动一个测试工具并手动告诉该测试工具运行哪个测试用例。数据分析驱动的测试软件方法不同于目前传统的不确定性和定量经验测试方法,以及基于分析模型的测试方法。对于大型复杂监测平台,经验性的监测和性能测试工作需要长期的经验积累和超高的技术专业知识。

2应用与分析

2.1实验准备

为了验证文中方法的有效性,提取某软件仿真平台做为实验数据来源,设置测试环境为:OS:Windows9(32bit) Professional,具体数据如下表1所示。

表1 测试数据参数表

3.png

整个方法的结构综合压力分析结果只能通过准确地获取每个结构的数据来加以实现。

2.2结果分析 

实验分别提取基于DIS的软件质量测试方法(文献4方法),以及基于遗传算法的软件质量测试方法(文献5方法),为了方便表示分别设定为传统方法1、传统方法2。将文中方法与两种传统方法对7种用例进行检测,将3种方法对软件输入数据测试的结果进行对比,如下表2所示。

表2不同方法对软件输入数据测试结果

4.png

根据上表2得出,文中基于数据驱动方法对7种不同输入数据的测试结果均为正确,而两种传统方法分别在编号4以及编号5的输入数据中测试失误,因此,得出文中软件质量测试方法在软件输入数据测试上,优于两种传统方法。

3结束语

本文通过算法提取特征数据,并进一步建立数据转换模块,最后基于数据驱动构建软件质量测试流程,通过实验证明所提方法在某些方面优于传统方法,适用于软件质量测试中。

参考文献

[1]王明珠.基于Gompertz模型的软件质量与测试过程评估分析[J].信息系统工程,2020(10):30-31.

[2]彭致华,王霞.一种基于概念格的新型软件质量综合评价方法[J].电子技术与软件工程,2020(16):52-55.

[3]丁智国.“课程思政”视阈下理工类专业课教学改革探索——以“软件质量保证与测试”为例[J].中国信息技术教育,2020(10):99-101.

[4]李贝. 对基于数据驱动的软件自动化测试框架分析[J]. 华东科技(综合), 2019, 000(003):1-1.

[5]夏良, 商伟, 王兆星. 基于遗传算法的软件业务流程测试路径的研究[J]. 软件, 2019, 40(04):133-139.