基于WPF的自研GPU自动化测试工具

2021-01-20 06:21聂瞾张琛齐宇心马城城中国航空工业集团公司西安航空计算技术研究所集成电路与微系统设计航空科技重点实验室
数码世界 2020年12期
关键词:测试工具绘图绘制

聂瞾 张琛 齐宇心 马城城 中国航空工业集团公司西安航空计算技术研究所/集成电路与微系统设计航空科技重点实验室

引言

当前测试主要采用人工执行并进行比对的方式,在FPGA平台上,先添加并编译验证项,然后上电执行绘图程序,待执行完毕将结果显示到与显示控制单元连接的屏幕上,通过人眼将标准图与屏幕结果进行对比。可以看出,该测试过程十分繁琐、测试操作比较复杂,测试耗时也相对较大,最为重要的是合格判据需要依赖人眼来比对,大大增加误判、漏判的可能性。影响测试工作的效率和准确性。

针对以上问题,本文基于自动化测试思路,设计一种面向自研GPU的自动化测试工具,采用.NET Framework提供的用于Windows的现代图形显示系统技术WPF(windows presentation Foundation),实现包含验证项检测、合格判据生成、自动化测试和测试结果比对等4个模块的测试工具。

1 测试流程

为了验证自研GPU绘图能力的功能正确性和性能,需要测试人员编写针对性的测试用例,通过将GPU绘制的内容与标准结果进行比对和判断,完成GPU测试工作。在人工验证过程中,首先添加并编译验证项源代码,编译通过后上电FPGA测试平台执行验证项,随后等待显示控制单元将GPU绘制的结果显示到屏幕上,最后将标准图片与GPU在屏幕绘制的内容进行比较,若验证通过则进行下一项,否则保存错误图片并记录错误现象和原因。不难发现,人工测试方法过程十分繁琐,需要不断往复的执行和对比结果和标准图片,费时费力且不能有效确保人工对比的准确性,因此开发GPU自动化测试工具即为必要。

2 模块划分

根据测试流程可以将测试过程划分为4个模块,具体为验证项检测、合格判据生成、自动化测试和和测试结果比对。其主要内容如下:

(1)验证项检测负责入口函数名称的检测,确保所有验证项入口函数的统一性和唯一性,调整和修改为满足自动化测试要求的统一命名规范,保证程序运行的稳定性。

(2)合格判据生成的作用是生成与验证项对应的标准图片,用于测试结果的比对,通过将绘制结果与标准图片进行判断,确定GPU的绘图的正确性。

(3)自动化测试是通过自动化手段,依次执行每个验证项,完成验证项的编译、执行和绘图结果的保存。为了消除验证项之间的影响,需要在每个验证项结束后通过软复位方式重置FPGA测试平台。

(4)测试结果对比是将标准图片与GPU绘制内容进行比较,采用逐像素对比方式,设定一个误差范围,如果二者在某一个像素处相似度超过误差范围,则表明绘图内容有误,打印错误信息记录错误的验证项,否则进行下一项的比对。

3 软件实现

使用WPF实现时,窗口主界面分为标题和内容上下2部分。标题位于窗口上侧,负责软件名称和制作团队的展示,剩余区域显示内容部分,包含4个模块。为了统一各模块的风格和操作方式,设计中,首先使用TabControl将每个模块作为一个TabItem来包含,每个模块再按横向分为3列,左侧采用TreeView以树的形式显示验证项,中间区域显示可供用户点选的配置信息,右侧使用Textbox显示执行结果和打印信息。软件界面如图1所示。

图1 软件界面

验证项检测模块,用户首先点击上方“选择”按钮,选择验证项所在的根文件目录,在软件递归搜索后通过左侧TreeView控件显示出来。然后用户在中间区域进行选项的配置,包括入口函数的检测、验证项处理(检测、替换原文件和复制到给定位置3种方式)以及编码格式的选择。最后点击“开始执行”运行检测代码并将结果信息输出至右侧。

合格判据生成通过将用户选择的验证项与Windows环境下的OpenGL库联合编译链接,并将绘图结果按照验证项名称进行保存。用户勾选验证项后,自动化测试工具调用Windows下的g++编译器编译验证项源代码并将OpenGL库作为参数传递,编译完成后,使用命令提示符中的process命令执行生成的exe,最后调用保存图片函数完成合格判据的生成。

自动化测试根据勾选的验证项生成循环执行时所需要的验证项结构体数组。其原理是通过数组定义验证项信息,执行时按照数组下标依次执行每个验证项,在每次循环结束后调用保存图片接口和软复位接口,直至执行完成所有验证项。

测试结果对比作为测试的最后环节,其作用是将FPGA平台结果和标准图片进行对比,首先选择自动化测试后生成的FPGA结果路径,然后指定对应于这些验证项的标准图片路径。点击执行后,工具遍历搜索文件并按像素对每对图片进行判断,最后将结果打印出来。

4 总结

本文基于自动化测试思路,设计并实现了一种基于WPF的自动化测试工具,从测试流程、模块划分和软件实现3个角度进行阐述,构建了包括验证项测试、合格判据生成、自动化测试和测试结果对比四个模块的软件系统。实践结果表明,自动测试方法克服了人工测试方法低效、费时和不准确的问题,有效提高GPU测试工作的效率和准确度。

猜你喜欢
测试工具绘图绘制
“禾下乘凉图”绘图人
绘制童话
作品赏析
绘制世界地图
垂涎三尺
基于移动平台APP测试
手车式真空断路器回路电阻测试电流线接头研究
浅谈响应时间测试分析方法
神秘的不速之客
绘图机器人