CN101295280A - 自动化软件调测方法及系统 - Google Patents

自动化软件调测方法及系统 Download PDF

Info

Publication number
CN101295280A
CN101295280A CNA2008101151925A CN200810115192A CN101295280A CN 101295280 A CN101295280 A CN 101295280A CN A2008101151925 A CNA2008101151925 A CN A2008101151925A CN 200810115192 A CN200810115192 A CN 200810115192A CN 101295280 A CN101295280 A CN 101295280A
Authority
CN
China
Prior art keywords
message
module
client
test case
interface
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.)
Granted
Application number
CNA2008101151925A
Other languages
English (en)
Other versions
CN101295280B (zh
Inventor
陈亮锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN2008101151925A priority Critical patent/CN101295280B/zh
Publication of CN101295280A publication Critical patent/CN101295280A/zh
Application granted granted Critical
Publication of CN101295280B publication Critical patent/CN101295280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种自动化软件调测的方法和系统,尤其涉及一种能够自动生成测试用例并通过模拟器进行软件调测的方法和系统,本发明通过在进行消息交互的程序模块之间附加消息记录接口记录交互消息及系统消息,从而在程序运行过程中自动化形成测试用例,并通过模拟器读取并执行所存储的测试用例以进行自动化的现场恢复,从而很大程度上提高了程序调测的效率。

Description

自动化软件调测方法及系统
技术领域
本发明涉及软件调测技术,尤其涉及一种能够自动生成测试用例并通过模拟器自动恢复执行现场进行软件调测的方法及系统。
背景技术
当开发人员需要对初步完成的软件进行自测的时候,往往会根据用户使用系统的步骤,一步一步地验证系统是否按预计的方式运行,但这种测试方式比较繁琐,特别对于较大的、环节步骤较多的软件系统来说,要发现和解决一个缺陷(BUG)往往需要模拟很多次,在时间和精力上造成很大的浪费。
一些比较高级的自测方法可以对函数构建测试用例,然后通过测试用例对函数进行单元测试,然而,这种测试方法往往会因为类成员函数涉及了多个其他对象的数据而导致构建测试用例十分困难。例如,对于一个在函数体内部使用了成员变量以及依赖其他运行对象的函数来说,在构建该函数的测试用例时,不仅仅需要构建输入参数,而且还需要对其中的成员变量、所依赖的运行对象进行初始化。一个函数涉及的变量越多,构建起来会越复杂,需要花费很多时间和精力。
不仅如此,有时设计测试用例时往往会忽略一些比较隐晦的问题,例如忽略了某些边界值、忽略了其他模块的数据对当前测试模块的影响、忽略了某些特殊值导致的问题、忽略了网络状态不好的情况等,而当这些问题发生后使软件产生BUG时,开发人员却不能即时的将产生BUG的现场保存下来形成一个测试用例,用于以后对该BUG进行测试,如果要复现这个BUG又非常困难,给软件日后的使用造成隐患。此外,当测试用例很多的时候,测试人员对每个测试用例手工进行测试的效率很低,非常浪费时间的精力。
发明内容
有鉴于此,本发明的目的之一在于提供一种自动化软件调测方法及系统,以解决人工构建测试用例、人工模拟验证所带来的效率低下,自动化程度不高等技术问题。
为实现上述发明目的,本发明的主要技术方案为:
一种自动化软件调测系统,该系统包括程序模块以及如下模块:
消息接口模块,用于记录所述程序模块所执行的系统消息及测试数据,并生成测试用例;
用例存储单元,用于存储测试用例;
模拟器,用于根据测试用例模拟被调测程序模块的运行过程并恢复程序的执行现场;
所述消息接口模块将获取的所述程序模块所执行的系统消息及测试数据形成测试用例后存储于所述用例存储单元,所述模拟器读取存储在所述用例存储单元中的测试用例,自动恢复执行现场,并配合调试器对所述程序模块进行调测。
基于上述方案,当系统包括多个程序模块时,则所述消息接口模块置于两个程序模块之间,用于记录驱动所述程序模块的系统消息,以及所述程序模块之间的交互消息,并生成测试用例存储于所述用例存储单元;所述模拟器读取存储在所述用例存储单元中的测试用例,可分别对所述两个程序模块进行执行现场的恢复,并配合调试器所述程序模块进行调测。
基于上述方案,为了了解系统产生的断言信息,所述系统还进一步包括断言统计接口,用于获取所述程序模块产生的断言的位置及个数信息。
本发明针对客户服务器结构的软件系统,提出了如下技术方案:
所述程序模块包括客户端子程序模块和服务端子程序模块,分别位于客户端和服务端;所述消息接口模块包括客户端消息接口模块及服务端消息接口模块,分别位于客户端和服务端;所述用例存储单元包括客户端用例存储单元及服务端用例存储单元,分别位于客户端和服务端;所述模拟器包括客户端模拟器及服务端模拟器,分别位于客户端和服务端;
客户端网络接口模块,用于为所述客户端子程序模块提供与服务端进行网络消息交互的通讯接口;服务端网络接口模块,用于为所述服务端子子程序模块提供与客户端进行网络消息交互的通讯接口;所述客户端消息接口模块连接所述客户端子程序模块及所述客户端网络接口模块,获取与服务端的交互消息并形成测试用例,存储在客户端用例存储单元中;所述服务端消息接口模块连接所述服务端子程序模块及所述服务端网络接口模块,获取与客户端的交互消息并形成测试用例,存储在服务端用例存储单元中。
本发明的另一目的在于提供一种自动化软件调测方法,为实现该目的,本发明采用了如下的技术方案:
一种自动化软件调测方法,该方法包括以下步骤:
A、记录驱动程序运行的消息,并将其形成测试用例存储;
B、通过调用接口启动待调测的程序;
C、读取所述测试用例,并根据用户所选待调测消息位置通过调用接口自动恢复执行现场;
D、对所述待调测程序进行调测。
基于上述方案,若是对单程序进行测试,则所述消息包括系统消息及测试数据;若是对存在消息交互的多个程序中的程序进行测试,则所述消息包括系统消息及程序之间的交互消息。
基于上述方案,步骤B和步骤C中,所述接口为:组件对象模型COM接口、或普通函数接口,所述接口由所述程序或所述程序之间附加的消息接口提供。
基于上述方案,步骤C中所述自动恢复执行现场具体包括:
C1、选择待调测消息位置;
C2、按照所述交互消息及系统消息产生的时间顺序,通过模拟接口控制所述待调测程序自动运行到所述待调测消息位置。
基于上述方案,步骤A中还包括:使用系统钩子获取所述程序产生断言的位置及个数信息。步骤C和步骤D中,还进一步包括:获取所述待调测程序所产生的断言的位置及个数信息,在运行完测试用例后与在步骤A中所获得的所述断言的位置及个数信息进行比对,判断对所述待调测程序的修改是否正确。
基于上述方案,步骤A中,通过系统钩子获取在执行所述程序某函数之前的所有交互消息及系统消息,从而形成所述函数的测试用例。
由于本发明通过接口自动将程序模块间的交互消息、程序模块响应用户的系统消息记录下来形成测试用例,然后通过模拟器读取测试用例,根据测试用例中存储的交互消息、系统消息模拟程序模块的运行,执行自动的现场恢复,从而使得开发测试人员在对测试用例进行重复验证时省去了手工的重复劳动,提高了调测的效率。
本发明通过系统钩子对特定函数构建测试用例,能够在自动化的基础上更精确的定位程序BUG的位置,缩小调试范围。本发明通过系统钩子在构建测试用例时和调测时获取断言的位置和数量,从而可以为调测人员提供一个简单而直观的判断依据来判别对程序BUG修改的效果。
附图说明
图1A为本发明所述系统的第一具体实施例的系统结构图;
图1B为本发明第一具体实施例在调试状态下的系统结构图;
图1C为本发明第一具体实施例在调测状态下另一种系统结构图;
图2A为本发明所述系统的第二具体实施例的系统结构图;
图2B为本发明第二具体实施例在调试状态下的系统结构图;
图3A为本发明所述系统的第三具体实施例的系统结构图;
图3B为本发明第三具体实施例分别对客户端子程序模块及服务端子程序模块进行调试时系统结构图;
图3C为本发明第三具体实施例通过服务端模拟器对客户端子程序模块进行调试的系统结构图;
图4为本发明所述方法的流程图。
具体实施方式
下面通过具体实施例和附图对本发明做进一步详细说明。
图1A为本发明所述系统的第一具体实施例的系统结构图。第一程序模块与第二程序模块代表具有一定逻辑功能的程序模块,第一程序模块与第二程序模块在未添加实现自动化调测系统模块的情况下,直接通过组件对象模型(COM,Component Object Model)接口、标准网络通信协议接口等方式进行消息交互。
为了实现对程序模块的自动化的调测,本发明加入了消息接口模块、用例存储单元、模拟器三个部分,其中消息接口模块用于记录所述程序模块之间的交互消息并生成测试用例;用例存储单元,用于存储测试用例数据;模拟器,用于调用所述测试用例对所述程序模块进行调测。在测试用例的构建阶段,不需要模拟器的参与,但模拟器可分别对第一程序模块与第二程序模块进行调测。
图1B为本发明第一具体实施例在调测状态下的系统结构图,在调测状态下,模拟器读取存储在用例存储单元中的测试用例,并通过调用程序模块提供的用于消息交互的COM接口或非COM的普通函数接口模拟与其它程序模块间的消息交互,以自动进行执行现场的恢复,并配合调试器对待测试程序模块进行调测。图1C为本发明第一具体实施例在调测状态下另一种系统结构图,与图1B不同的是,此结构下,模拟器直接调用消息接口模块所提供的消息交互接口来进行模拟及进行执行现场的恢复。
对于对实时性要求不高的单程序模块,例如单机版棋牌类小游戏,来说,没有程序模块间的消息交互,要实现自动测试需通过消息接口模块记录驱动该程序模块运行的鼠标、键盘等系统消息以及程序模拟时需要的一些测试数据,开发人员需自己定义存储测试数据的事件,消息接口模块需提供测试数据存储接口供开发人员在认为需要测试的程序位置调用该接口函数以存储相关测试数据。开发人员在程序模块中需开放一个公用模拟接口给模拟器。当模拟器执行测试用例时,如果遇到存储相关测试数据,模拟器调用所述公用模拟接口,开发人员在公用模拟接口里根据存储的测试数据执行对应的模拟操作。多程序模块的技术方案相对于单程序模块技术方案而言,由于主要关注于程序模块间的消息交互接口,因此其实现复杂程度较低,实用性更强。
图2A为本发明所述系统的第二具体实施例的系统结构图,与所述系统的第一具体实施例相比,其增加了断言统计接口,用于捕获所述程序模块产生异常时触发的断言,并获取断言的位置及个数信息,断言统计接口可将断言的位置及个数信息附加到测试用例或其它文本文件里以便于以后的比对和了解BUG修改的经过,也可以不存储,只是输出显示在屏幕上告知调测人员即可。
图2B为本发明所述系统的第二具体实施例在调试状态下的系统结构图,在测试用例的构建状态和调试状态下分别通过断言统计接口获取被调测程序模块所产生断言的位置及个数信息,其目的在于进行前后比对,以判断对程序模块中BUG的修改的效果。
图3A为本发明所述系统第三具体实施例系统结构图,此具体实施例的特点在于包括客户端和服务端两个部分,客户端与服务端分别拥有自己的消息接口模块、用例存储单元及模拟器,客户端和服务端分别可包括多个实现不同功能的子程序模块,客户端各子程序模块通过客户端消息接口模块与客户端网络接口模块连接,客户端网络接口模块负责所有客户端子程序模块与服务端之间的消息交互;服务端各子程序模块通过服务端消息接口模块与服务端网络接口模块连接,服务端网络接口模块负责所有服务端子程序模块与客户端之间的消息交互,服务端各子程序模块通过服务端网络接口模块与客户端进行消息交互。
图3B为分别对客户端子程序模块及服务端子程序模块进行本端调试的系统结构图,服务端与客户端进行本端调测只需要从本端的用例存储单元中调用本端的测试用例即可。
图3C为进行远端调测的系统结构图,利用服务端模拟器调用服务端的测试用例对客户端子程序模块进行调测,同样地,也可以利用客户端模拟器调用客户端的测试用例来对服务端子程序进行调测。以服务端为例,服务端模拟器可通过远程COM接口启动客户端子程序模块,在分布式环境下,当测试用例包含多个客户端的交互消息时,服务端模拟器还可同时启动多个客户端上的多个子程序模块。
图4为本发明所述方法的具体实施例的流程图,以下结合附图对本发明所述方法的各步骤进行详细描述:
步骤A、在程序模块运行过程中,由消息接口模块记录驱动程序运行的消息,并将其存储形成测试用例;
此步骤为测试用例的构建步骤,为了构造一个测试用例,需要在原有系统的上附加一个或多个中间的调用接口,当用户在使用原有系统的过程中,通过中间接口记录程序模块间的网络消息及系统消息,对于单程序模块情况下,需记录用于模拟的测试数据及系统消息,从而创建相应的测试用例。例如要创建用户登录和退出的测试用例,则只需要使用带有消息接口模块客户端和服务端执行一下登录和退出的操作,即可生成相应的测试用例。
以图1A系统结构为例,程序模块之间通过COM接口相互通信,一般用于通信的接口数量比较少,所以只需要在原有程序模块的基础上做少量的修改,附加上消息接口模块的调用即可将程序模块之间的网络消息及系统消息保存为测试用例。
以图3A系统结构为例,对于客户服务器结构,测试用例的构建主要分为两部分:一个是基于客户端用例构建;另一个是基于服务端的用例构建。通常客户端子程序模块主要是通过网络消息及鼠标、键盘等输入设备产生的系统消息驱动的;服务端子程序模块主要通过网络消息驱动,因此,在进行系统使用的时候,可以在客户端子程序模块与客户端网络接口模块之间附加的消息接口模块中将网络消息及系统消息的触发时间和触发内容存储下来,形成一个事件驱动的客户端测试用例。也可以在服务端子程序模块与服务端网络接口模块之间附加的消息接口模块中将网络消息存储下来,形成一个服务端的测试用例。这样做的好处是通过保存事件的测试用例就可以保存开发人员进行自测时所执行过的所有函数的测试用例,以便以后随时对某个函数进行测试。更重要的是当开发人员在自测的时候遇到一个比较隐晦的问题时,实际上他已经保存了这个很难重现的必现用例,方便以后的调试和验证。
由于服务端是与各个客户端通讯的中心,保存服务端的网络消息作为测试用例时,实际上是保存了所有客户端的测试用例。客户端与其他客户端通讯的时候通常都需要经过服务端的验证和处理然后通过网络消息转发给其它客户端,当其它客户端收到该网络消息的时候才做相应的处理。而服务端也只有在收到通过客户端网络接口模块和服务端网络接口模块透明传输过来客户端的网络消息后才做相应的逻辑操作,因此保存服务端网络通信的用例可以恢复该用例情况下所有客户端和服务端的执行现场。
通常客户端子程序模块与客户端网络接口模块之间的用于通信的COM接口数量很少,因此只需要开发少数中间接口就可以将客户端子程序模块通过客户端网络接口模块公布的通信接口所传输的网络消息存储下来,而其它鼠标、键盘的输入设备产生的系统消息可通过另外的COM接口存储。为了实现输入时间和输入内容相绑定,可以使用如下的数据结构来储存这些消息:时间、模块标识、消息分类标识符、长度、内容。其中模块标识用于标识消息的发送者,消息分类标识符用于识别程序模块间的消息类型以及识别系统消息的类型,如鼠标、键盘消息等。在服务器端,由于服务端子程序模块与服务端网络接口模块是通过接口进行通讯的,而服务端子程序模块端不需要直接与客户端进行消息交互,因此基于服务端子程序模块构造测试用例只需要开发相应的接口来记录进入过某个接口的网络消息即可,消息记录格式可借用客户端的消息记录数据结构进行存储,只是消息分类标识符的作用有区别,服务端的消息分类标识符只是用来识别服务端网络接口模块调用服务端子程序模块的某一个接口。
步骤B、由模拟器通过接口启动待调测的程序模块;
此步骤开始进入对程序模块的调测状态,在调测开始之前需启动模拟器,由模拟器通过调用接口启动待调测的程序模块。
步骤C、由所述模拟器读取所述测试用例并根据用户所选的待调测消息位置自动恢复执行现场;
以图3A的系统结构为例,实际上,将客户端子程序模块接收到的网络消息、鼠标和键盘事件的触发时间和内容保存下来,形成测试用例,这个测试用例就已经保存了客户端子程序模块运行后所有函数的执行现场。通过执行测试用例,就可以恢复每个函数的执行现场,实现对某个函数的调试和验证。由于客户端已经保存了某轮测试中所有的网络消息,相当于模拟了客户端网络接口模块、服务端网络接口模块和服务端子程序模块的处理。因此,仅仅使用客户端的测试用例就可以完成对客户端的测试。同理,在进行服务端子程序模块的测试用例时,实际上已经模拟了所有客户端子程序模块、客户端网络接口模块和服务端网络接口模块的处理。因此,仅仅使用服务端子程序模块的测试用例也可以单独对服务端子程序模块进行测试。
通常所有客户端的网络消息都通过服务端子程序模块处理再转发,相当于服务端子程序模块是所有客户端的中心,客户端之间的数据通讯都需要通过服务端子程序模块。因此,在使用服务端子程序模块测试用例对服务端子程序模块进行测试的同时,也可以对客户端进行测试。
当保存了服务端子程序模块的测试用例后,服务端模拟器通过COM的方式将开发人员所关心的一个或多个客户端启动起来,将测试用例记录下来的数据形成一个向所有客户端或某个客户端发送的网络消息的列表,开发人员可通过选择窗口随机选择某条网络消息进行测试。在拥有多个客户端的情况下,开发人员可以先对客户端的进行选择,然后开发人员根据自己的需要选择某个网络事件,例如,是希望对服务端子程序模块还是对客户端的某个消息触发后进行测试,服务端模拟器会通过接口控制服务端子程序模块自动恢复到发生这个网络消息时的现场。这时,开发人员就可以直接使用集成开发调试环境,如VC或WinDBG等直接跟踪和测试。
自动恢复执行现场的步骤主要是,模拟器通过模拟接口将记录的网络消息顺序的执行到需要调试的某个网络消息或某个函数位置,这时发生某个网络消息或某个函数被调用的现场即被恢复。对于客户端或如图1A的简单系统结构来说还包括系统消息的按时间顺序的执行。通过模拟器自动恢复执行现场可以大大节省开发人员复现BUG的操作时间,提高调测效率。
步骤D、在调试器的配合下对所述待调测程序模块进行调测。
为了对程序模块中的BUG进行调试,需使用集成开发调试环境来配合进行,开发人员可将程序模块的源程序与其执行程序绑定,在所述程序模块的执行程序被启动之后,即可在集成开发调试环境中为程序设置端点。以VC(VisualStudio C++)为例,在编译的时候可生成pdb文件,然后可以用Windbg或VC将该pdb文件关联到该程序模块的执行程序上,这样就可以在代码中设置断点。
为了进一步缩小调试范围,本发明还可以使用系统钩子技术(API Hook)来记录测试用例执行过的函数。还可以将多个测试用例中相同的函数用例提取出来,形成函数的单元测试用例。即可以通过API函数枚举某个EXE或某个DLL的所有函数,使用钩子钩取开发人员关心的函数,记录当时已执行过的网络消息、系统消息,形成某个函数的测试用例。然后根据这个方法获取该函数的其他测试用例。当开发人员选择对某个函数进行测试的时候,该函数发生之前的所有的络消息、系统消息会被模拟器自动触发,从而恢复了进入该函数前的现场,使真实的环境得到模拟,最终形成了自动化的测试用例。
为了能够对在程序修改前后BUG的位置和数量进行比对,从而直观的获得修改效果,本发明还使用API Hook的技术,在测试用例的构建状态和调测状态下捕获软件系统运行时产生的断言。还可以作为以后对软件系统是否正常运行的验证用例。本系统主要统计了某个测试用例断言的个数和断言发生在程序的位置,在开发人对系统进行自测的时候,本系统就收集了系统发生断言的数据,并将其附加在测试用例里,当开发人员根据这些修改好BUG以后,就可以再运行一次已经记录好的测试用例来检查断言还有没有发生。甚至,当开发人员对系统做了某些方面的修改后,可能会产生新的错误,导致原有的测试用例发生断言,这时,只需要重新运行一次所有的测试用例就可以判断当前的修改有没有生成新的问题。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (12)

1、一种自动化软件调测系统,包括程序模块,其特征在于,该系统还包括:
消息接口模块,用于记录所述程序模块所执行的系统消息及测试数据,并生成测试用例;
用例存储单元,用于存储测试用例;
模拟器,用于根据测试用例模拟被调测程序模块的运行过程并恢复程序的执行现场;
所述消息接口模块将获取的所述程序模块所执行的系统消息及测试数据形成测试用例后存储于所述用例存储单元,所述模拟器读取存储在所述用例存储单元中的测试用例,自动恢复执行现场,并配合调试器对所述程序模块进行调测。
2、根据权利要求1所述的系统,其特征在于,包括多个程序模块,所述消息接口模块位于两个程序模块之间,用于记录驱动所述程序模块的系统消息,以及所述程序模块之间的交互消息,并生成测试用例存储于所述用例存储单元;所述模拟器读取存储在所述用例存储单元中的测试用例,可分别对所述两个程序模块进行执行现场的恢复,并配合调试器所述程序模块进行调测。
3、根据权利要求2所述的系统,其特征在于,所述系统还进一步包括断言统计接口,用于获取所述程序模块产生的断言的位置及个数信息。
4、根据权利要求3所述系统,其特征在于,所述系统采用客户服务器结构,
所述程序模块包括客户端子程序模块和服务端子程序模块,分别位于客户端和服务端;
所述消息接口模块包括客户端消息接口模块及服务端消息接口模块,分别位于客户端和服务端;
所述用例存储单元包括客户端用例存储单元及服务端用例存储单元,分别位于客户端和服务端;
所述模拟器包括客户端模拟器及服务端模拟器,分别位于客户端和服务端;
该系统还包括:
客户端网络接口模块,用于为所述客户端子程序模块提供与服务端进行网络消息交互的通讯接口;
服务端网络接口模块,用于为所述服务端子子程序模块提供与客户端进行网络消息交互的通讯接口;
所述客户端消息接口模块连接所述客户端子程序模块及所述客户端网络接口模块,获取与服务端的交互消息并形成测试用例,存储在客户端用例存储单元中;所述服务端消息接口模块连接所述服务端子程序模块及所述服务端网络接口模块,获取与客户端的交互消息并形成测试用例,存储在服务端用例存储单元中。
5、一种自动化软件调测方法,其特征在于,该方法包括以下步骤:
A、记录驱动程序运行的消息,并将其形成测试用例存储;
B、通过调用接口启动待调测的程序;
C、读取所述测试用例,并根据用户所选待调测消息位置通过调用接口自动恢复执行现场;
D、对所述待调测程序进行调测。
6、根据权利要求5所述的方法,其特征在于,步骤A中,若是对单程序进行测试,则所述消息包括系统消息及测试数据。
7、根据权利要求5所述的方法,其特征在于,步骤A中,若是对存在消息交互的多个程序中的程序进行测试,则所述消息包括系统消息及程序之间的交互消息。
8、根据权利要求5所述的方法,其特征在于,步骤B和步骤C中,所述接口为:组件对象模型COM接口、或普通函数接口,所述接口由所述程序或所述程序之间附加的消息接口提供。
9、根据权利要求7所述的方法,其特征在于,步骤C中所述自动恢复执行现场具体包括:
C1、选择待调测消息位置;
C2、按照所述交互消息及系统消息产生的时间顺序,通过模拟接口控制所述待调测程序自动运行到所述待调测消息位置。
10、根据权利要求5所述的方法,其特征在于,步骤A中还包括:使用系统钩子获取所述程序产生断言的位置及个数信息。
11、根据权利要求10所述的方法,其特征在于,步骤C和步骤D中,还进一步包括:获取所述待调测程序所产生的断言的位置及个数信息,在运行完测试用例后与在步骤A中所获得的所述断言的位置及个数信息进行比对,判断对所述待调测程序的修改是否正确。
12、根据权利要求7所述的方法,其特征在于,步骤A中,所述测试用例为函数的测试用例,通过系统钩子获取在执行所述程序某函数之前的所有交互消息及系统消息,形成所述函数的测试用例。
CN2008101151925A 2008-06-18 2008-06-18 自动化软件调测方法及系统 Active CN101295280B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101151925A CN101295280B (zh) 2008-06-18 2008-06-18 自动化软件调测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101151925A CN101295280B (zh) 2008-06-18 2008-06-18 自动化软件调测方法及系统

Publications (2)

Publication Number Publication Date
CN101295280A true CN101295280A (zh) 2008-10-29
CN101295280B CN101295280B (zh) 2010-12-01

Family

ID=40065573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101151925A Active CN101295280B (zh) 2008-06-18 2008-06-18 自动化软件调测方法及系统

Country Status (1)

Country Link
CN (1) CN101295280B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049374A (zh) * 2012-12-03 2013-04-17 瑞斯康达科技发展股份有限公司 一种自动化测试的方法及装置
CN103391559A (zh) * 2012-05-07 2013-11-13 腾讯科技(深圳)有限公司 测试交互数据的方法、模拟终端和系统
CN105260257A (zh) * 2015-11-12 2016-01-20 用友网络科技股份有限公司 解决程序运行期间停止响应的方法和装置
CN106126426A (zh) * 2016-07-04 2016-11-16 网易(杭州)网络有限公司 计算机软件的测试方法和装置
CN106776303A (zh) * 2016-12-02 2017-05-31 北京奇虎科技有限公司 调试信息的处理方法及装置
CN107404418A (zh) * 2017-07-26 2017-11-28 百度在线网络技术(北京)有限公司 互联网产品测试方法、装置、设备及存储介质
CN107426598A (zh) * 2017-03-02 2017-12-01 武汉斗鱼网络科技有限公司 一种弹幕信息处理方法及注入模块
CN107622013A (zh) * 2017-09-21 2018-01-23 北京东土科技股份有限公司 一种分布式系统测试方法及装置
CN109828924A (zh) * 2019-01-25 2019-05-31 网联清算有限公司 测试方法、装置和计算设备及介质
CN110928791A (zh) * 2019-11-27 2020-03-27 腾讯科技(深圳)有限公司 程序测试方法、装置、计算机设备和存储介质
CN111163067A (zh) * 2019-12-18 2020-05-15 支付宝(杭州)信息技术有限公司 一种安全测试方法、装置及电子设备
CN111176972A (zh) * 2018-11-12 2020-05-19 阿里巴巴集团控股有限公司 测试方法与系统
CN111367555A (zh) * 2020-03-23 2020-07-03 北京字节跳动网络技术有限公司 断言的方法、装置、电子设备及计算机可读介质
CN111813668A (zh) * 2020-06-30 2020-10-23 烽火通信科技股份有限公司 复盘软件程序执行过程的方法、存储介质、设备及系统
CN111899443A (zh) * 2020-08-13 2020-11-06 深圳大势智能科技有限公司 传统pos机在智能pos机上调试的方法及装置
CN113051155A (zh) * 2021-03-11 2021-06-29 中国信息通信研究院 一种自动化测试平台的控制系统和控制方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228165B (zh) * 2018-01-05 2021-02-02 武汉斗鱼网络科技有限公司 一种记录程序接口间调用信息的方法及电子设备

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103391559B (zh) * 2012-05-07 2018-04-13 腾讯科技(深圳)有限公司 测试交互数据的方法、模拟终端和系统
CN103391559A (zh) * 2012-05-07 2013-11-13 腾讯科技(深圳)有限公司 测试交互数据的方法、模拟终端和系统
CN103049374A (zh) * 2012-12-03 2013-04-17 瑞斯康达科技发展股份有限公司 一种自动化测试的方法及装置
CN105260257A (zh) * 2015-11-12 2016-01-20 用友网络科技股份有限公司 解决程序运行期间停止响应的方法和装置
CN105260257B (zh) * 2015-11-12 2019-03-26 用友网络科技股份有限公司 解决程序运行期间停止响应的方法和装置
CN106126426A (zh) * 2016-07-04 2016-11-16 网易(杭州)网络有限公司 计算机软件的测试方法和装置
CN106126426B (zh) * 2016-07-04 2018-09-11 网易(杭州)网络有限公司 计算机软件的测试方法和装置
CN106776303A (zh) * 2016-12-02 2017-05-31 北京奇虎科技有限公司 调试信息的处理方法及装置
CN107426598A (zh) * 2017-03-02 2017-12-01 武汉斗鱼网络科技有限公司 一种弹幕信息处理方法及注入模块
CN107426598B (zh) * 2017-03-02 2020-07-31 武汉斗鱼网络科技有限公司 一种弹幕信息处理方法及注入模块
CN107404418A (zh) * 2017-07-26 2017-11-28 百度在线网络技术(北京)有限公司 互联网产品测试方法、装置、设备及存储介质
CN107404418B (zh) * 2017-07-26 2020-12-11 百度在线网络技术(北京)有限公司 互联网产品测试方法、装置、设备及存储介质
CN107622013A (zh) * 2017-09-21 2018-01-23 北京东土科技股份有限公司 一种分布式系统测试方法及装置
CN107622013B (zh) * 2017-09-21 2020-07-14 北京东土科技股份有限公司 一种分布式系统测试方法及装置
CN111176972A (zh) * 2018-11-12 2020-05-19 阿里巴巴集团控股有限公司 测试方法与系统
CN109828924A (zh) * 2019-01-25 2019-05-31 网联清算有限公司 测试方法、装置和计算设备及介质
CN110928791A (zh) * 2019-11-27 2020-03-27 腾讯科技(深圳)有限公司 程序测试方法、装置、计算机设备和存储介质
CN111163067A (zh) * 2019-12-18 2020-05-15 支付宝(杭州)信息技术有限公司 一种安全测试方法、装置及电子设备
CN111163067B (zh) * 2019-12-18 2022-05-03 支付宝(杭州)信息技术有限公司 一种安全测试方法、装置及电子设备
CN111367555A (zh) * 2020-03-23 2020-07-03 北京字节跳动网络技术有限公司 断言的方法、装置、电子设备及计算机可读介质
CN111367555B (zh) * 2020-03-23 2023-08-08 抖音视界有限公司 断言的方法、装置、电子设备及计算机可读介质
CN111813668A (zh) * 2020-06-30 2020-10-23 烽火通信科技股份有限公司 复盘软件程序执行过程的方法、存储介质、设备及系统
CN111899443A (zh) * 2020-08-13 2020-11-06 深圳大势智能科技有限公司 传统pos机在智能pos机上调试的方法及装置
CN111899443B (zh) * 2020-08-13 2022-08-05 深圳大势智能科技有限公司 传统pos机在智能pos机上调试的方法及装置
CN113051155A (zh) * 2021-03-11 2021-06-29 中国信息通信研究院 一种自动化测试平台的控制系统和控制方法

Also Published As

Publication number Publication date
CN101295280B (zh) 2010-12-01

Similar Documents

Publication Publication Date Title
CN101295280B (zh) 自动化软件调测方法及系统
CN104461894B (zh) 安卓软件的操作录制装置和方法
CN102141962B (zh) 一种安全性分布式测试框架系统及其测试方法
US8584083B2 (en) Software application recreation
US20170337116A1 (en) Application testing on different device types
CN108388516B (zh) 可重构fpga软件的专用验证测试系统
US10162742B2 (en) System and method for end to end performance response time measurement based on graphic recognition
US10747656B2 (en) Systems and methods for mobile automation testing by emulating human behaviors
CN103744787A (zh) 一种手机自动化测试方法
CN102999419B (zh) 一种Android测试事件记录回放方法及装置
Hesenius et al. Automating UI tests for mobile applications with formal gesture descriptions
CN112882930B (zh) 自动化测试方法、装置、存储介质及电子设备
CN113259409A (zh) 一种应用于车联网场景测试的T-box仿真测试系统
CN109473121A (zh) 语音合成质量测试方法及装置
KR20090065144A (ko) 모바일 응용 소프트웨어의 그래픽 사용자 인터페이스테스트 시스템 및 방법
CN109101414B (zh) 基于埋点数据的海量ui测试生成方法及其装置
CN108228454A (zh) 一种基于环境故障注入的机电产品软件可靠性评价方法
Bouchet et al. Formal testing of multimodal interactive systems
KR102643598B1 (ko) 패턴 기반 SoS 내 실패 유발 상호작용 분석 방법 및 장치
CN111897582B (zh) 一体机以太网刷新方法、装置、存储介质及一体机设备
CN110413471A (zh) 一种fpga内部信号数据获取方法、系统
CN112015638A (zh) 一种自动化测试方法及系统
CN113973060A (zh) 一种物联网模拟方法、装置、系统及存储介质
CN116881174B (zh) 一种ecu应用软件闭环测试方法、装置、设备及存储介质
CN104820638A (zh) 一种嵌入式的整机自动测试方法

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160104

Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518057 floor 5-10 Nanshan District high tech Zone

Patentee after: Shenzhen Tencent Computer System Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.