增强web应用程序的用户界面的方法和系统与流程

专利2022-05-09  156



1.本公开涉及用户界面测试,并且更具体地涉及确定到用户界面中目标的最短路径以转换用户界面。


背景技术:

2.当前,比如公司这样的实体给客户提供了访问信息的各种方法,信息比如是客户下达的订单状态。客户可致电公司以试图获得信息。或者,客户可以访问与公司关联的网页(web page)来获得信息。客户可能需要导航应用程序的用户界面(ui)来访问信息。作为例子,客户在能够访问信息之前可能需要通过用户名和密码登录web应用程序。许多客户可能无法适当地导航ui——比如登录web应用程序并导航到相关联的屏幕——因此可能会选择致电公司以获得信息。
3.在此提供的背景描述是为了总体上呈现本公开的背景。本发明人的工作——就在背景技术部分所描述以及在申请时不算作现有技术的说明书方面中所描述的来说——既不明示也不暗示承认是针对本公开的现有技术。


技术实现要素:

4.公开了一种用于测试用户界面(ui)的计算机系统。所述计算机系统包括:测试创建模块,其被配置成获得测试参数。所述测试参数包括(i)可在该处访问所述ui的地点,以及(ii)针对与所述ui相关联的目标的标准。所述计算机系统还包括测试执行模块,其被配置成(i)基于所述地点获得所述ui的状态,以及(ii)将当前位置设置为所述ui内的预定地点。所述系统还包括分析模块,其被配置成:(i)分析所述ui的指定状态,(ii)响应于确定出所述指定状态满足针对所述目标的所述标准,输出成功指示符,以及(iii)响应于确定出所述ui的指定状态不满足针对所述目标的所述标准,基于所述指定状态内的ui元素确定一组可能动作,并将结果设置为所述一组可能动作。所述测试执行模块被配置成:将所述ui的状态提供至所述分析模块,并从所述分析模块接收所述输出。所述测试执行模块还被配置成:响应于所接收的输出是所述一组可能动作:从所述一组可能动作中选择动作,其中所述动作与第一ui元素相关联,执行所选择的动作,识别所述第一ui元素的点,基于(i)所述点的坐标和(ii)所述当前位置的坐标更新测试距离,将所述当前位置设置为所述点,以及以(i)所选择的动作和(ii)所述一组可能动作补充测试数据。所述测试执行模块还被配置成:(i)响应于所接收的输出是所述成功指示符,将所述测试距离和所述测试数据存储在已完成测试集合中,以及(ii)基于所述已完成测试集合确定至所述ui中所述目标的最短路径。
5.在其他特征中,所述测试参数包括被允许的测试的数目。所述测试执行模块被配置成响应于所接收的输出是所述成功指示符而递增计数器。确定所述最短路径包括:响应于确定所述计数器的值大于或等于所述被允许的测试的数目,选择所述已完成测试集合中具有所述最短测试距离的已完成测试。
6.在又一其他特征中,所述点是所述第一ui元素的至所述当前位置的最近点;并且
更新所述测试距离包括(i)确定所述当前位置的坐标与所述点的坐标之间的距离,以及(ii)将所确定的距离加到所述测试距离。
7.在其他特征中,所述分析模块被配置成:针对所述一组可能动作中的每个动作,(i)确定执行该动作将导致所述目标的概率,以及(ii)将所确定的概率存储在所述一组可能动作中。从所述一组可能动作中选择动作包括:基于所述一组可能动作中存储的概率,从所述一组可能动作中选择动作。
8.在又一特征中,所述计算机系统包括:神经网络模块,其被配置成操作多个神经网络。所述分析模块被配置成选择性地使用所述多个神经网络中的至少一个神经网络,来确定执行所述动作将导致所述目标的概率。
9.在又一特征中,所述多个神经网络包括长短期记忆神经网络和卷积神经网络中的至少一个。
10.在其他特征中,所述计算机系统包括训练模块,所述训练模块被配置成:响应于所接收的输出是所述成功指示符,使用所述测试数据训练所述多个神经网络;基于所述已完成测试集合中存储的概率,确定训练后所述多个神经网络的性能;以及响应于确定训练后所述多个神经网络的性能的值大于预定值,将所述多个神经网络的状态设为受到训练。
11.在进一步的特征中,所述计算机系统包括:蒙特卡洛模块,其被配置成执行蒙特卡洛仿真,以生成随机值;以及重新加权模块,其被配置成:(i)响应于所述多个神经网络的状态是受到训练,基于所述多个神经网络中至少一个神经网络的输出,更新所述测试数据中存储的每个概率;以及(ii)响应于所述多个神经网络的状态不是受到训练,以所述蒙特卡洛模块生成的随机值更新所述测试数据中存储的每个概率。
12.公开了一种用于测试用户界面(ui)的方法。所述方法包括:获得测试参数。所述测试参数包括(i)可在该处访问所述ui的地点,以及(ii)针对与所述ui相关联的目标的标准。该方法还包括:基于所述地点获得所述ui的状态;将当前位置设置为所述ui内的预定地点;分析所述ui的指定状态;响应于确定出所述指定状态满足针对所述目标的所述标准,将输出设置为成功指示符;以及响应于确定出所述指定状态不满足针对所述目标的所述标准,(i)基于所述指定状态内的ui元素确定一组可能动作,并且(ii)将所述输出设置为所述一组可能动作。该方法还包括:响应于所述输出是所述一组可能动作:从所述一组可能动作中选择与第一ui元素相关联的动作;执行所选择的动作;识别所述第一ui元素的点;基于(i)所述点的坐标和(ii)所述当前位置的坐标更新测试距离;将所述当前位置设置为所述点;以及以(i)所选择的动作和(ii)所述一组可能动作补充测试数据。该方法还包括:(i)响应于所述输出是所述成功指示符,将所述测试距离和所述测试数据存储在已完成测试集合中;以及(ii)基于所述已完成测试集合确定至所述ui中所述目标的最短路径。
13.在其他特征中,所述测试参数包括被允许的测试的数目。该方法包括响应于所述输出是所述成功指示符而递增计数器。确定所述最短路径包括:响应于确定所述计数器的值大于或等于所述被允许的测试的数目,选择所述已完成测试集合中具有所述最短测试距离的已完成测试。
14.在又一其他特征中,所述点是所述第一ui元素的至所述当前位置的最近点。更新所述测试距离包括(i)确定所述当前位置的坐标与所述点的坐标之间的距离,以及(ii)将所确定的距离加到所述测试距离。
15.在其他特征中,该方法包括:针对所述一组可能动作中的每个动作,(i)确定执行该动作将导致所述目标的概率,以及(ii)将所确定的概率存储在所述一组可能动作中。从所述一组可能动作中选择动作包括:基于所述一组可能动作中存储的概率,从所述一组可能动作中选择动作。
16.在进一步的特征中,该方法包括,响应于所述输出是所述成功指示符:使用所述测试数据训练多个神经网络;基于所述已完成测试集合中存储的概率,确定训练后所述多个神经网络的性能;以及响应于确定训练后所述多个神经网络的性能的值大于预定值,将所述多个神经网络的状态设置为受到训练。
17.在又一进一步的特征中,该方法包括:响应于所述多个神经网络的状态是受到训练,基于所述多个神经网络中至少一个神经网络的输出,更新所述测试数据中存储的每个概率,以及响应于所述多个神经网络的状态不是受到训练,以随机值更新所述测试数据中存储的每个概率。
18.公开了一种存储有处理器可执行指令的非临时性计算机可读介质。所述指令包括:获得测试参数。所述测试参数包括(i)可在该处访问用户界面ui的地点,以及(ii)针对与所述ui相关联的目标的标准。所述指令还包括:基于所述地点获得所述ui的状态;将当前位置设置为所述ui内的预定地点;分析所述ui的指定状态;响应于确定出所述指定状态满足针对所述目标的所述标准,将输出设置为成功指示符;响应于确定出所述指定状态不满足针对所述目标的所述标准,(i)基于所述指定状态内的ui元素确定一组可能动作,并(ii)将所述输出设置为所述一组可能动作。所述指令还包括:响应于所述输出是所述一组可能动作:从所述一组可能动作中选择动作,其中所述动作与第一ui元素相关联;执行所选择的动作;识别所述第一ui元素的点;基于(i)所述点的坐标和(ii)所述当前位置的坐标更新测试距离;将所述当前位置设置为所述点;以及以(i)所选择的动作和(ii)所述一组可能动作补充测试数据。所述指令还包括:(i)响应于所述输出是所述成功指示符,将所述测试距离和所述测试数据存储在已完成测试集合中;以及(ii)基于所述已完成测试集合确定至所述ui中所述目标的最短路径。
19.在其他特征中,所述测试参数包括被允许的测试的数目。所述指令还包括响应于所述输出是所述成功指示符而递增计数器。确定所述最短路径包括:响应于确定所述计数器的值大于或等于所述被允许的测试的数目,选择所述已完成测试集合中具有所述最短测试距离的已完成测试。
20.在又一其他特征中,所述点是所述第一ui元素的至所述当前位置的最近点。更新所述测试距离包括(i)确定所述当前位置的坐标与所述点的坐标之间的距离,以及(ii)将所确定的距离加到所述测试距离。
21.在其他特征中,所述指令包括:针对所述一组可能动作中的每个动作,(i)确定执行该动作将导致所述目标的概率,以及(ii)将所确定的概率存储在所述一组可能动作中。从所述一组可能动作中选择动作包括:基于所述一组可能动作中存储的概率,从所述一组可能动作中选择动作。
22.在进一步的特征中,所述指令包括,响应于所述输出是所述成功指示符:使用所述测试数据训练多个神经网络;基于所述已完成测试集合中存储的概率,确定训练后所述多个神经网络的性能;以及响应于确定训练后所述多个神经网络的性能的值大于预定值,将
所述多个神经网络的状态设为受到训练。
23.在又一进一步特征中,所述指令还包括:(i)响应于所述多个神经网络的状态是受到训练,基于所述多个神经网络中至少一个神经网络的输出,更新所述测试数据中存储的每个概率;以及(ii)响应于所述多个神经网络的状态不是受到训练,以随机值更新所述测试数据中存储的每个概率。
24.公开了一种用于改进用户界面(ui)的计算机系统。该计算机系统包括:加强模块,其被配置成获得(i)指示至所述ui中的目标的最短路径的路径信息,以及(ii)与寻求所述目标相关联的一组用户交互实验。所述一组用户交互实验中的每个实验包括用户跟踪数据,所述路径信息包括多个步骤,以及所述多个步骤中的每个步骤与所述ui的页面相关联。所述计算机系统还包括:距离模块,其被配置成:针对所述ui的每个页面,基于所述一组用户交互实验,确定所述页面的加强距离;以及步骤分析模块,其被配置成:针对所述多个步骤中的每个步骤,确定所述一组用户交互实验的用户跟踪数据指示偏离了该步骤的次数计数。该确定基于针对所述ui的与该步骤相关联的页面确定的加强距离。所述加强模块被配置成,针对所述多个步骤中的每个步骤:(i)基于所述计数,确定该步骤是否需要加强,以及(ii)响应于确定出该步骤需要加强,生成针对该步骤的加强。生成所述加强包括以下至少之一:生成针对与该步骤相关联的动作的提示和改变与该步骤相关联的ui元素。
25.在其他特征中,确定针对页面的加强距离包括确定所述一组用户交互实验中的用户跟踪数据与所述最短路径之间的至少一个距离。
26.在又一其他特征中,确定针对页面的加强距离包括(i)基于成功到达所述目标的第一子组用户交互实验的用户跟踪数据,确定针对该页面的中值成功距离,以及(ii)基于第二子组用户交互实验的用户跟踪数据,确定针对该页面的中值失败距离。
27.在进一步的特征中,所述距离模块被配置成:针对所述ui的每个页面,生成至少一个随机距离,所述随机距离小于针对该页面的所述中值成功距离,且大于针对该页面的所述中值失败距离。所述计算机系统包括预测模块,所述预测模块被配置成,针对所述一组用户交互实验中一实验的用户跟踪数据中的每个样本:基于(i)针对与所述样本相关联的页面生成的随机距离,(ii)所述样本的坐标,以及(iii)沿着所述最短路径的点的坐标,预测所述实验的结果,以及比较预测结果与所述实验的存储结果。所述预测模块还被配置成输出所述比较的结果。
28.在其他特征中,预测所述实验的结果包括:(i)计算所述样本的坐标与沿着所述最短路径的点的坐标之间的距离,以及(ii)基于所确定的距离和针对与所述样本相关联的页面的随机距离之间的比较,确定所述预测结果。比较所述预测结果和所述存储结果包括:响应于所述预测结果与所述存储结果相匹配,递增成功预测计数。输出所述比较的结果包括输出所述成功预测计数。
29.在又一其他特征中,所述距离模块被配置成:针对每个随机生成的距离,至少基于所述预测模块输出的所述成功预测计数,生成适应度值。所述计算机系统包括分析模块,所述分析模块被配置成对所生成的适应度值执行群集分析。
30.在进一步的特征中,所述距离模块被配置成:针对所述ui的每个页面,响应于对所生成的适应度值的群集分析识别单个群集,将具有最高适应度值的与所述页面相关联的随机生成的距离设置为针对所述页面的加强距离。
31.公开了一种用于改进用户界面ui的方法。所述方法包括:获得(i)指示至所述ui中的目标的最短路径的路径信息,以及(ii)与寻求所述目标相关联的一组用户交互实验。所述一组用户交互实验中的每个实验包括用户跟踪数据,所述路径信息包括多个步骤,以及所述多个步骤中的每个步骤与所述ui的页面相关联。该方法还包括:针对所述ui的每个页面,基于所述一组用户交互实验,确定针对该页面的加强距离;以及针对所述多个步骤中的每个步骤:确定所述一组用户交互实验的用户跟踪数据指示偏离了该步骤的次数计数。所述确定基于针对所述ui的与该步骤相关联的页面确定的加强距离。该方法还包括:基于所述计数确定该步骤是否需要加强,以及响应于确定出该步骤需要增强,生成针对该步骤的加强。生成所述增强包括以下至少之一:生成针对与该步骤相关联的动作的提示和改变与该步骤相关联的ui元素。
32.在其他特征中,确定针对页面的加强距离包括:确定所述一组用户交互实验的用户跟踪数据与所述最短路径之间的至少一个距离。
33.在又一其他特征中,确定针对页面的加强距离包括:(i)基于成功到达所述目标的第一子组用户交互实验的用户跟踪数据,确定针对该页面的中值成功距离,以及(ii)基于第二子组用户交互实验的用户跟踪数据,确定针对该页面的中值失败距离。
34.在进一步的特征中,确定针对页面的加强距离包括:生成至少一个随机距离,所述随机距离小于针对该页面的所述中值成功距离,且大于针对该页面的所述中值失败距离。该方法还包括:针对所述一组用户交互实验中一实验的用户跟踪数据中的每个样本:基于(i)针对与所述样本相关联的页面生成的随机距离,(ii)所述样本的坐标以及(iii)沿着所述最短路径的点的坐标,预测所述实验的结果,以及比较预测结果与所述实验的存储结果。
35.在其他特征中,预测所述实验的结果包括:计算所述样本的坐标与沿着所述最短路径的点的坐标之间的距离,以及基于所确定的距离和针对与所述样本相关联的页面的随机距离之间的比较,确定所述预测结果。比较所述预测结果与所述存储结果包括:响应于所述预测结果匹配于所述存储结果,递增成功预测计数。
36.在又一特征中,确定针对页面的加强距离包括:针对每个随机生成的距离,至少基于与随机生成的距离相关联的所述成功预测计数,生成适应度值;以及对所生成的适应度值执行群集分析。
37.在进一步的特征中,确定针对页面的加强距离包括:响应于对所生成的适应度值的群集分析识别单个群集,将具有最高适应度值的与所述页面相关联的随机生成的距离设置为针对所述页面的加强距离。
38.公开了一种存储有处理器可执行指令的非临时性计算机可读介质。所述指令包括:获得(i)指示至用户界面ui中的目标的最短路径的路径信息,以及(ii)与寻求所述目标相关联的一组用户交互实验。所述一组用户交互实验中的每个实验包括用户跟踪数据,所述路径信息包括多个步骤,以及所述多个步骤中的每个步骤与所述ui的页面相关联。所述指令还包括:针对所述ui的每个页面,基于所述一组用户交互实验,确定针对该页面的加强距离;以及针对所述多个步骤中的每个步骤,确定所述一组用户交互实验的用户跟踪数据指示偏离了所述步骤的次数计数。所述确定基于针对所述ui的与该步骤相关联的页面确定的加强距离。所述指令还包括:针对所述多个步骤中的每个步骤,基于所述计数,确定该步骤是否需要加强,以及响应于确定出所述步骤需要加强,生成针对该步骤的加强。生成所述
加强包括以下至少之一:生成针对与所述步骤相关联的动作的提示和改变与所述步骤相关联的ui元素。
39.在其他特征中,确定针对页面的加强距离包括(i)基于成功到达所述目标的第一子组用户交互实验的用户跟踪数据,确定针对该页面的中值成功距离,以及(ii)基于第二子组用户交互实验的用户跟踪数据,确定针对该页面的中值失败距离。
40.在又一其他特征中,确定针对页面的加强距离包括:生成至少一个随机距离,所述随机距离小于针对该页面的所述中值成功距离,且大于针对该页面的所述中值失败距离。所述指令还包括:针对所述一组用户交互实验中一实验的用户跟踪数据中的每个样本:基于(i)针对与所述样本相关联的页面生成的随机距离,(ii)所述样本的坐标,以及(iii)沿着所述最短路径的点的坐标,预测所述实验的结果。所述指令还包括:比较预测结果与所述实验的存储结果。
41.在进一步的特征中,预测所述实验的结果包括:(i)计算所述样本的坐标与沿着所述最短路径的点的坐标之间的距离,以及(ii)基于所确定的距离和针对与所述样本相关联的页面的随机距离之间的比较,确定所述预测结果。比较所述预测结果和所述存储结果包括:响应于所述预测结果与所述存储结果相匹配,递增成功预测计数。
42.在其他特征中,确定针对页面的加强距离包括:针对每个随机生成的距离,(i)至少基于与该随机生成的距离相关联的所述成功预测计数,生成适应度值;以及(ii)对所生成的适应度值执行群集分析。
43.在又一其他特征中,确定针对页面的加强距离包括:响应于对所生成的适应度值的群集分析识别单个群集,将具有最高适应度值的与所述页面相关联的随机生成的距离设置为针对所述页面的加强距离。
44.公开了一种用于集成电话系统和计算系统的系统。所述系统包括:交互式语音响应ivr平台,其被配置成:基于来自用户的音频输入,获得计算机可读命令,以及响应于获得所述计算机可读命令,(i)确定与所述计算机可读命令相对应的web应用程序,(ii)确定所述web应用程序中与所述计算机可读命令相关联的目标,以及(iii)获得指示至所述web应用程序中的所述目标的最短用户界面路径的信息。所述系统还包括:协同浏览客户端,其被配置成从托管所述web应用程序的web服务器的协同浏览会话,接收所述web应用程序的当前状态的文档对象模型dom。所述ivr平台被配置成:基于来自所述协同浏览客户端的所述dom,确定沿着所述最短用户界面路径的下一个用户界面动作,以及基于所述下一个用户界面动作,生成针对所述用户的语音提示。所述协同浏览客户端被配置成响应于所述用户执行所述下一个用户界面动作,接收更新的dom。
45.在其他特征中,所述ivr平台被配置成使用无头浏览器连接至所述协同浏览客户端。
46.在又一其他特征中,获得来自所述用户的音频输入包括经由所述用户的电话获得所述音频输入。
47.在其他特征中,所述ivr平台被配置成:从所述用户获得协同浏览会话标识符,将所述协同浏览会话标识符发送至所述协同浏览会话,以及响应于发送所述协同浏览会话标识符,接收所述当前状态的所述dom。
48.在进一步的特征中,获得所述协同浏览会话标识符包括生成针对所述用户的语音
指示,所述语音指示请求所述用户(i)发起所述协同浏览会话,以及(ii)将所述协同浏览会话标识符提供给所述ivr平台。
49.在其他特征中,所述ivr平台被配置成响应于在生成所述语音提示之后的预定时间段期满,其中在所述预定时间段期间没有接收到更新的dom:(i)基于沿着所述最短用户界面路径的所述下一个用户界面动作,确定加强,以及(ii)基于所确定的加强,生成针对所述用户的音频加强提示。
50.在进一步的特征中,所述音频加强提示指定了与所述下一个用户界面动作相关联的用户界面元素的地点。
51.公开了一种用于集成电话系统和计算机系统的方法。该方法包括:基于来自用户的音频输入,获得计算机可读命令;确定与所述计算机可读命令相对应的web应用程序;确定所述web应用程序中与所述计算机可读命令相关联的目标;获得指示至所述web应用程序中的所述目标的最短用户界面路径的信息;从托管所述web应用程序的web服务器的协同浏览会话,接收所述web应用程序的当前状态的文档对象模型dom;以及确定沿着所述最短用户界面路径的下一个用户界面动作。该方法还包括:基于所述下一个用户界面动作,生成针对所述用户的语音提示;以及响应于所述用户执行所述下一个用户界面动作,接收更新的dom。
52.在其他特征中,接收所述web应用程序的当前状态的dom包括使用无头浏览器访问所述协同浏览客户端。
53.在又一其他特征中,获得来自所述用户的音频输入包括经由所述用户的电话获得所述音频输入。
54.在其他特征中,所述方法包括:从所述用户获得协同浏览会话标识符;将所述协同浏览会话标识符发送至所述协同浏览会话;以及接收所述当前状态的dom包括响应于发送所述协同浏览会话标识符,接收所述dom。
55.在进一步特征中,获得所述协同浏览会话标识符包括生成针对所述用户的语音指示,所述语音指示请求所述用户(i)发起所述协同浏览会话,以及(ii)经由pstn提供所述协同浏览会话标识符。
56.在其他特征中,该方法包括:响应于在生成所述语音提示之后的预定时间段期满,其中在所述预定时间段期间没有接收到更新的dom:(i)基于沿着所述最短用户界面路径的所述下一个用户界面动作,确定加强,以及(ii)基于所确定的增强,生成针对所述用户的音频加强提示。
57.在进一步的特征中,所述音频加强提示指定了与所述下一个用户界面动作相关联的用户界面元素的地点。
58.公开了一种存储有处理器可执行指令的非临时性计算机可读介质。所述指令包括:基于来自用户的音频输入,获得计算机可读命令;确定与所述计算机可读命令相对应的web应用程序;确定与所述计算机可读命令相关联的所述web应用程序中的目标;获得指示至所述web应用程序中的所述目标的最短用户界面路径的信息;从托管所述web应用程序的web服务器的协同浏览会话,接收所述web应用程序的当前状态的文档对象模型dom;确定沿着所述最短用户界面路径的下一个用户界面动作。所述指令还包括:基于所述下一个用户界面动作,生成针对所述用户的语音提示;以及响应于所述用户执行所述下一个用户界面
动作,接收更新的dom。
59.在其他特征中,获得来自所述用户的音频输入包括经由所述用户的电话获得所述音频输入。
60.在又一其他特征中,所述指令包括:从所述用户获得协同浏览会话标识符;将所述协同浏览会话标识符发送至所述协同浏览会话;接收所述当前状态的dom包括响应于发送所述协同浏览会话标识符,接收所述dom。
61.在进一步的特征中,获得所述协同浏览会话标识符包括生成针对所述用户的语音指示,所述语音指示请求所述用户(i)发起所述协同浏览会话,以及(ii)经由pstn提供所述协同浏览会话标识符。
62.在其他特征中,所述指令包括:响应于在生成所述语音提示之后的预定时间段期满,其中在所述预定时间段期间没有接收到更新的dom:(i)基于沿着所述最短用户界面路径的所述下一个用户界面动作,确定加强,以及(ii)基于所确定的加强,生成针对所述用户的音频加强提示。
63.在进一步的特征中,所述音频加强提示指定了与所述下一个用户界面动作相关联的用户界面元素的地点。
64.从以下详细描述、权利要求和附图,本公开的进一步适用范围将变得明显。本详细描述和具体例子旨在于仅用于说明,不意欲限制本公开的范围。
附图说明
65.通过详细描述和附图将更充分理解本公开。
66.图1是用于测试用户界面(ui)的示例性系统的功能框图。
67.图2是示例性长短期记忆神经网络的功能框图。
68.图3是示例性链接神经网络的功能框图。
69.图4是示例性提交神经网络的功能框图。
70.图5a是示例性数据选择神经网络的功能框图。
71.图5b是示例性数据匹配神经网络的功能框图。
72.图6是示例性动作权重神经网络的功能框图。
73.图7a和图7b是描述确定至ui中给定目标的最短路径的示例性方法的流程图。
74.图8a至图8c是描述分析ui状态的示例性方法的流程图。
75.图9a和图9b是描述使用已完成最短路径测试来训练神经网络的示例性方法的流程图。
76.图10a至图10c是描述在存储状态下重新加权动作的示例性方法的流程图。
77.图11是描述基于所选择的最短路径动作来构建新的ui会话的示例性方法的流程图。
78.图12a至图12h是确定至特定示例性ui中的目标的最短路径的图形表示。
79.图13是描述基于眼睛跟踪实验来增强ui的示例性方法的流程图。
80.图14是描述为基于web的ui的每个url确定加强距离的示例性方法的流程图。
81.图15是描述用于确定眼睛跟踪实验与沿着加载的最短路径的点之间的距离的示例性方法的流程图。
82.图16是描述用于确定跟踪数据与沿着针对ui的页面的加载的最短路径的点之间的距离的示例性方法的流程图。
83.图17是描述基于在眼睛跟踪实验中存储的数据在一组眼睛跟踪实验中确定每个url的中值成功距离的示例性方法的流程图。
84.图18是描述基于在眼睛跟踪实验中存储的数据在一组眼睛跟踪实验中确定每个url的中值失败距离的示例性方法的流程图。
85.图19是描述用于将对眼睛跟踪实验的结果的预测与先前存储的结果进行比较的示例性方法的流程图。
86.图20是描述用于将对眼睛跟踪实验的结果的预测与先前存储的结果进行比较的示例性方法的流程图。
87.图21是描述用于确定可能需要加强的至ui中的目标的最短路径的步骤的示例性方法的流程图。
88.图22是描述用于确定可能需要增加的与眼睛跟踪实验的页面相关联的最短路径的步骤的示例性方法的流程图。
89.图23a

23e是生成用于ui的页面的眼睛跟踪向量和最短路径向量的示例性过程的视觉表示。
90.图24是示例性客户迁移系统的功能框图。
91.图25是表示由客户迁移系统示例性发起协同浏览会话的序列图。
92.图26是表示客户迁移系统的示例协同浏览会话的序列图。
93.图27a

27d描述了根据本公开原理的客户迁移系统的示例性协同浏览会话。
94.图28是包括高容量药房的示例性系统的功能框图。
95.图29是可以被部署在图28的系统内的示例性药房履行装置的功能框图。
96.图30是可以被部署在图28的系统内的示例性订单处理装置的功能框图。
97.在图中,附图标记可以被重复使用以标识相似和/或相同的元件。
具体实施方式
98.引言
99.用户界面(ui)提供对信息的访问,并且可以允许执行各种操作。然而,在用户能够访问感兴趣的信息之前,用户可能需要在ui中执行某些操作。例如,用户可能需要首先使用用户名和密码登录。然后,在他们可以访问信息之前,他们可能需要导航到ui的特定屏幕并选择特定的按钮。许多用户可能无法有效地导航ui来获取信息。
100.在各种实施方式中,到ui中的目标——比如登录和获取订单状态——的最短路径可自动确定。可使用各种度量比如所需输入的数目、鼠标总移动量、击键或鼠标单击事件的数目等来测量路径的长度。在各种实现方式中,路径长度可基于鼠标移动的总欧几里得距离来评估——即,到需要交互的各ui元件的线性移动的总量(例如从起始点到本文框,从文本框到提交按钮,从提交按钮的地点(location)到要选择的链接)。
101.最短路径可用来增强ui。例如,在用户与ui交互时测量的经验数据(比如眼睛移动或鼠标移动)可用来确定ui的用户何时更可能偏离确定的最短路径。可基于确定的偏离来增强ui——比如,可以改变与偏离相关联的ui元素,可以生成与最短路径有关的提示,和/
或可以重点突出ui的元素来辅助用户成功导航ui。
102.这些ui增强(enhancements)还可由客户迁移系统用来自动引导已呼叫交互式语音响应(interactive voice response,ivr)平台(比如客户服务号码)的用户至ui的特定状态。例如,客户迁移系统可辅助用户成功登录到web应用程序并导航至用户可获得所需信息的网站状态。客户迁移系统可指示用户访问网页,且然后基于ui增强生成语音和视觉提示,来引导用户在ui中执行与至目标的所确定最短路径相对应的动作。
103.图1是用于测试ui的系统100的示例性实现的框图。系统100包括ui测试和增强装置110、存储装置112和操作员装置114。ui测试和增强装置110可包括最短路径模块120、ui增强模块122、人工智能(ai)模块124和无头浏览器126。存储装置112可包括与最短路径模块120和ui增强模块122通信的非易失性存储器。
104.最短路径模块120确定至ui中目标的最短路径。比如,最短路径模块120可确定登录到web应用程序的最少步骤。步骤包括在ui页面采取的动作——比如,点击链接,或将数据输入至文本输入字段。执行步骤可改变ui状态——也就是说,转变到不同屏幕或不同的ui状态,或改变当前状态或屏幕,使得可获得更多信息或选择或者不同的信息或选择。
105.最短路径模块120包括测试创建模块128和测试执行模块130。测试执行模块130包括分析模块132、训练模块134、重新加权模块136和会话创建模块138。
106.ai模块124包括蒙特卡洛模块142、神经网络模块144和自然语言识别模块146。蒙特卡洛模块142执行蒙特卡洛仿真以生成伪随机值。神经网络模块144可包括链接神经网络148、提交神经网络150、数据匹配神经网络152、数据选择神经网络154和动作权重神经网络156,以下更详细描述各神经网络。
107.链接神经网络148、提交神经网络150、数据选择神经网络154和动作权重神经网络156各自生成给定输入导致到达目标的概率。例如,数据匹配神经网络152生成一条数据匹配数据输入字段的概率——比如特定文本字符串匹配文本输入字段的概率。自然语言识别模块146解析文本输入并确定该输入是否包含指定的文本字符串。例如,自然语言识别模块146可用来确定ui状态是否包括特定的文本字符串。
108.无头浏览器126是不具有图形用户界面的web浏览器。无头浏览器126可包括命令行界面,用于加载网页且与网页交互,比如托管在web服务器158上的web应用程序的网页。
109.测试创建模块128获得测试参数并生成测试配置数据。测试参数可包括ui的起始地址、目标、到目标的允许步骤的最大数目、要执行的测试的数目以及变量数据。变量数据可包括文本字符串——比如用户名或密码——或者可被输入至ui的数据输入字段的菜单选项。在一些实现方式中,测试创建模块128可从操作员装置114接收测试参数。在其他实现方式中,测试创建模块128可从存储装置112检索预先存储的测试参数。测试创建模块128将测试配置数据提供至测试执行模块130。测试创建模块128还可将测试配置数据存储在存储装置112中。
110.测试执行模块130使用测试创建模块128生成的测试配置数据来执行ui上的测试,来确定至ui中指定目标的最短路径。响应于从测试创建模块128接收测试配置数据,测试执行模块130发起ui的第一测试。例如,测试执行模块130指示无头浏览器126加载ui的起始页面。无头浏览器126加载所请求的网页,并将所加载网页的文档对象模型(document object model,dom)提供至测试执行模块130。
111.测试执行模块130将光标的位置(position)设置到ui的预定位置(比如中心),将测试配置中的每个变量标为未使用,将神经网络模块144中的神经网络的状态设为未训练。测试执行模块130使用分析模块132来分析ui的当前状态——换言之,当前加载的网页。分析模块132可使用从无头浏览器126接收的dom来执行分析。
112.分析模块132首先确定ui的当前状态是否满足目标标准——例如,加载的网页包括目标文本。分析模块132可使用自然语言识别模块146来解析加载的网页的文本,来确定其是否包括目标文本。响应于定位目标文本,分析模块132确定当前测试成功。当达到最大步骤数目而没有找到目标文本时,当前测试被视为失败。响应于确定当前测试既不成功也不失败,分析模块132确定ui的当前状态是否包括交互元素——比如,链接、数据输入字段、提交数据的元素——该交互元素是能被执行以改变ui的状态的。
113.分析模块132将概率分配给与所加载页面中定位的每个交互元素相关联的动作。该概率表示执行动作将导致到达目标的可能性。如果神经网络模块144中的神经网络受到训练,分析模块132使用神经网络模块144中的神经网络来确定概率。分析模块132还将权重分配给每种动作——链接、输入字段和提交。如果神经网络模块144中的神经网络受到训练,分析模块132使用神经网络模块144中的神经网络来确定每种动作类型的权重。分析模块132然后确定每种动作的加权的概率。分析模块132将每个标识的动作和相关联的加权的概率提供至文本执行模块130。如果神经网络模块144中的神经网络尚未受到训练,分析模块132使用蒙特卡洛模块142来对动作成功和动作类型成功的概率分配随机值。
114.测试执行模块130在分析模块132提供的动作中选择具有最高概率的动作。测试执行模块130确定当前位置和与所选择动作相关联的交互元素的最接近点之间的距离。测试执行模块130基于所计算的距离更新当前测试的总距离,且然后存储所计算的距离以及总距离。测试执行模块130指示无头浏览器执行所选择的动作。所执行的动作被称为步骤,由执行动作导致的ui的屏幕是状态。换言之,执行步骤导致ui从第一状态转变到第二状态,或导致转换第一状态。
115.如果当前测试的总距离大于先前标识的至目标的路径,测试执行模块130断定当前测试失败(即不是最短路径)。否则,如上所述,测试执行模块130继续测试并分析ui的当前状态。
116.响应于确定当前测试是成功还是失败,测试执行模块130记录完成的测试的结果。响应于确定当前测试成功,测试执行模块130将当前测试的步骤存储为到达目标的最短路径。然后,测试执行模块130确定完成的测试数量是否已经达到最大测试数量。如果是,则测试执行模块130输出所找到的至目标的最短路径。
117.如果需要更多测试,则测试执行模块130开始新测试。如果刚完成的测试成功,则训练模块134训练(或在第一次训练之后再次训练或补充训练)神经网络模块144中的神经网络。训练模块使用所完成的成功测试的结果来生成训练数据。训练模块134保存在神经网络模块144中的神经网络以及相关联的神经网络状态——比如受训练或未受训练。在一些实现方式中,训练模块134可将神经网络及其相关联的状态存储在存储装置112中。
118.训练模块134然后使用所生成的训练数据重新训练链接神经网络148、提交神经网络150、数据匹配神经网络152、数据选择神经网络154和动作权重神经网络156。一旦重新训练了神经网络,训练模块134确定重新训练的网络的性能。比如,训练模块将神经网络模块
144中的神经网络的状态设为受训练的。训练模块134然后使用分析模块132来分析每个完成的测试的每个步骤,并产生可能动作和相关联概率的列表。由于神经网络模块144中神经网络的状态被设为受训练,分析模块132产生的概率将基于新训练的网络。对于每个所分析步骤中的每个动作,训练模块134计算先前确定的概率和新确定的概率之间的变化。
119.训练模块134基于所计算的变化来确定网络的性能。响应于确定重新训练没有改进神经网络模块144中的神经网络的性能,训练模块将神经网络模块144中的神经网络恢复到其先前状态。例如,训练模块可以从存储装置112检索存储的网络及相关联的状态。
120.接下来,重新加权模块136例如针对最后完成的测试的每个状态下的每个动作重新计算概率。如果神经网络模块144中的神经网络受到训练,则重新加权模块136使用神经网络模块144中的神经网络来计算概率,或者用新的随机值来更新概率。在神经网络模块144中使用神经网络将导致与每个动作将导致目标的实际概率更接近地匹配的概率。
121.测试执行模块130在重新加权的动作中选择动作。测试执行模块130使选择基于每个动作的重新加权的概率,以及从ui初始状态到达动作所需的总距离。
122.会话创建模块138确定从ui的初始url到达测试执行模块130选择的动作所需的步骤。会话创建模块138执行到达动作所需的所确定步骤,且无头浏览器126返回所得网页的dom。如上所述,分析模块132然后分析ui的当前状态。测试执行模块130继续执行新测试,直至到达了测试的最大数目。
123.ui增强模块122生成提示以及其他可用于基于至目标的最短路径和与ui相对应的眼睛跟踪实验将用户引导至ui中目标的辅助。眼睛跟踪实验是ui可用性测试的一种形式,包括基于用户导航ui以到达目标时用户的凝视或用户对鼠标光标的移动来跟踪数据。眼睛跟踪实验用来识别ui的用户在哪里可能偏离至目标的最短路径。ui增强模块122确定针对ui的每个页面的距离,该距离表示与最短路径的偏离,该最短路径可能需要加强最短路径步骤来辅助用户到达目标。
124.ui增强模块122包括加强模块160和提示生成模块162。加强(reinforcement)模块160确定最短路径的哪些步骤可能需要加强。加强模块160使得该确定基于与ui相关联的眼睛跟踪实验。ui增强模块122基于加强模块160的确定和所接收的加强百分比来确定最短路径的哪些步骤需要加强。
125.加强模块160包括距离模块164和步骤分析模块166。距离模块164基于与目标相关联的眼睛跟踪实验和至目标的最短路径确定针对ui的每个url的加强距离。加强距离是与最短路径步骤的距离——例如,光标和最短路径上的点之间的距离——其表示该步骤可能需要加强。
126.距离模块164包括预测模块168和群集分析模块170。距离模块164获得用于确定距离的参数,例如用于适应度算法的加权值和允许的演化次数。演化包括针对ui的每个url选择随机加强距离,该距离然后被预测模块168用来预测单个眼睛跟踪实验成功还是失败。所允许演化的数目表示被生成且用来预测不同眼睛跟踪实验的结果的、不同组的随机加强距离的数目。
127.距离模块164比较每个眼睛跟踪实验中的跟踪数据与最短路径,并确定眼睛跟踪数据中包括的每个样本与最短路径上对应点之间的距离。距离模块164对ui的每个url计算与成功测试相关联的眼睛跟踪样本和最短路径之间的中值距离。成功的测试包括用户到达
ui中目标的测试——例如,用户成功登录到web应用程序中。距离模块164对ui的每个url还计算与失败测试相关联的眼睛跟踪样本和最短路径之间的中值距离。失败的测试包括用户没能到达目标的测试——例如,用户不能登录到web应用程序中。失败的测试还可以包括用户到达目标然而没有遵循至目标的最短路径的测试。例如,尽管用户可能最终登录到了web应用程序中,然而他们没有以最少的可能步骤来达到此目的。
128.距离模块164使用针对每个url确定的中值距离作为针对每个url生成随机加强距离的上限和下限。例如,距离模块164将url的下限设为等于url的中值成功距离,且将url的上限设为等于中值失败距离。在一些实现方式中,距离模块164可使用蒙特卡洛模块142来生成随机距离。
129.然后,预测模块168使用随机生成的加强距离和第一眼睛跟踪实验来执行演化。对于眼睛跟踪实验中的每个样本,预测模块168确定随机生成的加强距离和最短路径表示实验是成功(用户到达目标)还是失败(用户未到达目标或未遵循至目标的最短路径)。然后,预测模块168将实验的预测结果与所存储的实验结果进行比较。对于每个演化,预测模块168输出预测到实验的正确结果的次数,将实验错误预测为成功的次数以及将实验错误预测为失败的次数。加强模块160在每次演化后存储预测模块168的输出。
130.距离模块164继续为每个url生成随机加强距离,并且预测模块168使用随机生成的加强距离和新的眼睛跟踪实验来执行演化,直到达到所允许演化的最大数量。
131.响应于执行最大数量的所允许演化,距离模块164使用所存储的预测模块168的输出和所获得的加权值来为每个随机生成的加强距离确定适应度值。然后,群集分析模块170对每个适应度值针对与适应度值相关联的测试距离的曲线图,执行群集分析。在一些实现方式中,群集分析模块170可使用具有噪声的基于密度的应用空间群集(density

based spatial clustering of applications with noise,dbscan)算法来执行群集分析。在其他实现方式中,群集分析模块170可使用均值漂移技术来执行群集分析。在另一个其他实现方式中,群集分析模块170可使用另一合适的群集分析技术或算法来分析适应度值针对随机生成的距离的曲线图。
132.响应于确定出群集分析模块170针对ui的每个url识别了适应度值针对加强距离的单个群集,距离模块164输出针对每个url的加强距离。对于每个url,距离模块164输出具有最高适应度值的与url相关联的加强距离。
133.响应于确定出群集分析模块170没有针对每个url识别适应度值针对加强距离的单个群集,距离模块164设置用于每个url的新上限和下限。对于每个url,距离模块164将上限设到与url相关联的最成功群集中的最大距离,将下限设到最成功群集中的最小距离。最成功群集是包括最大数目的数据点的群集。
134.距离模块164将所执行的演化的数目重设为零。距离模块164然后开始使用新的上限和下限针对每个url生成随机加强距离,且预测模块168使用随机生成的加强距离执行演化,直至达到最大数目的所允许演化。
135.距离模块164基于预测模块168的输出针对新生成的随机加强距离确定适应度值。群集分析模块170然后分析新适应度值。该过程以这种方式继续,直至距离模块164输出针对每个url的加强距离。
136.步骤分析模块166基于针对每个url的加强距离,确定眼睛跟踪实验指示用户偏离
了最短路径步骤的次数。例如,步骤分析模块166比较眼睛跟踪实验中包括的每个样本和最短路径中相关联的步骤,并基于针对与最短路径步骤相关联的url的加强距离确定样本是否指示用户偏离了最短路径步骤。
137.提示生成模块162为最短路径的每个步骤生成提示。提示可用于辅助ui的用户完成步骤。提示生成模块162基于最短路径的步骤中包括的动作来生成提示。例如,提示生成模块162可以生成如下提示,该提示指示用户点击最短路径步骤中包括的链接。作为另一示例,提示生成模块162可以指示用户将文本输入到数据输入字段中,例如,输入用户名。
138.提示生成模块162可以使用与最短路径步骤中包括的动作相对应的dom元素来生成提示。在一些实现方式中,提示生成模块162在所生成的提示中包括从dom元素获得的ui的交互元素的细节,例如,该元素的名称或与之相关联的文本。提示生成模块162可以使用无头浏览器126来获取dom元素。
139.ui增强模块122基于加强百分比和步骤分析模块166的结果来确定步骤是否需要加强。例如,ui增强模块122计算眼睛跟踪样本指示用户偏离了最短路径步骤的次数和与步骤相关联的眼睛跟踪样本的总数目的比率。ui增强模块122响应于确定出计算的比率等于或大于加强百分比来判断出步骤需要加强。
140.响应于确定出最短路径的步骤需要加强,ui增强模块122生成用于该步骤的加强。在一些实现方式中,加强可以包括另外的提示,该另外的提示包括关于要由用户执行的动作更多的信息。例如,该另外的提示可通知用户屏幕上交互元素的地点。在其他实现方式中,加强可以包括强调交互元素的指令。在又一实现方式中,加强可以包括另外的提示和强调指令。ui增强模块122连同最短路径一起存储生成的提示和加强。例如,ui增强模块122可将信息存储在存储装置112中。
141.在各种实施方式中,由最短路径模块120生成的最短路径以及由ui增强模块122生成的提示和加强可用于改变ui,以改进ui和相关联的应用的可用性。例如,可以自动或手动重新放置ui的交互元素(例如链接、按钮和数据输入字段),以减少到达目标所需的总距离。ui测试和增强装置110然后可以在改变的ui上执行附加测试。例如,最短路径模块120可以生成用于改变的ui的新的最短路径,以确定重新放置的元素是否改进了ui,换句话说,是否缩短了最短路径的总距离。
142.另外,可以在结合了所生成的ui增强的ui上执行新的眼睛跟踪实验。ui增强模块122可以使用来自新的眼睛跟踪实验的数据来确定增强是否改进了ui的可用性。例如,ui增强模块122可以确定:ui增强导致整体减少了与最短路径的偏离,也就是说,最短路径更少的步骤需要加强。
143.神经网络
144.在各种实现方式中,链接神经网络148、提交神经网络150、数据选择神经网络154和动作权重神经网络156可以实现为长短期记忆(lstm)神经网络。lstm神经网络是前馈神经网络。图2是通用示例lstm神经网络202的功能框图。lstm神经网络202包括输入层204、隐藏层208和输出层212。输入层204包括输入204a、204b...204n。隐藏层208包括“神经元”208a、208b...208n。输出层212包括输出212a、212b...212n。
145.隐藏层208的每个神经元接收来自输入层204的输入,并向输出层212中的相应输出输出值。例如,神经元208a接收来自输入204a的输入,并向输出212a输出值。除了第一神
经元208a之外,每个神经元还接收在前神经元的输出作为输入。例如,神经元208b接收来自输入204b的输入和来自输出212a的输入。这样,每个神经元的输出被前馈到隐藏层208中的下一个神经元。输出层212中的最后一个输出2l2n输出与输入204a

