CN104123219B - 测试软件的方法和设备 - Google Patents

测试软件的方法和设备 Download PDF

Info

Publication number
CN104123219B
CN104123219B CN201310154235.1A CN201310154235A CN104123219B CN 104123219 B CN104123219 B CN 104123219B CN 201310154235 A CN201310154235 A CN 201310154235A CN 104123219 B CN104123219 B CN 104123219B
Authority
CN
China
Prior art keywords
event
software
snapshot
test
test example
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.)
Expired - Fee Related
Application number
CN201310154235.1A
Other languages
English (en)
Other versions
CN104123219A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310154235.1A priority Critical patent/CN104123219B/zh
Priority to US14/263,704 priority patent/US9703694B2/en
Publication of CN104123219A publication Critical patent/CN104123219A/zh
Application granted granted Critical
Publication of CN104123219B publication Critical patent/CN104123219B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试软件的方法和设备。所述方法包括:监视在软件测试实例中是否发生预定义的事件;响应于发生预定义的事件,根据该事件的性质生成软件测试实例的不同类型的快照,所述快照用于记录发生所述预定义的事件时的软件测试实例的状态;以及在与所述预定义的事件相关的信息中存储所述不同类型的快照。通过所述设备和方法,测试者能够正确地监视并反馈测试结果,开发者能够迅速再现软件测试实例的状态,并且定位和修改软件中存在的缺陷,而管理者能够及时掌握测试进度,从而加快了“测试-发生事件-产生快照-定位和修复问题-测试”的测试流程,提高了测试效率。

Description

