人机交互测试系统和方法与流程

文档序号:26838854发布日期:2021-10-08 19:46阅读:715来源:国知局
人机交互测试系统和方法与流程

1.本技术涉及信息技术领域,尤其涉及一种人机交互测试系统和方法。


背景技术:

2.多模态的人机交互被越来越多用在各类智能设备中,例如在互联网汽车上,用户可以触控屏幕的方式控制汽车空调,可以通过语音控制天窗,可以通过手势挂接电话等等。
3.目前的一些智能设备虽然提供了对多模态人机交互功能的支持,并未提供对自动化测试的支持。若需要对智能设备的多模态人机交互功能进行测试,智能通过人工执行手动测试,或者智能对某方面的人机交互功能进行自动化测试,例如通过tts(text to speech,文本转语音)模拟测试框架,实现语音功能方面的自动化测试,或者是通过软件模拟点击、文本输入等方面的操作,实现这部分功能的自动化测试。但是,这些方案均无法实现完整的多模态自动化测试。


技术实现要素:

4.本技术的一个目的是提供一种人机交互测试方法,用以解决现有技术中无法实现完整的多模态自动化测试的问题。
5.本技术实施例中提供了一种多模态人机交互测试系统,该系统包括控制设备、仿生输出设备和仿生输入设备,所述仿生输出设备和仿生输入设备对应相应的模态;
6.所述控制设备,用于根据第一测试脚本,向所述仿生输出设备发送对应的控制指令,以及获取被测设备的交互反馈,并根据所述交互反馈确定测试结果;
7.所述仿生输出设备,用于根据来自控制设备的控制指令,向被测设备输出对应模态的交互信息,以使所述被测设备根据所述交互信息生成交互反馈;
8.所述仿生输入设备,用于采集被测设备的交互反馈,并将所述交互反馈提供至控制设备。
9.本技术实施例还提供了一种人机交互测试系统,该系统包括控制设备、输出设备和输入设备;
10.所述控制设备,用于根据第一测试脚本,向所述输出设备发送对应的控制指令,以及获取被测设备的交互反馈,并根据所述交互反馈确定测试结果;
11.所述输出设备,用于根据来自控制设备的控制指令,向被测设备输出交互信息,以使所述被测设备根据所述交互信息生成交互反馈;
12.所述输入设备,用于采集被测设备的交互反馈,并将所述交互反馈提供至控制设备。
13.本技术实施例提供了一种多模态人机交互测试方法,该方法采用了包括控制设备、仿生输出设备和仿生输入设备的系统,所述仿生输出设备和仿生输入设备对应相应的模态,所述方法包括:
14.所述控制设备根据第一测试脚本,向所述仿生输出设备发送对应的控制指令;
15.所述仿生输出设备根据来自控制设备的控制指令,向被测设备输出对应模态的交互信息,以使所述被测设备根据所述交互信息生成交互反馈;
16.所述仿生输入设备采集被测设备的交互反馈,并将所述交互反馈提供至控制设备;
17.所述控制设备获取被测设备的交互反馈,并根据所述交互反馈确定测试结果。
18.本技术实施例还提供了一种人机交互测试方法,该方法采用了包括控制设备、输出设备和输入设备的系统,所述方法包括:
19.所述控制设备根据第一测试脚本,向所述输出设备发送对应的控制指令;
20.所述输出设备根据来自控制设备的控制指令,向被测设备输出交互信息,以使所述被测设备根据所述交互信息生成交互反馈;
21.所述输入设备采集被测设备的交互反馈,并将所述交互反馈提供至控制设备;
22.所述控制设备获取被测设备的交互反馈,并根据所述交互反馈确定测试结果。
23.本技术的一些实施例还提供了一种计算设备,其中,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行前述的多模态人机交互测试方法。
24.本技术的另一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现所述的多模态人机交互测试方法。
25.本技术实施例提供的多模态人机交互测试方案中,采用了包括控制设备、仿生输出设备和仿生输入设备的系统,所述仿生输出设备和仿生输入设备对应相应的模态,其中,所述控制设备可以根据第一测试脚本,向所述仿生输出设备发送对应的控制指令,使得所述仿生输出设备根据控制指令,向被测设备输出对应模态的交互信息,以使所述被测设备根据所述交互信息生成交互反馈,而所述仿生输入设备可以采集被测设备的交互反馈,并将所述交互反馈提供至控制设备,使得控制设备以此确定测试结果。由此,通过控制设备和相关的仿生设备扩展了被测设备的测试能力,使用仿生设备来模拟多模态下的交互,由此可以实现了完整的多模态自动化测试。
附图说明
26.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
27.图1为本技术实施例提供的一种多模态人机交互测试系统的结构示意图;
28.图2为本技术实施例提供的另一种多模态人机交互测试系统的结构示意图;
29.图3为本技术实施例提供的测试方案对音乐播放的语音交互功能进行测试时的交互过程;
30.图4为本技术实施例进行人机交互测试时的处理流程图;
31.图5为本技术实施例提供的一种多模态人机交互测试方法的处理流程图;
32.图6为本技术实施例提供的一种设备的结构示意图;
33.附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
34.下面结合附图对本技术作进一步详细描述。
35.在本技术一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
36.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
37.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
38.本技术实施例提供了一种多模态人机交互测试系统,该系统包括控制设备、仿生输出设备和仿生输入设备,通过控制设备和相关的仿生设备扩展了被测设备的测试能力,使用仿生设备来模拟多模态下的交互,由此可以实现了完整的多模态自动化测试。
39.图1示出了本技术实施例提供的一种多模态人机交互测试系统的结构,该测试系统包括控制设备110、仿生输出设备120和仿生输入设备130,其中,所述仿生输出设备和仿生输入设备对应相应的模态。在测试过程中,所述控制设备110用于根据第一测试脚本,向所述仿生输出设备发送对应的控制指令,以及获取被测设备140的交互反馈,并根据所述交互反馈确定测试结果;所述仿生输出设备120用于根据来自控制设备的控制指令,向被测设备输出对应模态的交互信息,以使所述被测设备根据所述交互信息生成交互反馈;所述仿生输入设备130用于采集被测设备的交互反馈,并将所述交互反馈提供至控制设备。
40.所述交互信息为不同模态下的交互操作所对应的信息,例如语音交互操作对应的具体语音信息,点击操作对应的点击对象或者点击位置信息等,手势操作对应的手部动作信息等。交互反馈为被测设备在获取到交互信息之后所做出的反馈,例如将被测设备将用户界面切换至特定界面,播放特定的反馈语音等等。
41.不同的仿生输出设备用于模拟采用相应的形式对被测设备的控制过程,而不同的仿生输入设备则用于通过相应的形式获取被测设备的交互反馈。例如,仿生输出设备可以包括仿生手121和仿生嘴122,所述仿生手能够模拟用户手部的动作,从而模仿实际场景中用户通过各类手势和手部动作对被测设备进行控制,仿生嘴能够模拟用户的语音,从而可以模仿用户通过声音对被测设备进行控制。在实际场景中,所述仿生手可以是各类模仿人手形态的机械手,以舵机作为执行部件,从而实现模拟人手的不同姿态和动作,而仿生嘴可以是各类音频设备,如音响等,从而通过发出不同的声音来模拟用户的语音。
42.而仿生输入设备130则可以包括仿生眼131和仿生耳132,其中仿生眼可以采集被测设备生成的视觉交互反馈,所述视觉交互反馈可以是任意一种视觉方面的反馈信息,如被测设备在接收到交互信息并做出相应的处理之后其显示屏上所显示的反馈内容、或者是被测设备在接收到交互信息并做出相应的处理之后其可活动部件所执行的反馈动作等,这
些视觉交互反馈均可以由仿生眼131完成采集。而所述仿生耳132可以采集被测设备生成的听觉交互反馈,所述听觉交互反馈可以是任意一种听觉方面的反馈信息,如被测设备在接收到交互信息并做出相应的处理之后通过其音频设备所输出声音。在实际场景中,所述仿生眼131可以采用摄像头等视频采集设备,通过拍摄相关的图像以获得视觉交互反馈,而仿生耳可以采用麦克风等音频采集设备,通过采集相关的声音以获得音频交互反馈。
43.图2示出了本技术实施例中另一种多模态人机交互测试系统的结构,其中,仿生输出设备采用了仿生手121和仿生嘴122,仿生输入设备采用了仿生眼131和仿生耳132。所述控制设备110可以采用具有数据处理功能的各类计算设备,例如可以是部署于本地的计算机,或者是部署于网络侧的服务器等,若采用部署于本地的计算机,用户可以通过计算机上的用户界面实现多模态人机交互测试,若采用部署于网络侧的服务器,则用户可提供过客户端或者浏览器与服务器实现远程交互,实现多模态人机交互测试。例如,图2中的控制设备110即可以对外提供套接字(socket)接口以及用户界面(user interface,ui),用户使用的客户端150可以通过套接字接口与控制设备110进行数据交互,或者可以使用浏览器160连接控制设备之后,在显示用户界面中与控制设备110进行数据交互,如启动测试、编辑测试脚本、获得测试结果、查看测试报告等。
44.所述第一测试脚本是用于控制仿生输出设备输出对应模态的交互信息的测试脚本,例如以控制仿生嘴的一条第一测试脚本为例,该第一测试脚本的内容可以如下:
45.*test_musicplay()
46.{yield robotmouth.speak("我要听刘德华的歌");
47.assert.ok(uidevice.getcurrentpageuri()==="page://music.xxx.cn","打开音乐失败");
48.}
49.其中,yield robotmouth.speak("我要听刘德华的歌")表示通过与控制设备连接的人工嘴发出交互信息,该交互信息为语音指令,其具体内容为“我要听刘德华的歌”,以控制被测设备播放特定的音乐。实际场景中,控制设备可以基于“我要听刘德华的歌”这一文本,通过tts的方式将文本生成音频文件,然后通过连接的人工嘴播放该音频文件,以实现语音交互。
50.而assert.ok(uidevice.getcurrentpageuri()==="page://music.xxx.cn","打开音乐失败",则是通过断言操作判断被测设备是否生成了正确的交互反馈。在本条测试脚本中,即为判断被测设备是否打开了用于播放音乐的uri(统一资源标识符,uniform resource identifier),该uri为“page://music.xxx.cn”,若已经打开则不执行任何操作,若未打开,则生成“打开音乐失败”的信息,由此可以对本次交互信息对应的交互反馈进行确认,判断人机交互是否存在异常。
51.断言操作的结果可以被发送给控制设备,使得控制设备可以确定被测设备生成的交互反馈是否正确。此外,也可以通过仿生眼131或者仿生耳132等仿生输入设备来采集被测设备的交互反馈。以仿生眼为例,若被测设备基于语音交互信息“我要听刘德华的歌”,执行了正确的处理,会打开page://music.xxx.cn来播放对应的歌曲。在播放时被测设备会进入到对应的用户界面,因此被测设备进入到该用户界面时,可以表示被测设备生成了正确的交互反馈,反之,若未进入该用户界面,则表示被测设备没有产生成正确的交互反馈。
52.图3示出了对音乐播放的语音交互功能进行测试时的交互过程,包括了如下的步骤:
53.步骤s301,控制设备110根据第一测试脚本生成一条控制指令a1并发送给仿生嘴,该控制指令a1用于控制仿生嘴122发出语音“我要听刘德华的歌”。
54.步骤s302,仿生嘴122根据控制指令a1向被测设备140发出语音“我要听刘德华的歌”。
55.步骤s303,被测设备140在识别到语音“我要听刘德华的歌”时,对该交互信息进行处理后即可生成相应的交互反馈。若整个处理过程正确,该交互反馈即为进入到相应的播放界面a2,开始播放刘德华的歌曲。若对该交互信息的处理过程不正确或者是未正确识别到交互信息,则无法不会进入到相应的播放界面。
56.步骤s304,仿生眼131拍摄被测设备140的用户界面,并将用户界面发送给控制设备进行判断。若被测设备的用户界面在步骤s303中进入到了播放界面a2,则仿生眼131可以拍摄到该播放界面a2,并将该播放界面a2发送给控制设备进行分析。
57.步骤s305,控制设备110可以根据仿生眼131拍摄到的用户界面进行分析,以获得测试结果。若发现用户界面在预设时间内正确进入到了播放界面a2,则可以确定音乐播放的语音交互功能正常。
58.其中,所述控制设备还用于根据测试结果生成测试报告。在生成测试报告时,在单个测试脚本执行完毕后,控制设备可以针对单个测试脚本生成测试报告,或者也可以继续控制执行其它测试脚本,并全部测试脚本执行完毕后控制设备生成针对所有测试脚本的测试报告。此外,可以结合其他第三方测试平台输出关于测试报告的页面,以便于用户查看测试结果。
59.在实际场景中,被测设备人机交互时的交互信息除了可以通过仿生输出设备来模拟之外,还可以通过被测设备中封装的应用程序编程接口(application programming interface,api)来模拟。例如,被测设备中通过预置的测试框架所封装的各类用于交互的应用程序编程接口,例如通过调用被测设备中uiautomator等封装的应用程序编程接口,模拟用户在被测设备中输入的点击、拖动、滑动、文本输入等交互操作。在进行人机交互测试时,用于控制被测设备模拟交互操作的测试脚本即为第二测试脚本,而第一测试脚本则是用于控制仿生输出设备输出对应模态交互信息的测试脚本。
60.由此,在本技术的一些实施例中,所述控制设备还用于将第二测试脚本导入被测设备,以使所述被测设备运行所述第二测试脚本,模拟出相应的交互操作之后,以生成对应的交互反馈。用户可以通过各类仿生输出设备、直接将测试脚本导入至被测设备中运行的方式来模拟多模态交互操作,并获取相应的交互反馈,验证测试结果,以此使得开发者能够更加灵活地构建多模态测试场景,更加便捷地实现多模态人机交互测试。
61.若被测设备中集成了辅助手动测试(assist manual test,amt)工具,则可以生成相应的辅助手动测试动作指令。由此,控制设备可以获取第二测试脚本对应的辅助手动测试动作指令,并将所述辅助手动测试动作指令通过套接字接口导入被测设备,以使所述被测设备中的辅助手动测试工具执行所述辅助手动测试动作指令生成交互反馈。由于辅助手动测试工具可以用于重复用户输入的交互操作,因此可以提高测试的效率以及测试的稳定性。
62.在实际场景中,控制设备中可以预先配置测试用例集,该测试用例集中包含了用于对被测设备进行各类人机交互测试的测试脚本,包括前述的第一测试脚本或者第二测试脚本。所述测试用例集中的测试脚本可以由开发人员、测试人员等用户通过控制设备提供的套接字接口或者是用户界面,使用浏览器或者客户端编写或者导入。或者,测试脚本也可以来自于被测设备,此时控制设备也可以通过套接字从所述被测设备获取第一测试脚本或第二测试脚本,由此在控制设备上对人机交互测试所使用的测试脚本进行统一管理。
63.图4示出了本技术实施例进行人机交互测试时的处理流程,其控制设备使用了pc(personal computer,个人计算机),在对被测设备进行人机交互测试时,pc端和被测设备端之间的交互过程如下:
64.步骤s401,启动pc端的测试组件。pc端的测试组件包含了测试脚本管理功能,可以方便地配置测试脚本集并控制测试脚本的执行,同时还可以确定测试结果和生成测试报告。
65.步骤s402,pc端的测试组件启动后,可以通过socket接口实现测试脚本的控制。控制过程如下:可以通过adb(android debug bridge,安卓调试桥)的方式实现与被测设备之间进行交互,例如发送adb shell命令,通过adb端口映射的方式在pc端监听socket端口,接收来自被测设备端的指令消息,这些消息指令可以是amt指令字符串。此外,pc端还可以通过socket端口向被测设备中的amt工具发送amt动作指令,这些amt动作指令用于模拟用户在被测设备中输入的点击、拖动、滑动、文本输入等交互操作,可以由被测设备中的amt工具执行控制被测设备端中的硬件执行相应的处理,并向pc端返回响应。
66.步骤s403,启动对仿生设备的控制。其中,机械手、人工嘴等仿生输出设备可以在pc端的控制下,做出各种动作或者发出各种语音来模拟测试的交互操作,而摄像头等仿生输入设备可以从被测设备感知交互反馈。
67.步骤s404,生成测试报告。单条测试脚本执行完毕后,pc端会继续控制执行用例集中的其他测试用例,并且在全部测试脚本执行完毕后,pc端会生成测试报告。
68.在对仿生设备的控制过程中,依赖于三个核心组件,包括图像分析组件、手势控制组件、语音控制组件。
69.其中,图像分析组件用于实现对被测设备用户界面上的交互反馈进行感知。pc端可以连接摄像头,拍摄被测设备的用户界面变化情况。当被测设备的用户界面上做出交互反馈时,可以将交互反馈拍摄成为连续的图像帧,将测试动作发出的时间作为交互反馈的开始时间,将用户界面图像变化终止的时间作为交互反馈的结束时间,由此获得交互信息对应的交互反馈。
70.手势控制组件用于模拟用户手部的动作交互。可以通过3d打印的方式制作仿生手的机械硬件,通过连接的舵机驱动机械手运动,实现进行运动控制。pc端根据测试脚本生成控制指令,并由此控制舵机,驱动仿生机械手执行动作,形成被测手势操作。
71.例如,本技术实施例中一种静态手势对应的测试脚本可以如下:
72.yield multimode.sendgesturetoserver(multimode.gestureevent.gestu recode_palm);
73.动态手势对应的测试脚本可以如下:
74.yield multimode.sendgesturetoserver([{thumb:180,index:0,middle:180,
ring:180,pinky:150,wrist:180,bicep:60,rotator:40,shoulder:30,omoplate:10,interval:2000},{thumb:180,index:0,middle:180,ring:180,pinky:150,wrist:180,bicep:60,rotator:120,shoulder:30,omoplate:10,interval:0}]);
[0075]
机械手做出的手势会可以被被测设备端的手势识别模块识别,发送手势事件广播给系统应用,从而响应事件。事件作出响应后,被测设备端的状态会做出相应改变,设备端的测试脚本可以通过图像分析组件或者uiautomator等判断状态改变是否符合预期。
[0076]
语音控制组件用于模拟用户的语音交互。语音测试脚本在被测设备端或pc端执行,若在被测设备端会将语音测试脚本中的语音操作指令文本发送给pc端。pc端收到语音操作指令文本后,会调用tts接口将文本生成音频文件,然后系统会自动处理该音频文件,去除无效数据,之后会通过pc端连接的人工嘴等设备自动播放该音频文件。
[0077]
由此,本技术实施例提供的方案可以通过控制设备和相关的仿生设备扩展了被测设备的测试能力,使用仿生设备来模拟多模态下的交互,由此可以实现了完整的多模态自动化测试。
[0078]
此外,本技术实施例还可以提供一种可应用于其他场景的人机交互测试系统,该系统包括控制设备、输出设备和输入设备,其中,所述输出设备和输入设备不限于各类仿生设备,可以是其他任意形式的输出和输入设备,通过控制设备、输出设备、输入设备与被测设备之间的交互,完成对被测设备的人机交互功能的测试。
[0079]
在本实施例的人机交互测试系统中,所述控制设备用于根据第一测试脚本,向所述输出设备发送对应的控制指令。所述输出设备用于根据来自控制设备的控制指令,向被测设备输出交互信息,以使所述被测设备根据所述交互信息生成交互反馈。所述输入设备用于采集被测设备的交互反馈,并将所述交互反馈提供至控制设备。而所述控制设备在获取到输入设备提供的交互反馈之后,可以根据所述交互反馈确定测试结果,完成人机交互功能的测试。
[0080]
基于同一发明构思,本技术实施例中还提供了一种多模态人机交互测试方法,所述方法对应的系统是前述实施例中的多模态人机交互测试系统,并且其解决问题的原理与该方法相似。
[0081]
图5示出了本技术实施例提供的一种多模态人机交互测试方法的处理流程,该方法依赖于控制设备、仿生输出设备和仿生输入设备的测试系统。在实现人机交互测试时,包括以下处理步骤:
[0082]
步骤s501,所述控制设备根据第一测试脚本,向所述仿生输出设备发送对应的控制指令。
[0083]
步骤s502,所述仿生输出设备根据来自控制设备的控制指令,向被测设备输出对应模态的交互信息,以使所述被测设备根据所述交互信息生成交互反馈。
[0084]
步骤s503,所述仿生输入设备采集被测设备的交互反馈,并将所述交互反馈提供至控制设备。
[0085]
步骤s504,所述控制设备获取被测设备的交互反馈,并根据所述交互反馈确定测试结果。
[0086]
所述交互信息为不同模态下的交互操作所对应的信息,例如语音交互操作对应的具体语音信息,点击操作对应的点击对象或者点击位置信息等,手势操作对应的手部动作
信息等。交互反馈为被测设备在获取到交互信息之后所做出的反馈,例如将被测设备将用户界面切换至特定界面,播放特定的反馈语音等等。
[0087]
不同的仿生输出设备用于模拟采用相应的形式对被测设备的控制过程,而不同的仿生输入设备则用于通过相应的形式获取被测设备的交互反馈。例如,仿生输出设备可以包括仿生手121和仿生嘴122,所述仿生手能够模拟用户手部的动作,从而模仿实际场景中用户通过各类手势和手部动作对被测设备进行控制,仿生嘴能够模拟用户的语音,从而可以模仿用户通过声音对被测设备进行控制。在实际场景中,所述仿生手可以是各类模仿人手形态的机械手,以舵机作为执行部件,从而实现模拟人手的不同姿态和动作,而仿生嘴可以是各类音频设备,如音响等,从而通过发出不同的声音来模拟用户的语音。
[0088]
而仿生输入设备130则可以包括仿生眼131和仿生耳132,其中仿生眼可以采集被测设备生成的视觉交互反馈,所述视觉交互反馈可以是任意一种视觉方面的反馈信息,如被测设备在接收到交互信息并做出相应的处理之后其显示屏上所显示的反馈内容、或者是被测设备在接收到交互信息并做出相应的处理之后其可活动部件所执行的反馈动作等,这些视觉交互反馈均可以由仿生眼131完成采集。而所述仿生耳132可以采集被测设备生成的听觉交互反馈,所述听觉交互反馈可以是任意一种听觉方面的反馈信息,如被测设备在接收到交互信息并做出相应的处理之后通过其音频设备所输出声音。在实际场景中,所述仿生眼131可以采用摄像头等视频采集设备,通过拍摄相关的图像以获得视觉交互反馈,而仿生耳可以采用麦克风等音频采集设备,通过采集相关的声音以获得音频交互反馈。
[0089]
图2示出了本技术实施例中另一种多模态人机交互测试系统的结构,其中,仿生输出设备采用了仿生手121和仿生嘴122,仿生输入设备采用了仿生眼131和仿生耳132。所述控制设备110可以采用具有数据处理功能的各类计算设备,例如可以是部署于本地的计算机,或者是部署于网络侧的服务器等,若采用部署于本地的计算机,用户可以通过计算机上的用户界面实现多模态人机交互测试,若采用部署于网络侧的服务器,则用户可提供过客户端或者浏览器与服务器实现远程交互,实现多模态人机交互测试。例如,图2中的控制设备110即可以对外提供套接字(socket)接口以及用户界面(user interface,ui),用户使用的客户端150可以通过套接字接口与控制设备110进行数据交互,或者可以使用浏览器160连接控制设备之后,在显示用户界面中与控制设备110进行数据交互,如启动测试、编辑测试脚本、获得测试结果、查看测试报告等。
[0090]
所述第一测试脚本是用于控制仿生输出设备输出对应模态的交互信息的测试脚本,例如以控制仿生嘴的一条第一测试脚本为例,该第一测试脚本的内容可以如下:
[0091]
*test_musicplay()
[0092]
{yield robotmouth.speak("我要听刘德华的歌");
[0093]
assert.ok(uidevice.getcurrentpageuri()==="page://music.xxx.cn","打开音乐失败");
[0094]
}
[0095]
其中,yield robotmouth.speak("我要听刘德华的歌")表示通过与控制设备连接的人工嘴发出交互信息,该交互信息为语音指令,其具体内容为“我要听刘德华的歌”,以控制被测设备播放特定的音乐。实际场景中,控制设备可以基于“我要听刘德华的歌”这一文本,通过tts的方式将文本生成音频文件,然后通过连接的人工嘴播放该音频文件,以实现
语音交互。
[0096]
而assert.ok(uidevice.getcurrentpageuri()==="page://music.xxx.cn","打开音乐失败",则是通过断言操作判断被测设备是否生成了正确的交互反馈。在本条测试脚本中,即为判断被测设备是否打开了用于播放音乐的uri(统一资源标识符,uniform resource identifier),该uri为“page://music.xxx.cn”,若已经打开则不执行任何操作,若未打开,则生成“打开音乐失败”的信息,由此可以对本次交互信息对应的交互反馈进行确认,判断人机交互是否存在异常。
[0097]
断言操作的结果可以被发送给控制设备,使得控制设备可以确定被测设备生成的交互反馈是否正确。此外,也可以通过仿生眼131或者仿生耳132等仿生输入设备来采集被测设备的交互反馈。以仿生眼为例,若被测设备基于语音交互信息“我要听刘德华的歌”,执行了正确的处理,会打开page://music.xxx.cn来播放对应的歌曲。在播放时被测设备会进入到对应的用户界面,因此被测设备进入到该用户界面时,可以表示被测设备生成了正确的交互反馈,反之,若未进入该用户界面,则表示被测设备没有产生成正确的交互反馈。
[0098]
图3示出了对音乐播放的语音交互功能进行测试时的交互过程,包括了如下的步骤:
[0099]
步骤s301,控制设备110根据第一测试脚本生成一条控制指令a1并发送给仿生嘴,该控制指令a1用于控制仿生嘴122发出语音“我要听刘德华的歌”。
[0100]
步骤s302,仿生嘴122根据控制指令a1向被测设备140发出语音“我要听刘德华的歌”。
[0101]
步骤s303,被测设备140在识别到语音“我要听刘德华的歌”时,对该交互信息进行处理后即可生成相应的交互反馈。若整个处理过程正确,该交互反馈即为进入到相应的播放界面a2,开始播放刘德华的歌曲。若对该交互信息的处理过程不正确或者是未正确识别到交互信息,则无法不会进入到相应的播放界面。
[0102]
步骤s304,仿生眼131拍摄被测设备140的用户界面,并将用户界面发送给控制设备进行判断。若被测设备的用户界面在步骤s303中进入到了播放界面a2,则仿生眼131可以拍摄到该播放界面a2,并将该播放界面a2发送给控制设备进行分析。
[0103]
步骤s305,控制设备110可以根据仿生眼131拍摄到的用户界面进行分析,以获得测试结果。若发现用户界面在预设时间内正确进入到了播放界面a2,则可以确定音乐播放的语音交互功能正常。
[0104]
所述多模态人机交互测试方法还可以根据测试结果生成测试报告。在生成测试报告时,在单个测试脚本执行完毕后,控制设备可以针对单个测试脚本生成测试报告,或者也可以继续控制执行其它测试脚本,并全部测试脚本执行完毕后控制设备生成针对所有测试脚本的测试报告。此外,可以结合其他第三方测试平台输出关于测试报告的页面,以便于用户查看测试结果。
[0105]
在实际场景中,被测设备人机交互时的交互信息除了可以通过仿生输出设备来模拟之外,还可以通过被测设备中封装的应用程序编程接口(application programming interface,api)来模拟。例如,被测设备中通过预置的测试框架所封装的各类用于交互的应用程序编程接口,例如通过调用被测设备中uiautomator等封装的应用程序编程接口,模拟用户在被测设备中输入的点击、拖动、滑动、文本输入等交互操作。在进行人机交互测试
时,用于控制被测设备模拟交互操作的测试脚本即为第二测试脚本,而第一测试脚本则是用于控制仿生输出设备输出对应模态交互信息的测试脚本。
[0106]
由此,在本技术的一些实施例中,所述多模态人机交互测试方法还可以将第二测试脚本导入被测设备,以使所述被测设备运行所述第二测试脚本,模拟出相应的交互操作之后,以生成对应的交互反馈。用户可以通过各类仿生输出设备、直接将测试脚本导入至被测设备中运行的方式来模拟多模态交互操作,并获取相应的交互反馈,验证测试结果,以此使得开发者能够更加灵活地构建多模态测试场景,更加便捷地实现多模态人机交互测试。
[0107]
若被测设备中集成了辅助手动测试(assist manual test,amt)工具,则可以生成相应的辅助手动测试动作指令。由此,控制设备可以获取第二测试脚本对应的辅助手动测试动作指令,并将所述辅助手动测试动作指令通过套接字接口导入被测设备,以使所述被测设备中的辅助手动测试工具执行所述辅助手动测试动作指令生成交互反馈。由于辅助手动测试工具可以用于重复用户输入的交互操作,因此可以提高测试的效率以及测试的稳定性。
[0108]
在实际场景中,控制设备中可以预先配置测试用例集,该测试用例集中包含了用于对被测设备进行各类人机交互测试的测试脚本,包括前述的第一测试脚本或者第二测试脚本。所述测试用例集中的测试脚本可以由开发人员、测试人员等用户通过控制设备提供的套接字接口或者是用户界面,使用浏览器或者客户端编写或者导入。或者,测试脚本也可以来自于被测设备,此时控制设备也可以通过套接字从所述被测设备获取第一测试脚本或第二测试脚本,由此在控制设备上对人机交互测试所使用的测试脚本进行统一管理。
[0109]
此外,本技术实施例还可以提供一种可应用于其他场景的人机交互测试方法,该方法采用了包括控制设备、输出设备和输入设备的系统,其中,所述输出设备和输入设备不限于各类仿生设备,可以是其他任意形式的输出和输入设备,通过控制设备、输出设备、输入设备与被测设备之间的交互,完成对被测设备的人机交互功能的测试。
[0110]
在本实施例的人机交互测试方法中,先由所述控制设备根据第一测试脚本,向所述输出设备发送对应的控制指令。输出设备可以根据来自控制设备的控制指令,向被测设备输出交互信息,以使所述被测设备根据所述交互信息生成交互反馈。输入设备则采集被测设备的交互反馈,并将所述交互反馈提供至控制设备。而所述控制设备在获取到输入设备提供的交互反馈之后,可以根据所述交互反馈确定测试结果,完成人机交互功能的测试。
[0111]
另外,本技术的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本技术的方法和/或技术方案。而调用本技术的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,根据本技术的一些实施例包括一个如图6所示的计算设备,该设备包括存储有计算机可读指令的一个或多个存储器610和用于执行计算机可读指令的处理器620,其中,当该计算机可读指令被该处理器执行时,使得所述设备执行基于前述本技术的多个实施例的方法和/或技术方案。
[0112]
此外,本技术的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述本技术的多个实施例的方法和/或技术方案。
[0113]
需要注意的是,本技术可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本技术的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本技术的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本技术的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0114]
对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其他的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1