CN104881355A - 一种用于检测测试覆盖的方法和系统 - Google Patents
一种用于检测测试覆盖的方法和系统 Download PDFInfo
- Publication number
- CN104881355A CN104881355A CN201410068217.6A CN201410068217A CN104881355A CN 104881355 A CN104881355 A CN 104881355A CN 201410068217 A CN201410068217 A CN 201410068217A CN 104881355 A CN104881355 A CN 104881355A
- Authority
- CN
- China
- Prior art keywords
- dom
- node
- function
- change
- description
- 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.)
- Pending
Links
Classifications
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- 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/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/137—Hierarchical processing, e.g. outlines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于自动化测试领域,公开了一种用于检测测试覆盖的方法和系统。其中用于检测测试覆盖的方法包括:响应于对微件Widget的功能进行测试,记录该微件的DOM节点的变化;获取该功能对应的DOM结构的描述;将记录的DOM节点的变化与获取的DOM结构的描述进行比较;根据比较结果确定测试对于该功能的覆盖状况。通过采用本发明提供的技术方案,可以自动的获得测试的覆盖状况,填补了目前的空白。
Description
技术领域
本发明涉及自动化测试领域,更具体地,涉及一种用于检测测试覆盖的方法和系统。
背景技术
当下,随着软件技术、硬件技术以及通信技术的不断发展,网络应用、手机应用、计算机应用、服务器应用或者其他应用得到原来越广泛的应用。在发布应用(application)之前,通常需要对该应用进行测试。对用户界面(User Interface,UI)的测试,特别是对微件(Widget)的测试,构成了应用测试的一个重要的部分。
目前对微件的测试大多为人工测试,由于测试员通常并非是开发者,所以很难对所有的功能都进行成功的测试。那么微件的哪些功能没有被成功测试目前难以得知。这就使得测试的效率较低,结果不够可靠。
即使使用自动测试工具,目前对于测试覆盖也没有有效的评估方式。
发明内容
基于现有技术中存在的上述问题,本发明实施例提供了一种用于检测测试覆盖的方法和系统。
根据本发明的一个方面,提供了一种用于检测测试覆盖的方法,所述方法包括:响应于对微件Widget的功能进行测试,记录该微件的DOM节点的变化;获取该功能对应的DOM结构的描述;将记录的DOM节点的变化与获取的DOM结构的描述进行比较;根据比较结果确定测试对于该功能的覆盖状况。
根据本发明的另一个方面,提供了一种用于检测测试覆盖的系统,所述系统包括:记录模块,被配置为响应于对微件Widget的功能进行测试,记录该微件的DOM节点的变化;获取模块,被配置为获取该功能对应的DOM结构的描述;比较模块,被配置为将记录的DOM节点的变化与获取的DOM结构的描述进行比较;确定模块,被配置为根据比较结果确定测试对于该功能的覆盖状况。
本发明所提供的技术方案能够有效检测测试覆盖情况。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出了本发明实施例一种用于检测测试覆盖的方法的流程示意图;
图3示出了本发明实施例一种DOM Tree的示意图;
图4A示出了本发明实施例一种微件实现的功能以及该功能对应的DOM结构的描述的示例;
图4B示出了本发明实施例另一种微件实现的功能以及该功能对应的DOM结构的描述的示例
图5示出了本发明实施例提供的一种报告的示例;
图6A示出了本发明实施例提供的一种实现微件功能的代码;
图6B示出了本发明实施例提供的一种DOM结构的描述的示例;
图7示出了本发明实施例一种用于检测测试覆盖的系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图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,本发明一实施例提供了一种用于检测测试覆盖的方法200。该方法200包括:步骤210,响应于对Widget的功能进行测试,记录该Widget的DOM(Document Object Model,文档对象模型)节点的变化;步骤220,获取该功能对应的DOM结构的描述;步骤230,将记录的DOM节点的变化与获取的DOM结构的描述进行比较;步骤240,根据比较结果确定测试对于该功能的覆盖状况。通过采用本实施例提供的方法,无论是采用人工测试还是自动测试方法,都可以有效检测测试的覆盖情况。无论进行人工测试还是自动测试,对某一功能进行测试时,都会引发DOM节点的变化。这样就可以通过与该功能对应的DOM结构的描述进行对比,以判断该功能是否被成功测试。
本发明一实施例中,步骤210例如可以还包括采用现有技术实现对DOM节点的变化进行监测。目前,很多浏览器厂商都提供了调试工具插件,这些插件就能够用于监测DOM节点的变化。
在本发明一实施例中,DOM节点的变化例如包括DOM节点之间层级关系的变化和DOM节点属性的变化中的至少一个。其中,DOM节点之间层级关系例如可以采用DOM Tree来表示,当然也可以采用其他形式来表示,例如采用邻接表和邻接矩阵来记录DOM节点之间的层级关系。举例而言,如图3所示,给出了一个DOM Tree的示意图。可以看到,若对功能进行测试时,节点7被删除了,则属于DOM Tree结构的变化;若原来没有节点8而随着功能测试新增了节点8作为节点5的子节点,则也属于DOM Tree结构的变化;若节点9随着功能测试成为了节点4的子节点,则也属于DOMTree结构的变化;若节点4随着功能测试成为了节点6的子节点,则也属于DOM Tree结构的变化。DOM节点具有各种属性,例如颜色、位置、尺寸、前景色、背景色、显示模式以及css类名等。若随着功能测试,DOM节点的属性中的一项或者多项都发生了变化,则属于DOM节点属性的变化。举例而言,无论是测试人员还是自动程序进行测试时,若鼠标悬停在一个按钮上时,这个按钮被高亮显示,那么对应DOM节点的属性的背景色会发生变化,同时该DOM节点的css类名中增加了一个dijitButtonComboHover,这就是响应于进行功能测试,DOM节点的属性发生了变化。
在本发明一实施例中,在步骤210中,对DOM节点的记录例如可以包括以下至少之一:响应于DOM节点的变化,记录该微件所在页面的所有DOM节点;响应于DOM节点的变化,记录该功能涉及的DOM节点;响应于DOM节点的变化,记录该Widget包括的DOM节点。若采用响应于DOM节点的变化,记录该微件所在页面的所有DOM节点,相应记录的量会比较大,而且后续步骤中进行比较时,比较的工作量较大,但是实现起来比较简单。若采用响应于DOM节点的变化,记录该功能涉及的DOM节点,记录的量会相对减少,在后续比较时,比较的工作量也较小,其中该功能涉及的DOM节点可以根据获取的该功能的DOM节点的描述来确定。若采用响应于DOM节点的变化,记录该Widget包括的DOM节点,则记录的量少于微件所在页面的所有DOM节点,但是多于功能涉及的DOM节点,且后续步骤中进行比较时,比较的工作量也居中。
在本发明一实施例中,步骤220中获取该功能对应的DOM结构的描述例如可以是从开发人员提供的记录中直接获取被测试的功能对应的DOM结构的描述。开发人员在进行开发后例如可以提供一个对于每一个功能对应的DOM结构的简单描述,而步骤220可获取该描述。在本发明另一实施例中,步骤220可以直接从程序代码中提取被测试的功能对应的DOM结构的描述。本发明并不对于获取的具体手段进行限制。
在本发明一实施例中,步骤220获取的DOM结构的描述例如可以包括被测试的功能对应的DOM节点之间层级关系以及DOM节点的属性。例如,如图4A和4B所示,提供了鼠标悬停时高亮显示功能和鼠标点击时弹出下拉菜单功能对应的DOM结构的描述。参照图4A,上侧为鼠标悬停在下拉按钮上的图示,表示响应于鼠标悬停在下拉按钮上进行高亮显示的功能,下侧为对应的高亮显示功能的DOM结构的描述。参照图4B,上侧为下拉菜单弹出的图示,表示响应于点击下拉按钮,弹出下拉菜单,下侧为对应的弹出下拉菜单功能的DOM结构的描述。
本发明一实施例中,该功能对应的DOM结构的描述例如包括对于被测试的功能对应的根节点以及最小的子节点的描述。其中,根节点可以是Widget的根节点,也可以是Widget的某一层的节点仅仅针对被测试功能作为根节点。在实现时,为了实现简单,可以将Widget的根节点作为所有功能的根节点,这样就不用再区分每个功能对应的根节点了。其中,最小的子节点是针对被测试功能而言最下层的子节点的集合,不一定是整个Widget的最下层的子节点,该集合中可能仅包括一个子节点也可能包括多个子节点。参照图6A中提供的程序代码。其中Widget的根节点为table,因此可以将table作为DOM结构的描述中的根节点。而对应于图4A和4B所示的功能,该功能对应的最小子节点包括2个td节点构成的集合,因此可以仅将这2个td节点作为最小的子节点包含在DOM结构的描述中。例如,对于最初的状态,可以得到DOM结构的描述如图6B所示。相应的对于图4A的功能,将变化的节点的属性添加到最终状态对应的DOM结构的描述中对应的位置就可以得到图4A表示的功能所对应的DOM结构的描述。同理于图4B,在此不再赘述。通过采用本实施例,若DOM结构的描述仅包括对被测试功能对应的根节点和最小子节点的描述,则进行后续步骤中的对比时效率高,计算量小。
在本发明一实施例中,步骤230例如包括:判断记录的DOM节点中是否存在获取的DOM结构的描述。在具体实现时,可以是在记录的DOM节点中搜索获取的DOM结构的描述。
在本发明一实施例中,步骤240例如包括:若记录的DOM节点中不存在获取的DOM结构的描述则确定该功能未被测试所覆盖。该功能未被测试所覆盖可能是该功能测试没有通过,或者测试中缺少针对该功能的测试用例。
在本发明一实施例中,步骤240例如还包括:计算测试覆盖的比例。例如,本次测试包括了5个功能,其中对于3个功能其DOM结构的描述在记录的DOM节点中被找到,而另2个功能其DOM结构的描述在记录的DOM节点中未被找到,则得到测试覆盖的比例为60%。
在本发明一实施例中,如图2所示的实施例,例如还包括步骤:根据测试覆盖情况,输出报告。例如,将计算得到的测试覆盖的比例通过报告提供给用户。又例如,将没有覆盖的功能通过报告提供给用户。再例如,在报告中提供给用户所有功能的列表以及该功能是否被测试所覆盖。具体的报告可以采用文字形式、图例形式、表格形式或者其结合。本发明并不对报告的具体形式进行限制,只要能够表示测试覆盖的情况即可。
上述实施例之间可以彼此结合、参照以得到更多的实施例。下面结合图4A、图4B和图5给出上述实施例之间彼此结合的示例,本领域技术人员可以参照这些示例得到更多的结合示例
在测试人员或者自动测试程序对图4A中所示的微件(在图4A中体现为一个带有下拉箭头的Create按钮)进行测试时,响应于鼠标移到Create按钮的下拉键头上,该下拉键头会被高亮显示。随后,响应于点击该按钮,会弹出如图4B所示的下拉菜单。
例如通过一个浏览器插件可以监测DOM节点的变化。当鼠标移到下拉箭头上时,DOM节点的属性会发生变化,也即会被高亮显示。响应于监测到这一变化,会对该微件所在页面的所有DOM节点进行记录。本发明并不限制记录的具体形式,可以是表格、文件等。响应于在记录中找到如图4A下侧所示的DOM结构的描述,可以判断高亮显示的功能被成功的测试了。当点击如图4A所示的按钮时,应当弹出如图4B所示的下拉菜单,但是测试中,下拉菜单没有弹出。响应于在记录中找不到如图4B下侧所示的DOM结构的描述,可以判断点击显示下拉菜单的功能没有被成功测试。例如该Widget只有这两个功能,则可以计算测试覆盖比例为50%,并向用户提供如图5所示的报告。可以看到,报告中包括了未被覆盖的功能以及测试覆盖的比例。其中未被覆盖的功能例如可以直接将fea ture的name提供出来。
前面已经参考附图描述了实现本发明的方法的各个实施例。本领域技术人员可以理解的是,上述方法可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种用于检测测试覆盖的系统。即使这些设备和系统在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得这些设备和系统表现出区别于通用处理设备的特性,从而形成本发明的下述各实施例的设备和系统。下面将参考图7具体描述本发明一实施例提供的一种用于检测测试覆盖的系统。
如图7所示,本发明实施例提供了一种用于检测测试覆盖的系统700。该系统700包括:记录模块710,被配置为响应于对微件的功能进行测试,记录该微件的DOM节点的变化;获取模块720,被配置为获取该功能对应的DOM结构的描述;比较模块730,被配置为将记录的DOM节点的变化与获取的DOM结构的描述进行比较;确定模块740,被配置为根据比较结果确定测试对于该功能的覆盖状况。通过采用本实施例提供的系统700可以很容易的得到测试覆盖的情况。
本发明一实施例中,DOM节点的变化包括DOM节点之间层级关系的变化和DOM节点属性的变化中的至少一个,具体描述可以参照方法实施例,此处不再赘述。
本发明一实施例中,检测记录模块710例如包括以下至少之一:第一记录子模块,被配置为响应于DOM节点的变化,记录该微件所在页面的所有DOM节点;第二记录子模块,被配置为响应于DOM节点的变化,记录该功能涉及的DOM节点;第三记录子模块,被配置为响应于DOM节点的变化,记录该微件包括的DOM节点。采用不同子模块的优势可以参照方法实施例,此处不再赘述。
本发明一实施例中,所述DOM结构的描述包括:DOM节点之间的层级关系以及DOM节点的属性。在本发明另一实施例中,该功能对应的DOM结构的描述包括对于该功能对应的根节点以及最小的子节点的描述。
本发明一实施例中,比较模块730具体被配置为判断记录的DOM节点中是否存在获取的DOM结构的描述。
本发明一实施例中,确定模块740具体被配置为若记录的DOM节点中不存在获取的DOM结构的描述则确定该功能未被测试所覆盖。
上述系统实施例中的实现细节可以参照相应的方法实施例。并且上述系统实施例之间可以彼此参照、引用得到更多的实施例。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是--但不限于--电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Smalltalk、C++等,以及常规的过程式编程语言-诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种用于检测测试覆盖的方法,所述方法包括:
响应于对微件Widget的功能进行测试,记录该微件的DOM节点的变化;
获取该功能对应的DOM结构的描述;
将记录的DOM节点的变化与获取的DOM结构的描述进行比较;
根据比较结果确定测试对于该功能的覆盖状况。
2.根据权利要求1所述的方法,其中,所述DOM节点的变化包括DOM节点之间层级关系的变化和DOM节点属性的变化中的至少一个。
3.根据权利要求1所述的方法,其中,所述记录该微件的DOM节点的变化包括以下至少之一:
响应于DOM节点的变化,记录该微件所在页面的所有DOM节点;
响应于DOM节点的变化,记录该功能涉及的DOM节点;
响应于DOM节点的变化,记录该微件包括的DOM节点。
4.根据权利要求1所述的方法,其中,所述DOM结构的描述包括:DOM节点之间的层级关系以及DOM节点的属性。
5.根据权利要求1所述的方法,其中,所述该功能对应的DOM结构的描述包括对于该功能对应的根节点以及最小的子节点的描述。
6.根据权利要求1所述的方法,其中,所述将记录的DOM节点的变化与获取的DOM结构的描述进行比较,包括:判断记录的DOM节点中是否存在获取的DOM结构的描述。
7.根据权利要求6所述的方法,其中,所述根据比较结果确定测试对于该功能的覆盖状况,包括:若记录的DOM节点中不存在获取的DOM结构的描述则确定该功能未被测试所覆盖。
8.一种用于检测测试覆盖的系统,所述系统包括:
记录模块,被配置为响应于对微件Widget的功能进行测试,记录该微件的DOM节点的变化;
获取模块,被配置为获取该功能对应的DOM结构的描述;
比较模块,被配置为将记录的DOM节点的变化与获取的DOM结构的描述进行比较;
确定模块,被配置为根据比较结果确定测试对于该功能的覆盖状况。
9.根据权利要求8所述的系统,其中,所述DOM节点的变化包括DOM节点之间层级关系的变化和DOM节点属性的变化中的至少一个。
10.根据权利要求8所述的系统,其中,所述记录模块包括以下至少之一:
第一记录子模块,被配置为响应于DOM节点的变化,记录该微件所在页面的所有DOM节点;
第二记录子模块,被配置为响应于DOM节点的变化,记录该功能涉及的DOM节点;
第三记录子模块,被配置为响应于DOM节点的变化,记录该微件包括的DOM节点。
11.根据权利要求8所述的系统,其中,所述DOM结构的描述包括:DOM节点之间的层级关系以及DOM节点的属性。
12.根据权利要求8所述的系统,其中,所述该功能对应的DOM结构的描述包括对于该功能对应的根节点以及最小的子节点的描述。
13.根据权利要求8所述的系统,其中,所述比较模块具体被配置为判断记录的DOM节点中是否存在获取的DOM结构的描述。
14.根据权利要求13所述的系统,其中,所述确定模块具体被配置为若记录的DOM节点中不存在获取的DOM结构的描述则确定该功能未被测试所覆盖。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410068217.6A CN104881355A (zh) | 2014-02-27 | 2014-02-27 | 一种用于检测测试覆盖的方法和系统 |
US14/623,827 US20150242380A1 (en) | 2014-02-27 | 2015-02-17 | Checking testing coverage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410068217.6A CN104881355A (zh) | 2014-02-27 | 2014-02-27 | 一种用于检测测试覆盖的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104881355A true CN104881355A (zh) | 2015-09-02 |
Family
ID=53882373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410068217.6A Pending CN104881355A (zh) | 2014-02-27 | 2014-02-27 | 一种用于检测测试覆盖的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150242380A1 (zh) |
CN (1) | CN104881355A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506339A (zh) * | 2017-08-08 | 2017-12-22 | 许继集团有限公司 | 一种基于字符偏移的scd节点校验出错定位方法及装置 |
CN108399086A (zh) * | 2018-03-12 | 2018-08-14 | 中汇信息技术(上海)有限公司 | 一种微件管理方法、服务器和计算机可读存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161087A1 (en) * | 2013-12-09 | 2015-06-11 | Justin Khoo | System and method for dynamic imagery link synchronization and simulating rendering and behavior of content across a multi-client platform |
CN105337801B (zh) * | 2015-11-10 | 2018-07-31 | 上海斐讯数据通信技术有限公司 | 一种适用于交换机协议的基于状态机的测试用例设计方法 |
CN106776338B (zh) * | 2016-12-30 | 2020-04-03 | 北京金山安全软件有限公司 | 一种测试方法、装置及服务器 |
US10282402B2 (en) | 2017-01-06 | 2019-05-07 | Justin Khoo | System and method of proofing email content |
CN106959921A (zh) * | 2017-02-20 | 2017-07-18 | 百度在线网络技术(北京)有限公司 | 自动测试方法、终端、平台及系统 |
US10678673B2 (en) * | 2017-07-12 | 2020-06-09 | Fujitsu Limited | Software program fault localization |
US11102316B1 (en) | 2018-03-21 | 2021-08-24 | Justin Khoo | System and method for tracking interactions in an email |
US10956658B2 (en) * | 2018-06-21 | 2021-03-23 | Adobe Inc. | Digital content editing of a document object model (DOM) based on object model comparison |
CN111611150B (zh) * | 2019-02-25 | 2024-03-22 | 北京搜狗科技发展有限公司 | 一种测试方法、装置、介质和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987862A (zh) * | 2005-12-22 | 2007-06-27 | 国际商业机器公司 | 用于分析网页中的变化的方法和系统 |
US20090293044A1 (en) * | 2008-05-22 | 2009-11-26 | Boettcher Jeffrey R | Graphical Program Code Coverage |
US20120174075A1 (en) * | 2010-08-10 | 2012-07-05 | International Business Machines Corporation | Automatically Testing a Web Application |
CN102760139A (zh) * | 2011-04-29 | 2012-10-31 | 国际商业机器公司 | 用于处理网页的方法和系统 |
CN102831345A (zh) * | 2012-07-30 | 2012-12-19 | 西北工业大学 | Sql注入漏洞检测中的注入点提取方法 |
US20130145352A1 (en) * | 2005-02-23 | 2013-06-06 | International Business Machines Corporation | Business process execution language program simulation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192511B1 (en) * | 1998-09-16 | 2001-02-20 | International Business Machines Corporation | Technique for test coverage of visual programs |
TW200741493A (en) * | 2006-04-18 | 2007-11-01 | Benq Corp | Systems and methods for discovering frequently accessed subtrees |
US8201150B2 (en) * | 2007-03-20 | 2012-06-12 | International Business Machines Corporation | Evaluating software test coverage |
US8205120B2 (en) * | 2007-12-21 | 2012-06-19 | Sap Ag | Intelligent test framework |
US8527936B2 (en) * | 2008-12-31 | 2013-09-03 | Cadence Design Systems, Inc. | Method and system for implementing graphical analysis of hierarchical coverage information using treemaps |
-
2014
- 2014-02-27 CN CN201410068217.6A patent/CN104881355A/zh active Pending
-
2015
- 2015-02-17 US US14/623,827 patent/US20150242380A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130145352A1 (en) * | 2005-02-23 | 2013-06-06 | International Business Machines Corporation | Business process execution language program simulation |
CN1987862A (zh) * | 2005-12-22 | 2007-06-27 | 国际商业机器公司 | 用于分析网页中的变化的方法和系统 |
US20090293044A1 (en) * | 2008-05-22 | 2009-11-26 | Boettcher Jeffrey R | Graphical Program Code Coverage |
US20120174075A1 (en) * | 2010-08-10 | 2012-07-05 | International Business Machines Corporation | Automatically Testing a Web Application |
CN102760139A (zh) * | 2011-04-29 | 2012-10-31 | 国际商业机器公司 | 用于处理网页的方法和系统 |
CN102831345A (zh) * | 2012-07-30 | 2012-12-19 | 西北工业大学 | Sql注入漏洞检测中的注入点提取方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506339A (zh) * | 2017-08-08 | 2017-12-22 | 许继集团有限公司 | 一种基于字符偏移的scd节点校验出错定位方法及装置 |
CN108399086A (zh) * | 2018-03-12 | 2018-08-14 | 中汇信息技术(上海)有限公司 | 一种微件管理方法、服务器和计算机可读存储介质 |
CN108399086B (zh) * | 2018-03-12 | 2021-07-09 | 中汇信息技术(上海)有限公司 | 一种微件管理方法、服务器和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20150242380A1 (en) | 2015-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881355A (zh) | 一种用于检测测试覆盖的方法和系统 | |
US11494295B1 (en) | Automated software bug discovery and assessment | |
US11934301B2 (en) | System and method for automated software testing | |
CN108959068B (zh) | 软件界面测试方法、设备及存储介质 | |
US20240037020A1 (en) | System and Method for Automated Software Testing | |
WO2019144680A1 (zh) | 自动化测试方法及装置、存储介质、电子设备 | |
US10503632B1 (en) | Impact analysis for software testing | |
US8930766B2 (en) | Testing mobile applications | |
WO2018010552A1 (zh) | 测试方法和装置 | |
CN105022694B (zh) | 用于移动终端测试的测试用例生成方法及系统 | |
CN111274154A (zh) | 一种自动化测试的方法、装置、设备及存储介质 | |
CN105335282A (zh) | 用于应用的跨平台测试的方法和系统 | |
CN103984626A (zh) | 一种生成测试用例脚本的方法及装置 | |
CN111108481B (zh) | 故障分析方法及相关设备 | |
CN111198811A (zh) | 一种页面自动化测试的方法、装置、电子设备及存储介质 | |
US20170147931A1 (en) | Method and system for verifying rules of a root cause analysis system in cloud environment | |
WO2020096665A2 (en) | System error detection | |
CN105094780A (zh) | 一种信息关联的方法和装置 | |
CN110597704B (zh) | 应用程序的压力测试方法、装置、服务器和介质 | |
CN109582524A (zh) | 一种测试方法、系统及电子设备和存储介质 | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
US10025697B2 (en) | Generation of automated unit tests for a controller layer system and method | |
CN106970870B (zh) | 网页测试平台、网页测试方法和网页测试系统 | |
CN107274933A (zh) | 一种测试固态硬盘的方法及装置 | |
US11263072B2 (en) | Recovery of application from error |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150902 |