测试软件的方法和设备
技术领域
本发明涉及软件测试领域,更具体地涉及一种测试软件的方法和设备。
背景技术
在软件编写完成之后,为了确定软件的正确性和稳定性等,需要进行软件测试。在测试期间,测试者记录发生的各种问题(例如由于测试结果与预期结果不一致导致的各种异常以及各种严重或不严重的错误等),并且将这些问题报告给软件的管理者(例如项目经理)和开发者,使得管理者能够了解软件测试的进度和状态,并且开发者能够根据所述问题修改软件以消除其缺陷。
目前,测试者向管理者和开发者直接地口头报告所发现的问题,或者通过项目管理工具间接地书面报告所发现的问题。然而,在某些测试场景中,例如在诸如黑盒测试之类的复杂测试场景中,测试者对问题的描述可能并不全面和准确,使得管理者不能准确地掌握测试进度和状态,同时开发者也不能准确地了解所出现的问题并且再现该问题出现的场景,导致不能完美地修改软件以消除其中存在的缺陷。
发明内容
为了解决上述问题,本发明的一个目的是提供一种测试软件的方法和设备,其使得测试者能够准确地记录和反馈软件测试期间出现的问题以及出现该问题时的测试环境,从而开发者能够容易地了解和再现所述问题出现的场景以准确地消除软件中存在的缺陷。
根据本发明的一个方面,提供了一种测试软件的方法,包括:监视在软件测试实例中是否发生预定义的事件;响应于发生预定义的事件,根据该事件的性质生成软件测试实例的不同类型的快照,所述快照用于记录发生所述预定义的事件时的软件测试实例的状态;以及在与所述预定义的事件相关的信息中存储所述不同类型的快照。
根据本发明的另一个方面,提供了一种测试软件的设备,包括:监视装置,被配置为监视在软件测试实例中是否发生预定义的事件;快照装置,被配置为响应于发生预定义的事件,根据该事件的性质生成软件测试实例的不同类型的快照,所述快照用于记录发生所述预定义的事件时的软件测试实例的状态;以及存储装置,被配置为在与所述预定义的事件相关的信息中存储所述不同类型的快照。
利用根据本发明上述方面的方法和系统,在软件测试期间,当在软件测试实例中发生诸如异常或错误之类的事件时,根据该问题的性质(例如,严重性),产生软件测试实例的不同类型的快照,使得测试者可以准确地记录并反馈所述事件,由此开发者可以基于所述快照迅速地再现发生所述事件的场景,从而准确地定位并修复软件中存在的缺陷。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2示意性地示出了指导文件的内容。
图3是示出根据本发明实施例的测试软件的方法的流程图。
图4示出了管理者的交互界面(即,管理者视图)的示例。
图5示出了测试者的交互界面(即,测试者视图)的示例。
图6示出了开发者的交互界面(即,开发者视图)的示例。
图7示意性地示出当在软件测试期间发生某种事件时测试者与开发者的工作流程。
图8是示出根据本发明实施例的测试软件的设备的框图。
图9是示出图8所示的监视装置的详细结构的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种虚拟机,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可迁移的和不可迁移的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可迁移/不可迁移的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可迁移的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可迁移非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可迁移非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面,将参照附图来描述根据本发明实施例的测试软件的方法和设备。
在软件编写完成之后,可以在安装有操作系统的计算机(物理机或虚拟机)上测试该软件,以检验在软件中是否存在缺陷。如果在软件中存在缺陷,则在测试过程中会发生各种事件,例如异常、错误、或者其他类型的问题。在本发明的实施例中,可以响应于所述事件的发生而产生软件测试实例的不同类型的快照,并且将与该事件相关的信息以分级的方式显示在为软件的管理者、开发者和测试者三者中的至少两者提供的交互界面上,使得测试者能够准确地记录并反馈软件测试期间发生的问题,开发者能够根据该快照迅速地再现发生所述事件时的软件测试实例,从而修改软件以消除其中的缺陷,而管理者能够及时掌握测试进度,从而提高软件测试的效率。所述交互界面可以采用网页的形式,或者可以采用根据需要选择的任何其他形式。
软件的管理者负责组织对该软件的测试工作。具体地,管理者制定软件的测试计划,例如测试时间表等,并且指定测试时应当使用的测试用例。管理者可以通过其交互界面来输入软件测试计划,并且将测试任务分配给测试者和开发者。
管理者指定的测试用例描述了软件测试的测试目标、测试场景、测试步骤、预期测试结果等。在自动测试的情况下,可以通过例如解析引擎分析所述测试用例,以生成机器可读的指导文件以供计算机执行。通过解析引擎分析测试用例并且生成指导文件的方法是本领域公知的,在这里省略其描述。所生成的指导文件可以被部署到操作系统中,以便通过执行该指导文件来执行软件测试。在手动测试的情况下,可以不生成所述指导文件,而是由测试者手动执行所述测试步骤。在下文中,以自动测试的情况为例来描述本发明的实施例。
指导文件可以包含测试需要的信息。图2示意性地示出了指导文件的内容。如图2所示,指导文件可以包含测试步骤,即根据测试用例确定的在进行软件测试时需要遵循的步骤。由于软件可以包括多个模块,因此,指导文件还可以指定在软件测试时要调用的所述软件的一个或多个模块,以测试这些模块是否正确。相应地,指导文件可以指定对于每个模块期望获得的预期执行结果(预期值)。此外,指导文件还可以包括描述该指导文件的基本信息的属性信息,所述基本信息例如可以包括该指导文件的部署环境、版本信息等。
如图2所示,指导文件还可以定义一个或多个快照触发器(snapshot trigger),用于触发产生软件测试实例的一种或多种类型的快照的操作。具体地,每个快照触发器可以定义一个触发条件和相应类型的快照产生操作,使得当满足该触发条件时,通过调用该快照触发器,可以触发产生软件测试实例的对应类型的快照的操作。在本发明的实施例中,可以根据在测试期间发生的事件的性质来定义不同的快照触发器。例如,通过调用不同的触发器,对于具有第一性质的事件,可以产生软件测试实例的多个快照,而对于具有第二性质的事件,可以产生软件测试实例的单个快照。所述事件的性质可以包括事件的严重性、事件发生的次数以及所述事件本身的类型、或者所述事件的其他性质。例如,在所述事件的性质是事件的严重性的情况下,可以将事件的严重性分为三个等级:第一严重性等级(例如,严重)、第二严重性等级(例如,中等)和第三严重性等级(例如轻微)。相应地,可以在指导文件中定义两个快照触发器。第一个快照触发器以严重性达到第一严重性等级为触发条件,通过调用该快照触发器,可以对于第一严重性等级的事件,触发产生软件测试实例的多个快照的操作。第二个快照触发器以严重性达到第二严重性等级为触发条件,通过调用该快照触发器,可以对于第二严重性等级的事件,触发产生软件测试实例的单个快照的操作。对于轻微事件,可以不产生软件测试实例的快照,因此可以不定义快照触发器。例如,可以根据所发生的事件是否影响软件或模块功能的实现和/或是否影响执行结果的正确性来确定其严重性等级,其中,当所述事件不会影响所述功能的实现和执行结果的正确性时,可以将该事件确定为第三严重性等级,当所述事件不影响所述功能的实现但是会影响执行结果的正确时,可以将该事件确定为第二严重性等级,当所述事件会导致所述功能不能实现时,可以将该事件确定为第一严重性等级。在其他实施例中,确定事件的严重性等级的标准不限于上述标准,而是可以是根据实际需要选择的任何其他标准,此外,可以将事件的严重性分为更多或更少的等级,并且在指导文件中定义相应类型的快照触发器。所述快照产生操作的类型也不限于上文所述的两种类型,而是也可以是根据实际需要设定的其他类型,例如连续产生多个快照的操作和间歇地产生多个快照的操作等等。
测试者经由其交互界面接收管理者分配的任务,并且执行测试操作。具体地,测试者可以将要测试的软件安装在操作系统中,从而初始化一个测试实例。此时,可以拍摄该测试实例的快照,作为软件测试的起点。此时拍摄的快照记录了软件测试实例的当前状态,例如当前执行的软件测试步骤、软件/模块中的相关变量/参数的状态或值等。该快照可以采用根据实际需要选择的任何形式。例如,当在虚拟机上创建软件测试实例从而执行软件测试时,所述快照可以是数据文件,该数据文件可以包括指示拍摄该快照时执行的软件测试步骤的信息、以及此时运行所述软件测试实例的虚拟机的盘镜像文件等。在其他情况下,该快照也可以采用屏幕截图的形式,在该屏幕截图中记录指示软件测试实例的当前状态的信息。该快照可以被存储在快照库中。产生测试实例的快照的方法是本领域公知的,在这里不再赘述。如下文所述,可以通过快照装置来产生所述快照。
在完成准备工作之后,可以开始软件测试。下面,将参照图3来描述根据本发明实施例的测试软件的方法。如上文所述,以自动测试为例来描述该方法。
如图3所示,在步骤S301,监视在软件测试实例中是否发生预定义的事件。如上文所述,所述事件可以是异常、错误或者其他类型的事件,在下文中,以异常作为所述事件的示例。可以通过在被测试的软件中安装监视插件来执行这一监视操作,该监视插件基于编程语言框架,使得该插件可以独立于软件的模块。这样,可以在测试开始时将该插件安装到软件中以便在被激活时执行上述监视操作,而不需要修改软件本身的代码,并且在软件测试结束之后卸载该插件。
如上文所述,可以通过执行指导文件中给出的各个测试步骤来测试所述软件。在执行所述测试步骤期间,将调用在指导文件中指定的一个或多个模块,并且输出执行结果(实际执行结果)。可以通过分析所述实际执行结果来监视在软件测试实例中是否发生预定义的事件。
具体地,当根据测试步骤调用软件的某个模块时,该模块将执行测试步骤指定的操作,并且输出实际执行结果。可以接收该实际执行结果,并且将其与在指导文件中对于该模块指定的预期执行结果进行比较,以确定二者是否一致,从而监视在软件测试实例中发生的事件。如果实际执行结果与预期执行结果一致,则实际执行结果是正确的,即,没有发生“异常”事件。反之,如果实际执行结果与预期执行结果不一致,则该实际执行结果是错误的,即,在软件测试期间发生了“异常”事件。在这里,可以在实际执行结果与预期执行结果相同时,确定它们是一致的,否则确定它们不一致。可替换地,可以在实际执行结果相对于预期执行结果的偏差小于预定的可接受范围时,确定它们是一致的,否则确定它们不一致。
当确定发生“异常”事件时,可以记录与该事件相关联的软件的模块以及其中的类和/或函数以供以后使用。例如,如果在调用某个模块时发生“异常”事件,可以以消息的形式来记录该事件,该消息可以采用下表1所示的格式。
表1
在表1中,“事件名称”表示在调用所述模块时发生的事件的名称,“函数名称”表示与该事件相关联的所述模块的函数,“类名称”表示与该事件相关联的所述模块的类,“输入值”表示在调用该模块时对于该模块的输入值,“输出值”表示通过调用该模块获得的输出值,“结果”表示所述输出值与预期执行结果的比较结果。通过这样的消息,可以将所发生的“异常”事件与软件的各个组件(模块/类/函数)相关联。
然后,可以确定所发生的事件是否已经被预先记录在事件库中。具体地,可以将该事件与在事件库中预先存储的各个事件进行匹配,以确定该事件是否是在事件库中预定义的事件。事件库是例如由测试者预先建立的数据库,其存储在软件测试期间可能出现的各种类型的事件作为其条目。例如,在所述事件为“异常”的情况下,可以将该“异常”与事件库中预先存储的各种“异常”进行匹配,以确定该“异常”是否是预定义的“异常”。
如果在事件库中不存在与所发生的事件匹配的条目,则所发生的事件不是预定义的事件,在这种情况下,可以忽略该事件,或者可以将该事件记录在候选事件库中,然后将其选择性地添加到上述事件库中,以便在以后的测试中使用。如稍后详细描述的,可以通过自学习过程将所述事件选择性地添加到事件库中。
另一方面,如果在事件库中存在与所发生的事件匹配的条目,则可以确定所发生的事件是预定义的事件。接下来,在步骤S302,响应于发生该预定义的事件,根据该事件的性质而产生软件测试实例的不同类型的快照。所述快照用于记录发生所述预定义的事件时的软件测试实例的状态。
如上文所述,在本发明的实施例中,所述事件的性质可以包括事件的严重性、事件发生的次数以及所述事件本身的类型、或者所述事件的其他性质。例如,在所述事件的性质是事件的严重性的情况下,可以将事件的严重性分为三个等级:第一严重性等级(例如,严重)、第二严重性等级(例如,中等)和第三严重性等级(例如轻微)。划分严重性等级的标准可以根据实际需要灵活地设定。当确定发生预定义的事件时,可以根据所述标准确定该事件的严重性等级,然后根据该严重性等级,通过调用指导文件中的相应的快照触发器来产生软件测试实例的不同类型的快照。具体地,对于第一严重性等级的事件,可以执行第一类型的快照产生操作,例如产生对于软件测试实例的多个快照,例如在发生所述事件的时间点前后的多个时间点处的软件测试实例的多个快照。对于第二严重性等级的事件,可以执行第二类型的快照产生操作,例如产生对于软件测试实例的单个快照。对于第三严重性等级的事件,可以不执行快照产生操作。在这里,响应于发生预定义的事件而拍摄的快照可以采用根据实际需要选择的任何形式。例如,当所述软件测试实例在虚拟机上运行以执行软件测试时,所述快照可以是数据文件,该数据文件可以包括指示发生预定义的事件时执行的软件测试步骤的信息、以及发生预定义的事件时该虚拟机的盘镜像文件。在其他情况下,该快照可以采用屏幕截图的形式,在该屏幕截图中记录指示发生预定义的事件时软件测试实例的当前状态的信息。此外,所述严重性等级不限于上述三种,并且所执行的快照产生操作的类型也不限于上述两种。
这样,通过在发生预定义的事件(例如异常或错误)时产生软件测试实例的快照,可以及时准确地记录发生该事件时的软件测试实例的状态,例如正在执行的测试步骤、软件中的各函数/变量的状态或值等,使得开发者可以根据该快照迅速地恢复发生所述事件时的场景(即,软件测试实例的状态),从而定位和解决软件中的缺陷。此外,通过根据所发生的事件的性质产生不同类型的快照,可以使所产生的快照更充分地反映所述事件发生的背景。例如,当在软件测试过程中发生严重事件时,通过分析发生所述事件的时间点前后的多个时间点处的软件测试实例的多个快照,可以更清楚地了解该事件的整个发生过程,从而准确地定位和解决软件中存在的缺陷。
接下来,在步骤S303中,在与所述预定义的事件相关的信息中存储所述不同类型的快照。
在发生所述预定义的事件之后,可以存储与所述预定义的事件相关的信息,以便在适当的时候呈现给测试者、开发者和管理者。为此,可以在与所述预定义的事件相关的信息中存储所述不同类型的快照。除了所述快照以外,还可以在与所述预定义的事件相关的信息中存储根据需要选择的其他信息,例如指示发生了所述事件的信息、所述事件的内容、与所述事件相关联的软件的模块和代码等,例如稍后参照图4-6描述的信息。可以以多种方式存储所述预定义的事件相关的信息。例如,可以将该信息与所述快照相关联地存储在快照库中,或者可以将该信息存储在单独的数据库(例如事件库)中,而且,可以用任何适当格式的数据文件来存储该信息。
在本发明的实施例中,还可以以分级的方式,在软件的开发者、测试者和管理者三者中的至少两者的交互界面上显示与所述预定义的事件相关的信息。
具体地,如上文所述,可以为软件的开发者、测试者和管理者提供交互界面。当在步骤S301中检测到诸如异常、错误之类的事件的发生时,可以以分级的方式,在软件的开发者、测试者和管理者三者中的至少两者的交互界面上显示与所述预定义的事件相关的信息,即,根据三者的不同角色,将与所述预定义的事件相关的不同信息显示在软件的开发者、测试者和管理者的交互界面上,从而以分级的方式将所述事件报告给开发者、测试者和管理者。此外,随着软件测试的进行,还可以经由所述交互界面将测试进度可视化地呈现给管理者,使得管理者容易地掌握测试进度。
图4示出了管理者的交互界面的示例。在管理者的交互界面上,除了用于输入软件测试计划和分配测试任务的内容(未示出)以外,还可以显示管理者指定的各个测试用例的进度。如图4所示,在管理者的交互界面上,可以显示管理者指定的多个测试用例(在图4中示出4个)以及每个测试用例的测试步骤(在图4中,对于测试用例1-4,分别示出测试步骤1-n1、1-n2、1-n3和1-n4)。可以用直观的方式来显示所述测试用例及其操作步骤。在图4所示的示例中,用圆圈表示每个测试用例的测试步骤。在管理者的交互界面上,还可以以多种方式直观地显示测试的进度。在图4所示的示例中,可以用小圆圈表示已经完成的测试步骤,用大圆圈表示尚未完成的测试步骤。此外,可以用圆圈的颜色表示在执行测试步骤时是否出现问题。例如,当在执行某个测试步骤期间发生上文所述的事件时,可以将该测试步骤所对应的圆圈从白色改变为灰色(例如测试用例1的步骤3和测试用例3的步骤5),以便向管理者传达这一情况。此外,当一个测试用例的某个测试步骤的完成是执行另一测试用例的某个测试步骤的前提时,如果作为前提的测试步骤由于发生所述事件而未能完成,则除了将表示该测试步骤的圆圈改为灰色以外,还可以将表示所述另一测试用例的对应测试步骤的圆圈修改为灰色。在图4的示例中,由于测试用例2的测试步骤1的执行以测试用例1的测试步骤3的完成为前提,测试用例1的测试步骤4的执行以测试用例3的测试步骤5的完成为前提,而在测试用例1的测试步骤3和测试用例3的测试步骤5为由于发生了上述事件而未能完成,因此,测试用例2的测试步骤1和测试用例1的测试步骤4所对应的圆圈也呈现灰色。通过图4所示的交互界面,管理者可以容易地了解到已经完成测试的测试用例(测试用例4)、发生问题的测试用例(测试用例1-3)以及发生问题的具体测试步骤,从而从整体上掌握软件测试进度。应当注意,图4所示的交互界面只是示例性的,也可以采用任何其他形式的交互界面,只要该交互界面可以向管理者清楚地呈现上述信息即可。例如,可以采用除了圆圈以外的其他图形来表示测试步骤,并且可以用不同的颜色来表示测试步骤是否完成以及是否发生问题。
图5示出了测试者的交互界面的示例。如图5所示,在该交互界面上,除了图4所示的内容以外,可以显示更多与测试有关的内容。具体地,在测试者的交互界面上,还可以显示测试者负责的测试用例(“我的测试用例”)、所述测试用例对应的测试实例(“测试实例”)及其状态(“完成”)、基于测试实例进行测试期间发生的事件(“事件”)等等。此外,还可以在该交互界面上显示每个测试用例对应的指导文件(“指导文件”),使得测试者能够在必要时修改所述指导文件。例如,测试者可以通过稍后描述的自学习过程修改指导文件。通过显示这些信息,测试者可以了解他所负责的每个测试用例的进度,从而可以合理地安排他的工作,以免在不能执行的测试用例上浪费时间。
图6示出了开发者的交互界面的示例。如图6所示,在该交互界面上,可以显示在软件测试期间发生的事件(异常或错误)、发生所述事件的测试用例、该测试用例对应的指导文件和测试实例。此外,还可以在开发者的交互界面上显示与所述事件相关联的软件的模块以及该模块的代码。如在上文中参照表1所述,在发生所述事件时记录与该事件相关的信息,可以通过分析这些信息来确定并且显示与所述事件相关联的软件的模块,并且相应地显示所述模块的代码。也就是说,当发生所述事件时,与该事件相关的软件模块及其代码可以被自动地显示在开发者的交互界面上,使得开发者能够很容易地定位存在缺陷的模块和代码,从而提高其工作效率。
下面描述根据本发明实施例的自学习过程。如上文所述,当在步骤S301中确定所发生的事件不是预定义的事件时,可以将该事件记录在候选事件库中。然后,例如在测试完成之后,可以评估候选事件库中的事件,以便将所述事件选择性地添加到事件库中以供以后的测试使用,从而进行事件库的自学习。可以根据预定的标准来评估所述事件,以确定是否有必要将该事件添加到事件库中。所述标准可以是根据实际需要预先选择的任何适当的标准。例如,所述标准可以是该事件是否会影响软件功能的实现、或者该事件是否会导致软件无法运行等等。例如,如果该事件会影响软件功能的实现,则可以将该事件添加到事件库中,反之则可以忽略该事件。这样,在以后的测试中,当发生该事件时,可以执行对应的快照产生操作,以记录此时的软件测试实例的状态。
此外,还可以根据在测试期间发生的所述非预定义的事件来修改指导文件。如本领域所知,如果指导文件撰写不当,例如指导文件中的测试步骤设置不合理,可能会导致在软件测试期间发生诸如异常或错误之类的未预料到的事件(或问题)。因此,可以分析所发生的非预定义的事件,确定该事件发生的原因,如果该事件是由于指导文件不适当导致的,则可以修改指导文件。可以由测试者或开发者例如使用下文所述的提取装置进行这一修改。
在本发明的实施例中,测试者和开发者可以在软件测试期间更紧密地合作。图7示意性地示出了当在软件测试期间发生诸如异常或错误之类的事件时测试者与开发者的工作流程。
如图7所示,假设在使用测试用例3测试软件期间,在执行测试步骤5时发生“异常”事件。测试者将与该“异常”事件有关的信息以及发生该事件时的测试实例的快照经由测试者的交互界面发送给开发者。如上文所述,在必要时,测试者可以修改该测试用例的指导文件。开发者经由其交互界面接收测试者发送的上述信息和快照件,并且基于该信息和快照定位并修正软件中存在缺陷的模块(例如模块1和5),然后将修正后的测试实例返回给测试者,使得测试者基于该测试实例重新进行基于测试用例3的软件测试,以确认开发者是否确实消除了软件中的缺陷,并且向管理者报告测试结果。此外,在必要时,开发者也可以修改该测试用例的指导文件,并且将修改后的指导文件提供给测试者以用于软件测试。显然,通过这样的工作循环,测试者和开发者的工作流程可以被无缝地连接,从而使软件测试工作更高效。
此外,通过根据本发明实施例的方法,管理者可以更方便地控制软件测试进程和调整软件测试计划。如上文所述,管理者可以通过其交互界面制定软件测试计划,并且将测试任务分配给测试者,以开始软件测试。当发生诸如异常或错误之类的事件时,该事件可以通过例如嵌入软件中的监视插件而被迅速通知给管理者,使得管理者可以及时了解软件测试出现的问题,从而安排开发者处理该问题和/或调整测试计划。这种双向交互过程进一步提高了软件测试的效率。
这样,通过本发明的方法,软件的开发者、测试者和管理者被紧密地关联起来。具体地,由于在发生预定义的事件时产生软件测试实例的快照,并且将与该预定义的事件相关的信息以分级的方式呈现在开发者、测试者和管理者三者中的至少两者的视图上,因此,测试者能够正确地监视并反馈测试结果,开发者能够容易地定位和修改软件中存在的缺陷,而管理者能够及时掌握测试进度,从而加快了“测试-发生事件-产生快照-定位和修复问题-测试”的测试流程,提高了测试效率。在本发明的实施例中,还可以建立快照库,以便将初始化测试实例时产生的快照、以及在后续的软件测试过程中产生的快照或包括所述快照的、与所述预定义的事件相关的信息存储在快照库中。这样,在必要时,可以从快照库中取出相关的快照或与所述预定义的事件相关的信息,从而恢复相应的测试实例。此外,还可以建立测试实例库,以便将不同进度的测试实例保存在其中,例如,当某个测试者基于第一测试用例进行的软件测试通过之后,可以将此时的测试实例保存在测试实例库中。这样,当其他测试者使用以该第一测试用例为基础的第二测试用例测试软件时,可以从测试实例库中提取完成了第一测试用例的测试实例,并且在此测试用例的基础上继续测试所述软件,而不需要重新执行基于第一测试用例的软件测试,从而加快测试速度。
下面,将参照图8来描述根据本发明实施例的测试软件的设备。该设备可以执行上文所述的方法。
如图8所示,根据本发明实施例的测试软件的设备80可以包括显示装置81、监视装置82、快照装置83、存储装置84。优选地,设备80还可以包括提取装置85。
显示装置81可以分别向软件的管理者、测试者和开发者呈现上文所述的交互界面,使得这三者可以经由交互界面来彼此协作。
监视装置82监视在软件测试实例中是否发生预定义的事件。如上文所述,所述事件可以是异常、错误或者其他类型的事件。如上文所述,监视装置81可以被实现为监视插件,该监视插件基于编程语言框架,使得该插件可以独立于软件的模块,并且可以在软件开始时安装到软件中,以便在被激活时执行上述监视操作,或者可以被实现为独立于该软件并且监视该软件的运行的硬件。
图9示出了监视装置82的详细结构。如图9所示,监视装置82包括监视单元821和确定单元822。
监视单元821监视在软件测试实例中发生的事件,例如异常或错误等。
如上文所述,通过执行指导文件中给出的各个测试步骤来测试所述软件。在执行所述测试步骤期间,将调用在指导文件中指定的模块,并且输出实际执行结果。监视单元821可以接收通过所述模块获得的实际执行结果,并且将其与在指导文件中对于该模块指定的预期执行结果进行比较,以确定二者是否一致。如果实际执行结果与预期执行结果一致,则监视单元821可以确定没有发生所述事件。反之,如果实际执行结果与预期执行结果不一致,则监视单元821可以确定在软件测试期间发生了所述事件。如上文所述,可以在实际执行结果与预期执行结果相同时,或者在实际执行结果相对于预期执行结果的偏差小于预定的可接受范围时,确定它们是一致的。
确定单元822确定监视单元821检测到的事件是否已经被预先记录在事件库中,并且响应于确定该事件已经被预先记录在事件库中,将所述事件确定为预定义的事件。具体地,确定单元821可以将该事件与在事件库中预先存储的各个事件进行匹配,以确定该事件是否是在事件库中预定义的事件。如果在事件库中不存在与所发生的事件匹配的条目,则确定单元822可以确定所发生的事件不是预定义的事件。在这种情况下,可以忽略该事件,或者可以将该事件记录在候选事件库中,然后将其选择性地添加到上述事件库中,以便在以后的测试中使用。另一方面,如果在事件库中存在与所发生的事件匹配的条目,则确定单元822可以确定所发生的事件是预定义的事件。
快照装置83响应于发生预定义的事件,根据该事件的性质而产生软件测试实例的不同类型的快照。所述快照用于记录发生所述预定义的事件时的软件测试实例的状态。
如上文所述,在本发明的实施例中,所述事件的性质可以包括事件的严重性、事件发生的次数、所述事件本身的类型、或者所述事件的其他性质。相应地,快照装置83对于具有第一性质的事件,可以产生软件测试实例的多个快照,而对于具有第二性质的事件,可以产生软件测试实例的单个快照。例如,在所述事件的性质是事件的严重性的情况下,可以将事件的严重性分为三个等级:第一严重性等级(例如,严重)、第二严重性等级(例如,中等)和第三严重性等级(例如轻微)。划分严重性等级的标准可以根据实际需要灵活地设定。当确定发生预定义的事件时,监视装置82可以根据所述标准确定该事件的严重性等级。然后,快照装置83根据该严重性等级,通过调用指导文件中的相应的快照触发器来产生软件测试实例的不同类型的快照。具体地,对于第一严重性等级的事件,快照装置83可以执行第一类型的快照产生操作,例如产生对于软件测试实例的多个快照(例如在发生所述事件的时间点前后的多个时间点处的软件测试实例的多个快照)。对于第二严重性等级的事件,快照装置83可以执行第二类型的快照产生操作,例如产生对于软件测试实例的单个快照。对于第三严重性等级的事件,快照装置83可以不执行快照产生操作。如上文所述,所述快照可以采用根据实际需要选择的任何形式,在这里不再赘述。此外,所述严重性等级不限于上述三种,并且所执行的快照产生操作的类型也不限于上述两种。
这样,通过在发生预定义的事件(例如异常或错误)时使用快照装置产生软件测试实例的快照,可以记录发生该事件时的软件测试实例的状态,使得开发者可以根据该快照迅速地恢复发生所述事件时的场景,从而定位和解决软件中的缺陷。此外,如上文所述,通过根据所发生的事件的性质产生不同类型的快照产生,可以使所产生的快照充分地反映所述事件发生的背景,使得开发者能够更准确地定位和解决软件中存在的缺陷。
在产生所述不同类型的快照之后,存储装置84可以在与所述预定义的事件相关的信息中存储所述不同类型的快照。如上文所述,除了所述不同类型的快照以外,存储装置84还可以在与所述预定义的事件相关的信息中存储根据需要选择的其他信息,例如指示发生了所述事件的信息、所述事件的内容、与所述事件相关联的软件的模块和代码等,例如在上文中参照图4-6描述的信息。存储装置84可以以多种方式存储所述预定义的事件相关的信息。例如,存储装置84可以将该信息与所述快照相关联地存储在快照库中,或者可以将该信息存储在单独的数据库(例如事件库)中,而且,存储装置84可以用任何适当格式的数据文件来存储该信息。
此外,在发生所述预定义的事件之后,显示装置81还可以以分级的方式在管理者、测试者和开发者三者中的至少两者的交互界面(视图)上显示与所述预定义的事件相关的信息。这样,管理者、测试者和开发者能够及时了解软件测试中出现的问题并获取自己所需的信息,然后根据自己的角色而执行不同的操作。显示装置81显示的交互界面以及在该交互界面上显示内容与上文所述相同,在这里不再赘述。
提取装置85可以执行自学习过程。具体地,当监视装置82确定所发生的事件不是预定义的事件时,可以将该事件记录在候选事件库中。在测试完成之后,测试者可以评估候选事件库中的事件。提取装置85可以根据测试者的评估结果,从候选事件库中选择性地提取事件以便将其添加到事件库中,以供以后的测试使用。这样,在以后的测试中,该事件成为预定义的事件,并且当发生该事件时,可以执行对应的快照产生操作,以记录软件测试实例的状态。
提取装置85还可以用于根据在测试期间发生的所述非预定义的事件来修改指导文件。提取装置85可以根据测试者或开发者的指令,按照上文所述的方式来执行这一修改,在这里不再赘述。
利用根据本发明实施例的测试软件的设备,可以在软件测试实例中发生诸如异常或错误之类的事件时,根据该问题的性质,产生软件测试实例的不同类型的快照,并且将软件测试实例的当前状态显示在管理者、测试者和开发者的视图上,使得测试者能够正确地监视并反馈测试结果,开发者可以基于所述快照迅速地再现发生所述事件的场景,从而准确地定位并修复软件中存在的缺陷,而管理者可以及时掌握测试进度,并且根据该事件对测试进程的影响而调整软件测试计划,从而优化测试流程。由此,加快了“测试-发生事件-产生快照-定位和修复问题-测试”的测试流程,提高了测试效率。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种测试软件的方法,包括:
监视在软件测试实例中是否发生预定义的事件;
响应于发生预定义的事件,根据该事件的性质生成软件测试实例的不同类型的快照,所述快照用于记录发生所述预定义的事件时的软件测试实例的状态;以及
在与所述预定义的事件相关的信息中存储所述不同类型的快照;
以分级的方式在软件的开发者、测试者和管理者三者中的至少两者的交互界面上显示与所述预定义事件相关的信息。
2.如权利要求1所述的方法,其中,监视在软件测试实例中是否发生预定义的事件包括:
监视在软件测试实例中发生的事件;
确定该事件是否已经被预先记录在事件库中;以及
响应于确定该事件已经被预先记录在事件库中,将所述事件确定为预定义的事件。
3.如权利要求2所述的方法,还包括:
响应于确定该事件没有被预先记录在事件库中,将该事件确定为非预定义的事件,并且将该非预定义的事件选择性地添加到事件库中。
4.如权利要求3所述的方法,还包括:根据所述非预定义的事件修改用于测试该软件的指导文件。
5.如权利要求1所述的方法,其中所述事件是在软件测试实例中发生的异常或错误。
6.如权利要求1所述的方法,其中,所述事件的性质包括事件的严重性、事件发生的次数以及所述事件本身的类型中的至少一个,并且其中,所述响应于发生预定义的事件,根据该事件的性质生成软件测试实例的不同类型的快照包括:
对于具有定义的第一性质的事件,产生软件测试实例的多个快照,以及
对于具有定义的第二性质的事件,产生软件测试实例的单个快照。
7.一种测试软件的设备,包括:
监视装置,被配置为监视在软件测试实例中是否发生预定义的事件;
快照装置,被配置为响应于发生预定义的事件,根据该事件的性质生成软件测试实例的不同类型的快照,所述快照用于记录发生所述预定义的事件时的软件测试实例的状态;
存储装置,被配置为在与所述预定义的事件相关的信息中存储所述不同类型的快照;以及
显示装置,以分级的方式在软件的开发者、测试者和管理者三者中的至少两者的交互界面上显示与所述预定义事件相关的信息。
8.如权利要求7所述的设备,其中,所述监视装置包括:
监视单元,被配置为监视在软件测试实例中发生的事件;以及
确定单元,被配置为确定该事件是否已经被预先记录在事件库中,并且
响应于确定该事件已经被预先记录在事件库中,将所述事件确定为预定义的事件。
9.如权利要求8所述的设备,其中,所述确定单元响应于确定该事件没有被预先记录在事件库中,将所述事件确定为非预定义的事件,并且其中,
所述设备还包括:提取装置,被配置为响应于确定该事件没有被预先记录在事件库中而被确定为非预定义的事件,并且将该非预定义的事件选择性地添加到事件库中。
10.如权利要求9所述的设备,其中,所述提取装置还被配置为根据所述非预定义的事件修改用于测试该软件的指导文件。
11.如权利要求7所述的设备,其中所述事件是在软件测试实例中发生的异常或错误。
12.如权利要求7所述的设备,其中,所述事件的性质包括事件的严重性、事件发生的次数以及所述事件本身的类型中的至少一个,并且其中,所述快照装置对于具有定义的第一性质的事件,产生软件测试实例的多个快照,并且对于具有定义的第二性质的事件,产生软件测试实例的单个快照。
CN201310154235.1A 2013-04-28 2013-04-28 测试软件的方法和设备 Expired - Fee Related CN104123219B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310154235.1A CN104123219B (zh) 2013-04-28 2013-04-28 测试软件的方法和设备
US14/263,704 US9703694B2 (en) 2013-04-28 2014-04-28 Techniques for testing software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310154235.1A CN104123219B (zh) 2013-04-28 2013-04-28 测试软件的方法和设备

