CN108491323A - 一种基于Lua脚本的嵌入式软件自动化测试系统及方法 - Google Patents

一种基于Lua脚本的嵌入式软件自动化测试系统及方法 Download PDF

Info

Publication number
CN108491323A
CN108491323A CN201810186697.4A CN201810186697A CN108491323A CN 108491323 A CN108491323 A CN 108491323A CN 201810186697 A CN201810186697 A CN 201810186697A CN 108491323 A CN108491323 A CN 108491323A
Authority
CN
China
Prior art keywords
test
target
lua
master control
control system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810186697.4A
Other languages
English (en)
Inventor
陈闯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAMWELL-TEC Inc
Original Assignee
SAMWELL-TEC Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAMWELL-TEC Inc filed Critical SAMWELL-TEC Inc
Priority to CN201810186697.4A priority Critical patent/CN108491323A/zh
Publication of CN108491323A publication Critical patent/CN108491323A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

一种基于Lua脚本的嵌入式软件自动化测试系统及方法,由目标测试系统及测试主控系统组成。目标测试系统包括:标准化的软件接口、Lua解析器、目标测试系统软件通信模块。测试主控系统包括:中央处理器、python解析器、监测模块及测试主控系统软件通信模块。本发明在嵌入式软件自动化测试中,可解决指令繁多且参数复杂,灵活性及移植性差,且出现异常时问题难以定位的问题;并解决现有方案中采用的脚本语言(如python等)存在的测试描述文件庞大,测试执行效率较低的问题。

Description

