用于产生、捕获、存储和加载失败的测试脚本的调试信息的方法和装置制造方法及图纸

技术编号:17518788 阅读:42 留言:0更新日期:2018-03-21 03:12
公开了一种用于产生、捕获、存储和加载失败的测试脚本的调试数据而无需用户交互的方法和系统。在示例性实施例中,跟踪捕获组件将自动地重新执行失败的测试脚本并在测试脚本的重新执行期间捕获与失败的测试脚本相关联的执行上下文信息和源代码文件。将执行上下文信息和相关源代码存储在数据库或其它共享存储介质上并且可以被多个用户访问以允许多个用户同时进行调试。所捕获的信息允许对失败的测试脚本进行调试而不需要访问原始机器或重新执行应用。

Methods and devices for debugging information for test scripts that generate, capture, store, and load failed test scripts

A method and system for debugging data for generating, capturing, storing, and loading failed test scripts without user interaction is disclosed. In the exemplary embodiment, the tracking capture component will automatically re execute the failed test script and capture the execution context information and source code file associated with the failed test script during the execution of the test script. The execution context information and related source code are stored on database or other shared storage media, and can be accessed by multiple users, allowing multiple users to debug at the same time. The captured information allows the failed test scripts to be debugged without the need to access the original machine or to re execute the application.

【技术实现步骤摘要】
【国外来华专利技术】用于产生、捕获、存储和加载失败的测试脚本的调试信息的方法和装置
技术介绍
随着软件变得越来越复杂,用于设计、开发、测试和调试它的工具也变得越来越先进。因此,软件开发人员现在越来越多地团队工作并依靠诸如调试器和测试脚本的开发工具来帮助识别并解决他们的代码中的错误(通常称为“缺陷”)。调试器(通常是集成开发环境解决方案(IDE)的一部分)是用于识别并解决源代码中的错误的工具。调试器内的常见组件是“执行跟踪器”,该“执行跟踪器”允许调试器记录、观察、并控制诸如正在开发的应用这样的另一处理的执行。在跟踪应用的执行的同时,调试器可在应用运行时访问应用的“执行上下文信息”。应用的执行上下文信息可包括诸如执行路径、方法调用历史、调用堆栈、以及本地和全局变量的值这样的信息。通常,执行跟踪与“断点”一起使用。跟踪点和断点几乎是同义的。主要区别在于跟踪点由执行跟踪器自动设置并处理。相反,断点等待用户以恢复应用。断点是代码中的特定点,如果在应用执行期间到达所述特定点,则在该点将暂停应用的执行并向开发人员提供执行上下文信息。在执行暂停的同时,开发人员可检查执行上下文信息以确定错误的原因。为了继续调试,开发人员可以恢复应用的执行,直到命中另一断点或者应用已完成执行。调试过程非常繁琐、耗时、并且需要设置断点和执行应用的多个循环。当测试失败或应用抛出错误时,开发人员在调试过程中的第一步是识别可能导致错误的代码的区域,在那些代码位置手动设置断点,利用调试器手动重新启动应用,并且此后等待执行以到达断点。如果达到断点,则开发人员检查应用在该点的执行上下文信息以对应用的行为进行分析。如果开发人员无法确定错误的原因,则开发人员会继续应用的执行(或者根据需要逐渐地进行到该执行中的下一步),直到该执行到达下一断点或执行完成。如果无法解决错误并且应用已终止,则开发人员必须使用调试器重新启动应用,并根据需要手动设置其它断点。如果其他开发人员想要协助调试应用,则他们必须共享对本地开发机器的访问并且使用上述步骤,或者将开发环境(即源代码、二进制文件、调试器)复制在他们的机器上,这可是耗时的、资源密集的、并且仍然不一定确保错误会被复制。正如本专利技术人所认识到的,需要这样一种方法或工具,该方法或工具用于产生、捕获、存储、并且加载对应用错误或失败的测试进行调试所必需的调试信息而无需手动地重新执行应用或访问本地开发机器。
技术实现思路
该说明书描述了与使用测试脚本来调试软件有关的技术,并且具体地描述了与捕获、存储、并共享失败的测试脚本的执行上下文信息的方法和系统有关的技术。通常,在该说明书中所描述的主题的一个方面可具体体现为用于集成软件测试脚本并捕获和存储调试数据而无需用户交互的方法和组件。示例性组件包括一个或多个处理设备以及用于存储指令的一个或多个存储设备,所述指令在由一个或多个处理设备执行时使得一个或多个处理设备实现示例性方法。示例性方法可以包括:执行软件测试脚本;并且响应于软件测试脚本的不成功的执行,重新执行测试脚本而无需用户交互;捕获测试脚本的执行的跟踪和相关源代码数据而无需用户交互;以及存储测试脚本的跟踪和相关源代码数据而无需用户交互。这些和其它实施例可以可选地包括以下一个或多个特征:未成功的执行可以包括测试失败;未成功的执行可以包括测试超时;加载所存储的跟踪和相关源代码数据以用于在远程开发环境上进行调试;存储跟踪和相关源代码数据并从数据库对其进行访问;存储跟踪和相关源代码数据并从本地开发环境对其进行访问;通过存储介质(如数据库)向多个用户提供对所存储的跟踪和相关源代码数据的并发访问;向用户显示跟踪和相关源代码数据;在集成开发环境(IDE)中显示跟踪和相关源代码数据。在附图以及下面的描述中对本专利技术的一个或多个实施例的细节进行了阐述,所述附图仅仅是作为说明给出的。从描述、附图、以及权利要求书将显而易见地得知其它特征、方面、以及优点。在各附图中相同参考数字和标记表示相同元件。附图说明图1是用于说明执行包含源代码文件、二进制文件、单元测试文件、调试器、以及用于执行这里所述的方法的跟踪捕获组件的本地开发环境的示意图;还说明了托管包含调试数据的数据库的服务器。图2是用于声明三个方法的类的示例性源代码文件。图2A是在图2中所声明的方法,MethodA,的示例性源代码。图3A是用于返回“SUCCESS(成功)”的MethodA的单元测试的执行的示例。图3B是用于返回“FAIL(失败)”的MethodA的单元测试的执行的示例。图4是用于调试单元测试的开发人员的传统方法的流程图。图5是用于产生、捕获、并且存储单元测试的调试数据而无需任何用户交互的示例性方法的流程图。图6是用于对存储在多个远程用户/开发人员可访问的数据库上的调试数据进行说明的示意图。图7是用于调试单元测试而无需访问本地开发环境或重新执行应用的开发人员的方法的流程图。图8是用于在本地开发环境中调试单元测试的IDE的用户界面的截图。图9是用于对示例性计算设备进行说明的方框图。具体实施方式这里所述的示例性实施例包括下述步骤,即从本地开发环境产生、捕获、存储、并加载失败的测试脚本的调试数据而开发人员无需设置调试过程或与活动的调试器/调试过程进行交互。图1描绘了本地开发环境(105)和数据库(155)。本地开发环境(105)可以包含源代码文件(110)、与源代码文件(110)相关联的可执行二进制文件(115)、针对二进制文件(115)运行的单元测试(120)、用于产生执行跟踪数据的调试器(125)、以及用于实现这里所述的方法的跟踪捕获组件(130)。这里所述的本地开发环境(105)仅作为示例并且不应被认为是限制本专利技术的范围。在一些实施例中,开发环境(105)可能更复杂,其中源代码和二进制文件在多个位置,这需要访问远程库和服务。另外,开发机器可以具有集成的开发环境软件(IDE)。在示例性实施例中,IDE可以在集成软件解决方案中管理源代码文件、二进制文件、调试器、编译器、分析器、以及其它开发组件。该示例性实施例描述了具有这些IDE元件的跟踪捕获组件(130)的功能。虽然在该示例中跟踪捕获组件(130)被描绘为独立组件,但是在其它示例中,组件(130)可以被集成在调试器(125)中,作为扩展集成在IDE中,或者作为服务集成在服务器上。图1还描述了可以存储包括失败的单元测试的相关执行跟踪和源代码数据的调试数据(160,165,170)的数据库(155)。虽然在该示例性实施例中仅对失败的测试进行了处理并将其存储在数据库(155)中,但是因为通常仅失败的测试需要调试,因此该方法不仅限于失败的测试而且还可应用于其通常包括成功的单元测试和应用测试的所有调试。图2是用于声明以下三个方法的类的源代码文件的示例:MethodA(205)、MethodB(210)、以及MethodC(215)。图2A是所声明的方法中的一个,MethodA(205)的示例性源代码。MethodA具有两个整数输入参数并且可返回true(真)或false(假)的布尔值。如果第一参数x是第二参数y的值的一半,则MethodA应返回true,否则该方法应返回false。与该方法相关联的结构完善的单元测试集将测试这两种情况:1)当x的值是y值的一半时;以及2)当本文档来自技高网
...
用于产生、捕获、存储和加载失败的测试脚本的调试信息的方法和装置