204n相关联的概率。尽管将输入层204、隐藏层208和输出层212描述为各自包括三个元素,但是输入层204、隐藏层208和输出层212可以包含任意数量的元素。在各种实现方式中,lstm神经网络202的每一层必须包括与lstm神经网络202的每个其他层相同数量的元素。
146.图3是链接神经网络148的示例实现的功能框图。链接神经网络148包括输入层304、隐藏层308和输出层312。输入层304包括输入304a、304b和304c。隐藏层308包括神经元308a、308b和308c。输出层312包括输出312a、312b和312c。
147.链接神经网络148被描述为处理链接“company.com/order/display.htm?number=123456”。解析该链接以为输入304a、304b和304c创建输入。例如,链接的静态部分“corapany.com”被丢弃。链接的其余部分根据链接的格式和语法被分离到输入中。具体地,将“order”提供给输入304a,将“display.htm”提供给输入304b,并且将“number=123456”提供给输入304c。
148.在图3所示的示例中,链接神经网络148的输出为0.75,其表示执行所输入链接将导致目标的概率。尽管链接神经网络148被描述为包括三个神经元,但是链接神经网络148可以包括更多或更少的神经元。
149.图4是提交神经网络150的示例实现方式的功能框图。提交神经网络150包括输入层404、隐藏层408和输出层412。输入层404包括输入404a、404b和404c。隐藏层408包括神经元408a、408b和408c。输出层412包括输出412a、412b和412c。
150.提交神经网络150被描述为处理位于“company.com/help/faq.htm”的名为登录的提交。提交的名称被提供至输入404a。解析提交的地点,以创建输入404b和404c的输入。例如,地点的静态部分“company.com”被丢弃,并且地点的其余部分根据地点的格式和语法被分离到不同的输入中。具体地,“help”被提供至输入404b,而“faq.htm”被提供至输入404c。
151.在图4所示的示例中,提交神经网络150的输出是0.25,其表示执行输入的提交将导致目标的概率。尽管提交神经网络150被描述为包括三个神经元,然而提交神经网络150可以包括更多或更少的神经元。
152.图5a是数据选择神经网络154的示例实现方式的功能框图。数据选择神经网络154包括输入层504、隐藏层508和输出层512。输入层504包括输入504a、504b和504c。隐藏层508包括神经元508a、508b和508c。输出层512包括输出512a、512b和512c。
153.数据选择神经网络154被描述为处理位于“company.com/help/faq.htm”的名为“用户名”的文本数据输入字段。数据输入字段的名称被提供至输入504a。数据输入字段类型“文本”被提供至输入504b。解析数据输入的地点以创建用于输入504c的输入。例如,地点的静态部分company.com将被丢弃,并且地点的其余部分(如有必要)将根据位置的格式和语法被分离到输入中。在图5a所示的示例中,该地点的其余部分不需要分离。换句话说,“home.htm”仅被提供至输入504c。
154.在图5a所示的示例中,数据选择神经网络154的输出是0.98,其表示将文本输入到输入的数据输入字段中将导致目标的概率。尽管数据选择神经网络154被描述为包括三个神经元,但是数据选择神经网络154可以包括多于三个的神经元。
155.图5b是数据匹配神经网络152的示例实现方式的功能框图。数据匹配神经网络152是卷积神经网络。类似于lstm神经网络,卷积神经网络包括输入层、隐藏层和输出层。然而,在卷积神经网络中,输出层的输出比隐藏层中神经元的数目少一个,并且每个神经元连接到每个输出。另外,输入层中的每个输入都连接到隐藏层中的每个神经元。
156.数据匹配神经网络152包括输入层524、隐藏层528和输出层532。在图5b中,输入层524包括输入524a、524b和524c;隐藏层528包括神经元528a、528b和528c;输出层532包括输出532a和532b。
157.数据匹配神经网络152被描述为处理名为“用户名”的文本数据输入,其与数据“测试用户”相配对。所配对的数据即“测试用户”被提供至输入524a。数据输入字段名称“用户名”被提供至输入524b。数据输入字段类型即测试被提供至输入524c。在图5b所描述的示例中,数据匹配神经网络152的输出是0.75,其表示输入的数据应被输入至所输入的数据输入字段的概率。
158.图6是动作权重神经网络156的示例实现的功能框图。动作权重神经网络156包括输入层604、隐藏层608和输出层612。输入层604包括输入604a、604b和604c。隐藏层608包括神经元608a、608b和608c。输出层612包括输出612a、612b和612c。
159.动作权重神经网络156被描述为处理位于“company.com/help.faq.htm”的提交动作类型。动作类型被提供至输入604a。解析动作的地点以创建用于输入604b和604c的输入。例如,地点的静态部分“company.com”被丢弃,并且地点的其余部分根据地点的格式和语法被分离到输入中。具体地,“help”被提供至输入604b,而“faq.htm”被提供至输入604c。
160.在图6所示的示例中,动作权重神经网络156的输出是0.25,其表示执行位于“company.com/help/faq.htm”的提交将导致目标的概率。尽管动作权重神经网络156被描述为包括三个神经元,但是动作权重神经网络156可以包括多于三个神经元和少至两个神经元。
161.最短路径确定
162.图7a和7b是描述确定到达ui中目标的最短路径的示例性方法的流程图。尽管下面相对于ui测试和增强装置110描述了示例性方法,然而该方法可以在其他装置和/或系统中实现。在各种实现方式中,控制可以由最短路径模块120执行。
163.控制在图7a的703处开始。在703,控制获得测试参数:例如,目标文本、一组变量的数据、要测试的ui的初始url、每次测试最大允许步骤数以及最大允许测试数。然后,控制将测试参数存储为测试配置数据。例如,控制可以将测试配置数据存储在存储装置112中。控制继续进行到706,其中控制初始化与测试相关联的值。例如,控制将神经网络(networks_trained)的训练状态设置为false,将completed_tests设置为null。然后,控制继续到709,其中控制加载初始url,并将已执行测试(tests_ran)的数量设置为零。
164.在709,对于存储的配置数据中的每个变量,控制将使用状态标志(used)设置为false。然后,控制继续到712,其中控制将当前位置(current_position)设置为ui的中心。在712,控制还存储加载初始url的结果,ui的当前状态,为initial_state,然后控制继续到715。在715,控制初始化与第一测试相关联的数据:例如,控制将test_data设为null,将step设为零,将test_distance设为零。控制然后进行到718。
165.在718,控制初始化与当前步骤相关联的数据——例如,控制将“step_data”设置
为null。然后,控制分析ui的当前状态。例如,控制可以执行在图8a

8c中公开的方法。分析的结果可以是成功、失败或动作列表。成功表示ui的当前状态包括目标文本或满足某些其他目标标准。失败可以表示当前状态既不包括目标文本也不包括任何可能的动作,例如遍历链接,将数据输入到数据输入字段中或提交已输入到数据输入字段中的数据。失败可以改为表示测试已执行了允许的最大步骤数,但尚未达到目标。
166.动作列表指示当前状态包括至少一个可以执行的可能动作。动作列表中的每个动作都包含该动作将导致到达目标的概率。控制存储分析的结果。例如,控制将成功或失败的结果加到test_data,将动作列表的结果加到step_data。然后控制前进到721,其中控制确定分析的结果是动作列表还是成功/失败指示符。如果结果是动作列表,则控制进行到图7b的724。否则,控制转移到727。
167.在图7b的724处,控制确定要执行的动作。例如,控制从列出的动作中选择综合概率最高的动作。控制可以使用下面的等式1和2来确定每个动作的总概率。
[0168][0169][0170]
p
action
是动作列表中包括动作的概率。action_distance是当前位置和与该动作相关联的ui元素的最接近点之间的欧几里得距离。test_distance是当前测试期间ui中行过的总距离。σp
distance_weighted
是动作列表中每个动作的p
distance_weighted
的总和。
[0171]
控制然后前进到730,其中控制确定所选择的动作是提交、链接还是输入。响应于确定所选择的动作是提交,控制进行至733;响应于确定所选择的动作是链接,控制进行至745;否则,控制进行至748。
[0172]
在733,控制确定与提交相关联的ui元素与当前位置最接近(current_position)的点。在各种实现方式中,针对所选动作从动作列表中获得最接近点的坐标。然后,控制将步距(step_distance)计算为当前位置和最接近点之间的欧几里得距离。然后,控制继续到739,其中控制存储步距并执行提交——例如,控制将step_distance加到step_data并触发在与提交相关联的ui元素上的单击。在739,控制还将“current_position”更新为最接近点的坐标。
[0173]
返回到736,控制确定与链接相关联的ui元素的最接近current_position的点。坐标可以存储在所选动作的动作列表中。然后,控制将步距(step_distance)设置为current_position和最接近点之间的欧几里得距离。然后,控制继续到740,在740,控制存储步距并执行链接——例如,将step_distance加到step_data并触发在与链接关联的ui元素上的单击。在740,控制还将“current_position”设置为与链接相关联的ui元素的最接近点。例如,控制可以将current_position设置为所选动作的动作列表中存储的坐标。控制然后进行到742。
[0174]
返回到738,控制确定与输入相关联的ui元素最接近current_position的点。例如,存储在针对所选动作的动作列表中的坐标。然后,控制将步距(step_distance)设置为current_position和与输入相关联的ui元素的最接近点之间的欧几里得距离。然后,控制
继续至741,在该处控制存储步距并执行输入——例如,将step_distance加到step_data并将与该动作相关联的变量输入到数据输入字段中。在741,控制还将输入至数据输入字段中的变量标记为已使用,并将current_position设置为与输入相关联的ui元素的最接近点。例如,控制可以将用于变量的“used”设为true,将current_position设置为所选动作的动作列表中存储的坐标。控制然后进行到742。
[0175]
在742处,控制存储当前测试的进度,例如,控制将step_data加到test_data,将step_distance加到test_distance,并将步骤数加1。控制然后继续到图7a的756。
[0176]
在图7a的756处,控制确定当前测试距离是否长于已经确定的路径,换句话说,当前测试的距离是否长于已完成的最短成功测试。如果是,则控制前进到757;否则,控制前进到718。在757,控制将当前测试的状态设置为失败。例如,控制将outcome设置为等于失败。然后控制继续进行到727。
[0177]
返回到727,控制将当前测试存储为完成的测试。例如,控制将测试的总距离(test_distance)和与当前测试关联的数据(test_data)加到completed_tests中。在727,控制将tests_ran加1。控制前进到758,在758,控制确定已运行的测试数目(tests_ran)是否等于或大于允许的测试数目(max_tests)。如果是,则控制前进到761;否则,控制转移到764。
[0178]
在761处,控制基于存储的已完成测试(completed_tests)确定到目标的最短路径。例如,控制选择存储在completed_tests中且具有最小总距离(test_distance)的成功测试作为最短路径。控制进行到762,在762,控制将与所选测试相关联的所存储数据(test_data)作为最短路径输出。然后控制结束。
[0179]
在764,控制训练神经网络。例如,控制执行图9a和9b中公开的方法。然后控制前进到770,在770,控制重新加权与完成的测试的每个步骤的动作相关联的概率,例如,控制可以执行图10a

10c中公开的方法。然后控制继续到773,在773控制选择与完成的测试相关联的、导致目标文本的综合概率最高的动作。如前所述,控制可以使用等式1和2来确定每个动作的综合概率。然后控制前进到776,在776,控制根据所选的动作建立新的会话。例如,控制可以执行图11中公开的方法。然后控制返回到715。
[0180]
图8a

8c是描述分析ui的状态的示例性方法的流程图。尽管下面关于ui测试和增强装置110描述了示例性方法,但是该方法可以实施在其他装置和/或系统中。在各种实现方式中,控制可由最短路径模块120和/或分析模块132执行。
[0181]
控制在图8a的802处开始。在802,控制为要分析的状态初始化动作数据。例如,控制将action_data设置为null。然后控制前进到804,在此控制搜索ui的当前状态(屏幕)以确定是否满足目标标准。例如,在图8a中,控制确定当前状态是否包括目标文本。控制可以使用自然语言识别模块146来将在屏幕上找到的文本与目标文本进行匹配。如果在806找到了目标文本,则控制继续到808;否则,控制转移到810。
[0182]
在808,控制基于目标文本的地点来更新当前测试的距离。例如,控制计算current_position和目标文本中最接近current_position的点之间的欧几里得距离。控制将该距离加到test_distance。在808,控制还将outcome设置为success,以指示当前状态包括目标文本。控制进行到809,在此控制输出outcome的值。然后控制结束。
[0183]
返回到810,控制确定是否已达到最大允许步数(max_steps)。如果当前会话中的
步骤数小于最大步骤数,则控制进行到816;否则,控制转移到814。在814,控制将结果outcome设为failure。然后控制前进到809。
[0184]
在816,控制搜索当前状态下的链接,然后控制进行到818。在818,如果一个或多个链接位于当前状态,则控制继续到820;否则,控制转移到图8b的822。
[0185]
在820,控制生成在当前状态下找到的链接的列表。控制从列表中移除以前在当前会话期间访问过的任何链接。控制然后继续到824,其中对于列表中的每个链接,控制确定并存储相关联链接ui元素最接近current_position的点的坐标。控制然后进行到826,在826,控制确定神经网络是否受到训练。如果受到训练,则控制前进到828;否则,控制转移到830。在828,控制使用链接神经网络148为列表中的每个链接估计链接将导致目标的概率。控制将每个链接的概率存储在链接列表中。然后控制继续到832。
[0186]
在830处,控制对于链接列表中的每个链接,分配该链接将导致目标的随机概率,并将该概率存储在链接列表中。在一些实现方式中,控制可以使用蒙特卡洛模块142来分配随机概率。控制继续到832。在832,控制存储链接列表

例如,控制将链接列表和关联的概率加到action_data。控制进行到图8b的822。
[0187]
在图8b的822处,控制搜索在当前状态下的数据输入字段,然后控制进行到834。在834,控制确定是否有任何数据输入字段位于当前状态。如果是,则控制继续进行到836;否则,控制控制转移到图8c的838。
[0188]
在836,控制确定配置数据是否包括可输入到定位的数据输入字段中的数据,即尚未标记为已使用的变量。如果是,则控制前进到840;否则,控制转移到图8c的838。在840,控制生成所有可能的数据输入字段和可用数据组合的列表。对于列表中的每个条目,控制确定数据输入字段的最接近点的坐标并将其存储到current_position。控制继续进行842。
[0189]
在842,控制确定是否训练了神经网络。如果是,则控制前进到844;否则,控制转移到846。在844,对于列表中的每个数据输入字段和数据组合,控制使用数据匹配神经网络152来估计数据输入字段匹配数据的概率(p_match)。控制进行到848,其中对于列表中的每个数据输入字段,控制使用数据选择神经网络154来估计将数据输入到数据输入字段中将导致目标的概率(p_choice)。控制进行到850。
[0190]
在846,对于列表中的每个输入字段数据组合,控制分配输入字段与数据匹配的随机概率(p_match)。控制前进到852,在852对于列表中的每个输入字段,控制分配将数据输入到输入字段中将导致目标文本的随机概率(p_choice)。在一些实现方式中,控制可以使用蒙特卡洛模块142来生成针对p_match和p_choice的随机概率。控制继续到850。
[0191]
在850,控制为列表中的每个数据输入字段和数据组合计算并存储组合概率。例如,控制可以为列表中的每项平均p_match和p_choice。然后控制前进到854,其中控制存储数据输入字段和数据组合列表

例如,控制可以将该列表加到action_data中。控制继续到图8c的838。
[0192]
在图8c的838处,控制搜索当前状态下的“提交”,例如,提交输入至数据输入字段中的数据的按钮或菜单选项,然后控制前进至856。在856,控制确定是否有任何提交位于当前状态中。如果是,则控制继续到858;否则,控制转移到860。
[0193]
在858,控制生成在当前状态下找到的提交列表。控制继续到862,其中对于列表中的每个提交,控制确定并存储提交ui元素到current_position的最接近点的坐标。控制前
进到864,在864,控制确定是否训练了神经网络模块144中的神经网络。如果是,则控制前进到866:否则,控制转移到868。在866,控制使用提交神经网络150来估计列表中的每个提交将导致目标的概率。控制将概率存储在提交列表中。控制继续到870。
[0194]
在868,控制为列表中的每个提交分配随机概率,并将该概率存储在提交列表中。在一些实现方式中,控制可以使用蒙特卡洛模块142来分配随机概率。控制继续到870。
[0195]
在860,控制确定action_data是否等于null,换句话说:当前状态未能包含任何链接、数据输入字段和数据组合或提交。如果是,则控制前进到874;否则,控制转移到872。在874,控制将outcome设置为failure,然后输出outcome。然后控制结束。
[0196]
返回到870,控制存储提交列表,例如,控制可以将提交列表加到action_data。控制继续到872。在872,控制确定神经网络模块144中的神经网络是否受到训练。如果是,则控制继续到876;否则,控制转移到878。在876,控制使用动作权重神经网络156确定每种动作类型(例如,链接、数据输入字段和提交)的概率权重。然后控制前进到880。
[0197]
在878,控制为每种动作类型(例如,链接、输入字段和提交)分配随机概率权重。在一些实现方式中,控制可以使用蒙特卡洛模块142来确定随机概率权重。然后控制前进到880。
[0198]
在880,控制为每个存储的动作(换句话说,对于存储在action_data中的每个链接,数据输入字段和数据组合,以及提交)确定并存储加权概率。例如,控制可以使用下面的方程式3和4来计算每个加权概率(p
action
)。
[0199][0200][0201]
p
unweighted
是针对动作的所存储概率,w
type
是针对动作的动作类型的概率权重,distance是当前位置(currenty_position)与在action_data中为每个动作存储的最接近点之间的欧几里得距离。等式4用于标准化每个动作的加权概率(p
weighted
)。
[0202]
控制继续到882,其中控制输出ui的当前状态的分析结果。例如,控制将outcome设置为action_data,然后输出outcome。然后控制结束。
[0203]
图9a和9b是描述基于完成的最短路径测试训练神经网络模块144中的神经网络的示例性方法的流程图。尽管下面关于ui测试和增强装置110描述了示例性方法,但是该方法可以实施在其他系统中。在各种实现方式中,控制可以由最短路径模块120和/或训练模块134执行。
[0204]
控制响应于控制接收完成的测试在图9a的904处开始。在904,控制确定完成的测试是否成功。如果是,则控制继续进行到908;否则,控制结束。换句话说,仅成功的测试用于训练神经网络模块144中的神经网络。在908,控制将state设置为已完成测试中的状态数目,例如,存储在test_data中的状态数目。控制还将当前状态(session_state)设置为成功测试的第一个状态,例如,存储在test_data中的第一步骤。
[0205]
控制然后继续到912,其中控制确定与在当前状态(session_state)中执行的动作相关联的动作类型。控制将确定的动作类型的动作权重加到训练数据中。控制然后前进到916,在此控制将执行的动作和与执行的动作相关联的任何数据(例如,链接,数据输入字段
和数据组合或提交)的未加权概率保存到训练数据。控制继续到920,其中控制将状态减一。控制然后进行到924。
[0206]
924处,控制确定完成的测试中是否存在任何其他状态。例如,控制确定状态是否大于零。如果是,则控制前进到928;否则,控制转移到930。在928,控制将session_state设置为完成的测试的下一个状态,例如,存储在test_data中的下一个状态。控制然后返回到912。
[0207]
在930,控制将神经网络的当前训练状态存储在神经网络模块144中。控制进行到932,在此控制确定神经网络模块144中的神经网络是否受到训练,即,networks_trained的值是否为true。如果是,则控制前进到936;否则,控制转移到940。在936,控制保存当前的神经网络。控制然后进行到940。
[0208]
在940,控制使用训练数据来训练神经网络。控制进行到944,在此控制将test设置为已完成测试的数目,例如,存储在completed_tests中的测试的数目。控制使用training_test逐步完成每个存储的测试。在944,控制还将training_test设置为存储在completed_tests中的第一个测试。控制继续到图9b的948。
[0209]
在图9b的948处,控制将神经网络模块144中的神经网络的状态设置为已训练。在948,控制还将change_success设置为零并且将change_failure设置为零。change_success和change_failure用于存储先前计算的概率与新训练的神经网络产生的概率之差。控制继续到952,其中控制将training_session设为与training_test关联的test_data。在952,控制还将state设置为training_session中存储的状态数目。控制使用state来遍历存储在training_session中的每个状态。控制前进到956,在该处控制将training_state设置为training_session中存储的第一个状态。控制继续到960。
[0210]
在960,控制执行与training_state相关联的动作,并且控制继续到964。在964,控制在执行动作之后分析ui的状态,例如,控制可以执行在图8a

8c中公开的方法。控制然后进行到966,在此控制确定与动作(training_session)相关联的测试是否成功。如果是,则控制继续到968;否则,控制转移到970。在968,对于分析期间识别出的每个动作,控制计算training_state中存储的概率与分析生成的概率之间的差。然后,控制对所有差执行求和,并将求和的值加到change_success中。控制进行到972。
[0211]
在970处,对于分析期间识别出的每个动作,控制计算由分析产生的概率与存储在training_state中的概率之间的差。然后,控制执行差的求和,并将求和的值加到change_failure中。然后控制继续至972。
[0212]
在972,控制将state减1。控制继续至976,在976控制确定是否有任何其他状态存储在training_session中,换句话说,state大于零。如果是,则控制继续到980;否则,控制转移到984。在980,控制将test_state设置为存储在training_session中的下一个状态。控制然后返回到960。
[0213]
在984,控制确定是否存在任何其他测试存储在completed_tests中,即test大于零。如果是,则控制继续988。否则,控制转移到992。在988,控制将test递减1,并将training_test设置为下一个完成的测试,例如,存储在completed_tests中的下一个测试。然后控制返回到952。
[0214]
在992,控制确定新近训练的神经网络的综合性能。例如,控制可以使用下面的等
式5来计算总体性能(performance)。
[0215]
performance=change_success change_failure
ꢀꢀꢀꢀꢀ
(5)
[0216]
控制然后继续进行到996,在996,控制确定受训练的神经网络的总体性能是否代表了神经网络的改进。例如,控制确定performance是否大于或等于零。如果是,则新训练的神经网络是对先前网络的改进,并且控制结束。如果performance小于零,则新训练的神经网络不是改进,控制转移到998。在998,控制将恢复旧的神经网络,换句话说,控制将神经网络恢复到正在最新近训练之前所处于的状态。在998,控制还将神经网络的训练状态(networks_trained)设置为与旧的神经网络相关联的状态(prior_status)。然后控制结束
[0217]
图10a