Publications (2)

Publication Number Publication Date
CN104123219A CN104123219A (zh) 2014-10-29
CN104123219B true CN104123219B (zh) 2017-05-24

Family

ID=51768639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310154235.1A Expired - Fee Related CN104123219B (zh) 2013-04-28 2013-04-28 测试软件的方法和设备

Country Status (2)

Country Link
US (1) US9703694B2 (zh)
CN (1) CN104123219B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9772933B1 (en) * 2012-12-20 2017-09-26 Amdocs Software Systems Limited Software solution framework system, method, and computer program for allowing interaction with business and technical aspects of a software application and for allowing testing of the software application
US10031836B2 (en) * 2014-06-16 2018-07-24 Ca, Inc. Systems and methods for automatically generating message prototypes for accurate and efficient opaque service emulation
US20150370691A1 (en) * 2014-06-18 2015-12-24 EINFOCHIPS Inc System testing of software programs executing on modular frameworks
US10089217B2 (en) * 2014-09-23 2018-10-02 Red Hat, Inc. Identification of software test cases
US9600505B2 (en) * 2014-09-23 2017-03-21 Sap Se Code optimization based on customer logs
CN105701002B (zh) * 2014-11-26 2019-02-12 阿里巴巴集团控股有限公司 一种基于测试的执行路径的记录方法和装置
US9513948B2 (en) * 2015-02-05 2016-12-06 International Business Machines Corporation Automated virtual machine provisioning based on defect state
US9959197B2 (en) * 2015-08-31 2018-05-01 Vmware, Inc. Automated bug detection with virtual machine forking
GB2542370B (en) 2015-09-16 2020-05-27 Arm Ip Ltd A system for monitoring a plurality of distributed devices
CN105117346A (zh) * 2015-09-24 2015-12-02 上海爱数软件有限公司 虚拟化平台的分布式系统自动化测试方法及系统
CN105389252B (zh) * 2015-10-16 2018-04-10 华为技术有限公司 反馈测试问题的方法及装置
CN105447102B (zh) * 2015-11-12 2019-06-14 中国科学院软件研究所 基于数据驱动的开源操作系统威胁状态可视化系统与方法
US11188449B2 (en) * 2016-05-31 2021-11-30 Red Hat, Inc. Automated exception resolution during a software development session based on previous exception encounters
WO2018060777A1 (en) * 2016-09-29 2018-04-05 Yokogawa Electric Corporation Method and system for optimizing software testing
US11216342B2 (en) * 2016-12-12 2022-01-04 Usablenet Inc. Methods for improved auditing of web sites and devices thereof
CN106776341A (zh) * 2016-12-30 2017-05-31 上海亿账通互联网科技有限公司 客户端程序的测试错误定位方法及装置
US10929573B2 (en) * 2017-03-21 2021-02-23 The Boeing Company Systems and methods for designing and modeling products in a cloud environment
US10908926B2 (en) * 2017-09-09 2021-02-02 Box, Inc. Plug-in management wrappers
US11360939B2 (en) * 2018-05-22 2022-06-14 International Business Machines Corporation Testing of file system events triggered by file access
US10496530B1 (en) * 2018-06-06 2019-12-03 Sap Se Regression testing of cloud-based services
US10585779B2 (en) * 2018-07-30 2020-03-10 General Electric Company Systems and methods of requirements chaining and applications thereof
CN109995948A (zh) * 2018-12-06 2019-07-09 平安科技(深圳)有限公司 基于测试工具的提示音的测试方法、装置、计算机设备
CN110489329A (zh) * 2019-07-12 2019-11-22 平安普惠企业管理有限公司 一种测试报告的输出方法、装置及终端设备
CN112306856A (zh) * 2019-08-02 2021-02-02 北京字节跳动网络技术有限公司 用于采集应用缺陷信息的方法、装置及电子设备
US11218398B2 (en) * 2019-10-29 2022-01-04 Amdocs Development Limited System, method, and computer program for closed loop management of a network
CN111159014B (zh) * 2019-12-13 2022-05-06 平安医疗健康管理股份有限公司 探索性测试的响应方法及装置、计算机设备、存储介质
CN111190791A (zh) * 2019-12-20 2020-05-22 北京你财富计算机科技有限公司 应用异常上报方法、装置和电子设备
US11500763B1 (en) * 2020-03-26 2022-11-15 Amazon Technologies, Inc. Distributed canary testing with test artifact caching
US11249890B2 (en) 2020-06-24 2022-02-15 Webomates LLC Software defect creation
US20220138692A1 (en) * 2020-10-29 2022-05-05 Medecision, Inc. System and method for virtual project visits
CN113672514A (zh) * 2021-08-24 2021-11-19 平安国际智慧城市科技股份有限公司 测试方法、装置、服务器及存储介质
CN115422092B (zh) * 2022-11-03 2023-02-07 杭州金衡和信息科技有限公司 一种基于多方法融合的软件bug定位方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792802B1 (en) * 2007-03-02 2010-09-07 3Par, Inc. Archiving logs with snapshots for data recovery
TW201224788A (en) * 2010-12-15 2012-06-16 Hon Hai Prec Ind Co Ltd System and method for optimizing reports
CN102799522A (zh) * 2012-06-28 2012-11-28 浪潮(北京)电子信息产业有限公司 一种软件版本追溯测试的管理方法和系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060174170A1 (en) * 2005-01-28 2006-08-03 Peter Garland Integrated reporting of data
US7694181B2 (en) 2005-12-12 2010-04-06 Archivas, Inc. Automated software testing framework
KR20070078862A (ko) * 2006-01-31 2007-08-03 삼성전자주식회사 오류 처리 가능한 이종 기기간 상호 연동 방법 및 이를이용한 네트워크 장치
US7882495B2 (en) * 2007-06-14 2011-02-01 Microsoft Corporation Bounded program failure analysis and correction
US8347147B2 (en) 2009-03-09 2013-01-01 Wipro Limited Lifecycle management of automated testing
US9529694B2 (en) * 2009-09-14 2016-12-27 Oracle International Corporation Techniques for adaptive trace logging
US8966447B2 (en) * 2010-06-21 2015-02-24 Apple Inc. Capturing and displaying state of automated user-level testing of a graphical user interface application
US8578340B1 (en) * 2010-09-24 2013-11-05 Ca, Inc. Recording and replaying computer program execution with recorded execution event breakpoints
EP2503450A3 (en) 2011-03-25 2012-10-31 Unisys Corporation Version numbering in single development and test environment
US10521805B2 (en) * 2011-06-15 2019-12-31 Waters Technologies Corporation Techniques for qualification and maintenance of scientific information system devices
US9053233B2 (en) * 2011-08-15 2015-06-09 Freescale Semiconductor, Inc. Method and device for controlling debug event resources
US20130061201A1 (en) * 2011-09-05 2013-03-07 Infosys Limited System and method for determining defect trends
US20130297603A1 (en) * 2012-05-01 2013-11-07 Fujitsu Technology Solutions Intellectual Property Gmbh Monitoring methods and systems for data centers
US20140033179A1 (en) * 2012-07-30 2014-01-30 Hewlett-Packard Development Company Lp Application testing
US8909990B2 (en) * 2012-08-04 2014-12-09 Microsoft Corporation Historical software diagnostics using lightweight process snapshots
US8924935B1 (en) * 2012-09-14 2014-12-30 Emc Corporation Predictive model of automated fix handling
US9052980B2 (en) * 2013-02-20 2015-06-09 Bmc Software, Inc. Exception based quality assessment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792802B1 (en) * 2007-03-02 2010-09-07 3Par, Inc. Archiving logs with snapshots for data recovery
TW201224788A (en) * 2010-12-15 2012-06-16 Hon Hai Prec Ind Co Ltd System and method for optimizing reports
CN102799522A (zh) * 2012-06-28 2012-11-28 浪潮(北京)电子信息产业有限公司 一种软件版本追溯测试的管理方法和系统