一种基于Lua脚本的嵌入式软件自动化测试系统及方法
技术领域
本发明属于嵌入式软件自动化测试相关技术,尤其是涉及一种基于LUA脚本的嵌入式软件自动化测试系统及方法。
技术背景
随着数字化时代的到来,大量系统架构复杂、功能日益强大的嵌入式系统正不断进入市场,应用也日趋复杂,这对嵌入式软件的开发技术和测试技术都提出了更高的要求。由于嵌入式软件往往会对硬件进行控制,且系统的硬件依赖性非常强,如果软件出现错误,可能会导致硬件设备出现故障。这种特殊性也决定了嵌入式软件必须稳定可靠,必须要通过严格的测试保证软件的质量。
现有的自动化测试方案是基于通信协议,通过定义好的PC主机与待测软件的通讯协议,PC主机发送指令到待测系统,待测系统执行完命令后返回状态信息给主机。但是由于命令繁多且参数复杂,灵活性及移植性都比较差,而且出现异常时不能准确的判断出是哪个步骤出现的问题。因此可以采用基于脚本的测试方法来提高测试效率。
测试脚本是测试过程中知道整个测试正常运行的“剧本”,是具有正规语法的数据和指令的集合。在自动化测试中,利用脚本来描述测试用例的输入,并通过仿真测试平台上的脚本解释器来执行测试用例是一种更有效的测试方法。但目前已有方案中采用的脚本语言在嵌入式软件自动化测试上仍存在一定的缺陷,如语法结构复杂、标准定义繁琐、测试描述文件庞大、测试执行效率较低等问题。因此,有必要采取一种更实时高效的测试脚本来对嵌入式软件进行自动化测试。
Lua作为一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,能与C语言或C++很好的契合,可嵌入到应用程序中,为应用程序提供灵活的扩展和定制功能。与其他脚本语言(python、Tcl等)相比,Lua表现出了足够的简单性以及非常高的执行效率,且与平台高度无关。
技术内容
本发明目的是针对以上现有技术的不足,设计一种在嵌入式软件自动化测试中,可解决指令繁多且参数复杂,灵活性及移植性差,且出现异常时问题难以定位的问题;并解决现有方案中采用的脚本语言(如python等)存在的测试描述文件庞大,测试执行效率较低的问题。
本发明目的可以通过以下技术方案实现,一种基于Lua脚本的嵌入式软件自动化测试系统,包括目标测试系统及测试主控系统,其中:
目标测试系统包括:
标准化的软件接口:用于与被测对象进行数据交换;
Lua解析器:用于解析测试脚本文件,按照测试语句进行各种函数的调用以及测试数据的实时解析及分发,使测试动作真正被执行;
目标测试系统软件通信模块,用于数据的收发交换;
测试主控系统包括:
中央处理器:用于对测试过程的一个总的控制,负责控制测试目标系统执行测试任务,然后监测测试目标执行特定任务后的各种状态变化,是否符合预期,生成测试报告;
python解析器:对比实际运行结果是否与预期结果相符。由于Python可以借助语言提供的API,在脚本中用“import”语句导入该模块,即可使用模块提供的函数。除此之外,python还可以应用于图像识别,对测试目标系统操作的记录、抓取屏幕显示进行分析比较,判断界面的运行变化是否符合预期;
监测模块:依据一定的配置采集测试目标的各种状态变化信息,并将信息反馈给中央处理器,包括摄像头;
测试主控系统软件通信模块:用于数据的收发交换。
所述的一种基于Lua脚本的嵌入式软件自动化测试系统,其目标测试系统还包括有目标测试系统存储器。
所述的一种基于Lua脚本的嵌入式软件自动化测试系统,其目标测试系统软件通信模块和测试主控系统软件通信模块为可移植的usb/uart/wifi/bluetooth通讯模块。
一种基于Lua脚本的嵌入式软件自动化测试方法,其包括:
(1)、将需要测试的各个功能软件通过LUA编程生成LUA脚本及被测试文件;
(2)、通过连接将这些被测试文件传递到目标测试系统;
(3)、目标测试系统接收被测试文件,并存储到指定位置;
(4)、目标测试系统的Lua解析器对被测试文件代码调用Lua的API函数对被测试文件进行解析执行,进行测试;
(5)、目标测试系统测试完后,Lua解析器将得到的测试数据通过目标测试系统通信模块反馈给测试主控系统端,同时测试主控系统的监测模块捕获系统运行时的界面的变化;
(6)、测试主控系统收到目标测试系统通信模块传输的数据及监测模块拍摄的界面,通过Python解析器进行解析,对比实际结果和预期结果的差异;
(7)、测试主控系统根据对比结果生成测试报告。
本发明技术进步在于:
1、由于Lua能很容易地通过C集成在软件里,测试功能强大,可直接执行代码函数,支持对复杂数据类型的变量访问;
2、Lua的运行速度很快且内存占用少,集成Lua只增加极少的内存占用率;
3、Lua简单易学,使用方法简单,测试人员容易上手;
4、能提高测试效率,帮助软件准确定位出现问题的问题点,减少测试人员的重复工作及开发人员定位问题的时间。
附图说明
图1为本发明目标测试系统原框图;
图2为本发明测试主控系统原框图;
图3为本发明程序框图;
图4为本发明的实施例示意图。
具体实施例
本发明被测对象为嵌入式系统中使用Lua脚本做胶合的一个个模块接口,需要编写Lua脚本调用这些接口,从而对接口进行测试,运行环境为嵌入式系统。
本发明测试系统由,目标测试系统及测试主控系统组成。目标测试系统如图1所示包括:用于与被测对象进行数据交换的标准化的软件接口;用于解析测试脚本文件,按照测试语句进行各种函数的调用以及测试数据的实时解析及分发,使测试动作真正被执行的Lua解析器;用于数据的收发交换的目标测试系统软件通信模块。
所述测试主控系统包括:用于对测试过程的一个总的控制,负责控制测试目标系统执行测试任务,然后监测测试目标执行特定任务后的各种状态变化,是否符合预期,生成测试报告的中央处理器;Lua测试代码。
用于对比实际运行结果是否与预期结果相符,由于Python可以借助语言提供的API,在脚本中用“import”语句导入该模块,即可使用模块提供的函数,除此之外,python还可以应用于图像识别,对测试目标系统操作的记录、抓取屏幕显示进行分析比较,判断界面的运行变化是否符合预期的python解析器;依据一定的配置采集测试目标的各种状态变化信息,并将信息反馈给中央处理器,如摄像头的监测模块;用于数据的收发交换的测试主控系统软件通信模块。
本发明一种基于Lua脚本的嵌入式软件自动化测试方法,包括以下步骤:
(1)、将需要测试的各个功能软件通过LUA编程生成LUA脚本及被测试文件;
(2)、通过连接将这些被测试文件传递到目标测试系统;
(3)、目标测试系统接收被测试文件,并存储到指定位置;
(4)、目标测试系统的Lua解析器对被测试文件代码调用Lua的API函数对被测试文件进行解析执行,进行测试;
(5)、目标测试系统测试完后,Lua解析器将得到的测试数据通过目标测试系统通信模块反馈给测试主控系统端,同时测试主控系统的监测模块捕获系统运行时的界面的变化;
(6)、测试主控系统收到目标测试系统通信模块传输的数据及监测模块拍摄的界面,通过Python解析器进行解析,对比实际结果和预期结果的差异;
(7)、测试主控系统根据对比结果生成测试报告。
在步骤(6)中,选用python解析器是基于用python编写的图像识别的成熟的库很多。所以,这里python解析器负责完成图像识别的功能。对比实际结果和预期结果的差异是指:按照设计,在场景A下,收到按键B,应该在屏幕上显示C页面(期望结果),这是一个完整的测试用例:A+B=C,且这条测试用例会用lua来完成A+B动作的模拟,如果在实际测试中,发现A+B=D,python使用图像识别功能判别出C != D,结果为NG,反之为OK。
下面举例说明测试过程,如图4所示,测试方向盘按键“LIST”,“SRC”的功能是否符合设计,以下操作都是在PC端完成。
步骤1:根据产品需求规格书,制作图F和图G,这是测试的期望结果。
步骤2:发送以下lua脚本到目标产品 (脚本的作用是按顺序产生两个按键:“LIST”和“SRC”):
GenerateKey(“LIST”)
Sleep(1)-- 等待1秒,方便图像的捕捉
GenerateKey(“SRC”) 。
步骤3:目标产品执行上述两条lua脚本后,屏幕上将会按顺序出现按了“LIST”和“SRC”的实际页面,在python中调用openCV库的相关API,让摄像头捕捉产品的显示页面并保存(捕捉间隔为1秒),设为A,B。
步骤4:将图1与A比较,将图2与B比较,图像匹配则测试通过,否则不通过。