10c是描述在完成的最短路径测试中重新加权动作的示例性方法的流程图。尽管下面关于ui测试和增强装置110描述了示例性方法,但是该方法可以实施在其他系统中。在各种实现方式中,控制可以由最短路径模块120和/或重新加权模块136执行。
[0218]
控制在图10a的1003处开始,在1003控制确定要重新加权的状态数目,例如,控制将state_count设置为test_data中存储的步骤数。控制进行到1006,其中控制将要重新加权的状态(reweight_state)设置为最后完成的测试的第一个状态,即存储在test_data中的第一步骤。然后控制继续到1009。
[0219]
在1009,控制确定要重新加权的状态是否包括链接。如果是,控制前进到1012;否则,控制转移到图10b的1015。在1012,控制确定神经网络模块144中的神经网络是否被训练。如果是,控制前进到1018;否则,控制转移到1021。在1018,对于处于要重新加权状态中的每个链接,控制使用神经网络模块144中的神经网络来估计该链接将导致目标文本的概率,然后将估计的概率存储在例如reweight_state中。控制然后前进到图10b的1015。
[0220]
在1021,对于要重新加权的状态中的每个链接,控制分配链接将导致目标的随机概率,然后将随机概率存储在例如reweight_state中。在一些实现方式中,控制可以使用蒙特卡洛模块142来生成随机概率。控制然后前进到图10b的1015。
[0221]
在图10b的1015中,控制确定要重新加权的状态(reweight_state)是否包括数据输入字段。如果是,则控制继续到1024;否则,控制转移到图10c的1027。在1024,控制确定要重新加权的状态(reweight_state)是否包括数据。如果是,则控制继续到1030;否则,控制转移到图10c的1027。
[0222]
在1030,控制确定神经网络是否受到训练。如果是,则控制继续1033;否则,控制转移到1036。在1033,对于要重新加权的状态下的每个可能的数据输入字段和数据组合,控制使用神经网络模块144中的神经网络——例如数据匹配神经网络152——来估计数据输入字段与数据匹配的概率(p_match)。控制继续到1039,其中对于要重新加权的状态中的每个数据输入字段,控制使用神经网络模块144中的神经网络——例如,数据选择神经网络154——来估计将数据输入到输入字段中将产生目标文本的概率(p_choice)。控制前进到1042。
[0223]
在1036,对于要重新加权的状态中的每个输入字段和每个数据,控制分配输入字段匹配于数据的随机概率(p_match)。控制前进到1045,其中对于要重新加权的状态中的每个输入,控制分配将数据输入到数据输入字段中将导致目标的随机概率(p_choice)。在一些实现方式中,控制可使用蒙特卡洛模块142来生成针对p_match和p_choice的随机概率。然后控制前进到1042。
[0224]
在1042,控制为每个数据输入字段和数据组合计算组合概率。例如,控制可以为要重新加权的状态下的每个数据输入字段和数据组合对p_match和p_choice求平均。控制将组合概率存储在例如reweight_state中。然后控制继续到图10c的1027。
[0225]
在图10c的1027中,控制确定要重新加权的状态是否包括提交。如果是,控制前进到1048;否则,控制转移到1051。在1048,控制确定神经网络是否受到训练。如果是,则控制前进到1054:否则,控制转移到1057。在1054,对于要重新加权的状态下的每个提交,控制使用神经网络模块144中的神经网络(例如,提交神经网络150)来估计执行提交将导致目标文本的概率,然后将估计的概率存储在例如reweight_state中。然后控制前进到1051。
[0226]
在1057,对于处于要重新加权状态的每个提交,控制分配该提交将导致目标文本的随机概率,然后将随机概率存储在例如reweight_state中。在一些实现方式中,控制可以使用蒙特卡洛模块142来生成随机概率。然后控制前进到1051。
[0227]
在1051,控制确定神经网络模块144中的神经网络是否受到训练。如果是,则控制继续1060;否则,控制转移到1063。在1060,控制使用动作权重神经网络156确定每种动作类型(例如,链接、数据输入字段和提交)的概率权重。控制继续1066。在1063,控制为每种动作类型(例如,链接、输入字段和提交)分配随机概率权重。在一些实现方式中,控制可以使用蒙特卡洛模块142来确定随机概率权重。控制继续1066。
[0228]
在1066,控制为要重新加权状态下的每个链接、数据输入字段和数据组合以及提交——换句话说,为reweight_state中的每个动作——确定并存储更新的加权概率。如前所述,控制可以使用等式3和4来计算每个加权概率。然后控制前进到1069。
[0229]
在1069,控制存储重新加权的状态,例如,控制可以将test_data中与重新加权的状态相对应的状态设置为reweight_state。在1069,控制还将state_count减一。控制继续到1072,在该处控制确定是否有任何其他状态要重新加权,即state_count是否大于零。如果是,则控制继续到1075,其中控制将要重新加权的状态设置为上一次完成的测试中存储的下一个状态,例如,控制将reweight_state设置为存储在test_data中的下一个状态。控制然后返回到图10a的1009。如果控制确定没有其他状态要重新加权,则控制结束。
[0230]
图11是描述了基于所选择的动作来构建新的ui会话的示例性方法的流程图。尽管下面相对于ui测试和增强装置110描述了示例性方法,但是该方法也可以实施在其他系统中。在各种实施方式中,控制可以由最短路径模块120和/或会话创建模块138执行。
[0231]
选择已完成最短路径测试中的最高概率动作后,控制在1104开始。在1104,控制将当前状态变量(current_state)设置为与所选动作相关联的已完成测试中的步骤。在1104,控制还初始化堆栈以将状态序列(temp_sequence)临时保持为null。然后控制前进到1108,在这里控制将当前状态(current_state)推送到临时堆栈(temp_sequence)上。控制继续1112,在此控制确定当前状态是否为已完成测试的初始状态。如果是,控制前进到1116;否则,控制转移到1120。
[0232]
在1120,控制将当前状态设置为当前状态之前的步骤,例如,test_data中当前状态之前的步骤。然后控制将当前状态(current_state)和与当前状态相关联的动作推送到临时堆栈上(temp_sequence)上。然后控制返回到1112。
[0233]
在1116,控制初始化新会话的状态序列,例如,控制将test_data设置为null,将test_distance设置为零,将steps设置为零,且针对配置数据中的每个变量,将used设为
false。控制前进到1124,在此控制加载初始url,并将当前位置设置为ui的中心。控制继续1128,其中控制从临时堆栈(temp_sequence)中弹出顶部条目,并将其加到测试数据(test_data)中。在1128,控制还将与该条目相关联的动作设置为当前动作(current_action)。控制继续1132。
[0234]
在1132,控制确定当前动作的类型。如果类型是提交,则控制进行到1136;如果当前动作的类型是链接,则控制转移到1152;如果当前动作的类型是数据输入字段,则控制转到1156。在1136,控制确定与提交关联的ui元素的最接近点。然后,控制将动作距离(action_distance)计算为current_position与和提交关联的ui元素的最接近点之间的欧几里得距离。然后,控制继续到1144,在1144控制执行提交(例如,控制在与提交相关联的ui元素上加单击),并将当前位置(current_position)设置为与提交相关联的ui元素的最接近点。然后控制前进到1148。
[0235]
在1152,控制确定与链接相关联的ui元素的最接近点。然后,控制将动作距离(action_distance)计算为current_position与和链接关联的ui元素的最接近点之间的欧几里得距离。然后,控制继续到1160,在此控制执行链接(例如,控制触发与链接相关联的ui元素上的单击器点击),并将当前位置(current_position)设置为与链接相关联的ui元素的最接近点。然后控制前进到1148。
[0236]
在1156,控制确定数据输入字段的最接近点。然后,控制将动作距离(action_distance)计算为current_position与数据输入字段的最接近点之间的欧几里得距离。然后,控制继续到1164,在步骤1164,控制将与动作相关联的变量输入至数据输入字段;将变量标记为已使用(将used设为true),并将current_position设置为数据输入字段的最接近点。然后控制前进到1148。
[0237]
在1148,控制更新测试距离和步骤数目。例如,控制将action_distance加到test_distance,并将step加一。然后控制继续1168。在1168,控制确定临时堆栈(temp_sequence)是否为空,例如,temp_sequence的大小是否为零。如果是,则控制继续1172;否则,控制返回1128。在1172,控制将测试距离加到存储的状态序列中,例如,控制将test_distance加到test_data。然后控制结束。
[0238]
图12a

12h是在示例ui中确定至目标的路径的过程的图形表示。具体地,图12a

12h描述了确定在示例ui中完成登录过程的路径的示例过程。图12a是示例ui的初始状态1202的演绎。该过程以将当前位置设置到屏幕1204的中心来开始。接下来,分析ui的初始状态1202。
[0239]
图12b是ui的初始状态1202的分析结果的图形表示:例如,对在ui的初始状态1202中可以采取的所有可能动作的标识。具体地,该分析标识了第一链接1206、第二链接1207、第三链接1208和第四链接1209。该分析还标识了第一数据输入字段1212、第二数据输入字段1213和标记为“登录”的提交按钮1215。从屏幕1204的中心发出的箭头表示在初始状态1202中从当前位置到每个所标识动作的距离。
[0240]
在图12c中,被选择为最短路径中的第一步骤的动作是将文本“testuser”输入到第一数据输入字段1212中。如上所述,可以基于来自受训练的神经网络的加权概率来进行该选择。当前位置(屏幕的中心)与第一数据输入字段的地点之间的距离是第一步进距离1218,该距离被存储为最短路径的距离。执行所选择的动作导致ui从初始状态1202转变为
第二状态1219,并且当前位置改变为第一数据输入字段1212的地点。接下来,分析ui的第二状态1219。
[0241]
图12d是在ui的第二状态1219中可以采取的可能动作的分析结果的图形表示。具体地,分析将第一链接1206、第二链接1207、第三链接1208、第四链接1209、第二数据输入字段1213和提交按钮1215标识为第二步骤的可能动作。从第一数据输入字段1212发出的箭头表示在ui的第二状态1219中从当前位置到每个识别的动作的距离。
[0242]
在图12e中,被选择为第二步骤的动作将文本输入到第二数据输入字段1213中,文本表示为“******”。当前位置(第一数据输入字段1212的地点)与第二数据输入字段1213的地点之间的距离是第二步进距离1220,该距离被加到存储的当前路径距离中。在第二状态1219中执行所选动作导致ui转换到第三状态1222,以及当前位置改变为第二数据输入字段1213的地点。接下来,分析ui的第三状态1222。
[0243]
图12f是ui的第三状态1222的分析结果的图形表示,换句话说,在ui的第三状态1222中可以采取的所有可能的动作。具体地,分析将第一链接1206、第二链接1207、第三链接1208、第四链接1209和提交按钮1215标识为最短路径的第三步骤的可能动作。从第二数据输入字段1213发出的箭头表示在第三状态1222中从当前位置到每个所标识动作的距离。
[0244]
在图12g中,选择为第三步骤的动作是单击标记为“登录”的提交按钮1215。当前位置(第二数据输入字段1213的地点)与标记为“登录”的提交按钮1215的地点之间的距离是第三步进距离1224,其被加到所存储的当前路径距离。在第三状态1222中执行选择的动作导致ui转换到图12h中所示的第四状态1226,以及当前位置改变为标记“登录”的提交按钮1215的地点。
[0245]
如图12h所示,对ui的第四状态1226的分析导致文本1230的识别。文本1230与目标文本(例如,“欢迎”)匹配,这指示已经达到目标。从当前位置(标记为“登录”的提交按钮1215的先前地点)到文本1230的地点之间的距离是第四步进距离1232,该距离被加到当前路径距离中以确定当前路径的总距离。该路径导致成功的结果。可以研究其他路径以确定是否可以找到总距离更短的成功路径。
[0246]
用户界面增强
[0247]
图13是描述使用眼睛跟踪实验为ui生成提示和加强的示例性方法的流程图。尽管下面相对于ui测试和增强装置110描述了示例性方法,但是该方法可以实施在其他装置和/或系统中。在各种实现方式中,控制可以由ui增强模块122和最短路径模块120执行。
[0248]
控制开始于1304,其中控制获取ui的初始url、ui的目标以及加强百分比。加强百分比是用于确定到达目标的最短路径中的某个步骤是否需要用户加强的阈值。例如,加强百分比指示在最短路径的某步骤被确定为需要加强之前用户有多频繁偏离该步骤。控制继续1306。在1306,控制确定ui中到目标的最短路径。在一些实现方式中,控制可以执行图7a和7b中公开的方法,如先前所描述的。在其他实现方式中,控制可以例如从存储装置112加载与ui的目标相关联的先前存储的最短路径。然后,控制前进到1308。
[0249]
在1308,控制确定沿着最短路径遇到的ui的每个url的加强距离。加强距离是在控制确定适用的最短路径步骤可能需要加强之前、用户会偏离该步骤的最大距离。控制可以执行图14中描述的方法,来确定每个url的加强距离。然后控制继续1312。
[0250]
在1312,控制基于为ui的每个url确定的加强距离,确定可能需要加强的最短路径
的步骤。例如,控制可以执行图21中公开的方法,来确定哪些步骤可能需要加强。控制继续1316。
[0251]
在1316,控制加载最短路径的第一步骤。控制还将ui_enhancement初始化为null。ui_enhancement用于存储与ui相关的提示和加强,这些提示和加强可用于帮助用户到达目标。然后控制前进到1320。
[0252]
在1320,控制确定该步骤是否包括链接。如果是,则控制继续1324;否则,控制转移到1328。在1324,控制获得对应于所包括的链接的dom元素。控制继续1332,其中控制根据获得的dom元素确定链接是否由按钮表示。如果是,则控制继续1336;否则,控制转移到1340。
[0253]
在1336,控制生成提示,该提示指示用户单击与链接关联的按钮。例如,控制可以将提示设置为“单击《按钮》”。在生成的提示中,《按钮》是描述按钮例如按钮的名称的文本或与该按钮关联的文本。控制可以从获取的dom元素中获取按钮的名称或与之关联的文本。控制随后进行到1344,如下所述。
[0254]
在1340,控制生成提示,该提示指示用户从菜单中选择选项。例如,控制可以将提示设置为“从《菜单》中选择《选项》。”在生成的提示中,《选项》和《菜单》是分别描述选项和菜单的文本。控制可以从获取的dom元素获取文本。控制继续1344,如下所述。
[0255]
返回到1328,控制确定该步骤是否包括提交。如果是,则控制继续1348;否则,控制确定该步骤包括数据输入字段,并且控制转移到1352。在1348,控制获得与该步骤中包括的提交相对应的dom元素。控制继续1356,在1356控制生成指示用户单击提交的提示。例如,控制可以将提示设置为“单击《提交》。”在生成的提示中,“提交”是描述提交的文本例如提交的名称,或与提交相关联的文本。控制可以从获取的dom元素中获取提交的名称或与之关联的文本。控制随后进行到1344,如下所述。
[0256]
返回到1352,控制获得对应于数据输入字段的dom元素。控制继续1360,在1360,控制基于获得的dom元素确定数据输入字段是否为文本输入字段。如果是,则控制继续1364;否则,控制可以推断出输入字段是一个或多个选项的列表并转移到1368。在1364,控制生成指示用户将文本输入到输入字段中的提示。例如,控制可以将提示设置为“在《字段》”中输入你的数据”。在生成的提示中,《字段》是描述输入字段的文本例如输入字段的名称,或与输入字段相关联的文本。控制可以从获得的dom元素中获得输入字段的名称或与之关联的文本。控制然后进行到1344。
[0257]
返回到1368,控制生成指示用户从选项列表中选择选项的提示。例如,控制可以将提示设置为“从《字段》中的选项中选择《选项》”。在生成的提示中,《字段》是描述输入字段的文本例如输入字段的名称,或与输入字段关联的文本。控制可以从获得的dom元素中获得输入字段的名称或与之关联的文本。控制继续1344。
[0258]
返回到1344,控制根据接收到的加强百分比确定该步骤是否需要用户加强。例如,控制可以使用下面的不等式6来确定该步骤是否需要加强。
[0259][0260]
count
reinforce
表示该步骤被认为潜在需要加强——每次出现眼球跟踪数据样本偏离该步骤超过相应的加强距离——的次数。count
total
是确定眼睛跟踪样本对应于该步骤的总次数。如果不等式6成立,则控制确定该步骤需要加强,并且控制继续1372;否则,控制转
移到1376。
[0261]
在1372,控制将与所获得的dom元素相关联的ui的组件标记为需要另外的加强。在一些实施方式中,可以在提示被呈现给用户的同时突出显示ui组件。在其他实现方式中,可以将ui组件的地点提供给用户。然后控制前进到1376。
[0262]
在1376,控制将最短路径步骤、dom元素、生成的提示以及任何另外的加强存储在ui_enhancement中。控制继续1380。
[0263]
在1380,控制确定最短路径是否包括下一步骤。如果是,则控制继续1384;否则,控制转移到1388。在1384,控制在最短路径中加载下一步骤,然后返回1320。
[0264]
在1388,控制输出ui_enhancement。然后控制结束。生成的ui增强可用于生成新的ui,该新ui将用户引导到目标。例如,可以将所生成的提示合并到ui中。ui_enhancement中包含的数据也可以由自动化系统用来向用户提供将用户引导到所请求或建议的目标的提示。
[0265]
在一些实现方式中,控制可以响应于确定最短路径的步骤需要加强而仅产生提示。换句话说,响应于控制基于接收到的加强百分确定(在1344处)该步骤需要用户加强,控制可仅实施元素1320、1324、1328、1332、1336、1340、1348、1352、1356、1360、1364和1368。例如,控制可以使用上面的不等式6来确定步骤是否需要加强。
[0266]
图14是描述用于确定ui的每个url的加强距离的示例性方法的流程图。尽管下面相对于ui测试和增强装置110描述了示例性方法,但是该方法可以在其他装置和/或系统中实现。在各种实现方式中,控制可以由加强模块160和/或距离模块164执行。
[0267]
控制在1404开始,在控制1404,控制获得目标的最短路径。在一些实现方式中,控制可以加载先前已经确定并存储在例如存储装置112中的最短路径。在其他实现方式中,控制可执行图7a和7b中所公开的方法。控制继续1408,其中控制获得测试参数,比如允许系统采取的最大演化次数(max_evolutions)和一组适应度加权值。然后控制前进到1412。
[0268]
在1412,控制加载与ui和目标相对应的眼睛跟踪实验。眼睛跟踪实验包括跟踪用户导航ui的数据。跟踪数据以固定的采样频率(例如,每两秒一次)被捕获。每个眼睛跟踪实验按照用户查看的顺序、基于被用户导航的ui的页面,将跟踪数据分组到页面中。换句话说,眼睛跟踪实验的每个页面代表用户在ui的单个状态期间的运动。跟踪数据中的每个数据点包括捕获时的ui页面(url)和指示ui屏幕上的地点的一组坐标。控制继续到1416。
[0269]
在1416,控制计算眼睛跟踪实验和最短路径之间的差。例如,控制确定跟踪数据和沿最短路径的点之间的距离。控制可以执行图15中公开的方法来计算距离。然后控制前进到1420。
[0270]
在1420,控制计算包括在被标记为成功的眼睛跟踪实验(导致用户到达目标的实验)中的每个url的中值成功距离。控制可以执行图17中公开的方法,来确定中值成功距离。然后控制前进到1424。
[0271]
在1424,控制计算标记为失败的眼睛跟踪实验中包括的每个url的中值失败距离。如果用户没有到达目标或跟踪数据偏离最短路径,则实验可被标记为失败。控制可以执行图18中公开的方法,来确定中值失败距离。控制继续1428。
[0272]
在1428,控制根据相应的中值成功距离和失败距离设置每个url的边界值。例如,控制将url的上限设置为中值成功距离,将url的下限设置为中值失败距离。上限和下限用
于生成从需要加强的最短路径的偏离的距离的估计。控制还将执行的演化次数(evolutions)初始化为零。然后控制前进到1432。
[0273]
在1432,对于每个url,控制基于url的边界值生成随机距离。例如,控制可以使用蒙特卡洛模块142来生成在url的上限和url的下限之间的随机值。控制继续1436,在此控制测试所生成的url的值。例如,控制可以执行图19中公开的方法,来测试生成的距离。然后控制前进到1440。
[0274]
在1440,控制确定执行的演化的次数是否小于允许的演化的最大次数。如果是,则控制继续1444;否则,控制转移到1448。在1444,控制增加evolution,并返回1432。
[0275]
在1448,控制为每个随机生成的加强距离计算适应度值。控制可以使用下面的等式7来计算每个适应度值。
[0276][0277]
w1、w2和w3是在1408中获得的适应度加权值。success count代表某预测基于随机生成的url的加强距离正确预测了眼睛跟踪实验的结果的次数。falsepositivecount表示某预测基于url的随机生成的加强距离错误预测了成功的眼睛跟踪实验失败的次数。falsenegative表示某预测基于url的随机生成的加强距离错误预测了失败的眼睛跟踪实验成功的次数。控制继续1452。
[0278]
在1452,控制关于所确定的适应度值与相关联的随机产生的距离的曲线图执行群集分析。在一些实现方式中,控制使用基于密度的含噪声应用空间群集(density

based spatial clustering of applications with noise,dbscan)算法来执行群集分析。在其他实现方式中,控制使用均值漂移技术来执行群集分析。在其他实现方式中,控制可以使用任何合适的群集分析技术或算法来分析适应度值相对于随机产生的距离的曲线图。控制继续1456。
[0279]
在1456,控制确定在群集分析期间针对单个url是否识别了多于一个群集。如果是,则控制继续1460;否则控制转移到1464。在1460,控制根据url的最成功群集为每个url更新边界值。例如,对于每个url,控制都将url的上限设置为最成功群集中的最大距离,并将url的下限设置为最成功群集中的最小距离。控制还将所执行演化的次数重置为零。控制然后返回到1432。
[0280]
返回到1464,控制输出加强距离。例如,对于每个url,控制输出具有最高适应度值的与url关联的加强距离。控制然后结束。
[0281]
图15是描述用于确定眼睛跟踪实验与沿加载的最短路径的点之间的距离的示例性方法的流程图。尽管下面相对于ui测试和增强装置110描述了示例性方法,但是该方法可以实施在其他装置和/或系统中。在各种实现方式中,控制可以由加强模块160和/或距离模块164执行。
[0282]
控制从1502开始。在1502,控制获得眼睛跟踪实验和最短路径。在一些实现方式中,控制可以例如从存储装置112加载先前存储的眼睛跟踪实验和/或最短路径。在其他实现方式中,控制可以使用已经加载的眼睛跟踪实验和/或最短路径。控制继续1504,其中控制将变量current_experiment设置为第一个加载的眼睛跟踪实验。控制继续1508,其中控制将current_page设置为current_experiment中存储的第一页面。在1508,控制还将最短
路径的步骤加载到临时队列(temp_path)中。然后控制前进到1512。
[0283]
在1512,控制使用临时队列确定当前页面的距离。例如,控制可以执行图16中公开的方法,以加载current_page并根据temp_path中的最短路径步骤计算距离。然后控制前进到1516。在1516,控制确定与当前页面关联的跟踪数据是否偏离了最短路径,例如result是否等于偏离。如果是,则控制继续1520;否则,控制转移到1524。在1520,控制记录当前页面的路径偏离。例如,控制将偏离存储在current_page中。控制继续1524。
[0284]
在1524,控制记录针对当前页面的所确定距离和相关联数据,例如,控制可以将result加到current_page。控制继续1526,其中控制根据与存储在current_page中的数据相关联的数据更新current_experiment。控制进行到1528,其中控制确定是否current_experiment包括另外的页面。如果是,则控制继续1532;否则,控制转移到1536。在1532,控制将current_page设置为current_experiment中存储的下一页。然后控制返回到1512。
[0285]
在1536,控制确定current_experiment中的任何页面是否包括偏离。如果是,则控制继续1540;否则,控制转移到1544。在1540,控制将与当前实验中存储的距离相关联的状态(distance_status)设置为失败。然后,控制继续1548。在1544,控制将存储在当前实验中的distance_status设置为当前实验(current_experiment)的状态,例如成功或失败。控制继续1548。
[0286]
在1548,控制记录与当前实验中存储的距离相关联的状态。例如,控制可以将distance_status加到current_experiment中。控制进行到1550,在此控制根据与当前实验关联的数据(换言之,存储在current_experiment中的数据)更新加载的眼睛跟踪实验。然后,控制继续1552。
[0287]
在1552,控制确定所加载的眼睛跟踪实验是否包括另一个实验。如果是,则控制继续1556;否则,控制转移到1560,在1560控制保存所加载的实验,且控制结束。在1556,控制将current_experiment设置为下一个加载的实验。然后控制返回到1508。
[0288]
图16是描述用于确定眼睛跟踪数据和沿ui的页面的所加载最短路径的点之间的距离的示例性方法的流程图。尽管下面相对于ui测试和增强装置110描述了示例性方法,但是该方法可以实施在其他装置和/或系统中。在各种实现方式中,控制可以由加强模块160和/或距离模块164执行。
[0289]
在接收到与ui的页面相关联的眼睛跟踪数据和包含最短路径步骤的队列(例如来自图15的1512的current_page和temp_path)之后,控制在1604开始。在1604,控制确定与眼睛跟踪数据相关联的url,并将result设置为null。控制继续1608,其中控制从眼睛跟踪数据比如current_page中提取坐标形式的眼睛跟踪样本。控制继续1612,在1612,控制在网格上绘制眼睛跟踪样本,并生成代表样本的向量。控制进行到1616。
[0290]
在1616,控制加载最短路径步骤,例如,控制从temp_path弹出步骤。然后控制比较与眼睛跟踪数据相关联的url和与最短路径步骤相关联的url。控制进行到1620。如果url匹配,控制继续1624,否则控制确定出眼睛跟踪数据偏离了最短路径,且控制转移到1628。在1628,控制将整体确定的结果(result)设为偏离,且控制继续1632。在1632,控制输出result且控制结束。
[0291]
在1624,控制将最短路径步骤的开始和结束坐标绘制在网格上。然后控制生成步骤的开始点和结束点之间的最短路径向量。控制进行到1636,其中控制确定在最短路径中
是否存在另外的步骤,比如temp_path的大小是否大于零。如果是,控制进行到1640,否则控制转移到1644。
[0292]
在1640,控制将和最短路径中下一步骤相关联的url与和眼睛跟踪数据相关联的url进行比较,比如控制快速看temp_path中的步骤而不从队列移除该步骤。控制然后进行到1648。如果url匹配,控制继续1652;否则控制转移到1644。在1652,控制加载下一个最短路径步骤,比如控制将步骤从temp_path中弹出。然后控制基于下一个最短路径步骤更新网格和最短路径向量。然后控制返回1636。
[0293]
在1644,控制沿着最短路径向量绘制与跟踪样本相对应的点。例如,控制从最短路径向量的开始处,沿着最短路径向量等距地为每个所绘制的眼睛跟踪样本绘制一个点。控制继续1656,其中控制将当前点设置到最短路径向量开始处的点。然后控制进行到1660。
[0294]
在1660,控制计算当前点和与当前点相对应的眼睛跟踪样本之间的欧几里得距离。在1664,控制记录当前点和相对应的眼睛跟踪样本的坐标,以及二者之间的距离。例如,控制可以将这些值加到result。控制然后进行到1668,其中控制确定当前点是否在最短路径向量的末尾。如果是,控制继续1632,其中控制输出results且控制结束;否则,控制转移到1672。在1672,控制将当前点设置到最短路径向量上的下一个点,且返回1660。
[0295]
图17是描述基于眼睛跟踪实验中存储的数据确定一组眼睛跟踪实验中每个url的中值成功距离的示例性方法的流程图。尽管以下关于ui测试和增强装置110描述示例性方法,然而该方法可实施在其他装置和/或系统中。在各种实现方式中,控制可由加强模块160和/或距离模块164来执行。
[0296]
控制在1702开始。在1702,控制获得眼睛跟踪实验。在一些实现方式中,控制可以例如从存储装置112加载先前存储的眼睛跟踪实验。在其他实现方式中,控制可以使用已经加载的眼睛跟踪实验。控制继续1704,在此控制将当前实验设置为眼睛跟踪实验的第一个实验,并将successful_temp设置为null。控制使用successful_temp来存储每个成功距离和关联的url。控制然后进行到1708。
[0297]
在1708,控制加载当前实验的数据和状态。控制继续1712,在1712控制确定当前实验是否标记为成功,换句话说,测试用户是否到达目标。如果是,则控制继续1716;否则,控制转移到1720。在1716,控制加载与当前实验的第一个url相关联的所有距离。然后控制前进到1724,在1724控制将与url关联的每个距离连同url一起加到successful_temp。换句话说,存储在successful_temp中的每个距离都链接到url。控制继续1728,在1728控制确定当前实验中是否存在另一个url。如果是,则控制继续1732,在1732控制加载与当前实验中的下一个url相关联的所有距离,然后控制返回到1724;否则,控制转移到1720。
[0298]
在1720,控制确定是否存在另一个眼睛跟踪实验。如果是,则控制继续1736;否则,控制转移到1740。在1736,控制加载下一个实验的数据和状态,然后返回1708。在1740,控制确定针对每个url在successful_temp中存储的中值距离。控制继续1744,其中,控制输出眼睛跟踪实验中每个url的中值成功距离。然后控制结束。
[0299]
图18是描述基于在眼睛跟踪实验中存储的数据在一组眼睛跟踪实验中确定每个url的中值失败距离的示例性方法的流程图。尽管下面关于ui测试和增强装置110描述了示例性方法,但是该方法可以实施在其他装置和/或系统中。在各种实现方式中,控制可以由加强模块160和/或距离模块164执行。
[0300]
控制始于1802,在1802控制获得眼睛跟踪实验。在一些实现方式中,控制可以例如从存储装置112加载先前存储的眼睛跟踪实验。在其他实现方式中,控制可以使用已经加载的眼睛跟踪实验。控制继续1804,在此控制将当前实验设置为眼睛跟踪实验的第一个实验,将failure_temp设置为null。控制使用failure_temp来存储每个失败距离和相关联的url。控制然后进行到1808。
[0301]
在1808,控制加载当前实验的数据和状态。控制继续1812,其中控制确定当前实验是否被标记为失败。响应于测试用户未能到达目标或跟踪数据偏离最短路径,实验可被标记为失败。如果实验标记为失败,则控制继续1816;否则,控制转移到1820。在1816,控制加载与当前实验的第一个url相关联的所有距离。然后控制前进到1824,在此处控制将与url关联的每个距离连同url加到failure_temp。换句话说,存储在failure_temp中的每个距离都链接到url。控制继续1828,在此控制确定当前实验中是否存在另一个url。如果是,则控制继续1832,在该步骤中,控制加载与当前实验中的下一个url相关联的所有距离,然后控制返回1824;否则,控制转移到1820。
[0302]
在1820,控制确定是否存在另一个眼睛跟踪实验。如果是,则控制以1836继续;否则,控制转移到1840。在1836,控制加载下一个实验的数据和状态,然后返回1808。在1840,控制确定针对每个url在failure_temp中存储的中值距离。控制继续1844,其中控制输出针对眼睛跟踪实验中每个url的中值失败距离。控制然后结束。
[0303]
图19是描述将眼睛跟踪实验的结果预测与先前存储的结果进行比较的示例性方法的流程图。预测是基于至目标的最短路径和表示从最短路径的可接受偏离的一组测试距离。尽管下面关于ui测试和增强装置110描述了示例性方法,该方法可实施在其他装置和/或系统中。在各种实现方式中,控制可由加强模块160、距离模块164和/或预测模块168执行。
[0304]
控制始于1904,其中控制获得眼睛跟踪实验、最短路径和测试距离。在一些实现方式中,控制可以例如从存储装置112加载先前存储的眼睛跟踪实验、最短路径和/或测试距离。在其他实现方式中,控制可以使用眼睛跟踪实验、最短路径和/或已经加载的测试距离。控制继续1908,其中控制将当前实验设置为第一个加载的眼睛跟踪实验,并将prediction设置为null。控制使用prediction来存储针对每个url生成的预测。控制继续1912,在此控制将当前页面设置为当前实验中存储的第一页面。在1912,控制还将最短路径加载到临时队列(temp_path)中。控制然后进行到1916年。
[0305]
在1916,控制使用测试距离和存储在临时队列(temp_path)中的最短路径步骤来生成当前页面的预测。例如,控制可以执行图20中公开的方法,以生成预测。然后控制前进到1920,在此处控制记录生成的预测,例如,控制将预测加到prediction中。控制然后进行到1924。
[0306]
在1924,控制确定当前实验中是否还有另一页面。如果是,则控制前进到1928;否则,控制转移到1932。在1928,控制将当前页面设置为当前实验中的下一页面。控制然后返回到1916。
[0307]
在1932,控制确定是否存在另一个实验。如果是,控制继续1936;否则,控制转移到1940。在1940,控制输出为每个url生成的预测(prediction)。控制然后结束。
[0308]
图20是描述将基于眼睛跟踪实验的单个页面的分析的眼睛跟踪实验的结果预测
与先前存储的结果进行比较的示例性方法的流程图。尽管下面关于ui测试和增强装置110描述示例性方法,该方法可实施在其他装置和/或系统中。在各种实现方式中,控制可由加强模块160、距离模块164和/或预测模块168执行。
[0309]
控制在接收到眼睛跟踪实验的页面、测试距离和包含最短路径的步骤的队列(比如来自图19的1916的current_page,test_disiances和temp_path)时在2004开始。在2004,控制确定并存储与眼睛跟踪数据的页面相关联的实验的状态(比如成功或失败)。例如,控制将status设为与所接收页面相关联的实验的所存储结果。控制还将result初始化为null。控制使用result来存储针对眼睛跟踪数据的页面的比较结果。然后控制继续2008。
[0310]
在2008,控制确定与眼睛跟踪数据的页面相关联的url。然后控制确定并存储与所确定的url相关联的测试距离(test_dist)。控制继续2012,其中控制从眼睛跟踪数据比如current_page提取坐标形式的眼睛跟踪样本。然后控制进行到2016,其中控制在网格上绘制眼睛跟踪样本,并生成代表样本的向量。控制继续2020。
[0311]
在2020,控制加载最短路径步骤,比如控制从temp_path弹出步骤。然后控制比较与眼睛跟踪数据相关联的url和与最短路径步骤相关联的url。控制进行到2024。如果url匹配,控制继续2028;否则,控制确定眼睛跟踪数据和最短路径步骤不与ui的同一屏幕相关联,且控制结束。
[0312]
在2028,控制在网格上绘制最短路径步骤的开始坐标和结束坐标。然后控制生成该步骤的开始点和结束点之间的最短路径向量。控制进行到2032,其中控制确定在最短路径中存在另一步骤,比如temp_path的大小大于零。如果是,控制进行到2032;否则控制转移到2040。
[0313]
在2032,控制比较与最短路径中的下一步骤相关联的url和与眼睛跟踪数据相关联的url,比如控制快速看temp_path中的下一步骤,而不从队列中移除该步骤。然后控制进行到2044。如果url匹配,控制继续2048;否则,控制转移到2040。在2048,控制加载下一个最短路径步骤,比如控制从temp_path中弹出步骤。然后控制基于下一个步骤更新网格和最短路径向量。然后控制返回2032。
[0314]
在2040,控制沿着最短路径向量绘制与所绘制的跟踪样本相对应的点。例如,控制从最短路径向量的开始处,沿着最短路径向量等距地为每个所绘制的眼睛跟踪样本绘制一个点。控制继续2052,其中控制将当前点(current_point)设为最短路径向量开始处的点。然后控制进行到2056。
[0315]
在2056,控制计算current_point与对应于current_point的眼睛跟踪样本之间的欧几里得距离(calculated_dist)。控制进行到2060,其中控制根据current_point和关联的跟踪样本之间的距离以及针对current_point和跟踪样本关联的url的测试距离来计算实验结果的预测。例如,控制确定calculated_dist是否大于test_dist。如果是,控制预测实验失败;否则,控制预测实验成功。然后控制进行到2064。
[0316]
在2064,控制将计算的预测与先前存储的实验状态(status)进行比较,并对预测进行分类。例如,如果预测和status匹配,则控制确定预测成功。如果控制预测实验失败而status指示成功,则控制确定预测是假性肯定。相反,如果控制预测实验成功,而status指示失败,则控制确定该预测为假性否定。然后控制存储确定的预测状态。例如,控制将确定的状态以及关联的url和测试距离(test_dist)加到结果中。然后控制前进到2068。
[0317]
在2068处,控制确定current_point是否在最短路径向量的末尾。如果是,则控制继续2072,其中控制输出result并结束;否则,控制转移到2076。在2076,控制将当前点设置为最短路径向量上的下一个点。然后控制返回2056。
[0318]
图21是描述确定至ui中目标的最短路径中可能需要加强的步骤的示例性方法的流程图。该确定基于眼睛跟踪实验和针对ui中每个url的预定加强距离。尽管下面关于ui测试和增强装置110描述了示例性方法,该方法可实施在其他装置和/或系统中。在各种实现方式中,控制可由加强模块160执行。
[0319]
控制在2104开始,在其中控制获得眼睛跟踪实验、最短路径和加强距离。在一些实现方式中,控制可例如从存储装置112加载先前存储的眼睛跟踪实验、最短路径和/或加强距离。控制继续2108,其中控制将当前实验设为第一加载的眼睛跟踪实验,且将reinforcement设为null。控制使用reinforcement来存储关于哪些步骤需要加强的信息。控制继续2112,在其中控制将当前页面设为存储在当前实验中的第一页面。在2112,控制还将最短路径加载到临时队列(temp_path)中。然后控制进行到2116。
[0320]
在2116,控制基于当前页面的眼睛跟踪数据和加强距离生成识别与当前页面相关联的可能需要加强的步骤的加强数据。例如,控制可执行图21所公开的方法来识别这些步骤。然后控制进行到2120,其中控制记录所生成的加强数据,比如控制将数据加到reinforcement。然后控制进行到2124。
[0321]
在2124,控制确定当前实验中是否存在另外的页面。如果是,控制进行到2128;否则,控制转移到2132。在2128,控制将当前页面设置到当前实验中的下一页面。然后控制返回2116。
[0322]
在2132,控制确定是否存在另外的实验。如果是,控制继续2136;否则,控制转移到2140。在2136,控制将下一实验设为当前实验,且然后控制返回2112。在2140,控制输出加强数据(reinforcement)。然后控制结束。
[0323]
图22是描述确定与眼睛跟踪实验的页面相关联的最短路径中可能需要加强的步骤的示例性方法的流程图。尽管以下关于ui测试和增强装置110描述示例性方法,该方法可实施在其他装置和/或系统中。在各种实现方式中,控制可由加强模块160执行。
[0324]
当接收到眼睛跟踪实验的页面、加强距离和包含最短路径步骤的队列(比如来自图21的2116的current_page,test_distances,和temp_path)时,控制开始2204。在2204,控制确定与眼睛跟踪数据的页面相关联的url。控制进行到2208,其中控制确定针对眼睛跟踪数据的页面关联的url的加强距离,并将reinforcement设为null。控制使用reinforcement来存储关于哪些步骤需要加强的信息。然后控制继续2212。
[0325]
在2212,控制从眼睛跟踪数据比如current_page提取坐标形式的眼睛跟踪样本。然后控制进行到2216,其中控制在网格上绘制提取的眼睛跟踪样本,并生成表示该样本的向量。控制继续2220。
[0326]
在2220,控制加载最短路径步骤,比如控制从temp_path弹出步骤。然后控制比较与眼睛跟踪数据相关联的url和与加载的最短路径步骤相关联的url。控制进行到2224。如果url匹配,控制继续2228;否则,控制确定眼睛跟踪数据和最短路径步骤不与ui的同一屏幕相关联,且控制结束。
[0327]
在2228,控制在网格上绘制已加载的最短路径步骤的开始和结束坐标。然后,控制
生成步骤的开始点和结束点之间的最短路径向量。控制进行到2232,其中控制确定在最短路径中是否存在另一步骤,比如temp_path的大小是否大于零。如果是,控制进行到2236;否则,控制转移到2240。
[0328]
在2232,控制将与最短路径中的下一步骤相关联的url和与眼睛跟踪数据相关联的url进行比较,例如,控制快速看temp_path中的下一步骤而不从队列移除该步骤。然后控制进行到2244。如果url匹配,则控制继续2248;否则,控制转移到2240。在2248,控制加载下一个最短路径步骤,例如,控制从temp_path弹出步骤。控制根据加载的最短路径步骤更新网格和最短路径向量。控制然后返回到2232。
[0329]
在2240,控制沿着最短路径向量绘制与跟踪样本相对应的点。例如,控制从最短路径向量的开始处,沿着最短路径向量等距地为每个所绘制的眼睛跟踪样本绘制一个点。控制继续2252,其中控制将当前点设置为最短路径向量开始处的点。然后控制前进到2256。
[0330]
在2256,控制计算当前点和与当前点相对应的眼睛跟踪样本之间的欧几里得距离(calculated_dist)。控制进行到2260,在此控制确定与当前点关联的最短路径步骤。然后控制继续2264。
[0331]
在2264,控制确定所计算的距离(calculated_dist)是否大于加强距离(reinforce_dist)。如果是,则控制确定该步骤可能需要加强,并且控制继续2268;否则,控制转移到2272。在2268,控制将索引加到与当前点相关联的最短路径步骤,将表示步骤可能需要加强的一指示加到reinforcement。然后控制继续2276。在2272,控制将索引加到与当前点相关联的最短路径步骤,将表示步骤不需要加强的一指示加到reinforcement。然后控制进行到2276。
[0332]
在2276,控制确定当前点是否在最短路径向量的末尾。如果是,则控制继续2280;否则,控制转移到2284。在2284,控制将当前点设置为最短路径向量上的下一个点。然后控制返回2256。在2280,控制输出针对与眼睛跟踪数据关联的最短路径步骤的所确定的加强结果,例如,控制输出reinforcement。然后控制结束。
[0333]
图23a

23e是针对ui的页面生成示例眼睛跟踪向量和示例最短路径向量的过程的视觉表示。图23a示出了ui的示例页面2302。在ui上绘制与页面2302相对应的眼睛跟踪实验的第一至第十眼睛跟踪样本2310

2319。每个眼睛跟踪样本表示捕获样本时导航ui的测试用户的聚焦点。作为示例,眼睛跟踪样本2310

2319可以表示每两秒捕获一次的鼠标光标的地点。产生包括所绘制的眼睛跟踪样本2310

2319中每个的眼睛跟踪向量2320。眼睛跟踪向量可以是分段线性或分段平滑的,并且表示测试用户在眼睛跟踪实验期间所采取的路径。
[0334]
在图23b中,在页面2302上绘制了与第一最短路径步骤的开始相对应的第一最短路径点2330和与第一最短路径步骤的末尾相对应的第二最短路径点2331。在图23c中,在页面2302上绘制与在第二最短路径点2331处开始的第二最短路径步骤的末尾相对应的第三最短路径点2332。在图23d中,在页面2302上绘制与从第三最短路径点2332开始的第三最短路径步骤的末尾相对应的第四最短路径点2333。
[0335]
在图23e中,在页面2302上示出最短路径2335。最短路径2335是第一最短路径点2330、第二最短路径点2331、第三最短路径点2332和第四最短路径点2333之间的向量。最短路径2335表示ui的页面2302上与最短路径相对应的路径。
[0336]
沿着最短路径2335等距绘制第一至第十最短路径点2340

2349。最短路径点2340

2349中的每个点对应于所绘制的眼睛跟踪样本2310

2319中的类似地编号和标记的样本(即最后的数字匹配)。例如,第一最短路径点2340对应于第一眼睛跟踪样本2310,第二最短路径点2342对应于第二眼睛跟踪样本2311。
[0337]
最短路径向量点2340

2349和图23e中所绘的对应眼睛跟踪样本2310

2319可用于确定针对页面2302的加强距离。例如,最短路径向量点2340

2349和对应的眼睛跟踪样本2310