【技术保护点】
一种用于集成软件测试脚本并调试而无需用户交互的方法,所述方法包括:执行软件测试脚本;以及响应于所述软件测试脚本的不成功的执行,重新执行所述测试脚本而无需用户交互;捕获所述测试脚本的执行的跟踪和相关源代码数据而无需用户交互;并且存储所述测试脚本的执行的跟踪和相关源代码数据而无需用户交互。

【技术特征摘要】
【国外来华专利技术】2015.09.10 US 14/850,2551.一种用于集成软件测试脚本并调试而无需用户交互的方法,所述方法包括:执行软件测试脚本;以及响应于所述软件测试脚本的不成功的执行,重新执行所述测试脚本而无需用户交互;捕获所述测试脚本的执行的跟踪和相关源代码数据而无需用户交互;并且存储所述测试脚本的执行的跟踪和相关源代码数据而无需用户交互。2.根据权利要求1所述的方法,其中,不成功的执行是测试失败。3.根据权利要求1所述的方法,其中,不成功的执行是测试超时。4.根据权利要求1所述的方法,进一步包括:加载所存储的跟踪和相关源代码数据以在远程开发环境上进行调试。5.根据权利要求1所述的方法,进一步包括:存储所述跟踪和相关源代码数据并从数据库对所述跟踪和相关源代码数据进行访问。6.根据权利要求1所述的方法,进一步包括:存储所述跟踪和相关源代码数据并从本地开发环境对所述跟踪和相关源代码数据进行访问。7.根据权利要求1所述的方法,进一步包括:通过如数据库的存储介质来向多个用户提供对所存储的跟踪和相关源代码数据的并发访问。8.根据权利要求1所述的方法,进一步包括:向用户显示所述跟踪和相关源代码数据。9.根据权利要求8所述的方法,进一步包括:在集成开发环境(IDE)中显示所述跟踪和相关源代码数据。10.一种用于集成软件...

【专利技术属性】
技术研发人员:桑尼·斯金纳
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1