Claims (4)

1.一种基于Lua脚本的嵌入式软件自动化测试系统,其特征在于,所述系统包括:目标测试系统及测试主控系统,其中:
目标测试系统包括:
标准化的软件接口:用于与被测对象进行数据交换;
Lua解析器:用于解析测试脚本文件,按照测试语句进行各种函数的调用以及测试数据的实时解析及分发,使测试动作真正被执行;
目标测试系统软件通信模块,用于数据的收发交换;
测试主控系统包括:
中央处理器:用于对测试过程的一个总的控制,负责控制测试目标系统执行测试任务,然后监测测试目标执行特定任务后的各种状态变化,是否符合预期,生成测试报告;
python解析器:对比实际运行结果是否与预期结果相符;由于Python可以借助语言提供的API,在脚本中用“import”语句导入该模块,即可使用模块提供的函数;除此之外,python还可以应用于图像识别,对测试目标系统操作的记录、抓取屏幕显示进行分析比较,判断界面的运行变化是否符合预期;
监测模块:依据一定的配置采集测试目标的各种状态变化信息,并将信息反馈给中央处理器,包括摄像头;
测试主控系统软件通信模块:用于数据的收发交换。
2.根据权利要求1所述的一种基于Lua脚本的嵌入式软件自动化测试系统,其特征在于,所述目标测试系统还包括有目标测试系统存储器。
3.根据权利要求1所述的一种基于Lua脚本的嵌入式软件自动化测试系统,其特征在于,所述目标测试系统软件通信模块和测试主控系统软件通信模块为可移植的usb/uart/wifi/bluetooth通讯模块。
4.一种基于Lua脚本的嵌入式软件自动化测试方法,其特征在于,所述方法包括:
(1)、将需要测试的各个功能软件通过LUA编程生成LUA脚本及被测试文件;
(2)、通过连接将这些被测试文件传递到目标测试系统;
(3)、目标测试系统接收被测试文件,并存储到指定位置;
(4)、目标测试系统的Lua解析器对被测试文件代码调用Lua的API函数对被测试文件进行解析执行,进行测试;
(5)、目标测试系统测试完后,Lua解析器将得到的测试数据通过目标测试系统通信模块反馈给测试主控系统端,同时测试主控系统的监测模块捕获系统运行时的界面的变化;
(6)、测试主控系统收到目标测试系统通信模块传输的数据及监测模块拍摄的界面,通过Python解析器进行解析,对比实际结果和预期结果的差异;
(7)、测试主控系统根据对比结果生成测试报告。
CN201810186697.4A 2018-03-07 2018-03-07 一种基于Lua脚本的嵌入式软件自动化测试系统及方法 Pending CN108491323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810186697.4A CN108491323A (zh) 2018-03-07 2018-03-07 一种基于Lua脚本的嵌入式软件自动化测试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810186697.4A CN108491323A (zh) 2018-03-07 2018-03-07 一种基于Lua脚本的嵌入式软件自动化测试系统及方法

Publications (1)

Publication Number Publication Date
CN108491323A true CN108491323A (zh) 2018-09-04

Family

ID=63341800

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810186697.4A Pending CN108491323A (zh) 2018-03-07 2018-03-07 一种基于Lua脚本的嵌入式软件自动化测试系统及方法

Country Status (1)