2319之间的各个距离可辐射出测试用户偏离最短路径有多远。根据眼睛跟踪实验的结果,这些距离可用于确定页面2302的中值成功距离或中值失败距离。另外,这些距离可用于测试针对页面2302随机生成的加强距离。
[0338]
客户迁移
[0339]
图24是示例客户迁移系统2400的框图。客户迁移系统2400包括交互式语音响应(interactive voice response,ivr)平台2402。ivr平台2402包括ivr装置2404和ivr服务器2408。客户迁移系统2400还可以包括web应用程序服务器2412和协同浏览服务器2416。
[0340]
组织可以使用ivr装置2404来实现用户可以呼叫以请求信息或执行任务的客户服务号码。例如,用户可以使用电话2420经由公共交换电话网(pstn)2422、互联网语音协议(voip)或两者的组合来访问ivr装置2404。ivr装置2404从用户接收语音请求,并与ivr服务器2408通信以确定对用户请求的适当响应。
[0341]
在一些实施方式中,ivr装置2404可以使用语音识别模块2424将由用户通过电话2420提供的口头输入翻译到voicexml浏览器2426。在其他实现方式中,ivr装置2404可以将语音输入翻译外包给远程服务。例如,ivr装置2404可以将由voicexml浏览器2426接收的口头输入发送到远程服务,并且从远程服务接收口头输入的翻译或转录。voicexml浏览器2426将该翻译提供给ivr服务器2408的voicexml应用程序2428。
[0342]
voicexml应用程序2428可以确定用户可以使用托管在web应用程序服务器2412上的web应用程序2430完成请求。响应于确定用户可以使用web应用程序2430完成请求,voicexml应用程序2428从协同浏览配置模块2432请求协同浏览配置。协同浏览配置模块2432将与用户的请求相关的协同浏览配置提供给voicexml应用程序2428。协同浏览配置用于在协同浏览服务器2416上建立协同浏览会话。协同浏览会话向voicexml应用程序2428提供用户访问的web应用程序2430的当前状态,换句话说,用户查看的ui的当前状态。
[0343]
在接收到协同浏览配置之后,voicexml应用程序2428发送提示,该提示指示用户访问web应用程序2430,发起协同浏览会话,并向ivr装置2404提供协同浏览会话的会话id。voicexml浏览器2426接收提示,并为用户生成音频提示,例如,voicexml浏览器2426可以使用文本到语音模块2436生成音频提示。
[0344]
用户可以经由因特网2440使用计算装置2438访问web应用程序2430。计算装置2438可以是台式计算机、膝上型计算机、平板电脑、智能手机或能够访问web应用程序服务器2412的任何其他计算装置。在某些实现中,用户可以单击所加载的web应用程序2430的ui内的按钮来发起协同浏览会话。
[0345]
响应于接收到发起协同浏览会话的请求,web应用程序2430使用web服务器协同浏览客户端2442与协同浏览服务器2416进行通信,以发起协同浏览会话2444。在发起协同浏览会话2444时,协同浏览服务器将协同浏览会话2444的会话id发送到web服务器协同浏览客户端2442。web应用程序2430在web应用程序2430的ui中显示该会话id。在接收到协同浏
览会话2444的会话id时,web服务器协同浏览客户端2442将web应用程序2430的ui的当前状态的dom发送到协同浏览会话2444。每次web应用程序2430的ui的状态改变时,web服务器协同浏览客户端2442将新的dom发送到协同浏览会话2444。
[0346]
用户可以将会话id提供给ivr装置2404。voicexml浏览器2426翻译会话id并将其提供给voicexml应用程序2428。voicexml应用程序2428将翻译的会话id提供给无头浏览器2446。无头浏览器2446使用ivr协同浏览客户端2448将翻译的会话id发送至协同浏览会话2444。协同浏览服务器2416、web服务器协同浏览客户端2442、协同浏览会话2444和ivr协同浏览客户端2448形成协同浏览平台。在一些实施方式中,协同浏览平台可由第三方运作的远程服务来提供。
[0347]
响应于接收到会话id,协同浏览会话2444将web应用程序2430的ui的当前状态的dom发送到ivr协同浏览客户端2448,ivr协同浏览客户端2448将dom传递给无头浏览器2446。无头浏览器2446将dom提供给voicexml应用程序2428。voicexml应用程序2428可以使用无头浏览器2446和ivr协同浏览客户端2448来获得协同浏览会话2444的当前dom。通过这种方式,voicexml应用程序能够确定web应用程序2430的ui的当前状态。
[0348]
voicexml应用程序2428可以使用协同浏览配置模块2432,基于与用户请求相关联的目标和ui的当前状态,来向用户提供提示和加强。例如,协同浏览配置模块2432包括有关目标的信息,例如通向目标的最短路径、针对最短路径的每个步骤的提示以及与最短路径相关联的任何加强。在一些实现方式中,协同浏览配置模块2432可以包括由系统100的ui测试和增强装置110生成的信息。在其他实现方式中,协同浏览配置模块2432可以包括由另一装置和/或系统生成的信息。
[0349]
图25是描述在协同浏览会话的示例性发起期间用户、ivr装置2404、voicexml应用程序2428、协同浏览配置模块2432、无头浏览器2446、ivr协同浏览客户端2448、协同浏览服务器2416和web应用程序服务器2412之间的示例性请求和相关联的响应的序列图。
[0350]
序列图开始于用户向ivr装置2404提供对业务的音频请求2510。ivr装置2404使用语音识别模块2424翻译请求,并将翻译后的请求2514发送至voicexml应用程序2428。响应于接收到翻译后的请求,voicexml应用程序2428向协同浏览配置模块2432请求与翻译后的请求相关联的协同浏览配置2516。协同浏览配置模块2432通过向voicexml应用程序2428提供协同浏览配置2520进行响应。
[0351]
响应于接收到协同浏览配置,voicexml应用程序2428将协同浏览提示2524发送至ivr装置2404。然后,ivr装置2404向用户提供协同浏览提示2528,该协同浏览提示2528指示用户使用web应用程序2430启动协同浏览会话,并向ivr装置2404提供协同浏览会话的会话id。例如,ivr装置2404可以使用文本到语音模块2436来生成通过电话2420呈现给用户的音频提示。ivr装置2404然后等待2532来自用户(例如,提供协同浏览会话的会话id的用户)的响应。
[0352]
在听到开始协同浏览会话的指示后,用户向web应用程序服务器2412发送开始协同浏览会话的请求2536。响应于接收到开始协同浏览会话的请求,web应用程序服务器2412向协同浏览服务器2416发送协同浏览会话的请求2540。响应于接收到协同浏览会话请求,协同浏览服务器2416开始协同浏览会话,并将协同浏览会话的会话id2544返回给web应用程序服务器2412。响应于接收到会话id,web应用程序服务器2412将会话id 2548提供给用
户。例如,web应用程序服务器2412在web应用程序2430的ui中显示会话id。
[0353]
然后,用户将会话id 2552提供给ivr装置2404。响应于从用户接收到会话id,ivr装置2404翻译会话id,并将翻译后的会话id 2556发送至voicexml应用程序2428。voicexml应用程序2428将连接到协同浏览会话的请求2560发送到无头浏览器2446。连接到协同浏览会话的请求包括翻译后的会话id。无头浏览器2446将连接协同浏览会话的请求2564发送到ivr协同浏览客户端2448。响应于接收到连接请求,ivr协同浏览客户端2448将连接到协同浏览会话的请求2568发送至协同浏览服务器2416。
[0354]
响应于接收到连接请求,协同浏览服务器2416从协同浏览会话2444检索当前dom,并将当前dom发送2572至ivr协同浏览客户端2448,ivr协同浏览客户端2448然后将当前dom提供2576给无头浏览器2446。然后,无头浏览器2446将当前的dom提供2580给voicexml应用程序2428。voicexml应用程序2428使用当前的dom来监视在到达ui中目标方面用户的进度。
[0355]
图26是描述了在示例性协同浏览会话的一部分期间,用户、ivr装置2404、voicexml应用程序2428、协同浏览配置模块2432、无头浏览器2446、ivr协同浏览客户端2448、协同浏览服务器2416和web应用程序服务器2412之间的示例请求和关联响应的示例性协同浏览序列图。在协同浏览序列图2600中描述的协同浏览会话的一部分期间,关于与至ui中目标的最短路径中的步骤相关联的动作向用户呈现提示,并且voicexml应用程序2428监视用户的进度并,并提供加强来辅助用户完成与该步骤相关联的动作。
[0356]
协同浏览序列图始于voicexml应用程序2428向协同浏览配置模块2432请求ui的当前状态的配置数据2603。作为响应,协同浏览配置模块2432向voicexml应用程序2428提供与ui的当前状态相关联的最短路径的当前步骤相关的提示2606,例如,“请输入您的用户名。”然后,voicexml应用程序2428将提示2609提供给ivr装置2404。ivr装置2404向用户呈现提示2612。例如,ivr装置2404可以使用文本到语音模块2436来生成通过电话2420呈现给用户的音频提示。
[0357]
在voicexml应用程序2428向ivr装置2404提供提示2609之后,voicexml应用程序2428延迟预定时间段,然后开始监视协同浏览会话2444的dom2615。具体地,voicexml应用程序2428向无头浏览器2446请求dom 2618。无头浏览器2446接收到对dom 2618的请求后,从ivr协同浏览客户端2448请求dom 2621,这使ivr协同浏览客户端2448向协同浏览服务器2416发送针对dom的请求2624。响应于从ivr协同浏览客户端2448接收到针对dom的请求2624,协同浏览服务器2416将协同浏览会话2444的当前dom 2627发送至ivr协同浏览客户端2448。ivr协同浏览客户端2448将当前dom 2630提供给无头浏览器2446,无头浏览器2446又将当前dom 2633提供给voicexml应用程序2428。通过这种方式,voicexml应用程序2428能够确定用户是否已完成提示的动作。
[0358]
响应于确定dom没有指示用户已经执行了提示的动作,voicexml应用程序2428向协同浏览配置模块2432请求与当前步骤相关联的加强2636。响应于接收到针对加强2636的请求,协同浏览配置模块2432将与当前步骤关联的加强2639提供给voicexml应用程序2428。例如,加强可以是如下提示,其指示与所提示的动作相对应的数据输入字段的地点。
[0359]
响应于接收到加强2639,voicexml应用程序2428确定加强中包括的坐标的相对地点2642。然后,voicexml应用程序2428将加强2645提供至ivr装置2404,ivr装置2404将加强2648呈现给用户。例如,ivr装置2404可以使用文本到语音模块2436来生成音频加强。
[0360]
在听到音频加强之后,用户可以执行起初提示的动作2651。例如,用户可以在ui的适当的文本输入字段中输入用户名。响应于用户在文本数据输入字段中输入文本,ui的状态改变,并且web应用程序服务器2412将更新的dom 2654提供给协同浏览服务器2416。
[0361]
在将加强2645提供给ivr装置2404之后,voicexml应用程序2428延迟预定时间,然后通过从无头浏览器2446请求dom 2660来开始监视dom 2657,无头浏览器2446向ivr协同浏览客户端2448请求dom 2663。响应于接收到对dom 2663的请求,ivr协同浏览客户端2448将对dom 2666的请求发送至协同浏览服务器2416。响应于接收到对dom 2666的请求,协同浏览服务器2416将当前com 2669发送至ivr协同浏览客户端2448。在接收到当前dom 2669之后,ivr协同浏览客户端2448将当前dom 2672提供给无头浏览器2446,无头浏览器2446又将当前dom 2675提供给voicexml应用程序2428。响应于接收到当前dom 2675,voicexml应用程序2428确定起初提示的动作是否已完成。如果是,voicexml应用程序2428以最短路径前进到下一步骤2678。客户迁移系统2400以这种方式继续,直到voicexml应用程序2428确定用户已经到达目标为止。
[0362]
图27a

27d描述了客户迁移系统2400的示例协同浏览会话。在图27a中,示出了计算装置2438的屏幕的输出,该屏幕显示web应用程序2430的ui的第一状态2702。例如,第一状态2702是web应用程序2430的ui的初始状态。ivr装置2404通过电话2420生成第一音频提示2704,该音频提示2704指示用户单击位于第一状态2702中的协同浏览链接2705,来发起协同浏览会话。响应于用户单击协同浏览链接2705,web应用程序服务器2412在协同浏览服务器2416上发起协同浏览会话2444。响应于发起协同浏览会话2444,协同浏览服务器2416向web应用程序服务器2412提供协同浏览会话2444的会话id。
[0363]
在图27b中,响应于接收到协同浏览会话2444的会话id,web应用程序2430改变ui的状态,使得计算装置2438的屏幕的输出显示web应用程序2430的ui的第二状态2706。ui的第二状态2706包括窗口2710,该窗口2710包含协同浏览会话2444的会话id(123456)。响应于生成第一音频提示2704,ivr装置2404通过电话2420生成第二音频提示2708,该第二音频提示2708请求用户向ivr装置2404提供协同浏览会话2444的会话id。
[0364]
在图27c中,响应于用户单击窗口2710中的ok按钮,web应用程序2430改变ui的状态,使得计算装置2438的屏幕显示第一状态2702。换句话说,计算装置的屏幕的输出不再包括窗口2710。响应于改变ui的状态,web应用程序服务器2412将第一状态2702的dom提供给协同浏览服务器2416。响应于用户向ivr装置2404提供协同浏览会话2444的会话id,ivr装置2404向ivr服务器2408提供会话id。
[0365]
ivr服务器2408然后连接到协同浏览会话2444并接收协同浏览会话的当前dom,例如第一状态2702的dom。ivr服务器2408基于第一状态2702的dom和来自协同浏览配置模块2432的提示数据,使ivr装置2404生成第三音频提示2714。第三音频提示2714指示用户将其用户名输入到web应用程序中。
[0366]
在图27d中,响应于确定用户尚未完成与第三音频提示2714相关联的动作,ivr服务器2408基于第一状态2702的dom和来自协同浏览配置模块2432的加强信息,使ivr装置2404生成音频加强2716。音频加强2716指示用户执行初始动作,并向用户提供与完成该动作有关的其他信息。例如,音频加强2716向用户提供用于输入用户名的数据输入字段的地点。以这种方式,ivr服务器2408能够通过web应用程序2430将用户引导至特定目标。
[0367]
高容量药房
[0368]
图28是针对高容量药房的系统2800的示例实现方式的框图。尽管通常将系统2800描述为部署在高容量药房或履行中心(例如,邮购药房,直接递送药房等)中,然而系统2800和/或系统2800的组件可以以其他方式部署(例如,部署在较低容量药房中等)。高容量药房可以是能够机械地对至少一些处方进行配药的药房。系统2800可以包括直接和/或通过网络2804彼此通信的福利管理方装置2802和药房装置2806。
[0369]
系统2800还可包括一个或多个用户装置2808。诸如药剂师、患者、数据分析师、健康计划管理员等用户可使用用户装置2808访问福利管理方装置2802或药房装置2806。用户装置2808可以是台式计算机、膝上型计算机、平板电脑、智能手机等。
[0370]
福利管理方装置2802是由至少部分地负责创建和/或管理药房或药物利益的实体操作的装置。尽管操作福利管理方装置2802的实体通常是药品福利管理方(pharmacy benefit manager,pbm),然而其他实体可以代表自己或其他实体(例如pbm)来操作福利管理方装置2802。例如,福利管理方装置2802可以由健康计划、零售药房连锁店、药品批发商、数据分析或其他类型的软件相关公司等来操作。在一些实现方式中,提供药房福利的pbm可以提供一种或多种附加福利,包括医疗或健康福利、牙科福利、视力福利、健康福利、放射学福利、宠物护理福利、保险福利、长期护理福利、疗养院福利等。除了其pbm运营外,pbm还可以经营一家或多家药房。药房可以是零售药房、邮购药房等。
[0371]
操作福利管理方装置2802的pbm的一些操作可以包括以下活动和过程。药房福利计划的成员(或代表该成员的人)可以在零售药房地点(例如实体店的地点)从药剂师或药剂师技术人员获得处方药。成员还可以从邮购药房地点比如系统2800通过邮购药物递送来获得处方药。在一些实现方式中,成员可以通过使用机器(例如,售货亭、自动售货机、移动电子装置,或不同类型的机械装置、电子装置、电子通信装置和/或计算装置)直接或间接地获得处方药。这样的机器可由系统2800填充有处方包装的处方药,处方包装可包括多个处方成分。药房福利计划由福利管理方装置2802或通过福利管理方装置2802管理。
[0372]
成员可有针对处方药的共付额(copayment),该共付额反映成员负责为处方药支付药房的金额。成员支付给药房的钱可以来自比如成员的个人资金、成员或成员家庭的健康储蓄账户(health savings account,hsa)、成员或成员家庭的健康报销安排(health reimbursement arrangement,hra)或成员或成员家庭的灵活支出账户(flexible spending account,fsa)。在一些例子中,成员的雇主可直接或间接针对共付额给成员拨款或补偿成员。
[0373]
成员需要的共付额的数量可能因具有不同计划赞助方或客户的不同药房福利计划和/或针对不同的处方药而不同。成员的共付额可以是针对特定处方药、特定类型和/或种类处方药和/或所有处方药平摊共付额(在一个例子中为10美元)、共同保险(在一个例子中为10%)和/或可减免的(例如,负责年度处方药费用的前500美元等)。共付额可存储在存储装置2810中或由福利管理方装置2802确定。
[0374]
在一些情况下,成员可能不支付共付额或仅支付处方药的部分共付额。例如,如果通常版本处方药的惯常成本是4美元,且成员针对该处方药的平摊共付额是20美元,成员仅需支付4美元来接收到该处方药。在涉及工人赔偿要求的另一例子中,成员不需为处方药支付任何共付额。
[0375]
另外,共付额也可以基于处方药的不同交付渠道而变化。例如,从邮购药房地点接收到处方药的共付额可能比从零售药房地点接收处方药的共付额少。
[0376]
结合从成员接收到共付额(如果存在的话)且将处方药分发给成员,药房向pbm提交对处方药的索赔。在接收到该索赔后,pbm(比如使用福利管理方装置2802)可执行特定裁定操作,包括:核查成员的资格,识别/查看成员的适用处方集来确定针对处方药的任何合适的共付额、共同保险和免赔额,以及对成员执行药物利用评审(drug utilization review,dur)。此外,在执行至少一些上述操作之后,pbm可向药房(比如药房系统2800)提供响应。
[0377]
作为裁定的一部分,在处方药被成功裁定时,计划赞助方(或代表计划赞助方的pbm)最终补偿药房用于填充处方药。上述裁定操作通常在接收到共付额且分发处方药之前发生。然而,在一些情况下,这些操作可同时、基本上同时或以不同顺序发生。另外,可作为裁定过程的至少一部分执行更多或更少的裁定操作。
[0378]
由计划赞助方支付给药房的补偿金额和/或成员支付的钱可至少部分地基于药房包括在其中的药房网络的类型来确定。在一些实现方式中,金额还可以基于其他因素来确定。例如,如果成员为处方药支付药房而没有使用pbm提供的处方或药物福利,则成员支付的金额可能会比成员使用处方或药物福利时要高。在一些实现方式中,药房为分发处方药以及针对处方药本身而接收的金额可能会比成员使用处方或药物福利时要高。一些或全部前述操作可通过执行存储在福利管理方装置2802和/或另外的装置中的指令来执行。
[0379]
网络2804的示例包括全球移动通信系统(global system for mobile communications,gsm)网络,码分多址(cdma)网络,第三代合作伙伴计划(3gpp),互联网协议(ip)网络,无线应用协议(wap)网络或ieee 802.11标准网络,以及上述网络的各种组合。网络2804可以包括光网络。网络2804可以是局域网或诸如因特网的全球通信网络。在一些实现方式中,网络2804可以包括专用于处方订单的网络:处方网络,例如由弗吉尼亚州阿灵顿的surescripts运营的电子处方网络。
[0380]
此外,尽管系统示出了单个网络2804,但是可以使用多个网络。多个网络可以彼此串联和/或并联通信以链接装置2802

2810。
[0381]
药房装置2806可以是与零售药房地点(例如,独家药房地点,具有零售药房的杂货店或具有零售药房的一般销售店)或其他类型的药房地点相关联的装置,在该装置处成员试图获得处方。药房可以使用药房装置2806将索赔提交给pbm进行裁定。
[0382]
另外,在一些实现方式中,药房装置2806可以使得能够在药房和pbm之间进行信息交换。例如,这可以允许共享成员信息,比如药物历史,其可以使药房更好地为成员服务(例如,通过提供更明智的治疗咨询和药物相互作用信息)。在一些实现方式中,福利管理方装置2802可以在不是成员或没有将他们识别为成员的用户在药房寻求为处方配药时(或结合该时间),跟踪这些用户的处方药履行和/或其他信息。
[0383]
药房装置2806可以包括直接和/或通过网络2804彼此通信的药房履行装置2812、订单处理装置2814和药房管理装置2816。订单处理装置2814可以接收关于为处方配药的信息,且可以将订单组份送往药房处的药房履行装置2812的一个或更多个装置。药房履行装置2812可以根据订单处理装置2814送来的一个或更多个处方订单履行、分发、集总和/或包装处方药的订单组份。
[0384]
通常,订单处理装置2814是位于药房内或与药房相关联从而使得药房履行装置2812能够履行处方且分发处方药的装置。在一些实现方式中,订单处理装置2814可以是与药房独立且与位于药房内的其他装置通信的外部订单处理装置。
[0385]
例如,外部订单处理装置可以与内部药房订单处理装置和/或位于系统2800内的其他装置通信。在一些实现方式中,外部订单处理装置可具有有限的功能(例如,由请求履行处方药的用户操作),而内部药房订单处理装置可具有更多的功能(例如,由药剂师操作)。
[0386]
订单处理装置2814可在处方订单由药房履行装置2812履行时跟踪处方订单。处方订单可包括由药房配药的一个或更多个处方药。订单处理装置2814可针对特定的处方订单进行药房路由决策和/或订单合并决策。药房路由决策包括药房中的哪个(哪些)装置负责对处方订单的特定部分进行配药或处理该特定部分。订单合并决策包括是否可针对一个用户或用户家庭将一个处方订单或多个处方订单中的一些部分一起装运。订单处理装置2814还可跟踪和/或调度与一起装运的每个处方订单或多个处方订单相关联的文献或文书。在一些实现方式中,订单处理装置2814可结合药房管理装置2816来操作。
[0387]
订单处理装置2814可包括电路、处理器、存储数据和指令的存储器,以及通信功能。订单处理装置2814专用于执行本申请所述的处理、方法和/或指令。还可使用被专门配置为实现以下进一步详细描述的处理、方法和/或指令的其他类型的电子装置。
[0388]
在一些实现方式中,订单处理装置2814的至少一些功能可包括在药房管理装置2816中。订单处理装置2814可以与药房管理装置2816是客户端

