基于FPGA的软硬件协同应用中的软件测试工具Test
发表时间:2023-09-13 07:01:37
文章来源:炫佑科技
浏览次数:194
菏泽炫佑科技
基于FPGA的软硬件协同应用中的软件测试工具Test
随着软硬件协同应用的复杂性增加,软件必须通过全面的测试以保证质量和可靠性。 然而,由于开发时间的限制,软件测试需要选择合适的方法和合适的测试工具,才能达到足够的测试效率。 在基于FPGA的软硬件协同应用中,本文将Test与两大主流自动化测试工具在资源占用和运行速度方面进行了比较,得出前者具有更好的速度和可用性。
前言
软件测试是程序的执行过程。 目的是尽可能地发现并纠正被测软件中的错误,提高软件的可靠性。 这是软件生命周期中非常重要且复杂的任务。 当前形势下,软件测试对于软件可靠性保证仍然极其重要。 然而,如何进行测试,如何提高测试的质量和效率,保证软件产品的质量和可靠性,仍然是令人深感困惑的问题。 本文根据作者的粗浅经验,简要介绍了软件测试的基本流程,以及一些常用的技术方法、测试策略和指南自动化软件开发,并介绍了工作中使用的一种自动化软件测试工具Test(现已被IBM收购)。
使用这个自动化测试工具可以为您省去很多手动运行的麻烦,准确获取测试数据和结果。 通过本文的介绍,我们希望越来越多的人认识到软件测试的重要性,同时更好地了解如何正确选择和有效使用各种测试方法、技术和自动化测试工具来改进软件。 质量和可靠性。
软件测试的基本流程
软件测试是一个极其复杂的过程。 一个标准化的软件测试流程通常包括以下基本测试活动:①制定软件测试计划; ② 编制软件测试大纲; ③ 设计并生成测试用例; ④ 实施测试; ⑤ 生成软件问题报告。
事实上,软件测试过程基本上是与整个软件开发过程并行进行的。 测试计划应早在需求分析阶段制定,其他相关工作,包括测试大纲的制定、测试数据的生成、测试工具的选择和开发等也应在测试阶段之前进行。 充分的准备可以有效克服测试的盲目性,缩短测试周期,提高测试效率,并起到测试文档和开发文档相互评审的作用。
另外,在软件测试的每个测试周期中,测试工程师都会根据预先准备好的测试大纲和准备好的测试用例对被测软件进行完整的测试。 测试和调试通常是迭代进行的。
软件测试工具
软件测试的目的是用尽可能少的时间和人力来发现并纠正软件中潜在的故障和缺陷,更快、更低成本地开发出高质量的应用程序。 这使得测试人员的工作比以往更加困难。 在很多项目中,测试人员的大部分任务都是手动处理的,但实际上很大一部分重复性的测试工作是可以被隔离出来并自动实现的。 大型项目中测试团队与其他团队之间没有足够的合作来促进彼此之间的沟通。 实施测试自动化可以提高测试工作的效率。 使用工具的目的只是为了减少一些手动测试,将更多的人力资源投入到更有价值的工作中。
一些深受软件开发人员欢迎的软件测试工具为软件测试提供了强有力的支持。 本文将介绍一家美国公司(现已被IBM收购)著名的软件包Test。 它的一个重要特点是可以自动驱动被测程序的运行。 并且程序执行过程可以自动记录和回放,从而实现了测试“回顾”的自动化。 由于测试是一个迭代过程,通常需要重复数十次甚至数百次。 因此,该功能大大提高了软件“重新测试”(Re-Test)和“回归测试”()的自动化程度,将测试人员从复杂、重复的手工测试中解放出来,从而显着提高软件测试效率。 除了这个*基本的自动录音和播放功能外,它还提供了一系列辅助支持功能。 例如,可以将记录下来的程序执行过程自动转换为可读性好的高级语言程序,这样这个测试驱动程序就可以由测试人员根据测试需要进行必要的修改,甚至完全手动编译。 自动记录并分析对比测试执行结果。
测试实例介绍
接下来我们以实际工作中的一个测试项目为例,使用自动测试工具Test来介绍一下需要测试的内容。 为了介绍方便,下面将Test简称为VT,将工具简称为QT。
Test的软件界面与 类似,所以很容易上手。 左边是创建的项目名称,右边是代码,下方是信息输出窗口。
接下来介绍一下要测试的软件,是该公司的CPLD/FPGA集成设计工具。 现在需要测试的是在环境中运行一批FPGA器件设计实例,生成*终的下载文件(.bit或.jed),并提取一些参数如*大频率、使用的资源等,并进行比较通过将这些参数与之前版本运行后的结果进行比较,可以分析当前测试软件版本的优缺点。
运行测试测试主要分为两步。 首先运行所有设计的案例,然后提取参数。
运行所有案例
首先读取该文件,该文件包含了所有运行示例的文件名。 每一行对应一个示例的文件名。 程序逐行读取它。 参考图1所示代码。
整个代码运行流程可以表述为:*小化VT窗口 -> 找到桌面上的图标并运行 -> 进入工作目录 -> 处理一些弹窗信息 -> 打开需要运行的示例-> 清除上一个项目运行信息 -> 保存项目 -> 运行连线 -> 保存当前项目 -> 将完成的示例复制到统一备份目录 -> 关闭当前运行的项目 -> 运行下一个示例...直到运行完成所有测试示例。
以上所有的菜单和窗口操作都是由VT执行代码来完成的。 然后测试工具将根据代码中包含的子例程运行。
打开如图2所示的工程程序执行的操作如下:选择当前窗口,定义窗口的大小,打开File下拉菜单中的第二行命令,即open命令,然后使用play命令输入工作目录和项目名称。 ,然后单击“打开”以打开该项目。
此外,VT还有点击窗口中关键字、在当前窗口中搜索关键字、坐标定位等命令,这些命令的灵活使用极大地丰富了VT自动化测试的内容。
运行完所有的例子后,需要做的就是提取所需的各种参数,这就是重要的测试数据。
完成的示例将备份在统一的目录中。 现在VT要做的就是在这些相应的目录中找到.log和.twr文件。 这两个文件是*终案例运行的输出信息文件,其中包含了测试需要提取的一些参数信息。
图片
3 是.log 文件中的一条信息。 红圈所示的内容就是需要提取的信息之一。 日志文件是软件运行后产生的日志。 里面包含了接线完成后的一些资源信息。 这里VT需要提取的是PIOs信息,即输入输出端口数量的信息,可以通过以下代码实现。
图4实现的是将日志文件逐行输入到. 要在输入的信息中找到需要的信息并进行处理,需要在VT中使用如下代码来实现。
图5实现了在字符串中搜索关键字“of PIOs:”,即包含I/O端口数量信息的行。 如果找到,则使用 LTRIM$ 将内容从该行的第 29 个字符开始。 由于需要的有用信息只包括“out of”之前的数字,所以需要使用LEFT$提取出左边的信息,即158,也就是所使用的I/O口数量的信息,*后使用TRIM$ 删除空格。 你可以得到它。
同样,您可以获取特定时序文件中的*大频率、使用的综合工具、器件封装、使用的资源等信息。 提取这些参数信息,与运行之前版本软件得到的结果进行比较,即可得到Test结果。
从上面可以看出,有很多例子可以运行来进行测试。 如果手动完成,工作量相当大,而且极其不精确,容易出错。 现在使用自动化测试工具将简化测试的繁琐。 所有操作均由自动化测试工具完成,并且代码可移植。 只要稍微改变几个参数,代码就适合各个版本的测试,给测试工作带来了极大的方便和便利。 准确性。
自动化测试工具比较
目前,企业也有类似的主流自动化测试软件。
它也是一个测试自动化软件,与Test类似,用于创建功能和回归测试基于FPGA的软硬件协同应用中的软件测试工具Test,可以自动捕获、验证和重放用户交互行为。 其特点是易于操作,可以通过集成到软件中的记录功能来捕获测试步骤。 该产品以简单的英语记录每个步骤,并通过活动屏幕将文档与集成屏幕截图结合起来。 传统脚本录制工具制作的脚本不容易修改。 不同的是,关键字驱动方法可以方便地插入、修改数据驱动和删除测试步骤,并且更加灵活。
下面的数据表是在PC上运行VT和QT这两个工具时的内存使用情况和打开工具的时间的比较。 其中Open和Fit是指打开设计并*终生成下载文件,即仿真。 EPIC、EPIC、ispVM、Power等都是开发环境中的工具。 主要用于底层交互编辑、调用IP和下载程序、分析电量等。 等功能(表1、表2)。
根据以上两个对比结果,在内存占用方面,VT占用的资源远低于QT; 就打开工具所需的时间而言,VT打开大多数工具的时间也比QT要少。 虽然QT具有很强的记录和修改脚本的功能,但从实际应用的角度来看,对于软件测试来说,运行速度和资源消耗更重要,所以自动测试工具VT比QT更好。
综上所述
随着软硬件协同应用复杂度的增加,软件测试越来越受到重视。 随着软件技术的发展,程序的规模和复杂性逐渐增加。 软件测试工具的使用可以增强软件测试的自动化程度。 在两款主流软件的对比中,Test相对较高的效率和速度在软硬件设计的实际应用中得到了验证,帮助软件开发人员和测试人员进一步提高测试效率和软件质量。 这可以体现出在软硬件设计过程中,工具的选择必须根据实际应用来保证整体开发效率的提高。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等