Also Published As

Publication number Publication date
CN104123219A (zh) 2014-10-29
US20140325486A1 (en) 2014-10-30
US9703694B2 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
CN104123219B (zh) 测试软件的方法和设备
EP2778929B1 (en) Test script generation system
US10282281B2 (en) Software testing platform and method
CN108427632B (zh) 自动测试方法及装置
US9336127B2 (en) Exposing method related data calls during testing in an event driven, multichannel architecture
US10162742B2 (en) System and method for end to end performance response time measurement based on graphic recognition
US10459830B2 (en) Executable code abnormality detection
CN108959068A (zh) 软件界面测试方法、设备及存储介质
CN108694118B (zh) 一种应用测试方法和装置
US8990781B2 (en) Synchronization point visualization for modified program source code
US10365995B2 (en) Composing future application tests including test action data
US9697107B2 (en) Testing applications
JP2015088189A (ja) テスト環境を用いた、制御装置のテスト
US20150234732A1 (en) Executable software specification generation
US20190129832A1 (en) System and method for test data generation for use in model based testing using source code test annotations and constraint solving
US20140365268A1 (en) Method and apparatus for resource dependency planning
KR101591300B1 (ko) 원전 기기의 인간 공학 적합성 평가를 위한 장치 및 방법
US20160283050A1 (en) Adaptive tour interface engine
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
KR20150124653A (ko) 프로세스 검증 기능이 구비된 전력 계통 감시 및 제어 시스템
CN111414309A (zh) 应用程序的自动化测试方法、计算机设备和存储介质
CN113094251A (zh) 嵌入式系统测试方法、装置、计算机设备和存储介质
KR101166128B1 (ko) 소프트웨어 테스트 장치 및 그 방법
KR20190084827A (ko) 프로그램 호환성 자동테스트 방법 및 이를 이용하는 장치
US9691036B2 (en) Decision making in an elastic interface environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170524