服务器关系,与药房管理装置2816是对等关系,或与药房管理装置2816是不同类型的关系。订单处理装置2814和/或药房管理装置2816可以与存储装置2810直接(例如通过使用本地存储)和/或通过网络2804(例如使用云存储配置、软件即服务等)通信。
[0389]
存储装置2810可以包括与福利管理方装置2802和/或药房装置2806直接和/或通过网络2804通信的非临时性存储(例如,存储器、硬盘、cd

rom等)。非临时性存储可以存储订单数据2818、成员数据2820、索赔数据2822、药物数据2824、处方数据2826和/或计划赞助方数据2828。此外,系统2800可以包括另外的装置,其可以直接或通过网络2804彼此通信。
[0390]
订单数据2818可以与处方订单有关。订单数据可包括处方药的类型(例如药物名称和强度)以及处方药的数量。订单数据2818还可以包括用于完成处方的数据,比如处方材料。一般说来,处方材料包括关于处方药的信息的电子副本,以包括履行的处方或以其他方式结合履行的处方。处方材料可以包括关于药物相互作用警告、推荐用法、可能的副作用、有效期、开药日期等的电子信息。高容量履行中心可使用订单数据2818来履行药房订单。
[0391]
在一些实现方式中,订单数据2818包括与在药房中履行处方相关联的核查信息。例如,订单数据2818可以包括采集的以下视频和/或图像:(i)在分发之前、分发期间和/或分发之后的处方药;(ii)在分发之前、分发期间和/或分发之后用于容纳处方药的处方容器(例如,处方容器和密封盖、处方包装等);(iii)在分发前、分发期间和/或分发之后用于装运或以其他方式递送处方药的包装和/或包装材料;和/或(iv)药房内的履行过程。还可存储其他类型的核查信息作为订单数据2818,比如从用于在药房内输送处方的托盘、筐、货盘或手推车读取的条形码。
[0392]
成员数据2820包括关于与pbm相关联的成员的信息。作为成员数据2820存储的信
息可以包括个人信息、个人健康信息、受保护的健康信息等。成员数据2820的示例包括姓名、地址、电话号码、电子邮件地址、处方药历史等。成员数据2820可以包括标识与成员相关联的计划赞助方的计划赞助方标识符,和/或向计划赞助方标识成员的成员标识符。成员数据2820可以包括标识与用户相关联的计划赞助方的成员标识符,和/或向计划赞助方标识用户的用户标识符。成员数据2820还可以包括分发偏好,比如标签类型、封盖类型、消息偏好、语言偏好等。
[0393]
药房(例如,高容量履行中心等)内的各种装置可访问成员数据2820来获得用于履行和装运处方订单的信息。在一些实现方式中,由成员操作或代表成员操作的外部订单处理装置可有权访问至少一部分成员数据2820以进行审阅、核查或其他目的。
[0394]
在一些实现方式中,成员数据2820可以包括人员的信息,这些人员是药房的用户,但不是pbm提供的药房福利计划中的成员。例如,这些用户可通过药房、高容量履行中心提供的自有品牌服务或通过其他方式直接从药房得到药物。一般说来,术语“成员”和“用户”可互换使用。
[0395]
索赔数据2822包括关于药房索赔的信息,药房索赔由pbm在pbm针对一个或更多个计划赞助方提供的药物福利计划下裁定。总地来说,索赔数据2822包括赞助药物福利计划(根据该计划进行索赔)的客户的标识,和/或购买处方药(导致索赔)的成员的标识,药房填充的处方药的标识(例如,国家药品代码等)、分发日期、通用指示符、通用产品标识符(generic product identifier,gpi)编号、药物类别、在药物福利计划下提供的处方药的成本、共付额/共同保险额、返利信息和/或成员资格等。可以包括其他信息。
[0396]
在一些实现方式中,可以将处方药索赔之外的其他类型索赔存储在索赔数据2822中。例如,可以将针对成员的医疗索赔、牙科索赔、健康索赔或其他类型的与健康有关的索赔存储为索赔数据2822的一部分。
[0397]
在一些实现方式中,索赔数据2822包括识别成员的索赔,该成员与该索赔相关联。另外,或作为替代,索赔数据2822可以包括已被取消标识的索赔(即,与唯一标识符相关联然而不与特定可识别的成员相关联)。
[0398]
药物数据2824可以包括药物名称(例如,技术名称和/或通用名称)、药物已知的其他名称、活性成分、药物图像(例如,以药丸形式)等。药物数据2824可以包括与单一药物治疗或多种药物治疗相关联的信息。
[0399]
处方数据2826可以包括与开处方者代表用户(该用户可以是药房福利计划的成员)开出的处方有关的信息,该处方比如要由药房来配药。处方数据2826的例子包括用户名、药物或治疗(比如实验室测试)、剂量信息等。处方可以包括电子处方或已扫描的纸质处方。在一些实现方式中,剂量信息反应了使用频率(例如一天一次、一天两次、每餐前等)和使用持续时间(例如,若干天、一星期、若干星期、一个月等)。
[0400]
在一些实现方式中,订单数据2818可链接到相关联的成员数据2820、索赔数据2822、药物数据2824和/或处方数据2826。
[0401]
计划赞助方数据2828包括pbm的计划赞助方的信息。计划赞助方数据2828的例子包括名称、公司地址、联系人姓名、联系人电话号码、联系人电子邮件地址等。
[0402]
图29示出了根据示例实现方式的药房履行装置2812。药房履行装置2812可用于处理并履行处方和处方订单。在履行之后,对履行的处方进行包装以便装运。
[0403]
药房履行装置2812可以包括与福利管理方装置2802、订单处理装置2814和/或存储装置2810直接或通过网络2804通信的装置。具体地,药房履行装置2812可以包括托盘尺寸和托架装置2906、装载装置2908、检查装置2910、使用单位装置2912、自动分发装置2914、手动履行装置2916、审阅装置2918、成像装置2920、加盖装置2922、累积装置2924、包装装置2926、文献装置2928、使用单位包装装置2930和邮件清单装置2932。此外,药房履行装置2812可以包括能够彼此直接或通过网络2804通信的其他装置。
[0404]
在一些实现方式中,可顺次执行或与另一装置的操作并行地执行装置2906

2932之一执行的操作,这可由订单处理装置2814协调。在一些实现方式中,订单处理装置2814基于装置2906

2932中的一个或更多个执行的操作跟踪药房的处方。
[0405]
在一些实现方式中,药房履行装置2812可使用托盘在比如高容量履行中心中的装置2906

2932之间输送处方药容器。托盘尺寸和托架装置2906可在托盘中配置托架(puck)。托盘可以是用于多个处方容器的输送结构,且可以包括多个腔。托架可通过托盘尺寸和托架装置2906被置于托盘中的一个或多于一个的腔中。托架可以包括贮藏器,该贮藏器尺寸和形状被设计为能够容纳处方容器。该容器可在托盘中运输期间由托架支撑。不同的托架可具有不同尺寸和形状的贮藏器,以容纳不同尺寸的容器,这可适合于不同处方。
[0406]
托架在托盘中的布置可由订单处理装置2814根据订单处理装置2814决定启动的处方来确定。布置逻辑可直接在托盘尺寸和托架装置2906中实现。一旦处方被设置为将被启动,可通过机械臂或拾取器来将适合于该处方的适当尺寸容器的托架放置在托盘中。一旦在托盘中配置了托架,托盘尺寸和托架装置2906可启动托盘。
[0407]
装载装置2908可通过机械臂、拾取和放置机构(也称为拾取器)等将处方容器装载到托盘上的托架中。在各种实现方式中,装载装置2908具有机械臂或拾取器来抓握处方容器并将其移动到托盘或托架中或从托盘或托架移开。装载装置2908还可打印适于要装载到托盘中的容器的标签,并将该标签应用于容器。在这些操作期间(例如在高容量履行中心中等),托盘可被置于传送带或组装件上。
[0408]
检查装置2910可核查托盘中的容器被正确标记且处于托盘中的正确位置。检查装置2910可扫描托盘上的一个或更多个容器上的标签。可由检查装置2910对容器的标签进行完整或部分扫描或成像。可在通过机械臂、拾取器等将容器从其托架提起之后进行该成像,或在仍保留于托架中时进行扫描或成像。在一些实现方式中,检查装置2910捕获的图像和/或视频可作为订单数据2818存储在存储装置2810中。
[0409]
使用单位装置2912可临时存储、监视、标记和/或分发使用单位产品。总地来说,使用单位产品是处方药产品,其可被递送到用户或成员而不在药房重新包装。这些产品可以包括容器中的药丸,泡罩包装的药丸、吸入器等。使用单位装置2912分发的处方药产品可被单独或集体地包装以便于装运,或可结合高容量履行中心中的其他装置分发的其他处方药来装运。
[0410]
装置2906

2932的至少一些操作可由订单处理装置2814指导。比如,手动履行装置2916、审阅装置2918、自动分发装置2914和/或包装装置2926等可接收订单处理装置2814提供的指令。
[0411]
自动分发装置2914可包括根据一个或更多个处方订单将处方药或药品分发到处方容器中的一个或更多个装置。总地来说,自动分发装置2914可包括机械和电子组件,在一
些实现方式中,这些机械和电子组件具有软件和/或逻辑来便利于药品分发,否则药品分发由药剂师和/或药剂师技师以手动方式执行。例如,自动分发装置2914可以包括快速对多个处方药类型进行配药的高容量配药器,以及将药物分发和包装到泡罩包装中的泡罩包装机器。自动分发装置2914分发的处方药可被单独或集体地包装以便于装运,或可结合高容量履行中心中的其他装置分发的其他处方药来装运。
[0412]
手动履行装置2916控制如何手动履行处方。例如,手动履行装置2916可接收或获得容器,并使得能够通过药剂师或药剂师技师填满容器。在一些实现方式中,手动履行装置2916将填充的容器提供给药房履行装置2812中的另一装置,以与用户或成员的处方订单中的其他容器结合。
[0413]
通常,手动履行可包括至少部分地由药剂师或药剂师技师执行的操作。例如,个人可检索处方药供应,可进行观察,可对处方药数量进行计数且将其置于处方容器中等。可使用机器将手动履行过程中的一些部分自动化。例如,对胶囊、片剂或药丸的计数可至少部分地自动化(例如通过使用药丸计数器)。手动履行装置2916分发的处方药可单独或集体地包装以便于装运,或可结合高容量履行中心中的其他装置分发的其他处方药来装运。
[0414]
审阅装置2918可处理要由药剂师审阅的处方容器,以进行适当的药丸计数、异常处理、处方核查等。根据州法律或地方法律要求,已履行的处方可由药剂师手动审阅和/或核查。能够根据地方法律和/或其他法律分发特定药物的药剂师或其他有执照的药方人员可操作审阅装置2918,且视觉上检查已填充有处方药的处方容器。药剂师可审阅、核查和/或评估药物质量、药物强度和/或药物相互作用问题,或以其他方式执行药剂师服务。药剂师还可处理已标记为异常的容器,比如具有不可读标签的容器,已取消相关联处方订单的容器,有缺陷的容器等。在示例中,手动审阅可在手动审阅站执行。
[0415]
成像装置2920可在容器已填充药品时对容器成像。成像装置2920可基于所获得的图像测量容器中药品的填充高度,以确定容器是否按照处方中的药品类型和药丸数量填充到正确高度。还可获得容器中药丸的图像,以检测药丸本身的尺寸及上面的标记。可将图像发送至订单处理装置2814和/或作为订单数据2818的一部分存储在存储装置2810中。
[0416]
加盖装置2922可用于给处方容器加盖或以其他方式密封处方容器。在一些实现方式中,加盖装置2922可根据用户偏好(例如,关于防儿童等的偏好)、计划赞助方偏好、开处方者偏好等以某类型的盖子固定处方容器。加盖装置2922还可将消息蚀刻到盖中,然而该处理可由高容量履行中心中的后续装置执行。
[0417]
累积装置2924累积处方订单中处方药的各种容器。累积装置2924可累积来自药房的各种装置或各区域的处方容器。例如,累积装置2924可累积来自使用单位装置2912、自动分发装置2914、手动履行装置2916和审阅装置2918的处方容器。累积装置2924可用于在装运给成员之前将处方容器分组。
[0418]
文献装置2928打印或以其他方式生成文献以包括在每个处方药订单中。文献可打印在多片基材上,比如纸、涂料纸、可印刷聚合物或以上基材的组合。文献装置2928打印的文献可包括伴随处方订单中包括的处方药所需的信息,与订单中的处方药有关的其他信息,与订单有关的财务信息(比如,发票或对账单)等。
[0419]
在一些实现方式中,文献装置2928折叠或以其他方式准备文献以包括在处方药订单中(例如在装运用容器中)。在其他实现方式中,文献装置2928打印文献且与准备打印的
文献以包括在处方订单中的另一装置分离。
[0420]
包装装置2926包装处方订单以准备装运订单。包装装置2926可以将履行的处方订单装入盒中、袋中或以其他方式进行包装以用于递送。包装装置2926还可将插入物(例如文献或其他纸张等)置入从文献装置2928接收的包装中。例如,批量处方订单可以用盒子装运,而其他处方订单可用袋子装运,袋子可以是包裹密封袋。
[0421]
包装装置2926可以用地址或接收者姓名来给盒子或袋子打标签。标签可被打印且附着到袋子或盒子上,直接打印到袋子或盒子上,或以其他方式与袋子和盒子相关联。包装装置2926可以对盒子或袋子分类从而以高效的方式进行邮寄(例如通过递送地址来分类等)。对于在装运期间要保持在某温度范围内的处方(例如,为了保持效力这可能是必需的),包装装置2926可包括冰或温度敏感元件。然后可通过邮政、通过经由地面和/或空中装运的邮购送货服务(例如ups、fedex或dhl等)、通过递送服务、通过装运站点的储物柜(例如amazon储物柜或邮政信箱等)或以其他方式装运最终的包装。
[0422]
使用单位包装装置2930对使用单位处方订单进行包装以准备装运订单。使用单位包装装置2930可包括手动扫描要装入袋中以进行装运的容器,来核查订单中的每个容器。在示例实现方式中,手动扫描可在手动扫描站执行。药房履行装置2812还可包括邮件清单装置2932用以打印包装装置2926使用的邮寄标签,且可打印装运清单和包装列表。
[0423]
尽管图29的药房履行中心2812被示为包括单个装置2906

2932,然而可使用多个装置。在存在多个装置时,所述多个装置可以是同一装置类型或型号,或可以是不同装置类型或型号。图29所示类型的装置2906

2932是示例装置。在系统2800的其他配置中,可以包括更少类型装置、其他类型装置或不同类型的装置。
[0424]
此外,多个装置可共享处理和/或存储资源。装置2906

2932可布置在同一区域或不同的地点。例如,装置2906

2932可位于建筑物中或一组邻近的建筑物中。装置2906

2932可(比如通过传送机)互连、联网和/或以其他方式彼此联络或彼此集成(例如,在高容量履行中心处等)。另外,装置的功能性可在多个分离的装置间分担和/或与其他装置结合。
[0425]
图30示出了根据示例实现方式的订单处理装置2814。订单处理装置2814可由一个或更多个操作者用来生成处方订单、进行路由决策、进行处方订单合并决策、以系统2800追踪文献和/或查看订单状态和其他订单相关信息。例如,处方订单可包括订单组份。
[0426]
订单处理装置2814可在没有操作员干预的情况下接收指令来履行订单。订单组份可以包括通过系统2800使用容器填满的处方药。订单处理装置2814可以包括订单核查子系统3002、订单控制子系统3004和/或订单跟踪子系统3006。在订单处理装置2814中还可以包括其他子系统。
[0427]
订单核查子系统3002可以与福利管理方装置2802通信来核查成员资格,并审阅处方集从而确定针对处方药的适当的共付额、共同保险和免赔额,和/或执行dur(drug utilization review,药物利用评审)。可为各种目的执行订单核查子系统3002和福利管理方装置2802之间的其他通信。
[0428]
订单控制子系统3004在容器和/或托盘通过系统2800进行的进程期间,控制容器和/或托盘的各种移动以及各种填充功能。在一些实现方式中,订单控制子系统3004可识别一个或更多个处方订单中的处方药,其中处方订单能够由自动分发装置2914履行。订单控制子系统3004可确定启动哪些订单,并且可确定要启动自动填充容器的托盘。
[0429]
订单控制子系统3004可确定要启动特定药品的自动填充处方,且可检查等待履行其他处方订单的订单队列,它们将被填充有同样的药品。订单控制子系统3004然后可将托盘中具有相似自动填充药品需求的订单一起发送到自动分发装置2914。由于装置2906

2932可通过传送机系统或其他容器移动系统互连,订单控制子系统3004可控制各种传送机:例如,将托盘从加载装置2908递送到手动履行装置2916,在需要时从文献装置2928递送文书资料以按处方配药。
[0430]
订单跟踪子系统3006可在其履行的进程中跟踪处方订单。订单跟踪子系统3006可跟踪、记录和/或更新订单历史、订单状态等。订单跟踪子系统3006可本地存储数据(例如,存储在存储器中)或将其作为订单数据2818的一部分存储在存储装置2810中。
[0431]
结论
[0432]
前述描述本质上仅是说明性的,且不以任何方式限制本公开、其应用或用途。可以以各种形式来实现本公开的广泛教导。因此,尽管本公开包括特定示例,然而本公开的真实范围不应受此限制,这是因为在研究了附图、说明书和所附权利要求之后,其他修改将是明显的。应理解,方法中的一个或更多个步骤可以不同的顺序(或并行)执行,而不改变本公开的原理。此外,尽管各实施方式在以上被描述为具有特定特征,然而关于本公开任何实施方式所述的这些特征中的一个或更多个可以实施在任何其他实施方式中和/或结合任何其他实施方式的特征来实施,即使该结合没有明确描述。换言之,所述实施方式不是互斥的,且一个或更多个实施方式彼此的置换也在本公开的范围内。
[0433]
使用包括“连接”、“啮合”、“接合”和“耦合”的各种术语描述了元件之间(例如,模块之间)的空间关系和功能关系。除非明确描述为“直接”,否则当在以上公开中描述第一和第二元件之间的关系时,该关系包括直接关系,其中在第一和第二元件之间不存在其他介入的元件,也包括间接关系,其中在第一和第二元件之间(在空间上或者功能上)存在一个或更多个介入的元件。如在此使用的那样,短语“a、b和c中的至少一个”应理解为意味着使用非排他性逻辑or的逻辑(a or b or c),且不应被理解为意味着“a中的至少一个,b中的至少一个,以及c中的至少一个”。
[0434]
在图中,如箭头头部所指示的箭头方向一般表明图示所关注的信息(比如数据或指令)的流动。例如,当元件a和元件b交换各种信息,而从元件a发送至元件b的信息与图示相关时,箭头可从元件a指向元件b。单向箭头并不意味着没有其他信息从元件b发送至元件a。此外,对于从元件a发送至元件b的信息,元件b可向元件a发送对信息的请求或者对信息接收的确认。术语“子集”并不必然要求真的子集。换言之,第一集合的第一子集可以与第一集合完全一致(等于第一集合)。
[0435]
在本申请中,包括以下定义,术语“模块”或术语“控制器”可由术语“电路”代替。术语“模块”可以指的是执行代码的处理器硬件(共享、专用或组)和存储处理器硬件执行的代码的存储器硬件(共享、专用或组)的一部分或包括该处理器硬件和存储器硬件。
[0436]
模块可包括一个或更多个接口电路。在一些示例中,接口电路可实现有线或无线接口,该接口连接到局域网(lan)或无线个人区域网络(wpan)。lan的例子是电气与电子工程师学会(institute of electrical and electronic engineers,ieee)标准802.11

2016(也称为wifi无线联网标准)和ieee标准802.3

2015(也称为以太网有线联网标准)。wpan的例子是来自蓝牙特别兴趣小组(bluetooth special interest group)的蓝牙无线
server pages,活动服务器页面)、php(php:超文本预处理器)、scala、eiffel、smalltalk、erlang、ruby、visuallua、matlab、simulink和

