CN103207829B - 异步系统的测试方法及装置 - Google Patents
异步系统的测试方法及装置 Download PDFInfo
- Publication number
- CN103207829B CN103207829B CN201210009242.8A CN201210009242A CN103207829B CN 103207829 B CN103207829 B CN 103207829B CN 201210009242 A CN201210009242 A CN 201210009242A CN 103207829 B CN103207829 B CN 103207829B
- Authority
- CN
- China
- Prior art keywords
- execution sequence
- asynchronous system
- plan
- embedded pile
- sequence
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种异步系统的测试方法,包括如下步骤:在被测异步系统之中植入一个或多个植入桩;对所述被测异步系统进行测试,当所述被测异步系统执行至所述一个或多个植入桩中的一个时,对所述被测异步系统的逻辑时序进行录制;根据录制的所述被测异步系统的逻辑时序生成执行计划;以及根据所述执行计划对所述被测异步系统进行回放测试以生成测试报告。本发明还公开了一种异步系统的测试装置。本发明可以将具有随机性质的异步问题转化为同步时序,并增加测试的可控性和覆盖率,从而降低了问题复现和追踪的成本。
Description
技术领域
本发明涉及计算机测试技术领域,特别涉及一种异步系统的测试方法及测试装置。
背景技术
系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行被测系统的各种组装测试和确认测试。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。根据逻辑时序的同步和异步,被测系统可以分为同步系统和异步系统。异步系统具有不确定的时序,因此在进行时序调用时,不具有时序一致性。
传统的对异步系统的测试方式局限在被测系统外,通过高负载、高并发、增加输入复杂度,增加测试时间等手段,试图触发被测系统特定异步逻辑顺序的排列。该方法具有以下几个问题:
(1)通过反复操作并监控操作结果,尝试复现问题并捕获错误的方式,不能保证多次调用的时序一致性,无法稳定复现异步系统的问题。
(2)测试粒度较大,无法深入被测系统,不能保证对异步调用时序集的有效覆盖。
(3)需要构建施压辅助装置以及各类异构输入反复执行,测试效率较低。
发明内容
本发明的目的旨在至少解决上述技术缺陷。
为此,本发明的第一个目的在于提供一种异步系统的测试方法,该方法增加测试的可控性和覆盖率,降低问题复现和成追踪成本。本发明的第二个目的在于提供一种异步系统的测试装置。
为实现上述目的,本发明第一方面的实施例提供了一种异步系统的测试方法,包括如下步骤:在被测异步系统之中植入一个或多个植入桩;对所述被测异步系统进行测试,当所述被测异步系统执行至所述一个或多个植入桩中的一个时,对所述被测异步系统的逻辑时序进行录制;根据录制的所述被测异步系统的逻辑时序生成执行计划;以及根据所述执行计划对所述被测异步系统进行回放测试以生成测试报告。
根据本发明实施例提供的异步系统的测试方法,可以将具有随机性质的异步问题转化为同步时序,并增加测试的可控性和覆盖率,从而降低了问题复现和追踪的成本。
在本发明的一个实施例中,所述根据录制的被测异步系统执行的逻辑时序生成执行计划进一步包括:根据所述录制的逻辑时序生成逻辑时序的执行顺序组合;根据所述执行顺序组合生成所述执行计划,其中,所述执行计划包括阻塞计划和每个所述执行顺序组合对应的解除计划。
在本发明的一个实施例中,根据所述执行计划对被测异步系统进行回放测试以生成测试报告进一步包括:根据所述阻塞计划对所述执行顺序组合中包含的逻辑时序所对应的植入桩全部进行阻塞;获取所述执行计划中的第一执行顺序组合,并获取所述第一执行顺序组合所对应的解除计划;根据所述解除计划对已阻塞的植入桩依次解除阻塞;如果所述第一执行顺序组合执行完毕,则判断所述录制的逻辑时序以所述第一执行顺序执行。
在本发明的一个实施例中,还包括:如果所述第一执行顺序无法执行,则判断所述录制的逻辑时序不以所述第一执行顺序执行,并进一步获取所述执行计划中的第二执行顺序组合及对应的解除计划;以及根据第二执行顺序组合对应的解除计划对已阻塞的植入桩依次解除阻塞。
在本发明的一个实施例中,所述植入桩通过代码注入、挂载或拦截的方式加入至所述被测异步系统。
本发明第二方面的实施例提供了一种异步系统的测试装置,包括:植入桩模块,用于在被测异步系统之中植入一个或多个植入桩;录制模块,用于对所述被测异步系统进行测试,当所述被测异步系统执行至所述一个或多个植入桩中的一个时,对所述被测异步系统的逻辑时序进行录制;控制模块,用于根据录制的所述被测异步系统的逻辑时序生成执行计划;以及回放模块,用于根据所述执行计划对所述被测异步系统进行回放测试以生成测试报告。
根据本发明实施例的异步系统的测试装置,可以将具有随机性质的异步问题转化为同步时序,并增加测试的可控性和覆盖率,从而降低了问题复现和追踪的成本。
在本发明的一个实施例中,所述控制模块进一步包括:排序子模块,用于根据所述录制的逻辑时序生成逻辑时序的执行顺序组合;生成子模块,用于根据所述执行顺序组合生成所述执行计划,其中,所述执行计划包括阻塞计划和每个所述执行顺序组合对应的解除计划。
在本发明的一个实施例中,所述回放模块进一步包括:接收子模块,用于接收所述控制模块发送的执行计划;阻塞子模块,用于根据所述执行计划中的阻塞计划对所述执行顺序组合中包含的逻辑时序所对应的植入桩全部进行阻塞;解除子模块,用于获取所述执行计划中的第一执行顺序组合,并获取所述第一执行顺序组合所对应的解除计划,以及根据所述解除计划对已阻塞的植入桩依次解除阻塞;以及判断子模块,用于判断所述第一执行顺序组合是否执行完毕,如果所述第一执行顺序组合执行完毕,则判断所述录制的逻辑时序以所述第一执行顺序执行。
在本发明的一个实施例中,所述解除子模块还用于在所述判断子模块判断所述第一执行顺序无法执行时,进一步获取所述执行计划中的第二执行顺序组合及对应的解除计划,并根据第二执行顺序组合对应的解除计划对已阻塞的植入桩依次解除阻塞。
在本发明的一个实施例中,所述植入桩模块通过代码注入、挂载或拦截的方式将所述植入桩加入至所述被测异步系统。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1一种简单随机系统模型;
图2示出了一种多机异步系统模型;
图3根据本发明实施例的异步系统的测试方法的流程图;
图4为根据本发明实施例的录制过程的示意图;
图5为根据本发明实施例的录制过程的流程框图;
图6为根据本发明实施例的回访过程的示意图;
图7为根据本发明实施例的回访过程的流程框图;
图8为根据本发明实施例的异步系统的测试装置的结构框图;
图9为根据本发明实施例的控制模块的结构框图;以及
图10为根据本发明实施例的回放模块的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
异步系统具有不确定的时序,因此在进行时序调用时,不具有时序一致性。图1示出了一种简单随机系统模型,包括线程A和线程B。在该系统内,同一个进程内存在多线程竞争,从而导致时序不确定。从而,在系统启动后,以集合{A,B}的随机组合时序执行。图2示出了一种多机异步系统模型,该系统包括多个运行实例,上述多个运行示例可以部署在多个主机上。该系统包括进程A和进程B,进程间交互构成闭环,时序不确定。系统启动后,以集合{A1,A2,B1,B2}的随机组合时序执行。本发明提供了一种异步系统的测试方法,可以将上述异步系统作为被测系统,将被测系统的异步时序转换为同步时序,从而增加测试的可控性和覆盖率。
需要说明的是,图1和图2中的系统模型仅是出于示例的目的,而不是为了限制本发明。被测异步系统还可以为其他形式的系统结构。
下面参考图3至图7描述根据本发明实施例的异步系统的测试方法。
如图3所示,本发明实施例提供的异步系统的测试方法包括如下步骤:
步骤S101,在被测异步系统之中植入一个或多个植入桩。
在本发明的一个实施例中,植入桩可以设置在被测异步系统的某个功能点处,例如,植入桩可以设置在被测异步系统的关键功能处。此外,植入桩也可以植入到逻辑分支处。
在本发明的一个实施例中,植入桩可以通过代码注入、挂载或进程拦截等方式植入到被测异步系统中。
步骤S102,对被测异步系统进行测试。
当被测异步系统执行至一个或多个植入桩中的一个时,对被测异步系统的逻辑时序进行录制。具体地,植入桩会获取被测异步系统在此之前执行的功能的逻辑时序。需要说明的是,对于被测异步系统而言,在测试时并非每个功能或者每个逻辑分支都会进行测试。如果植入桩被触发,则可以发现对于该触发的植入桩的功能被测试数据运行,从而有利于测试。
在本发明的一个实施例中,一个逻辑时序对应一个植入桩。在本步骤中,可以记录各个功能被执行的逻辑时序,但是不能获知逻辑时序的执行顺序。换言之,通过上述录制过程,可以获知被测异步系统执行的功能,但不能获知各个功能的执行顺序。
步骤S103,根据录制的被测异步系统的逻辑时序生成执行计划。
首先,根据步骤S102中录制的逻辑时序生成逻辑时序的执行顺序组合。其中,逻辑时序的执行顺序组合可以为打乱顺序。具体的,对录制的逻辑时序进行排列组合,获得所有可能的执行顺序。例如:步骤S102中获得的逻辑时序包括A、B和C,其中,执行顺序组合包括:A→B→C、A→C→B、B→A→C、B→C→A、C→B→A和C→A→B。上述执行顺序组合覆盖了A、B和C的所有可能执行顺序。
然后,根据该执行顺序组合生成执行计划。其中,执行计划包括阻塞计划和与每个执行顺序组合对应的解除计划。
如果存在两个终端,则需要对两个终端上报的有效逻辑时序进行合并,并删除重复的逻辑时序。如果两个终端之间存在进程交互,则还需要考虑上述进程交互,从而才可以保证执行计划能够顺利执行。
步骤S104,根据执行计划对被测异步系统进行回放测试以生成测试报告。
回放测试是指根据阻塞计划和解除计划,对执行顺序组合中的每组执行顺序进行测试。
执行计划包括阻塞计划和每个执行顺序对应的解除计划。具体地,根据阻塞计划对执行顺序组合中包含的逻辑顺序所对应的植入桩全部进行阻塞。具体地,在步骤S103中已获知了执行顺序组合中包含的逻辑时序,相应的也就获知了执行顺序组合外的逻辑时序。阻塞计划是指对执行顺序组合中包含的逻辑时序所对应的植入桩全部进行阻塞,从而截留下所有植入桩的逻辑时序,而过滤掉未植入桩的逻辑时序。例如:被测异步系统包括逻辑时序A、B、C、D、E和F,其中,A、B和C为执行顺序组合的逻辑时序,D、E和F为不在执行顺序组合的逻辑时序。通过阻塞计划,可以过滤掉不在执行顺序组合中的逻辑时序D、E和F,而将执行顺序组合中的逻辑时序A、B和C进行阻塞。
然后,获取执行计划中的第一执行顺序组合,并获取上述第一执行顺序组合所对应的解除计划。
被测异步系统的正确的执行顺序可以为第一执行顺序。需要说明的是,第一执行顺序仅是为了与其他执行顺序进行区分而已。例如:被测异步系统的正确的执行顺序,即第一执行顺序为A→B→C,则A→C→B、B→A→C、B→C→A、C→B→A和C→A→B均为其他执行顺序。根据上述解除计划对已阻塞的植入桩依次解除阻塞。
第一执行顺序A→B→C对应的解除计划为首先解除逻辑时序A对应的植入桩,再解除逻辑时序B对应的植入桩,最后解除逻辑时序C对应的植入桩。在上述解除植入桩的同时,对被测异步系统进行回放测试,即测试该执行顺序组合在按照解除计划解除植入桩的同时,能否执行完成,如果可以执行完毕,则可以判断录制的逻辑时序以第一执行顺序执行,否则判断录制的逻辑时序不是以第一执行顺序执行。
例如:对于第一执行顺序A→B→C,依次解除逻辑时序A、B、C对应的植入桩,则A、B、C植入桩对应的功能处依次运行,从而按照第一执行顺序执行完毕,则可以判断录制的逻辑时序以第一执行顺序执行。
对于执行顺序A→C→B,按照第一执行顺序组合所对应的解除计划,依次解除逻辑时序A、B、C对应的植入桩,当解除逻辑时序A对应的植入桩,第一步可以继续运行。当解除逻辑时序B对应的植入桩,执行顺序A→C→B中第二步对应的逻辑时序为C,因此执行顺序A→C→B不能执行完毕,则可以判断录制的逻辑时序不以第一执行顺序执行。
对于执行顺序C→B→A,按照第一执行顺序组合所对应的解除计划,依次解除逻辑时序A、B、C对应的植入桩。当解除逻辑时序A对应的植入桩,执行顺序C→B→A中第一步对应的逻辑时序为C,因此执行顺序C→B→A不能执行完毕,则可以判断录制的逻辑时序不以第一执行顺序执行。
如果第一执行顺序组合无法执行,则进一步获取执行计划中的第二执行顺序组合和对应的解除计划。根据第二执行顺序组合对应的解除计划对已阻塞的植入桩依次解除阻塞。
举例而言,第二执行顺序组合可以为C→B→A,则第二执行顺序组合对应的解除计划为首选解除逻辑时序C对应的植入桩,再解除逻辑时序B对应的植入桩,最后解除逻辑时序A对应的植入桩。
例如:对于执行顺序C→B→A,按照第二执行顺序组合所对应的解除计划,依次解除逻辑时序C、B、A对应的植入桩,则C、B、A植入桩对应的功能处依次运行,从而按照第二执行顺序执行完毕,则可以判断录制的逻辑时序以第二执行顺序执行。
对于执行顺序C→B→A,按照第二执行顺序组合所对应的解除计划,依次解除逻辑时序A、B、C对应的植入桩,当解除逻辑时序A对应的植入桩,第一步可以继续运行。当解除逻辑时序B对应的植入桩,执行顺序A→C→B中第二步对应的逻辑时序为C,因此执行顺序A→C→B不能执行完毕,则可以判断录制的逻辑时序不以第一执行顺序执行。
可以理解的是,上述执行顺序组合不限于第一执行顺序组合和第二执行顺序组合,可以根据需要设置多个执行顺序组合及对应的解除计划,直至测试出被测异步系统正确的执行顺序。
在完成上述对被测异步系统进行回放测试之后,生成相应的测试报告。其中,测试报告包括以每个执行顺序组合进行测试的测试结果、是否为被测异步系统正确的测试顺序等。
图4示出了录制过程的执行流程。被测异步系统包括第一单机和第二单机。其中,第一单机中植入两个植入桩,第二单机中植入一个植入桩。第一单机和第二单机中的录制过程均可参考图5所示。
步骤S501,运行到植入位置。
首先,运行到植入桩的植入位置,获取植入桩对应的功能和逻辑时序。其中,植入位置可以为关键进程的所在位置。
如果在问题发生时,开启录制功能,则读取录制时序并尝试重放以前的问题,否则进行定位,同时录制时序。并通过分析代码并手工干涉时序生成可稳定复现问题的执行计划。此外,自动组合可能时序并批量执行,从而降低复现成本。
在程序响应的功能点埋桩,执行特定操作后手机录制的时序,分析并自动生成执行计划,再次迭代直到将潜在时序组合覆盖。
步骤S502,录制植入桩的逻辑时序。
第一植入桩录制第一单机在该第一植入桩植入位置之前的功能的逻辑时序。第二植入桩录制第一单机在该第二植入桩植入位置之前的功能的逻辑时序。第三植入桩录制第二单机在该第三植入桩植入位置之前的功能的逻辑时序。
步骤S503,上传录制的逻辑时序。
将上述各个植入桩录制的逻辑时序分别上传到控制模块。
步骤S504,对逻辑时序进行排序并归并。
控制模块对上述录制的第一单机和第二单机的逻辑时序进行排序和归并,得到逻辑时序的执行顺序组合,获得所有可能的执行顺序。
图6示出了回放测试过程。被测异步系统包括第一单机和第二单机。其中,第一单机中植入两个植入桩,第二单机中植入一个植入桩。第一单机和第二单机中的回放测试过程均可参考图7所示。
步骤S701,生成执行计划。
控制模块根据步骤S504中生存的执行顺序组合,自动生成相应的执行计划,再次迭代直至将潜在的所有时序组合均覆盖到。其中,执行计划包括阻塞计划和与执行顺序组合对应的解除计划。
步骤S702,对执行顺序组合中包含的逻辑时序的植入桩进行阻塞。
根据步骤S701中生存阻塞计划和解除计划,对执行顺序组合中的每组执行顺序进行测试。具体地,根据阻塞计划对执行顺序组合中包含的逻辑顺序所对应的第一植入桩、第二植入桩和第三植入桩全部进行阻塞,从而截留下第一至第三植入桩的逻辑时序,而过滤掉未植入桩的逻辑时序。
步骤S703,解除植入点阻塞。
根据步骤S701中生成的与执行顺序组合对应的解除计划,对阻塞的植入桩依次解除阻塞。
步骤S704,植入点继续运行。
植入点在被解除阻塞后,继续向下运行。例如:设执行顺序组合为B→C→A对应的解除计划为首先解除逻辑时序B对应的植入桩,再解除逻辑时序C对应的植入桩,最后解除逻辑时序A对应的植入桩。解除逻辑时序B对应的植入桩后,对应的植入点继续向下运行。以此类推,解除逻辑时序C对应的植入桩后,对应的植入点继续向下运行。解除逻辑时序A对应的植入桩后,对应的植入点继续向下运行。如果该执行顺序组合在按照上述解除计划解除植入桩的同时,可以执行完毕,则可以判断录制的逻辑时序以该执行顺序组合执行,否则判断录制的逻辑时序不是以该执行顺序组合执行,则需要重新设置新的解除计划,直至测试到正确执行顺序位置。然后根据上述测试过程,生成相应的测试报告以便测试人员对系统问题进行分析和处理。
根据本发明实施例的异步系统的测试方法,可以深入被测异步系统,对系统时序的录制和回放控制植入被测系统内,粒度精确到逻辑分支,保证对异步调用时序集的有效覆盖,提高了测试效率。此外,本发明实施例的异步系统的测试方法可以将具有随机性质的异步问题转化为同步时序,并增加测试的可控性和覆盖率,被测异步系统的主要逻辑时序在测试执行前被预先确认,消除随机性,若有缺陷将可稳定复现,实现了系统问题的稳定复现,并且降低了问题复现和追踪的成本。并且,本发明采用统一调度,可以支持多机多例复杂异步系统的时序控制。
下面参考图8至图10描述根据本发明实施例的异步系统的测试装置。
如图8所示,本发明实施例提供的异步系统的测试装置600包括植入桩模块610、录制模块620、控制模块630和回放模块640。其中,植入桩模块610用于在被测异步系统之中植入一个或多个植入桩,录制模块620用于对被测异步系统进行测试。当被测异步系统执行一个或多个植入桩中的一个时,对被测异步系统的逻辑时序进行录制。控制模块630用于根据录制的被测异步系统的逻辑时序生成执行计划。回放模块640用于根据执行计划对被测异步系统进行回放测试以生成测试报告。
植入桩模块610可以将植入桩设置在被测异步系统的某个功能点处,例如,植入桩可以设置在被测异步系统的关键功能处。此外,植入桩也可以植入到逻辑分支处。在本发明的一个实施例中,植入桩模块610可以通过代码注入、挂载或进程拦截等方式将植入桩植入到被测异步系统中。
当被测异步系统执行至一个或多个植入桩中的一个时,录制模块620对被测异步系统的逻辑时序进行录制。具体地,录制模块620会获取被测异步系统在此之前执行的功能的逻辑时序。需要说明的是,对于被测异步系统而言,在测试时并非每个功能或者每个逻辑分支都会进行测试。如果植入桩被触发,则可以发现对于该触发的植入桩的功能被测试数据运行,从而有利于测试。
在本发明的一个实施例中,一个逻辑时序对应一个植入桩。录制模块620可以记录各个功能被执行的逻辑时序,但是不能获知逻辑时序的执行顺序。换言之,录制模块620只可以获知被测异步系统执行的功能,但不能获知各个功能的执行顺序。
控制模块630根据录制的被测异步系统的逻辑时序生成执行计划。如图9所示,控制模块630进一步包括排序子模块631和生成子模块632。其中,排序子模块631用于根据录制的逻辑时序生成逻辑时序的执行顺序组合。生成子模块632用于根据执行顺序组合生成执行计划,其中,执行计划包括阻塞计划和每个执行顺序组合对应的解除计划。
具体而言,排序子模块631根据录制模块620录制的逻辑时序生成逻辑时序的执行顺序组合。其中,逻辑时序的执行顺序组合可以为打乱顺序。具体的,对录制的逻辑时序进行排列组合,获得所有可能的执行顺序。例如:录制模块620获得的逻辑时序包括A、B和C,其中,执行顺序组合包括:A→B→C、A→C→B、B→A→C、B→C→A、C→B→A和C→A→B。上述执行顺序组合覆盖了A、B和C的所有可能执行顺序。
生成子模块632根据排序子模块631排序得到的执行顺序组合生成执行计划。其中,执行计划包括阻塞计划和与每个执行顺序组合对应的解除计划。
如果存在两个终端,则需要对两个终端上报的有效逻辑时序进行合并,并删除重复的逻辑时序。如果两个终端之间存在进程交互,则还需要考虑上述进程交互,从而才可以保证执行计划能够顺利执行。
回放模块640根据控制模块630生成的执行计划对被测异步系统进行回放测试以生成测试报告。回放测试是指根据阻塞计划和解除计划,对执行顺序组合中的每组执行顺序进行测试。
如图10所示,回放模块640进一步包括接收子模块641、阻塞子模块642、解除子模块643和判断子模块644。其中,接收子模块641用于接收控制模块发送的执行计划,阻塞子模块642用于根据执行计划中的阻塞计划对执行顺序组合中包含的逻辑时序所对应的植入桩全部进行阻塞。解除子模块643用于获取执行计划中的第一执行顺序组合,并获取第一执行顺序组合所对应的解除计划,并根据解除计划对已阻塞的植入桩依次解除阻塞,判断子模块644用于判断第一执行顺序组合是否执行完毕,如果第一执行顺序组合执行完毕,则可以判断录制的逻辑时序以第一执行顺序执行。
具体地,接收子模块641接收控制模块630发送的执行计划,阻塞子模块642根据该执行计划中的阻塞计划对执行顺序组合中包含的逻辑顺序所对应的植入桩全部进行阻塞。换言之,阻塞子模块642对执行顺序组合中包含的逻辑时序所对应的植入桩全部进行阻塞,从而截留下所有植入桩的逻辑时序,而过滤掉未植入桩的逻辑时序。解除子模块643获取执行计划中的第一执行顺序组合,并获取上述第一执行顺序组合所对应的解除计划。
被测异步系统的正确的执行顺序可以为第一执行顺序。需要说明的是,第一执行顺序仅是为了与其他执行顺序进行区分而已。例如:被测异步系统的正确的执行顺序,即第一执行顺序为A→B→C,则A→C→B、B→A→C、B→C→A、C→B→A和C→A→B均为其他执行顺序。根据上述解除计划对已阻塞的植入桩依次解除阻塞。
第一执行顺序A→B→C对应的解除计划为首先解除逻辑时序A对应的植入桩,再解除逻辑时序B对应的植入桩,最后解除逻辑时序C对应的植入桩。判断子模块644判断以该第一执行顺序组合在按照解除计划解除植入桩的同时,能否执行完成,如果可以执行完毕,则可以判断录制的逻辑时序以第一执行顺序执行,否则判断录制的逻辑时序不是以第一执行顺序执行。
例如:对于第一执行顺序A→B→C,依次解除逻辑时序A、B、C对应的植入桩,则A、B、C植入桩对应的功能处依次运行,从而按照第一执行顺序执行完毕,则可以判断录制的逻辑时序以第一执行顺序执行。
对于执行顺序A→C→B,按照第一执行顺序组合所对应的解除计划,依次解除逻辑时序A、B、C对应的植入桩,当解除逻辑时序A对应的植入桩,第一步可以继续运行。当解除逻辑时序B对应的植入桩,执行顺序A→C→B中第二步对应的逻辑时序为C,因此执行顺序A→C→B不能执行完毕,则判断子模块644可以判断录制的逻辑时序不以第一执行顺序执行。
对于执行顺序C→B→A,按照第一执行顺序组合所对应的解除计划,依次解除逻辑时序A、B、C对应的植入桩。当解除逻辑时序A对应的植入桩,执行顺序C→B→A中第一步对应的逻辑时序为C,因此执行顺序C→B→A不能执行完毕,则可以判断子模块644判断录制的逻辑时序不以第一执行顺序执行。
在本发明的一个实施例中,如果第一执行顺序组合无法执行,解除子模块643还用于在判断子模块644判断第一执行顺序无法执行时,进一步获取执行计划中的第二执行顺序组合及对应的解除计划,并根据第二执行顺序组合对应的解除计划对已阻塞的植入桩依次解除阻塞。
可以理解的是,上述执行顺序组合不限于第一执行顺序组合和第二执行顺序组合,可以根据需要设置多个执行顺序组合及对应的解除计划,直至测试出被测异步系统正确的执行顺序。
回放模块640在完成上述对被测异步系统进行回放测试之后,生成相应的测试报告。其中,测试报告包括以每个执行顺序组合进行测试的测试结果、是否为被测异步系统正确的测试顺序等。
根据本发明实施例的异步系统的测试装置,可以深入被测异步系统,对系统时序的录制和回放控制植入被测系统内,粒度精确到逻辑分支,保证对异步调用时序集的有效覆盖,提高了测试效率。此外,本发明实施例的异步系统的测试装置可以将具有随机性质的异步问题转化为同步时序,并增加测试的可控性和覆盖率,被测异步系统的主要逻辑时序在测试执行前被预先确认,消除随机性,若有缺陷将可稳定复现,实现了系统问题的稳定复现,并且降低了问题复现和追踪的成本。并且,本发明采用统一调度,可以支持多机多例复杂异步系统的时序控制。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (8)
1.一种异步系统的测试方法,其特征在于,包括以下步骤:
在被测异步系统之中植入一个或多个植入桩;
对所述被测异步系统进行测试,当所述被测异步系统执行至所述一个或多个植入桩中的一个时,对所述被测异步系统的逻辑时序进行录制;
根据录制的所述被测异步系统的逻辑时序生成执行计划,其中,根据所述录制的逻辑时序生成逻辑时序的执行顺序组合;并根据所述执行顺序组合生成所述执行计划,其中,所述执行计划包括阻塞计划和每个所述执行顺序组合对应的解除计划;以及
根据所述执行计划对所述被测异步系统进行回放测试以生成测试报告。
2.如权利要求1所述的异步系统的测试方法,其特征在于,根据所述执行计划对所述被测异步系统进行回放测试以生成测试报告进一步包括:
根据所述阻塞计划对所述执行顺序组合中包含的逻辑时序所对应的植入桩全部进行阻塞;
获取所述执行计划中的第一执行顺序组合,并获取所述第一执行顺序组合所对应的解除计划;
根据所述解除计划对已阻塞的植入桩依次解除阻塞;
如果所述第一执行顺序组合执行完毕,则判断所述录制的逻辑时序以所述第一执行顺序执行。
3.如权利要求2所述的异步系统的测试方法,其特征在于,还包括:
如果所述第一执行顺序无法执行,则判断所述录制的逻辑时序不以所述第一执行顺序执行,并进一步获取所述执行计划中的第二执行顺序组合及对应的解除计划;以及
根据第二执行顺序组合对应的解除计划对已阻塞的植入桩依次解除阻塞。
4.如权利要求1所述的异步系统的测试方法,其特征在于,所述植入桩通过代码注入、挂载或拦截的方式加入至所述被测异步系统。
5.一种异步系统的测试装置,其特征在于,包括:
植入桩模块,用于在被测异步系统之中植入一个或多个植入桩;
录制模块,用于对所述被测异步系统进行测试,当所述被测异步系统执行至所述一个或多个植入桩中的一个时,对所述被测异步系统的逻辑时序进行录制;
控制模块,用于根据录制的所述被测异步系统的逻辑时序生成执行计划,其中,所述控制模块进一步包括:排序子模块,用于根据所述录制的逻辑时序生成逻辑时序的执行顺序组合;生成子模块,用于根据所述执行顺序组合生成所述执行计划,其中,所述执行计划包括阻塞计划和每个所述执行顺序组合对应的解除计划;以及
回放模块,用于根据所述执行计划对所述被测异步系统进行回放测试以生成测试报告。
6.如权利要求5所述的异步系统的测试装置,其特征在于,所述回放模块进一步包括:
接收子模块,用于接收所述控制模块发送的执行计划;
阻塞子模块,用于根据所述执行计划中的阻塞计划对所述执行顺序组合中包含的逻辑时序所对应的植入桩全部进行阻塞;
解除子模块,用于获取所述执行计划中的第一执行顺序组合,并获取所述第一执行顺序组合所对应的解除计划,以及根据所述解除计划对已阻塞的植入桩依次解除阻塞;以及
判断子模块,用于判断所述第一执行顺序组合是否执行完毕,如果所述第一执行顺序组合执行完毕,则判断所述录制的逻辑时序以所述第一执行顺序执行。
7.如权利要求6所述的异步系统的测试装置,其特征在于,所述解除子模块还用于在所述判断子模块判断所述第一执行顺序无法执行时,进一步获取所述执行计划中的第二执行顺序组合及对应的解除计划,并根据第二执行顺序组合对应的解除计划对已阻塞的植入桩依次解除阻塞。
8.如权利要求5所述的异步系统的测试装置,其特征在于,所述植入桩模块通过代码注入、挂载或拦截的方式将所述植入桩加入至所述被测异步系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210009242.8A CN103207829B (zh) | 2012-01-12 | 2012-01-12 | 异步系统的测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210009242.8A CN103207829B (zh) | 2012-01-12 | 2012-01-12 | 异步系统的测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103207829A CN103207829A (zh) | 2013-07-17 |
CN103207829B true CN103207829B (zh) | 2015-11-25 |
Family
ID=48755058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210009242.8A Active CN103207829B (zh) | 2012-01-12 | 2012-01-12 | 异步系统的测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103207829B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095062B (zh) * | 2014-05-09 | 2019-05-17 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及系统 |
CN108595331B (zh) * | 2018-04-24 | 2021-11-02 | 杭州网易智企科技有限公司 | 异步接口的测试方法、介质、装置和计算设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1123930A (zh) * | 1994-04-28 | 1996-06-05 | 东芝株式会社 | 支援并行程序设计的装置以及设计并行程序的方法 |
US6101524A (en) * | 1997-10-23 | 2000-08-08 | International Business Machines Corporation | Deterministic replay of multithreaded applications |
US6353924B1 (en) * | 1999-02-08 | 2002-03-05 | Incert Software Corporation | Method for back tracing program execution |
US6854108B1 (en) * | 2000-05-11 | 2005-02-08 | International Business Machines Corporation | Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors |
CN101620565A (zh) * | 2008-07-04 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的功能自动化测试方法 |
-
2012
- 2012-01-12 CN CN201210009242.8A patent/CN103207829B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1123930A (zh) * | 1994-04-28 | 1996-06-05 | 东芝株式会社 | 支援并行程序设计的装置以及设计并行程序的方法 |
US6101524A (en) * | 1997-10-23 | 2000-08-08 | International Business Machines Corporation | Deterministic replay of multithreaded applications |
US6353924B1 (en) * | 1999-02-08 | 2002-03-05 | Incert Software Corporation | Method for back tracing program execution |
US6854108B1 (en) * | 2000-05-11 | 2005-02-08 | International Business Machines Corporation | Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors |
CN101620565A (zh) * | 2008-07-04 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的功能自动化测试方法 |
Non-Patent Citations (1)
Title |
---|
"机群系统并行程序调试环境研究";刘建;《中国优秀博硕士学位论文全文数据库 (博士) 信息科技辑 2004年第02期》;20040615;第58-59页第4.2.3.1节和第4.2.3.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN103207829A (zh) | 2013-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102045191B (zh) | 一种系统升级后兼容性测试方法及设备 | |
CN103559081B (zh) | 移动终端工作模式的推荐方法、装置和移动终端 | |
CN102543226B (zh) | 优先级逻辑模块 | |
CN105868097B (zh) | 系统测试方法及其装置 | |
CN109062777A (zh) | 一种轨道交通信号设备通用自动化测试系统 | |
CN103207829B (zh) | 异步系统的测试方法及装置 | |
CN108062267A (zh) | 一种可配置寄存器文件自测试方法及生成装置 | |
CN105025141A (zh) | 终端用电量测试方法及其装置 | |
Karunanithi | Analysis of digital systems using a new measure of system diagnosis | |
CN110442752A (zh) | 组织架构图生成方法、装置、计算机设备和存储介质 | |
CN106202604A (zh) | 用于配置和重新配置部分重新配置区域的方法和装置 | |
CN110247796A (zh) | 监控告警方法、装置及相关设备 | |
CN106407102A (zh) | 应用程序的模糊测试方法、装置及系统 | |
CN110245077A (zh) | 一种程序异常的响应方法及设备 | |
CN105740087B (zh) | 利用查找表移位寄存器进行sram型fpga刷新效果验证的方法 | |
CN102045213B (zh) | 故障定位方法及装置 | |
CN109669669A (zh) | 误码生成方法及误码生成器 | |
CN105354381B (zh) | 基于重构的fpga多余度实现方法 | |
CN109522723A (zh) | Poc脚本生成方法、装置、电子设备及存储介质 | |
CN111061610B (zh) | 集群系统性能测试报告的生成方法、装置和计算机设备 | |
CN108733567A (zh) | 软件资源泄露情况的监测方法及系统 | |
CN104598171B (zh) | 基于元数据的阵列重建方法及装置 | |
CN106341469A (zh) | 树节点数据的加载方法和装置 | |
CN105844176B (zh) | 安全策略生成方法及设备 | |
CN104202548B (zh) | 一种nvr多线程管理的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |