当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]软件自动化测试技术与工具

随着软硬件协同应用复杂性日益增加,其中软件必须通过全面的测试才可以保证质量和可靠性。但由于研发时间的限制,软件测试需要选择合适的方法,同时选择合适的测试工具,以便达到足够的测试效率。在一个基于FPGA的软硬件协同应用中,本文从占用资源、运行速度等方面比较了Rational Visual Test和QuickTest Professional两大自动化测试工具,得出前者有较好的速度和可用性。

  前言

  软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误, 提高软件的可靠性,它是软件生命周期中一项非常重要的非常复杂的工作。在目前的情况下对软件可靠性保证具有极其重要意义的,仍然是软件测试。但如何进行测试,如何提高测试的质量和效率,从而确保软件产品的质量和可靠性,仍是令人深感困惑的问题。本文根据笔者的一些粗浅的体会,简要介绍软件测试的基本过程,以及一些常用的技术手段、测试策略和准则,并介绍一个在工作中用到的Rational(现已被IBM收购)自动化软件测试工具Visual Test。

  运用这种自动化测试工具可以省去很多手工运行的麻烦,而且准确获得测试数据和结果。通过本文介绍,以期使愈来愈多的人在认识到软件测试重要性的同时,能够更进一步了解应如何正确地选择和有效地运用各种各样的测试方法、技术以及自动化测试工具提高软件的质量和可靠性。


  软件测试的基本过程

  软件测试是一个极为复杂的过程。一个规范化的软件测试过程通常须包括以下基本的测试活动 :①拟定软件测试计划 ;②编制软件测试大纲 ;③设计和生成测试用例 ;④实施测试 ;⑤生成软件问题报告。

  实际上,软件测试过程与整个软件开发过程基本上是平行进行的。测试计划早在需求分析阶段即应开始制定,其他相关工作,包括测试大纲的制定、测试数据的生成、测试工具的选择和开发等也应在测试阶段之前进行。充分的准备工作可以有效地克服测试的盲目性,缩短测试周期,提高测试效率,并且起到测试文档与开发文档互查的作用。

  此外,软件测试在每个测试周期中,测试工程师将依据预先编制好的测试大纲和准备好的测试用例,对被测软件进行完整的测试。测试与纠错通常是反复交替进行的。


  软件测试工具

  软件测试的目的是用尽可能少的时间和人力发现并改正软件中潜在的各种故障及缺陷,并能以更快的速度和更低的成本开发出高质量的应用程序,这就使测试人员的工作比以往任何时候都更加困难。在很多项目中,测试人员的所有任务大多是由手动处理的,而实际上有很大一部分重复性强的测试工作是可以独立开来,自动实现的。在大型项目中测试团队和其他团队之间没有足够的合作,无法促进彼此的交流。实施测试自动化可以提高测试工作效率,使用工具的目的只是为了减少部分手工测试,将更多人力资源投入到更有价值的工作中。[!--empirenews.page--]

  一些受软件开发人员欢迎的软件测试工具为软件测试提供了强有力的支持。本文将介绍美国Rational 公司(现已被IBM收购)的著名套装软件Rational Visual Test。它的一个重要特点是可以自动驱动被测程序的运行。并且可以自动记录和重放程序执行过程,从而实现了对测试进行“复查”的自动化。由于测试是一个需要反复进行的过程,常常要数十次甚至数百次地重复。因此,这一特性大大地提高了软件“再测试”(Re-Test)和“回归测试”(Regression)的自动化程度,把测试人员从繁杂的、重复性的手工测试中解脱出来,从而显著地提高软件测试效率。除了这个最基本的自动录放功能外,它还提供了一系列的辅助支持功能,比如被录制的程序执行过程可以被自动转换成具有良好可读性的高级语言程序,从而使这个测试驱动程序可以由测试人员根据测试需要进行必要的修改,甚至完全用手工方式编制。自动记录和分析比较测试的执行结果。


  测试实例介绍

  接下来以实际工作中的一个测试项目为例,结合Visual Test这个自动测试工具对所要测试的内容进行介绍。为了方便介绍,下文都以VT作为Visual Test的简称,QT作为工具QuickTest Professional的简称。

  Visual Test的软件界面,与Visual Stadio相似,所以很容易上手,左面是建立的项目名,右面是代码,最下面是信息输出窗口。

  接下来介绍所要测试的软件ispLEVER,它是Lattice公司的CPLD/FPGA集成设计工具。现在所要测试的就是在ispLEVER环境下运行一批FPGA器件的设计例子,产生最后的下载文件(.bit或者.jed),并提取一些例如最大频率,所用资源等参数,将这些参数与之前版本运行后的结果相比较,这样就能分析出当前所测试软件版本的优劣之处。

  运行Rational Visual test测试主要分为两步,先运行所有的设计的case,然后提取参数。

 运行所有case

  首先读取runlist文件,runlist是一个包括了所有运行例子的文件名的文件,每一行对应一个例子的文件名,程序逐行读入,参考图1示的代码。

  接下来整个代码运行的流程可以表示为:最小化VT窗口->在桌面上找到ispLEVER的图标并运行->进入工作目录->处理一些弹出的窗口信息->打开需要运行的例子->清除项目以前运行的信息 ->保存项目->运行布线->保存当前的项目->把运行完的例子复制到统一的备份目录中->关闭当前运行的项目 ->运行下一个例子 ……,直至运行完所有的测试例子。

  以上所有的菜单和窗口操作都是由VT执行代码完成操作。接着测试工具将会按照代码包含的子程序运行。

  图2所示的打开项目程序所进行的操作依次为,选中ispLEVER为当前窗口,定义窗口的尺寸,打开File下拉菜单的第二行命令,也就是open project命令,接着用play命令输入工作目录和项目名,接着点击open来打开项目。

  此外VT中还有例如点击窗口中的关键字操作,在当前窗口中寻找关键字,坐标定位等指令,灵活运用这些命令极大的丰富了VT自动化测试的内容。[!--empirenews.page--]

  运行完所有的例子后,所要进行的就是提取所需的各种参数,也就是重要的测试数据。

  运行完的例子都会备份在一个统一的目录中,现在VT所要做的就是在这些对应的目录中找到.log和.twr文件,这两个文件是最后运行完case的输出信息文件,里面包含了测试所要提取的一些参数信息。

  图3是在.log文件中的一段信息,红圈指示的内容是需要提取的信息之一,log文件是运行完后软件所生成的日志,里面包括了布线完后的一些资源信息,在这里VT所要做的提取的是PIOs信息,也就是输入输出端口数量的信息,可以用下面的代码实现。  

  图4实现的是把log文件中逐行输入到tempstring中,在这些输入的信息中找到所需信息并处理,则需要在VT中用以下代码实现。

  图5实现的是在字符串tempstring中寻找关键字"Number of external PIOs:”,也就是I/O口端口数量信息的那行。如果找到的话,用LTRIM$实现从这行第29个字符开始的内容放入tempstring2中。由于所要的有用信息只包括”out of”之前的数字,所以还需要用LEFT$来提取左面的信息,也就是158,这就是使用的I/O端口数量的信息,最后再用TRIM$ 去掉空格即可得到。

  类似的可以在特定的时序文件中得到最大频率,所用综合工具,器件封装,所用到的资源等等信息,把这些参数信息提取出来与之前版本的ispLEVE软件所运行得出的结果相比较,得出测试的结果。[!--empirenews.page--]

  从上可看出,对于测试所要运行的例子比较多,如果采用手工的话,工作量相当大,而且极不精确,容易出错。现在采用自动化测试工具将简化测试的繁琐程度,所有操作由自动化测试工具完成,而且代码可以移植,只要稍微改动几个参数,代码适用于每个版本的测试,给测试工作带来极大方便与准确性。


  自动化测试工具的比较

  目前同类的主流自动化测试软件还有Mucury公司的QuickTest Professional。

  它也是一款测试自动化软件,与Visual Test有类似之处,都是用于创建功能和回归测试,能自动捕获、验证和重放用户的交互行为。QuickTest Professional的特点是易于操作,可以通过软件中所集成的录制能力来捕获测试步骤,产品用简单的英语以文档形式记录每个步骤,并通过活动屏幕将文档与一个集成截屏相结合。传统的脚本记录工具所生产的脚本不易修改,不同的是,在QuickTest中的关键词驱动方式能便捷地插入、修改数据驱动和移除测试步骤,灵活性较强。

  下面的数据表格是在PC上运行VT和QT这两个工具,分别关于内存占用以及打开ispLEVER工具的时间,两者对比之下的结果。其中Open project ,Fit Design是指打开设计和最后生成下载文件,Simulation是仿真,Design Planner、EPIC、IPexpress、ispVM、Power Calculator等都是ispLEVER开发环境下的工具,主要用于底层的交互式编辑,调用ip以及下载程序,分析功率等功能(表1,表2)。

  根据上面两个对比结果,从内存占用情况来看VT占用的资源要远小于QT;从打开工具所用时间来看,VT打开绝大多数ispLEVER的工具的时间也要小于QT。虽然QT具有较强的录制修改脚本的特点,但从实际应用来看,运行的速度和占用资源对于软件测试更为重要,所以自动测试工具VT要优于QT。


  结论

随着软硬件协同应用复杂性日益增加,软件测试工作越来越受到重视。 随着软件技术的发展,程序的规模逐渐增大,复杂度也逐渐增加,使用软件测试工具可以增强软件测试的自动化程度。在两个主流软件的比较中,Visual Test相对较高的效率和速度在软硬件设计的实际应用中得到验证,有助于软件开发和测试人员进一步提高测试效率和软件的质量。这可以反映出在软硬件设计的过程中,工具的选择必须用实际应用来作选择,来保障整体的开发效率的提高。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2022年10月17日 /美通社/ --  "天下武功、唯快不破",数字经济时代尤甚。 数据极富价值,堪比新时代的石油。数字经济时代,数据价值如何快速、高效地释放显得尤为重要。自20...

关键字: 软件 IO SSD CPU

最近呢,在工作期间,确实被这种问题给困扰了,如何有效的管理电脑自启动的程序,相信大多数人都没有搞透彻,下面主要从Windows和Linux两个系统来进行分享,喜欢的记得点赞和再看哦!

关键字: 自启 电脑 软件

济南2022年10月14日 /美通社/ -- 近日,浪潮新基建成功通过CMMI(软件能力成熟度集成模型)三级认证并正式获得资质证书。继2021年组建后,仅一年时间就斩获全球软件领域最权威的认证之一,标志着浪潮新基建在技术...

关键字: 软件 新基建 智慧城市 模型

魁北克, Oct. 13, 2022 (GLOBE NEWSWIRE) -- 提供最灵活、最强大和最准确ADAS及AD传感技术的全球领先企业LeddarTech®欣然宣布,公司将采用一项业务战略,将更多的资金和团队资源用...

关键字: LED 汽车 软件 ADAS

麦格纳(MAGNA)正在进行一项1.2亿美元的投资,在印度班加罗尔建立和运营一座全新工程中心,旨在为出行电动化提供支持。该设施占地约2.2万平方米,预计将于2023年第一季度开业,届时该中心将聘请众多经验丰富的工程师和技...

关键字: 工程师 仿真 电动汽车 软件

嵌入式软件技术到目前为止己经在很多领域起到了中流砥柱的作用,例如在电子消费、移动通讯方面,这种技术为我国的很多行业提供了更多的可能性。未来,嵌入式软件技术会为人类做出更大的贡献。伴随着计算机技术与电子技术的成熟发展,电子...

关键字: 嵌入式 软件 人工智能

(全球TMT2022年9月29日讯)锐思华创正式宣布9月同时拿下两个定点项目,本次拿到的定点项目均为国内知名主机厂商新能源车型,其中一款车型发布之后有望成为国内新一代新能源运动轿车领跑车型,另一款车型定位为中大型SUV...

关键字: 新能源 CW 软件 CORE

2022年9月28日,在英特尔On技术创新峰会的第二天,英特尔详细说明了其在推进开放生态上的努力和投入,从芯片到系统,再到应用和软件堆栈的各个层级,如何在开发者社区中成为创新的催化剂。

关键字: 英特尔 软件 Intel

无锡2022年9月28日 /美通社/ -- 近日,江苏省工业和信息化厅公示2022年(第9批)省级软件企业技术中心拟认定名单,经企业申报、各市推荐、形式审查、专家评审等程序,浪潮卓数大数据产业发展有限公司(简称浪潮卓数)...

关键字: 软件 数据流 数据安全 数据采集

霍尼韦尔数据中心管理平台提供创新的用户体验,增加业务的弹性, 提高工作效率并提供关键的可持续性KPI指标的可见性 亚特兰大2022年9月28日 /美通社/ -- 全球楼宇互联行业领导者霍尼韦尔(纳斯达克代码:HON)...

关键字: 数据中心 霍尼韦尔 PI 软件

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