技术特征:
1.一种用于测试用户界面ui的计算机系统,所述计算机系统包括:测试创建模块,其被配置成获得测试参数,其中所述测试参数包括(i)可在该处访问所述ui的地点,以及(ii)针对与所述ui相关联的目标的标准;测试执行模块,其被配置成(i)基于所述地点获得所述ui的状态,以及(ii)将当前位置设置为所述ui内的预定地点;以及分析模块,其被配置成:分析所述ui的指定状态,响应于确定出所述指定状态满足针对所述目标的所述标准,输出成功指示符,以及响应于确定出所述ui的指定状态不满足针对所述目标的所述标准,基于所述指定状态内的ui元素确定一组可能动作,并将结果设置为所述一组可能动作,其中,所述测试执行模块被配置成:将所述ui的状态提供至所述分析模块,并从所述分析模块接收所述输出,响应于所接收的输出是所述一组可能动作:从所述一组可能动作中选择动作,其中所述动作与第一ui元素相关联,执行所选择的动作,识别所述第一ui元素的点,基于(i)所述点的坐标和(ii)所述当前位置的坐标更新测试距离,将所述当前位置设置为所述点,以及以(i)所选择的动作和(ii)所述一组可能动作补充测试数据,响应于所接收的输出是所述成功指示符,将所述测试距离和所述测试数据存储在已完成测试集合中,以及基于所述已完成测试集合确定至所述ui中所述目标的最短路径。2.根据权利要求1所述的计算机系统,其中:所述测试参数包括被允许的测试的数目;所述测试执行模块被配置成响应于所接收的输出是所述成功指示符而递增计数器;以及确定所述最短路径包括:响应于确定所述计数器的值大于或等于所述被允许的测试的数目,选择所述已完成测试集合中具有所述最短测试距离的已完成测试。3.根据权利要求1所述的计算机系统,其中:所述点是所述第一ui元素的至所述当前位置的最近点;并且更新所述测试距离包括(i)确定所述当前位置的坐标与所述点的坐标之间的距离,以及(ii)将所确定的距离加到所述测试距离。4.根据权利要求1所述的计算机系统,其中:所述分析模块被配置成:针对所述一组可能动作中的每个动作,(i)确定执行该动作将导致所述目标的概率,以及(ii)将所确定的概率存储在所述一组可能动作中;以及从所述一组可能动作中选择动作包括:基于所述一组可能动作中存储的概率,从所述一组可能动作中选择动作。5.根据权利要求4所述的计算机系统,还包括:神经网络模块,其被配置成操作多个神经网络,
其中所述分析模块被配置成选择性地使用所述多个神经网络中的至少一个神经网络,来确定执行所述动作将导致所述目标的概率。6.根据权利要求5所述的计算机系统,其中所述多个神经网络包括长短期记忆神经网络和卷积神经网络中的至少一个。7.根据权利要求5所述的计算机系统,还包括训练模块,所述训练模块被配置成:响应于所接收的输出是所述成功指示符,使用所述测试数据训练所述多个神经网络;基于所述已完成测试集合中存储的概率,确定训练后所述多个神经网络的性能;以及响应于确定训练后所述多个神经网络的性能的值大于预定值,将所述多个神经网络的状态设为受到训练。8.根据权利要求7所述的计算机系统,还包括:蒙特卡洛模块,其被配置成执行蒙特卡洛仿真,以生成随机值;以及重新加权模块,其被配置成:响应于所述多个神经网络的状态是受到训练,基于所述多个神经网络中至少一个神经网络的输出,更新所述测试数据中存储的每个概率;以及响应于所述多个神经网络的状态不是受到训练,以所述蒙特卡洛模块生成的随机值更新所述测试数据中存储的每个概率。9.一种测试用户界面ui的方法,所述方法包括:获得测试参数,其中所述测试参数包括(i)可在该处访问所述ui的地点,以及(ii)针对与所述ui相关联的目标的标准;基于所述地点获得所述ui的状态;将当前位置设置为所述ui内的预定地点;分析所述ui的指定状态;响应于确定出所述指定状态满足针对所述目标的所述标准,将输出设置为成功指示符;响应于确定出所述指定状态不满足针对所述目标的所述标准,(i)基于所述指定状态内的ui元素确定一组可能动作,并且(ii)将所述输出设置为所述一组可能动作;响应于所述输出是所述一组可能动作:从所述一组可能动作中选择动作,其中该动作与第一ui元素相关联,执行所选择的动作,识别所述第一ui元素的点,基于(i)所述点的坐标和(ii)所述当前位置的坐标更新测试距离,将所述当前位置设置为所述点,以及以(i)所选择的动作和(ii)所述一组可能动作补充测试数据,响应于所述输出是所述成功指示符,将所述测试距离和所述测试数据存储在已完成测试集合中;以及基于所述已完成测试集合确定至所述ui中所述目标的最短路径。10.根据权利要求9所述的方法,其中:所述测试参数包括被允许的测试的数目;
所述方法还包括响应于所述输出是所述成功指示符而递增计数器;以及确定所述最短路径包括:响应于确定所述计数器的值大于或等于所述被允许的测试的数目,选择所述已完成测试集合中具有所述最短测试距离的已完成测试。11.根据权利要求9所述的方法,其中:所述点是所述第一ui元素的至所述当前位置的最近点,并且更新所述测试距离包括(i)确定所述当前位置的坐标与所述点的坐标之间的距离,以及(ii)将所确定的距离加到所述测试距离。12.根据权利要求9所述的方法,还包括:针对所述一组可能动作中的每个动作,(i)确定执行该动作将导致所述目标的概率,以及(ii)将所确定的概率存储在所述一组可能动作中,其中,从所述一组可能动作中选择动作包括:基于所述一组可能动作中存储的概率,从所述一组可能动作中选择动作。13.根据权利要求12所述的方法,还包括,响应于所述输出是所述成功指示符:使用所述测试数据训练多个神经网络;基于所述已完成测试集合中存储的概率,确定训练后所述多个神经网络的性能;以及响应于确定训练后所述多个神经网络的性能的值大于预定值,将所述多个神经网络的状态设置为受到训练。14.根据权利要求13所述的方法,还包括:响应于所述多个神经网络的状态是受到训练,基于所述多个神经网络中至少一个神经网络的输出,更新所述测试数据中存储的每个概率;以及响应于所述多个神经网络的状态不是受到训练,以随机值更新所述测试数据中存储的每个概率。15.一种存储有处理器可执行指令的非临时性计算机可读介质,所述指令包括:获得测试参数,其中所述测试参数包括(i)可在该处访问用户界面ui的地点,以及(ii)针对与所述ui相关联的目标的标准;基于所述地点获得所述ui的状态;将当前位置设置为所述ui内的预定地点;分析所述ui的指定状态;响应于确定出所述指定状态满足针对所述目标的所述标准,将输出设置为成功指示符;响应于确定出所述指定状态不满足针对所述目标的所述标准,(i)基于所述指定状态内的ui元素确定一组可能动作,并(ii)将所述输出设置为所述一组可能动作;响应于所述输出是所述一组可能动作:从所述一组可能动作中选择动作,其中所述动作与第一ui元素相关联,执行所选择的动作,识别所述第一ui元素的点,基于(i)所述点的坐标和(ii)所述当前位置的坐标更新测试距离,将所述当前位置设置为所述点,以及以(i)所选择的动作和(ii)所述一组可能动作补充测试数据;
响应于所述输出是所述成功指示符,将所述测试距离和所述测试数据存储在已完成测试集合中;以及基于所述已完成测试集合确定至所述ui中所述目标的最短路径。16.根据权利要求15所述的非临时性计算机可读介质,其中:所述测试参数包括被允许的测试的数目;所述指令还包括响应于所述输出是所述成功指示符而递增计数器;以及确定所述最短路径包括:响应于确定所述计数器的值大于或等于所述被允许的测试的数目,选择所述已完成测试集合中具有所述最短测试距离的已完成测试。17.根据权利要求15所述的非临时性计算机可读介质,其中:所述点是所述第一ui元素的至所述当前位置的最近点,并且更新所述测试距离包括(i)确定所述当前位置的坐标与所述点的坐标之间的距离,以及(ii)将所确定的距离加到所述测试距离。18.根据权利要求15所述的非临时性计算机可读介质,其中:所述指令还包括:针对所述一组可能动作中的每个动作,(i)确定执行该动作将导致所述目标的概率,以及(ii)将所确定的概率存储在所述一组可能动作中;以及从所述一组可能动作中选择动作包括:基于所述一组可能动作中存储的概率,从所述一组可能动作中选择动作。19.根据权利要求18所述的非临时性计算机可读介质,所述指令还包括,响应于所述输出是所述成功指示符:使用所述测试数据训练多个神经网络;基于所述已完成测试集合中存储的概率,确定训练后所述多个神经网络的性能;以及响应于确定训练后所述多个神经网络的性能的值大于预定值,将所述多个神经网络的状态设置为受到训练。20.根据权利要求19所述的非临时性计算机可读介质,所述指令还包括:响应于所述多个神经网络的状态是受到训练,基于所述多个神经网络中至少一个神经网络的输出,更新所述测试数据中存储的每个概率;以及响应于所述多个神经网络的状态不是受到训练,以随机值更新所述测试数据中存储的每个概率。21.一种用于集成电话系统和计算系统的系统,所述系统包括:交互式语音响应ivr平台,其被配置成:基于来自用户的音频输入,获得计算机可读命令,以及响应于获得所述计算机可读命令,(i)确定与所述计算机可读命令相对应的web应用程序,(ii)确定所述web应用程序中与所述计算机可读命令相关联的目标,以及(iii)获得指示至所述web应用程序中的所述目标的最短用户界面路径的信息;以及协同浏览客户端,其被配置成从托管所述web应用程序的web服务器的协同浏览会话,接收所述web应用程序的当前状态的文档对象模型dom,其中,所述ivr平台被配置成:基于来自所述协同浏览客户端的所述dom,确定沿着所述最短用户界面路径的下一个用户界面动作,以及
基于所述下一个用户界面动作,生成针对所述用户的语音提示,以及其中,所述协同浏览客户端被配置成响应于所述用户执行所述下一个用户界面动作,接收更新的dom。22.根据权利要求21所述的系统,其中所述ivr平台被配置成使用无头浏览器连接至所述协同浏览客户端。23.根据权利要求21所述的系统,其中获得来自所述用户的音频输入包括经由所述用户的电话获得所述音频输入。24.根据权利要求21所述的系统,其中所述ivr平台被配置成:从所述用户获得协同浏览会话标识符;将所述协同浏览会话标识符发送至所述协同浏览会话;以及响应于发送所述协同浏览会话标识符,接收所述当前状态的所述dom。25.根据权利要求24所述的系统,其中获得所述协同浏览会话标识符包括生成针对所述用户的语音指示,所述语音指示请求所述用户(i)发起所述协同浏览会话,以及(ii)将所述协同浏览会话标识符提供给所述ivr平台。26.根据权利要求21所述的系统,其中所述ivr平台被配置成响应于在生成所述语音提示之后的预定时间段期满,其中在所述预定时间段期间没有接收到更新的dom:基于沿着所述最短用户界面路径的所述下一个用户界面动作,确定加强,以及基于所确定的加强,生成针对所述用户的音频加强提示。27.根据权利要求26所述的系统,其中所述音频加强提示指定了与所述下一个用户界面动作相关联的用户界面元素的地点。28.一种用于集成电话系统和计算机系统的方法,所述方法包括:基于来自用户的音频输入,获得计算机可读命令;确定与所述计算机可读命令相对应的web应用程序;确定所述web应用程序中与所述计算机可读命令相关联的目标;获得指示至所述web应用程序中的所述目标的最短用户界面路径的信息;从托管所述web应用程序的web服务器的协同浏览会话,接收所述web应用程序的当前状态的文档对象模型dom,确定沿着所述最短用户界面路径的下一个用户界面动作;基于所述下一个用户界面动作,生成针对所述用户的语音提示;以及响应于所述用户执行所述下一个用户界面动作,接收更新的dom。29.根据权利要求28所述的方法,其中接收所述web应用程序的当前状态的dom包括使用无头浏览器访问所述协同浏览客户端。30.根据权利要求28所述的方法,其中获得来自所述用户的音频输入包括经由所述用户的电话获得所述音频输入。31.根据权利要求28所述的方法,还包括:从所述用户获得协同浏览会话标识符;以及将所述协同浏览会话标识符发送至所述协同浏览会话,其中,接收所述当前状态的dom包括响应于发送所述协同浏览会话标识符,接收所述dom。
32.根据权利要求31所述的方法,其中获得所述协同浏览会话标识符包括生成针对所述用户的语音指示,所述语音指示请求所述用户(i)发起所述协同浏览会话,以及(ii)经由pstn提供所述协同浏览会话标识符。33.根据权利要求28所述的方法,还包括:响应于在生成所述语音提示之后的预定时间段期满,其中在所述预定时间段期间没有接收到更新的dom:基于沿着所述最短用户界面路径的所述下一个用户界面动作,确定加强,以及基于所确定的加强,生成针对所述用户的音频加强提示。34.根据权利要求33所述的方法,其中所述音频加强提示指定了与所述下一个用户界面动作相关联的用户界面元素的地点。35.一种存储有处理器可执行指令的非临时性计算机可读介质,所述指令包括:基于来自用户的音频输入,获得计算机可读命令;确定与所述计算机可读命令相对应的web应用程序;确定与所述计算机可读命令相关联的所述web应用程序中的目标;获得指示至所述web应用程序中的所述目标的最短用户界面路径的信息;从托管所述web应用程序的web服务器的协同浏览会话,接收所述web应用程序的当前状态的文档对象模型dom;确定沿着所述最短用户界面路径的下一个用户界面动作;基于所述下一个用户界面动作,生成针对所述用户的语音提示;以及响应于所述用户执行所述下一个用户界面动作,接收更新的dom。36.根据权利要求35所述的非临时性计算机可读介质,其中获得来自所述用户的音频输入包括经由所述用户的电话获得所述音频输入。37.根据权利要求35所述的非临时性计算机可读介质,所述指令包括:从所述用户获得协同浏览会话标识符;以及将所述协同浏览会话标识符发送至所述协同浏览会话,其中,接收所述当前状态的dom包括响应于发送所述协同浏览会话标识符,接收所述dom。38.根据权利要求37所述的非临时性计算机可读介质,其中获得所述协同浏览会话标识符包括生成针对所述用户的语音指示,所述语音指示请求所述用户(i)发起所述协同浏览会话,以及(ii)经由pstn提供所述协同浏览会话标识符。39.根据权利要求35所述的非临时性计算机可读介质,所述指令包括:响应于在生成所述语音提示之后的预定时间段期满,其中在所述预定时间段期间没有接收到更新的dom:基于沿着所述最短用户界面路径的所述下一个用户界面动作,确定加强,以及基于所确定的加强,生成针对所述用户的音频加强提示。40.根据权利要求39所述的非临时性计算机可读介质,其中所述音频加强提示指定了与所述下一个用户界面动作相关联的用户界面元素的地点。41.一种用于改进用户界面ui的计算机系统,所述计算机系统包括:加强模块,其被配置成获得(i)指示至所述ui中的目标的最短路径的路径信息,以及(ii)与寻求所述目标相关联的一组用户交互实验,其中:所述一组用户交互实验中的每个实验包括用户跟踪数据,
所述路径信息包括多个步骤,以及所述多个步骤中的每个步骤与所述ui的页面相关联;距离模块,其被配置成:针对所述ui的每个页面,基于所述一组用户交互实验,确定所述页面的加强距离;以及步骤分析模块,其被配置成:针对所述多个步骤中的每个步骤,确定所述一组用户交互实验的用户跟踪数据指示偏离了该步骤的次数计数,其中所述确定基于针对所述ui的与该步骤相关联的页面确定的加强距离,其中,所述加强模块被配置成,针对所述多个步骤中的每个步骤:基于所述计数,确定该步骤是否需要加强,以及响应于确定出该步骤需要加强,生成针对该步骤的加强,其中生成所述加强包括以下至少之一:生成针对与该步骤相关联的动作的提示和改变与该步骤相关联的ui元素。42.根据权利要求41所述的计算机系统,其中确定针对页面的加强距离包括确定所述一组用户交互实验的用户跟踪数据与所述最短路径之间的至少一个距离。43.根据权利要求41所述的计算机系统,其中确定针对页面的加强距离包括(i)基于成功到达所述目标的第一子组用户交互实验的用户跟踪数据,确定针对该页面的中值成功距离,以及(ii)基于第二子组用户交互实验的用户跟踪数据,确定针对该页面的中值失败距离。44.根据权利要求43所述的计算机系统,其中:所述距离模块被配置成:针对所述ui的每个页面,生成至少一个随机距离,所述随机距离小于针对该页面的所述中值成功距离,且大于针对该页面的所述中值失败距离;所述计算机系统还包括预测模块,所述预测模块被配置成,针对所述一组用户交互实验中一实验的用户跟踪数据中的每个样本:基于(i)针对与所述样本相关联的页面生成的随机距离,(ii)所述样本的坐标,以及(iii)沿着所述最短路径的点的坐标,预测所述实验的结果,以及比较预测结果与所述实验的存储结果;并且所述预测模块被配置成输出所述比较的结果。45.根据权利要求44所述的计算机系统,其中:预测所述实验的结果包括:计算所述样本的坐标与沿着所述最短路径的点的坐标之间的距离,以及基于所确定的距离和针对与所述样本相关联的页面的随机距离之间的比较,确定所述预测结果;比较所述预测结果和所述存储结果包括:响应于所述预测结果与所述存储结果相匹配,递增成功预测计数;以及输出所述比较的结果包括输出所述成功预测计数。46.根据权利要求45所述的计算机系统,其中:所述距离模块被配置成:针对每个随机生成的距离,至少基于所述预测模块输出的所述成功预测计数,生成适应度值;以及所述计算机系统还包括分析模块,所述分析模块被配置成对所生成的适应度值执行群集分析。
47.根据权利要求46所述的计算机系统,其中所述距离模块被配置成:针对所述ui的每个页面,响应于对所生成的适应度值的群集分析识别单个群集,将具有最高适应度值的与所述页面相关联的随机生成的距离设置为针对所述页面的加强距离。48.一种用于改进用户界面ui的方法,所述方法包括:获得(i)指示至所述ui中的目标的最短路径的路径信息,以及(ii)与寻求所述目标相关联的一组用户交互实验,其中:所述一组用户交互实验中的每个实验包括用户跟踪数据,所述路径信息包括多个步骤,以及所述多个步骤中的每个步骤与所述ui的页面相关联;针对所述ui的每个页面,基于所述一组用户交互实验,确定针对该页面的加强距离;以及针对所述多个步骤中的每个步骤:确定所述一组用户交互实验的用户跟踪数据指示偏离了该步骤的次数计数,其中所述确定基于针对所述ui的与该步骤相关联的页面确定的加强距离,基于所述计数,确定该步骤是否需要加强,以及响应于确定出所述步骤需要加强,生成针对该步骤的加强,其中生成所述加强包括以下至少之一:生成针对与所述步骤相关联的动作的提示和改变与所述步骤相关联的ui元素。49.根据权利要求48所述的方法,其中确定针对页面的加强距离包括确定所述一组用户交互实验的用户跟踪数据与所述最短路径之间的至少一个距离。50.根据权利要求48所述的方法,其中确定针对页面的加强距离包括:(i)基于成功到达所述目标的第一子组用户交互实验的用户跟踪数据,确定针对该页面的中值成功距离,以及(ii)基于第二子组用户交互实验的用户跟踪数据,确定针对该页面的中值失败距离。51.根据权利要求50所述的方法,其中确定针对页面的加强距离包括:生成至少一个随机距离,所述随机距离小于针对该页面的所述中值成功距离,且大于针对该页面的所述中值失败距离;以及针对所述一组用户交互实验中一实验的用户跟踪数据中的每个样本:基于(i)针对与所述样本相关联的页面生成的随机距离,(ii)所述样本的坐标,以及(iii)沿着所述最短路径的点的坐标,预测所述实验的结果,以及比较预测结果与所述实验的存储结果。52.根据权利要求51所述的方法,其中:预测所述实验的结果包括:计算所述样本的坐标与沿着所述最短路径的点的坐标之间的距离,以及基于所确定的距离和针对与所述样本相关联的页面的随机距离之间的比较,确定所述预测结果;以及比较所述预测结果与所述存储结果包括:响应于所述预测结果与所述存储结果相匹配,递增成功预测计数。53.根据权利要求52所述的方法,其中确定针对页面的加强距离包括:针对每个随机生成的距离,至少基于与该随机生成的距离相关联的所述成功预测计
数,生成适应度值;以及对所生成的适应度值执行群集分析。54.根据权利要求53所述的方法,其中确定针对页面的加强距离包括:响应于对所生成的适应度值的群集分析识别单个群集,将具有最高适应度值的与所述页面相关联的随机生成的距离设置为针对所述页面的加强距离。55.一种存储有处理器可执行指令的非临时性计算机可读介质,所述指令包括:获得(i)指示至用户界面ui中的目标的最短路径的路径信息,以及(ii)与寻求所述目标相关联的一组用户交互实验,其中:所述一组用户交互实验中的每个实验包括用户跟踪数据,所述路径信息包括多个步骤,以及所述多个步骤中的每个步骤与所述ui的页面相关联;针对所述ui的每个页面,基于所述一组用户交互实验,确定针对该页面的加强距离;以及针对所述多个步骤中的每个步骤:确定所述一组用户交互实验的用户跟踪数据指示偏离了所述步骤的次数计数,其中所述确定基于针对所述ui的与该步骤相关联的页面确定的加强距离,基于所述计数,确定该步骤是否需要加强,以及响应于确定出所述步骤需要加强,生成针对该步骤的加强,其中生成所述加强包括以下至少之一:生成针对与所述步骤相关联的动作的提示和改变与所述步骤相关联的ui元素。56.根据权利要求55所述的非临时性计算机可读介质,其中确定针对页面的加强距离包括(i)基于成功到达所述目标的第一子组用户交互实验的用户跟踪数据,确定针对该页面的中值成功距离,以及(ii)基于第二子组用户交互实验的用户跟踪数据,确定针对该页面的中值失败距离。57.根据权利要求56所述的非临时性计算机可读介质,其中确定针对页面的加强距离包括:生成至少一个随机距离,所述随机距离小于针对该页面的所述中值成功距离,且大于针对该页面的所述中值失败距离;以及针对所述一组用户交互实验中一实验的用户跟踪数据中的每个样本:基于(i)针对与所述样本相关联的页面生成的随机距离,(ii)所述样本的坐标,以及(iii)沿着所述最短路径的点的坐标,预测所述实验的结果,以及比较预测结果与所述实验的存储结果。58.根据权利要求57所述的非临时性计算机可读介质,其中:预测所述实验的结果包括:计算所述样本的坐标与沿着所述最短路径的点的坐标之间的距离,以及基于所确定的距离和针对与所述样本相关联的页面的随机距离之间的比较,确定所述预测结果;以及比较所述预测结果和所述存储结果包括:响应于所述预测结果与所述存储结果相匹配,递增成功预测计数。
59.根据权利要求58所述的非临时性计算机可读介质,其中确定针对页面的加强距离包括:针对每个随机生成的距离,至少基于与该随机生成的距离相关联的所述成功预测计数,生成适应度值;以及对所生成的适应度值执行群集分析。60.根据权利要求59所述的非临时性计算机可读介质,其中确定针对页面的加强距离包括:响应于对所生成的适应度值的群集分析识别单个群集,将具有最高适应度值的与所述页面相关联的随机生成的距离设置为针对所述页面的加强距离。
技术总结
一种用于测试用户界面(UI)的计算机系统,包括测试执行模块和分析模块。所述分析模块被配置成(i)分析所述UI的状态,(ii)响应于确定出所述状态满足针对与所述UI相关联的目标的标准,输出成功指示符,以及(iii)响应于确定出所述状态不满足该标准,输出一组动作。所述测试执行模块被配置成:响应于输出是所述一组动作,执行所述一组动作中的动作;更新测试距离,以及补充测试数据。所述测试执行模块还被配置成:(i)响应于输出是所述成功指示符,将所述测试距离和所述测试数据存储在已完成的测试集合中,以及(ii)确定至所述UI中目标的最短路径。径。径。


技术研发人员:C
受保护的技术使用者:快捷药方战略发展公司
技术研发日:2019.11.19
技术公布日:2021/6/29

转载请注明原文地址:https://doc.8miu.com/read-414.html

最新回复(0)