Country Link
CN (1) CN108491323A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716878A (zh) * 2019-10-11 2020-01-21 赛诺贝斯(北京)营销技术股份有限公司 一种接口自动化测试方法、装置及系统
CN112817811A (zh) * 2020-12-31 2021-05-18 深圳市联影高端医疗装备创新研究院 扫描失败率的预测方法、装置、设备及存储介质
TWI730384B (zh) * 2019-08-22 2021-06-11 新煒科技有限公司 影像測試方法、裝置、電腦裝置及可讀存儲介質
CN114629830A (zh) * 2022-03-02 2022-06-14 深圳市吉祥腾达科技有限公司 自动化控制TestCenter仪器测试的方法及系统
CN116775490A (zh) * 2023-06-26 2023-09-19 珠海精实测控技术股份有限公司 测试数据云系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100002564A (ko) * 2008-06-30 2010-01-07 주식회사 큐에이엔씨 보조 접근 기술 기반 소프트웨어 테스트 자동화 시스템 및방법
CN101840415A (zh) * 2010-03-15 2010-09-22 福建鑫诺通讯技术有限公司 一种在b/s架构下通过lua脚本控制本地资源的方法
CN102255674A (zh) * 2010-05-19 2011-11-23 希姆通信息技术(上海)有限公司 基于lua脚本的无线模块自动测试方法
CN107665168A (zh) * 2016-07-29 2018-02-06 中国船舶工业综合技术经济研究院 一种嵌入式软件gui自动化测试设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100002564A (ko) * 2008-06-30 2010-01-07 주식회사 큐에이엔씨 보조 접근 기술 기반 소프트웨어 테스트 자동화 시스템 및방법
CN101840415A (zh) * 2010-03-15 2010-09-22 福建鑫诺通讯技术有限公司 一种在b/s架构下通过lua脚本控制本地资源的方法
CN102255674A (zh) * 2010-05-19 2011-11-23 希姆通信息技术(上海)有限公司 基于lua脚本的无线模块自动测试方法
CN107665168A (zh) * 2016-07-29 2018-02-06 中国船舶工业综合技术经济研究院 一种嵌入式软件gui自动化测试设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI730384B (zh) * 2019-08-22 2021-06-11 新煒科技有限公司 影像測試方法、裝置、電腦裝置及可讀存儲介質
CN110716878A (zh) * 2019-10-11 2020-01-21 赛诺贝斯(北京)营销技术股份有限公司 一种接口自动化测试方法、装置及系统
CN110716878B (zh) * 2019-10-11 2023-09-26 赛诺贝斯(北京)营销技术股份有限公司 一种接口自动化测试方法、装置及系统
CN112817811A (zh) * 2020-12-31 2021-05-18 深圳市联影高端医疗装备创新研究院 扫描失败率的预测方法、装置、设备及存储介质
CN114629830A (zh) * 2022-03-02 2022-06-14 深圳市吉祥腾达科技有限公司 自动化控制TestCenter仪器测试的方法及系统
CN114629830B (zh) * 2022-03-02 2023-08-11 深圳市吉祥腾达科技有限公司 自动化控制TestCenter仪器测试的方法及系统
CN116775490A (zh) * 2023-06-26 2023-09-19 珠海精实测控技术股份有限公司 测试数据云系统及方法
CN116775490B (zh) * 2023-06-26 2024-06-11 珠海精实测控技术股份有限公司 测试数据云系统及方法

Similar Documents

Publication Publication Date Title
CN108491323A (zh) 一种基于Lua脚本的嵌入式软件自动化测试系统及方法
US11281570B2 (en) Software testing method, system, apparatus, device medium, and computer program product
US8984349B2 (en) Method and system for automating the process of testing a device
JP7270764B2 (ja) 人工知能チップ検証
Baker et al. Model-driven engineering in a large industrial context—Motorola case study
CN107203473A (zh) 自动扩展接口测试用例的自动化测试系统与方法
CN109857663B (zh) 关键字驱动与图像相似度结合的自动化测试平台
CN103164328A (zh) 一种业务功能的回归测试方法、装置及系统
CN103412817B (zh) 自动化测试脚本脱机调试方法及系统
CN103823758A (zh) 一种浏览器测试方法及装置
CN106093897B (zh) 一种雷达系统的测试系统及测试方法
CN111176629A (zh) 一种应用开发的方法和装置
CN109189663A (zh) 一种插件调试方法、测试方法及微内核架构系统
KR101722856B1 (ko) 프로그래밍 언어 기반의 plc 자동 테스트 장치
CN105630661A (zh) 用于自动化跨系统程序调试的方法和装置
US20200104244A1 (en) Scriptless software test automation
CN111817916A (zh) 基于移动终端集群的测试方法、装置、设备和存储介质
CN113126983A (zh) 一种自动化测试用脚本程序的编辑系统
CN115344248A (zh) 一种rpa开发字段编辑多样化方法
CN113934619A (zh) 基于Robot Framework测试框架的音源测试方法、系统及存储介质
Lee et al. A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large‐scale Switching Systems
CN210650758U (zh) 机器人示教器的测试系统
CN113836825A (zh) 神经网络处理器关键标准与验证芯片的应用方法
CN100367233C (zh) 程序执行控制方式
CN114661609B (zh) 人工智能医疗自动化测试集成系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180904

RJ01 Rejection of invention patent application after publication