CN106664285B - 用于高级应用的基于事件的记录和重放 - Google Patents
用于高级应用的基于事件的记录和重放 Download PDFInfo
- Publication number
- CN106664285B CN106664285B CN201480078023.2A CN201480078023A CN106664285B CN 106664285 B CN106664285 B CN 106664285B CN 201480078023 A CN201480078023 A CN 201480078023A CN 106664285 B CN106664285 B CN 106664285B
- Authority
- CN
- China
- Prior art keywords
- event
- application
- recorded
- recording
- events
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Educational Administration (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
呈现了允许以可靠且确定性的方式来记录并重放应用事件的技术。计算系统可以包括存储器以及与所述存储器通信地耦合的处理器。所述处理器可以执行应用的应用逻辑,基于与关联于所述应用的事件相关联的功能调用来记录所述事件,并且将所述记录的事件存储在所述存储器中以备将来回放。记录的事件可以包括例如用户交互、定时事件、网络下载、回调、网络工作者任务等。对所述事件的所述记录可以包括:根据所述事件的顺序记录每个事件的顶层功能,并且记录包括功能参数和/或返回值的相关联数据。可以使用所述记录的相关联数据按顺序重放所述记录的事件,同时抑制未记录的事件。
Description
技术领域
在此描述的技术总体上涉及对计算系统应用的记录和重放。
背景技术
可以期望的是构建用于应用分析、调试、调谐等的计算系统应用的自动且可重复的测试情况或工作负载。这对于复杂应用可能是至关重要的,如例如网络应用(通过互联网访问的应用)和运行时间,尤其是根据高级且快速演进HTML 5和开放网络平台技术。针对这类复杂应用,记录应用流程并且确切地重复在记录阶段过程中所捕获的东西可能是一种挑战。再现性和可靠性可能受到应用的各种非确定性特性的显著影响,这可能导致不一致或者甚至完全错误的重放行为。
目前的记录和重放解决方案采用基于时间的记录和重放,其中可以使用相似的定时(例如,基于记录的时间戳)来捕获和重复对应用的输入以便重新创建应用流程。在重放过程中,使用那些输入的记录定时来模拟记录的输入。这种解决方案的缺陷是:一些应用(例如,网络应用)的随机性在重放阶段中就“时间”而言可能会产生显著变化,这可能意外地改变了所期望的行为。例如,在重放过程中,所需资源的加载可以比其在记录过程中更慢,这可能导致错误或非预期结果(如果与输入(例如,用户动作)相关的进一步模拟仍然根据记录时间发生)。在另一示例中,如果未对回调的顺序进行限定或同步和/或而且如果运行时间是多线程的,则可以在重放中以不同的次序调用所述回调(例如,定时器、动画等)。在又另一示例中,如果在记录阶段过程中用于记录时间戳的定时器不准确,则这种不准确性可能在重放中被传播从而产生完全非预期的应用流程。试图避免这些问题的当前解决方案是基于时间的并且可能并不完全可靠。
附图说明
图1是根据实施例的示例应用的框图。
图2是根据实施例的记录阶段和重放阶段的示例事件顺序的框图。
图3是描绘根据实施例的一种事件记录和重放方法的示例流程图。
图4是根据实施例的示例计算设备的框图。
在附图中,参考号最左边的(多个)数字可以标识该参考号首次出现的附图。
具体实施方式
在此描述的实施例中,可以以可靠且确定性的方式来记录并重放应用事件。借助于这种技术,可以以基于功能调用事件的方式来记录应用的非确定性行为并且在重放过程中对其进行管理以便以与记录时完全相同的方式来表现。由于消除了潜在随机性,重放在本质上可以是确定性的且可重复的。
如上所述,目前使用的记录和重放技术采用基于时间的记录和重放,其中可以使用相似的定时(例如,基于记录的时间戳)来捕获和重复对应用的输入以便重新创建应用流程。在重放过程中,使用那些输入的记录定时来模拟记录的输入。然而,借助于这些基于时间的技术,一些应用的随机性在重放阶段中就“时间”而言可能会产生显著变化,这可能意外地改变了所期望的行为。图1是示例应用的框图,在其中以简化的方式展示了此问题。在图1中,记录的游戏正在以模拟方式被重放。在屏幕截图102中,玩家104正在计划跳跃到平台106上。换言之,跳跃事件将要被调度。如果使用基于时间的记录技术来记录游戏,则所记录的时间戳可能需要几乎准确地(如果不准确)是它们在最初玩过的游戏中那样以便使得玩家104能够成功跳跃到如屏幕截图108所示的平台106上。如屏幕截图110所示,如果时间戳甚至是仅仅稍微偏移,相反玩家104则可能落到地上。在重放时,非常小的变化可能使得应用表现的非常不同于预期,这可能致使所重放的模拟无法实现其目的。
在此描述的实施例中,所使用的记录和重放技术不像先前的解决方案中那样是基于时间的。相反,应用轨迹(即记录)是基于事件的,基于功能调用。功能可以被记录到轨迹中,即使所述功能可以以非确定性顺序被调用或者即使它们可以产生非确定性结果。可以以非确定性顺序被调用的功能的示例可以包括但不限于:回调(例如,动画回调)、网络下载、多线程网络工作者等。在此类型的记录功能的重放过程中,功能以与记录相同的顺序被重放。可以产生非确定性结果的功能的示例可以包括例如但不限于:应用编程接口(API)(例如,JavaScript API,诸如Math.random()、Date.now()等)。在此类型的记录功能的重放过程中,相同的输出如被记录那样被生成。以此方式记录的应用是可靠可重复的,因为对应用的外部输入可以被固定从而使得输出相同。
正在运行的应用涉及多个事件,包括但不限于用户输入、定时事件、网络事件(例如,如果游戏具有多个玩家)等。每一个事件可以由相应的事件处置器功能来处置。事件可以以非确定性顺序发生和/或可以返回非确定性结果。在记录过程中,可以根据事件的顺序来记录对每个顶层功能的调用,这可以形成功能执行次序。根据实施例,这在图2中进行了演示。在图2的记录阶段220中,主逻辑功能222(A1)被记录,并且接下来按顺序是记录用户输入224(B1)、网络事件226(D1)、主逻辑功能228(A2)、以及定时事件230(C1)。因此,记录的应用在总体顺序232上包括“A1B1D1A2C1”。与每个功能相关联的数据(包括例如功能参数和返回值(例如,API的返回值))还可以与功能一起被记录。在记录之后,这导致在相关的执行数据上下文的情况下完成对功能调用顺序的追踪,在这种情况下,可以完全确定在重放时原始执行的应用的逻辑行为。
在图2的重放阶段234中,可以根据在记录阶段220的过程中所记录的踪迹来管理功能A1、B1、D1、A2和C1的执行流程和调度。可以对应用的重放进行管理以便以无事件方式运行,从而使得应用执行将不受非确定性事件处置器的影响。各种事件在自动重放过程中将不存在(例如,用户输入)、或者将被抑制。将被抑制的事件(例如,定时事件、网络事件等)可以被拦截并且被旁路。在没有任何未管理的事件插入到应用流程中的情况下,总体的功能执行顺序可以由主逻辑以受控方式来确定。这些非主逻辑事件(例如,用户输入事件、定时事件、网络事件等)可以被包封到其前面的主逻辑事件中以便根据记录的功能执行顺序包含事件处置器。在图2所示的示例中,主逻辑功能A1被包封到事件块236(“A1B1D1”)中,并且主逻辑功能A2被包封到事件块238(“A2C1”)中。结果,在重放阶段234中,总体的功能执行次序240仍然是“A1B1D1A2C1”。可以在重放过程中进行提供并对齐所记录的功能参数和返回值,从而使得每个功能将以与在记录阶段220中相同的数据上下文中被执行。在相同的功能调用顺序处于相同的数据上下文的情况下,可以利用与在记录阶段完全相同的逻辑和确定性行为来严格重放应用。
在实施例中,可能存在用于在软件栈的不同层进行记录和重放的多种可能的实现方式。例如,在此描述的技术可以在以下各项中的一项或多项中实现:脚本引擎(例如,JavaScript引擎)、应用层(例如,JavaScript)、浏览引擎(例如,作为扩展件)、操作系统等。这些示例仅是出于展示的目的,并不旨在是限制性的。
作为示例,可以写入工具(例如,在JavaScript中)以便记录和重放各种应用(例如,网络应用)。应用的流程可以由各种功能来驱动,所述各种功能可以由工具(例如,动画回调、超时回调、用户事件处置器等)来追踪。所述工具可以处置作为主应用逻辑的动画回调的执行,因为在需要屏幕喷画时动画回调是由例如浏览器来调用。以此方式,可以维持应用的渲染性质。超时回调和用户事件处置器可以被视为将由工具根据记录轨迹自动调用的事件。所述工具可以拦截并包封内置功能(例如,内置JavaScript功能(如果在JavaScript中写入所述工具),并且可以利用脚本语言的动态特性。
图3是描绘根据实施例的一种事件记录和重放方法300的示例流程图。在302处,可以执行应用的应用逻辑。在304处,可以基于与关联于所述应用的事件相关联的功能调用来记录所述事件。事件的记录可以包括根据所述事件的顺序来记录顶层事件,并且可以包括记录与所述记录的事件相关联的数据,诸如例如所使用的功能参数以及返回值。在306处,可以将记录的事件存储在存储器中以备将来回放。在308处,可以使用与记录的事件相关联的记录数据来按顺序重放记录的事件,同时抑制在重放过程中可能尝试执行的未记录事件。
在此公开的一个或多个特征可以在硬件、软件、固件及其组合中实现,包括离散和集成电路逻辑、专用集成电路(ASIC)逻辑、以及微控制器,并且可以被实现为特定域的集成电路封装体的一部分或多个集成电路封装体的组合。如在此使用的,术语软件和固件指代计算机程序产品,所述计算机程序产品包括其中存储有计算机程序逻辑(诸如计算机可执行指令)的至少一个计算机可读介质,用以使得计算机系统执行在此公开的一个或多个特征和/或特征的组合。计算机可读介质可以是瞬态的或非瞬态的。瞬态计算机可读介质的示例可以是通过局域网或广域网、或者通过诸如因特网的网络在无线电频率或在电导体上传输的数字信号。非瞬态计算机可读介质的示例可以是致密盘、闪存、SRAM、DRAM、硬盘驱动器、固态驱动器、或其他数据存储设备。
如上所述,在实施例中,在此描述的处理中的一些或全部可以被实现为硬件、软件、和/或固件。这类实施例可以在如图4中示出的示例计算系统450的背景下来展示。计算系统450可以包括由链路458或相似机制连接至存储器454和一个或多个辅助存储设备456的一个或多个处理器452。(多个)处理器452可以包括用于实施在此描述的方法的一个或多个逻辑单元。本领域的普通技术人员将认识到,所述逻辑单元的功能可以由单个逻辑单元、或任何数量的逻辑单元来执行。计算系统450可以可选地包括(多个)通信接口460和/或用户接口部件462。所述(多个)通信接口460可以在硬件或硬件与软件的组合中实现,并且可以向网络提供有线或无线网络接口。所述用户接口部件462可以包括例如触摸屏、显示器、一个或多个用户输入部件(例如,键盘、鼠标等)、扬声器等、或其任意组合。经由在此描述的方法所处理的数据和/或图形可以显示在一个或多个用户接口部件上。所述一个或多个辅助存储设备456可以是例如一个或多个硬盘驱动器等,并且可以存储由(多个)处理器452执行的逻辑464(例如,应用逻辑)。在实施例中,(多个)处理器452可以是微处理器,并且逻辑464可以存储或加载至存储器454中以用于由(多个)处理器452执行从而提供在此描述的功能。根据在此描述的实施例,记录的事件和相关联数据也可以存储在存储器454中。注意,虽然未示出,但计算系统450可以包括附加部件。
在此公开的技术允许以可靠且确定性的方式来记录并重放应用事件。可以以基于功能调用事件的方式来记录应用的非确定性行为并且在重放过程中对其进行管理以便以与记录时完全相同的方式来表现。由于消除了潜在随机性,重放在本质上可以是确定性的且可重复的。如上所述,将可靠且确定性的记录和重放技术用于工作负载、基准和测试情况对于应用分析、调试和调谐而言是至关重要的。在此描述的技术对于高级网络应用特别有用,所述高级网络应用可以包含丰富的动画和用户交互(例如,网络工作者、基于网络的游戏(例如,切片游戏、射击游戏、赛车游戏等)、在线生产力工具(邮件、文档管理系统等)等)。这类新兴的网络应用使用传统的记录和重放解决方案以一致且匹配的方式进行重放可能非常困难,因为较小的变化可能使得在重放过程中产生较大的行为差异。在此描述的技术避免了传统解决方案的潜在问题。例如,针对一些应用,可以基于屏幕或帧变化而不是基于时间戳通过调用功能来获得更好的重放结果,因为基于时间的技术在重放时可能导致非预期的行为。
使用在此描述的技术具有各种优点。例如,一个优点是:应用可以在一个平台上被记录并且在另一个平台上被重放,而不失可靠的重复性。还可以设想许多其他优点。
本文档中所使用的具体示例和场景是为了易于理解并且不是限制性的。如本领域的普通技术人员将了解的,在此描述的特征可以用于许多其他上下文。
下面的示例涉及进一步的实施例。
示例1可以包括一种计算系统,所述计算系统包括:存储器;以及与所述存储器通信地耦合的处理器,所述处理器用于:执行应用的应用逻辑;基于与关联于所述应用的事件相关联的功能调用来记录所述事件;以及将所述记录的事件存储在所述存储器中以备将来回放。
示例2可以包括示例1的主题,其中,所述应用为网络应用、游戏应用、或生产力应用中的一项或多项。
示例3可以包括示例1或示例2的主题,其中,所述事件包括用户交互、定时事件、网络下载、回调、或网络工作者任务中的一项或多项。
示例4可以包括示例1至示例3中任一项的主题,其中,对所述事件的所述记录包括;根据所述事件的顺序记录每个事件的顶层功能,并且记录包括功能参数或返回值中的一项或多项的相关联数据。
示例5可以包括示例4的主题,其中,所述处理器进一步用于使用所述记录的相关联数据按顺序重放所述记录的事件,同时抑制未记录的事件。
示例6可以包括示例5的主题,其中,所述记录和所述重放是在软件栈的一个或多个不同层进行的。
示例7可以包括示例1至示例6中任一项的主题,其中,对所述事件的所述记录包括将非主逻辑事件包封到其前面的主逻辑事件中。
在示例8中,示例1至示例7中的任一项可以可选地包括:与所述处理器和网络通信地耦合的通信接口;包括导航设备和显示器的用户接口,所述用户接口与所述处理器通信地耦合;以及存储所述应用逻辑的存储装置,所述存储装置与所述处理器通信地耦合,其中,所述处理器用于加载和执行所述应用逻辑,其中,所述应用逻辑的所述执行包括经由所述用户接口呈现所述应用。
示例9可以包括至少一种计算机程序产品,所述计算机程序产品包括其中存储有计算机程序逻辑的至少一个计算机可读介质,所述计算机程序逻辑包括使处理器执行以下各项的逻辑:执行应用的应用逻辑;基于与关联于所述应用的事件相关联的功能调用来记录所述事件;以及将所述记录的事件存储在存储器中以备将来回放。
示例10可以包括示例9的主题,其中,对所述事件的所述记录包括:根据所述事件的顺序记录每个事件的顶层功能,并且记录包括功能参数或返回值中的一项或多项的相关联数据。
示例11可以包括示例10的主题,其中,所述计算机程序逻辑进一步包括用于使所述处理器执行以下各项的逻辑:使用所述记录的相关联数据按顺序重放所述记录的事件、同时抑制未记录的事件。
示例12可以包括示例11的主题,其中,所述记录和所述重放是在软件栈的一个或多个不同层进行的。
示例13可以包括示例9至示例12中任一项的主题,其中,对所述事件的所述记录包括将非主逻辑事件包封到其前面的主逻辑事件中。
示例14可以包括一种计算装置,所述计算装置包括:用于执行应用的应用逻辑的装置;用于基于与关联于所述应用的事件相关联的功能调用来记录所述事件的装置;以及用于将所述记录的事件存储在存储器中以备将来回放的装置。
示例15可以包括示例14的主题,其中,用于对所述事件记录的所述装置包括:用于根据所述事件的顺序记录每个事件的顶层功能、并且用于记录包括功能参数或返回值中的一项或多项的相关联数据的装置。
在示例16中,示例15可以可选地包括:用于使用所述记录的相关联数据按顺序重放所述记录的事件、同时抑制未记录的事件的装置。
示例17可以包括示例16的主题,其中,所述记录和所述重放是在软件栈的一个或多个不同层进行的。
示例18可以包括示例14至示例17中任一项的主题,其中,用于记录所述事件的所述装置包括:用于将非主逻辑事件包封到其前面的主逻辑事件中的装置。
示例19可以包括一种应用处理的方法,所述方法包括:处理器执行应用的应用逻辑;所述处理器基于与关联于所述应用的事件相关联的功能调用来记录所述事件;以及所述处理器将所述记录的事件存储在存储器中以备将来回放。
示例20可以包括示例19的主题,其中,对所述事件的所述记录包括:根据所述事件的顺序记录每个事件的顶层功能,并且记录包括功能参数或返回值中的一项或多项的相关联数据。
在示例21中,示例20可以可选地包括:使用所述记录的相关联数据按顺序重放所述记录的事件、同时抑制未记录的事件。
示例22可以包括示例21的主题,其中,所述记录和所述重放是在软件栈的一个或多个不同层进行的。
示例23可以包括示例19至示例22中任一项的主题,其中,对所述事件的所述记录包括将非主逻辑事件包封到其前面的主逻辑事件中。
示例24可以包括至少一种机器可读介质,所述机器可读介质包括多条指令,所述指令响应于在计算设备上被执行而使得所述计算设备执行根据示例19至示例23中任一项所述的方法。
示例25可以包括一种用于执行示例19至示例23中任一项所述的方法的装置。
示例26可以包括一种用于执行示例19至示例23中任一项所述的方法的计算机系统。
示例27可以包括一种用于执行示例19至示例23中任一项所述的方法的机器。
示例28可以包括一种装置,所述装置包括用于执行示例19至示例23中任一项所述的方法的装置。
示例29可以包括一种计算设备,所述计算设备包括用于执行示例19至示例23中任一项所述的方法的存储器和芯片组。
方法和系统在此借助于展示其功能、特征、和关系的功能构建块来公开。为了方便描述,在此已经任意定义了这些功能构建块的边界中的至少一些。可以限定可替换的界限,只要其特定的功能和关系被适当执行即可。
虽然在此公开了各种实施例,但应当理解的是,它们仅是以举例的方式呈现,而非限制性的。对相关领域技术人员而言将明显的是,在不脱离在此公开的方法和系统的范围的情况下,可以在其中对形式和细节做出各种变化。因此,权利要求书的宽度和范围不应由在此公开的示例性实施例中的任何一个来限制。
如在本申请和权利要求书中所使用的,由术语“中的一项或多项”接合的一系列项目可意指所列术语的任何组合。例如,短语“A、B或C中的一项或多项”和“A、B和C中的一项或多项”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
Claims (20)
1.一种计算系统,包括:
存储器;以及
与所述存储器通信地耦合的处理器,所述处理器用于:
执行应用的应用逻辑;
基于与关联于所述应用的事件相关联的功能调用来记录所述事件;
将所述记录的事件存储在所述存储器中以用于将来回放;以及
使用所述记录的相关联数据按顺序重放所述记录的事件,同时抑制未记录的事件。
2.如权利要求1所述的计算系统,其中,所述应用为web应用、游戏应用、或生产力应用中的一项或多项。
3.如权利要求1所述的计算系统,其中,所述事件包括用户交互、定时事件、网络下载、回调、或网络工作者任务中的一项或多项。
4.如权利要求1所述的计算系统,其中,对所述事件的所述记录包括:根据所述事件的顺序记录每个事件的主逻辑功能,并且记录包括功能参数或返回值中的一项或多项的相关联数据。
5.如权利要求1所述的计算系统,其中,所述记录和所述重放是在软件栈的一个层或多个不同层进行的。
6.如权利要求1所述的计算系统,其中,对所述事件的所述记录包括将非主逻辑事件包封到在先的主逻辑事件中。
7.如权利要求1至6中任一项所述的计算系统,进一步包括:
通信接口,所述通信接口与所述处理器和网络通信地耦合;
包括导航设备和显示器的用户接口,所述用户接口与所述处理器通信地耦合;以及
存储所述应用逻辑的存储装置,所述存储装置与所述处理器通信地耦合,
其中,所述处理器用于加载和执行所述应用逻辑,其中,所述应用逻辑的所述执行包括经由所述用户接口呈现所述应用。
8.一种计算装置,包括:
用于执行应用的应用逻辑的装置;
用于基于与关联于所述应用的事件相关联的功能调用来记录所述事件的装置;
用于将所述记录的事件存储在存储器中以备将来回放的装置;以及
使用所述记录的相关联数据按顺序重放所述记录的事件,同时抑制未记录的事件。
9.如权利要求8所述的计算装置,其中,用于记录所述事件的所述装置包括:用于根据所述事件的顺序记录每个事件的主逻辑功能、并且用于记录包括功能参数或返回值中的一项或多项的相关联数据的装置。
10.如权利要求8所述的计算装置,其中,所述记录和所述重放是在软件栈的一个层或多个不同层进行的。
11.如权利要求8至10中任一项所述的计算装置,其中,用于记录所述事件的所述装置包括用于将非主逻辑事件包封到在先的主逻辑事件中的装置。
12.一种应用处理的方法,包括:
通过处理器执行应用的应用逻辑;
通过所述处理器基于与关联于所述应用的事件相关联的功能调用来记录所述事件;
通过所述处理器将所述记录的事件存储在存储器中以备将来回放;以及
使用所述记录的相关联数据按顺序重放所述记录的事件,同时抑制未记录的事件。
13.如权利要求12所述的方法,其中,对所述事件的所述记录包括:根据所述事件的顺序记录每个事件的主逻辑功能,并且记录包括功能参数或返回值中的一项或多项的相关联数据。
14.如权利要求12所述的方法,其中,所述记录和所述重放是在软件栈的一个层或多个不同层进行的。
15.如权利要求12所述的方法,其中,对所述事件的所述记录包括将非主逻辑事件包封到在先的主逻辑事件中。
16.至少一种机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行使所述计算设备执行如权利要求12-15中的任一项所述的方法。
17.一种用于执行如权利要求12-15中任一项所述的方法的装置。
18.一种用于执行如权利要求12-15中的任一项所述的方法的计算机系统。
19.一种用于执行如权利要求12-15中的任一项所述的方法的机器。
20.一种计算设备,包括存储器和芯片组,所述计算设备用于执行如权利要求12-15中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/077435 WO2015172326A1 (en) | 2014-05-14 | 2014-05-14 | Event-based record and replay for advanced applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106664285A CN106664285A (zh) | 2017-05-10 |
CN106664285B true CN106664285B (zh) | 2020-06-16 |
Family
ID=54479149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480078023.2A Active CN106664285B (zh) | 2014-05-14 | 2014-05-14 | 用于高级应用的基于事件的记录和重放 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10901810B2 (zh) |
JP (1) | JP6529987B2 (zh) |
CN (1) | CN106664285B (zh) |
WO (1) | WO2015172326A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015065364A1 (en) * | 2013-10-30 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | Recording an application test |
US10069855B1 (en) * | 2015-09-23 | 2018-09-04 | Wells Fargo Bank, N.A. | Automated security analysis of software libraries |
US10067848B2 (en) * | 2016-07-27 | 2018-09-04 | Facebook, Inc. | Methods and systems for benchmarking web browser performance |
US10061604B2 (en) | 2016-08-09 | 2018-08-28 | Red Hat, Inc. | Program execution recording and playback |
US9697101B1 (en) | 2016-09-20 | 2017-07-04 | International Business Machines Corporation | Detecting errors in web application runtime environments |
CN107193734B (zh) * | 2017-05-17 | 2021-01-01 | 上海交通大学 | 用于移动Web应用的重放方法及重放系统 |
CN109684175B (zh) * | 2018-12-26 | 2022-07-19 | 百度在线网络技术(北京)有限公司 | 应用软件操作的记录方法和装置以及复现方法和装置 |
US11416348B2 (en) * | 2020-04-03 | 2022-08-16 | Ivanti, Inc. | Incident-responsive, computing system snapshot generation |
CN115543562A (zh) * | 2022-09-16 | 2022-12-30 | 杨正 | 应用的运行处理方法、装置、电子设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399821A (zh) * | 2007-09-28 | 2009-04-01 | 国际商业机器公司 | 记录/重放系统、记录器/播放器、和方法 |
CN102142016A (zh) * | 2010-01-29 | 2011-08-03 | 微软公司 | 跨浏览器交互活动记录、回放以及编辑 |
US8578340B1 (en) * | 2010-09-24 | 2013-11-05 | Ca, Inc. | Recording and replaying computer program execution with recorded execution event breakpoints |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134464A (ja) * | 1999-11-09 | 2001-05-18 | Canon Inc | 情報処理方法および装置 |
US7373548B2 (en) * | 2003-08-29 | 2008-05-13 | Intel Corporation | Hardware recovery in a multi-threaded architecture |
US8079019B2 (en) * | 2007-11-21 | 2011-12-13 | Replay Solutions, Inc. | Advancing and rewinding a replayed program execution |
JP5320872B2 (ja) * | 2008-07-10 | 2013-10-23 | 株式会社リコー | 画像処理装置、情報処理装置、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体 |
US8402318B2 (en) * | 2009-03-24 | 2013-03-19 | The Trustees Of Columbia University In The City Of New York | Systems and methods for recording and replaying application execution |
-
2014
- 2014-05-14 US US15/311,147 patent/US10901810B2/en active Active
- 2014-05-14 CN CN201480078023.2A patent/CN106664285B/zh active Active
- 2014-05-14 JP JP2016567661A patent/JP6529987B2/ja active Active
- 2014-05-14 WO PCT/CN2014/077435 patent/WO2015172326A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399821A (zh) * | 2007-09-28 | 2009-04-01 | 国际商业机器公司 | 记录/重放系统、记录器/播放器、和方法 |
CN102142016A (zh) * | 2010-01-29 | 2011-08-03 | 微软公司 | 跨浏览器交互活动记录、回放以及编辑 |
US8578340B1 (en) * | 2010-09-24 | 2013-11-05 | Ca, Inc. | Recording and replaying computer program execution with recorded execution event breakpoints |
Also Published As
Publication number | Publication date |
---|---|
JP2017516230A (ja) | 2017-06-15 |
JP6529987B2 (ja) | 2019-06-12 |
US20170075738A1 (en) | 2017-03-16 |
US10901810B2 (en) | 2021-01-26 |
CN106664285A (zh) | 2017-05-10 |
WO2015172326A1 (en) | 2015-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106664285B (zh) | 用于高级应用的基于事件的记录和重放 | |
US20160292061A1 (en) | Time travel debugging for browser components | |
US9697108B2 (en) | System, method, and apparatus for automatic recording and replaying of application executions | |
Zhang et al. | Panappticon: Event-based tracing to measure mobile application and platform performance | |
US10521322B2 (en) | Modeling and testing of interactions between components of a software system | |
Lo et al. | Imagen: Runtime migration of browser sessions for javascript web applications | |
US10025878B1 (en) | Data lineage analysis | |
EP3103014B1 (en) | Removal of idle time in virtual machine operation | |
US8645766B2 (en) | Serialized error injection into a function under test | |
US9858371B1 (en) | Method and system for generating post-silicon validation tests | |
US20130275951A1 (en) | Race detection for web applications | |
US9824000B1 (en) | Testing calling code dynamically with random error injection based on user-specified configuration | |
US9733782B2 (en) | Extracting a deterministic finite-state machine model of a GUI based application | |
CN114245892A (zh) | 基于在时间旅行调试期间更改函数内部加载的数据竞争分析 | |
US20090254329A1 (en) | Method for virtualization of input devices for parallel execution of test automation scripts | |
CN105512562B (zh) | 一种漏洞挖掘方法、装置及电子设备 | |
CN109284222A (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
US8863095B2 (en) | Recording and playback of system interactions in different system environments | |
CN110209588B (zh) | 游戏服务端测试方法、装置、电子设备及介质 | |
CN108874658A (zh) | 一种沙箱分析方法、装置、电子设备及存储介质 | |
JP2016514326A (ja) | コンピューターシステムアクティビティのトレースタイムラインを解析するための方法およびシステム | |
CN112905449B (zh) | 目标测试方法、装置、设备和存储介质 | |
US8160845B2 (en) | Method for emulating operating system jitter | |
CN108763039B (zh) | 一种业务故障模拟方法、装置及设备 | |
CN113127369A (zh) | 一种执行脚本的处理方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |