应用测试和分析的制作方法_3

文档序号:9422717阅读:来源:国知局
起测试代码122的执行,或者 测试代码122可在下载到用户设备102之后自动开始执行。测试代码122可包括调用工具 116来对一个或多个指定应用执行各种扰乱的命令。例如,扰乱可包括W下中的一个或多 个:(a)仿真各种类型的网络、化)模拟各种类型的用户输入和传感器输入、(C)模拟诸如丢 失的包之类的网络条件、或(d)仿真具有不同资源量(如处理能力、存储器、功率/能量等) 的各种类型的设备。测试代码122可包括调用工具116来在扰乱正在发生时收集与指定应 用相关联的数据的命令。例如,工具116可收集数据,诸如与指定应用(一个或多个)大量 产生的进程相关联的统计数据、与指定应用(一个或多个)相关联的功率使用、与指定应用 (一个或多个)相关联的进程的执行跟踪等。通过监视扰乱而产生的所收集的数据120可 被自动上传到服务器104供分析(如在测试代码122完成执行之后)。分析可包括确定各 种假设是否被证实了、检测异常、估计对用户的影响等。
[0047] 框架100可被用于数据驱动的分析来测试和剖析(profile)移动应用,运是因为 用户设备102上的监视工具(如功率使用模块126、统计模块132和跟踪采集器134)和服 务器104上的分析算法(如分析工具156)之间的紧密禪合。工具116可允许创建扰乱来 满足特定准则,如准确性准则和等待时间准则。框架100可使用在移动设备(如用户设备 102)上执行的工具116来扰乱(如模拟或仿真)各种环境条件和/或各种设备特征。扰乱 可包括扰乱环境条件,诸如网络条件(如等待时间、越区切换)、传感器输入(如位置、加速 度计)、和/或用户输入。此外,框架100可被容易地扩展到其他相关环境条件。扰乱可附 加地或替代地模拟或仿真各种设备条件,如存储器约束、处理器约束、传感器约束、不同硬 件组件组合等等。除了扰乱之外,工具116可允许对全局设备状态信息和每应用状态信息 (如与一个或多个指定应用相关的度量)运两者的采集。
[0048]框架100可包括架构上位于分析算法和移动设备扰乱/监视工具之间的编制 (orchestration)算法。编制算法可执行各种任务,如(1)基于应用开发者目标向用户设 备指派和调度数据采集作业和扰乱角色(如使得用户设备102临时地采取特定配置),(2) 选择一组后续条件来测试W实现分析目标,W及(3)创建有助于分析的用于常用操作的原 语,如捜索W下内容的条件捜索:(i)特定条件(如指定网络等待时间水平)、(ii)某一特 定类型的应用工作情况(如崩溃)何时发生、或(iii)在宽范围的条件参数上进行扫描W 标识应用开发者所定义的异常应用工作情况的异常捜索。框架100可被用于(1)估计特定 条件的可用性影响和/或(2)基于可用性影响来指派和调度测试。
[004引框架100可向应用开发者提供(1)控制(如对测试的更大控制)、似等待时间 (如测试与分析之间更少时间)、W及(3)效率。在控制方面,框架100可使得能够对指定 应用创建特定的条件(如扰乱),而不影响用户设备102上执行的其他应用。在等待时间方 面,可通过减少执行测试和采集数据的时间来减少执行移动软件测试和分析所需的时间长 度。框架100可使得应用开发者能够指定什么数据被采集W及数据何时被采集,从而减少 采集数据所花费的时间并允许更快速的分析。框架100可减少测试应用和分析测试应用的 结果之间的等待时间。在效率方面,当采集性能统计数据时,可能对其他应用的操作造成在 开销损失方面的代价。常规系统可收集全部大量数据,从而导致用于收集数据的开销(如 资源)方面的巨大代价。相反,在框架100中,开销损失可被减少,因为可基于测试代码122 在指定时间周期对指定应用收集执行数据146。
[0050] 在框架100中,测试算法和分析算法可交互地操作。例如,要作为分析算法的输入 而被收集的数据可确定哪些测试被执行(如哪些脚本被执行)。服务器104可将脚本发送 到一个或多个用户设备,如用户设备102。脚本可指定要被测试的应用(一个或多个)、要 被执行来模拟/仿真各种系统/环境配置的扰乱、W及要被采集的数据。在脚本已被执行 之后,服务器104可分析从该一个或多个用户设备采集的数据来标识任何问题(如过度功 耗、过度存储器消耗等等)。基于该分析,应用开发者可修改应用,W及然后选择或创建一个 或多个脚本来确定修改是否解决了问题。此外,基于至今为止的测试结果,系统可决定要关 注于哪些测试条件(如特定范围的网络等待时间)。
[0051] 从而,框架100可通过允许W每应用为基础进行扰乱W模拟或仿真各种条件来提 供用于软件测试、剖析和分析的闭环。例如,扰乱可包括模拟性能劣化W及采集与应用在经 受特定类型的环境或设备条件时的工作情况如何相关联的度量。在某些情况下,框架100 可与实时用户一起使用,如可向多个用户提供安装了各种工具的用户设备。实时用户可被 使用,因为框架100通过W下方式减少了对用户的影响:(1)仅将影响局限于仅仅指定应用 (一个或多个),W及(2)非常快速地(如单次使用或有限时间)或在非使用或最小使用时 间段期间(如深夜或清晨)执行扰乱(一个或多个)。框架100可使得应用开发者能够测 试一个或多个应用、分析结果、通过修改应用来解决任何问题、W及重新测试应用来确定修 改是否已解决问题。可用实时用户、没有实时用户或两者的组合来执行测试。
[0052] 图2例示出根据一些实现的包括扰乱工具和监视工具的示例框架200。框架200 包括使用网络106与服务器104通信地禪合的用户设备102。用户设备102可包括一个或 多个传感器202,如GPS(如位置)传感器、加速度计、相机、或另一种类型的传感器。
[0053]测试代码122可从服务器104下载到用户设备102。测试代码122可包括一个或 多个命令204、一个或多个扰乱规则206、W及一个或多个采集规则208。命令204可包括 W命令解释程序(shell)语言编写的用来使用工具116来对N个应用142至144中的指 定的一组应用执行各种扰乱W及监视和记录各种数据的命令。例如,工具116可包括扰乱 工具210 (如图1的网络仿真器124、输入模拟器128、W及处理器控制器130)和监视工具 212 (如功率使用模块126、统计模块132、W及跟踪采集器134)。工具116可使得用户能够 W每应用为基础来扰乱与每个应用相关联的环境。例如,N个应用142至144中的每一个 可具有相应的环境(如可用存储器、可用处理器速度、可用处理器核、可用网络带宽等)。为 了举例说明,第一应用142可具有第一环境214,而第N应用144可具有第N环境216。最 初,N个环境中的每一个可包括用户设备102的资源,如处理器108、存储器112等。当测试 代码122被执行时,测试代码所创建的扰乱可能影响N个应用142至144中的某些但非全 部应用的环境。
[0054]扰乱规则206可指定各种扰乱(如要被仿真的各种系统配置、要被仿真的各种网 络条件等等)。当指定的一组一个或多个应用正在执行时,扰乱规则206可指定各种扰乱 的顺序W及每个扰乱要被执行的时间长度。采集规则208可指定在各种扰乱正在发生时要 被记录的执行数据(如性能度量,诸如进程统计数据、执行跟踪等)。扰乱规则208可允许W每应用为基础进行扰乱。扰乱规则208可被视作为指定的应用创建环境,因为扰乱规则 可控制指定应用如何查看和访问用户设备102的资源。扰乱规则208所控制的资源可包括 (但不限于)网络106的类型、与网络106相关联的条件、可用发送和/或接收带宽、可用 功率/能量、可用处理器能力(如时钟速度、核数量、高速缓存等)、W及存储器112的可用 量。扰乱规则208可包括用户交互功能(如输入模拟器128)用W模拟诸如鼠标点击和键 盘活动之类的用户输入。
[00巧]监视工具212可W每应用为基础来监视数据W最小化用户设备102的开销(如资 源使用)。基于监视,监视工具212可创建执行数据132。执行数据132可包括诸如消耗的 处理器时间量或处理器周期、存储器利用率、能量消耗、接收的和发送的网络通信量、其他 应用特定的数据、或它们的任何组合的数据。
[0056] 测试代码122可标识要被采集的数据的类型(如存储器使用、使用的处理器周期 等)、如何采集数据、W及何时采集数据(如当扰乱X发生时)。测试代码122可标识(1) 目标应用(如已被作为扰乱和监视的目标的应用)、要被执行的扰乱用来创建在其中运行 目标应用的特定系统/环境配置、W及要被采集的执行数据132 (如工作情况度量)。
[0057]监视工具212可响应于检测到指定的事件而采集至少某些执行数据132。例如,监 视工具212可在存储器使用超出预定阔值时发起执行跟踪。为了说明,监视工具212可分 析传入的数据,检测指定的事件,W及记录指定的事件的数据。在测试代码122完成了执行 之后,监视工具212所收集的执行数据132可被发送给服务器104供分析。例如,命令204 可包括将执行数据132发送到服务器104的命令。作为另一示例,在测试代码122已经完 成执行之后,监视工具可自动地(例如无需人类交互)将执行数据132发送给服务器104。
[0058] 图3例示出根据一些实现的用于扰乱和监视的示例架构300。架构300包括可从 进程监视器304和数据监视器306接收数据的进程管理器302。进程监视器304可使用进 程匹配规则308来标识哪些进程来进行扰乱、监视和从中采集数据。例如,进程匹配规则 308可标识哪些进程与哪个应用相关联,W使得进程监视器304能够扰乱和监视与一个或 多个指定应用相关联的那些进程的环境。进程匹配规则308可允许W每应用为基础来收集 数据。
[0059]数据监视器306可从周期性监视器312和事件跟踪监视器314接收数据。周期性 监视器312可周期性地(如W预定的时间间隔)确定与被监视的进程310相关联的各种信 息,如存储器消耗、功率/能量消耗、处理器消耗等等。事件跟踪监视器314可在测试代码中 指定的事件发生时执行对被监视的进程310的跟踪执行。周期性监视器312可从周期性事 件跟踪监视器316接收数据。周期性跟踪监视器316可周期性地(如W预定的时间间隔) 接收与被监视的进程310相关联的数据。例如,周期性跟踪监视器316可周期性地从标识 被监视的进程310的网络使用的网络监视器318接收信息。
[0060] 周期性监视器312可W规则的间隔使用网络仿真器124(例如用来仿真不同类型 的网络)和处理器控制器130 (例如用来仿真不同类型的处理器)来执行各种扰乱。周期性 监视器312可周期性地监视与被监视的进程310相关联的各种数据,如使用功率使用模块 126监视功率/能量使用,使用统计模块132监视各种统计数据,W及使用性能监视器320 监视被监视的进程310的性能。
[0061] 从而,架构300可被用于W每应用为基础来扰乱应用。例如,进程匹配规则308可 使得与一指定应用相关联的
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1