用于检测影响的方法和计算机的制作方法

文档序号:8380864阅读:539来源:国知局
用于检测影响的方法和计算机的制作方法
【技术领域】
[0001] 本发明关于用于检测由改变应用的源代码而引起的影响的技术,文档对象模型 ("Document Object Model",下文中也将其称为DOM)树和层叠样式表("Cascading Style Sheets",下文中也将其称为CSS)可以从该应用提取。
【背景技术】
[0002] 通过网络应用(web application)显示的屏幕可以通过改变该网络应用的源代码 而改变(例如,通过纠正缺陷、或通过改变规范)。所以,当网络应用的源代码被改变时,必 须检查回归或退化是否已经发生。正常地,对此检查,每次源代码被改变时测试者在操作网 络浏览器时执行视觉回归测试。
[0003] 但是,通过回归测试手工地执行每一个测试是代价极其高的。于是,正常地,回归 测试只对一部分执行,该部分被假定受到网络应用的源代码中的改变的影响。但是用这样 的回归测试,归因于寻找可能受影响的所有部分的失败,回归或退化经常发生。
[0004] 而且,例如在可以影响整个网络应用的公共JavaScript (注册商标)框架被改变 的情况中,必须对所有的屏幕执行回归测试。但是,如果网络页面是通过使用上文提到的 JavaScript (注册商标)框架层次化的并且是动态地被创建的,对由改变源代码而引起的 网络页面上的影响的范围的调查是极其困难的。而且,因为在网络应用上的回归测试是一 次又一次地重复相似的操作的工作,所以对于测试者来说这是极其枯燥的工作。
[0005] 于是,用于自动化在网络应用上的回归测试的多个软件被提供。例如,这些软件 是开源软件Selenium(见下文提到的非专利文献1和非专利文献2至4)和以下商业产 品、IBM? Rational? Functional Tester (国际商业机器公司)(见下文提到的非专利 文献5和6)、SmartBear TestComplete (见下文提到的非专利文献7)和HP? QuickTest Professional (见下文提到的非专利文献8)。上文提到的Selenium、IBM? Rational? Functional Tester、SmartBear TestComplete 和HP? QuickTest Professional 所有都 采用用于在清楚地指示对比部分时执行回归测试的白名单方法。
[0006] 使用Selenium,通过创建用于网络应用的测试用例,回归测试几乎可以完全地自 动执行。而且,因为Selenium使得在多个网络浏览器上能够容易地执行回归测试,所以可 以增加在网络应用上的回归测试的效率。
[0007] 下文提到的专利文献1描述了用于应用程序的测试程序,并且此测试程序引起安 装应用程序的计算机起到记录控制部件、执行部件和错误输出控制部件的功能,该记录控 制部件用于在记录装置中累积地记录在测试用例于该应用程序上执行时由该应用程序生 成的用户事件和屏幕事件,该执行部件用于读取累积地记录在记录装置中的用户事件和屏 幕事件并且通过作为测试目标的应用程序连续地执行用户事件,该错误输出控制部件用于 将从由作为测试目标的应用程序进行的一个用户事件的执行到下一个用户事件的执行而 生成的屏幕事件,与从自存储装置中读取出的一个用户事件的执行到下一个用户事件的执 行而生成的屏幕事件相比较,以及用于输出不相符的屏幕事件作为错误(权利要求1)。进 一步地,专利文献1描述通过记录控制部件被累积地记录在记录装置中的屏幕事件是屏幕 改变的差异,并且是要通过文档对象模型(DOM)获取的信息(权利要求4),以及通过记录控 制部件被累积地记录在记录装置中的屏幕事件是由通过Xpath和DOM子树表达的改变部分 所指示的信息(权利要求5)。
[0008] 下文提到的专利文献2描述回归测试支持程序,并且该回归测试支持程序引起计 算机执行以下过程:检测一个或多个被显示在显示器上的浏览器屏幕中的一个的显示内容 的更新,当每次检测到更新时在第一存储单元中记录数据(该数据包含指示所有被显示的 浏览器屏幕的显示内容的信息和关于该更新的浏览器屏幕的识别信息),根据对数据的编 辑指令引用第一存储单元,以及显示图像的清单,这些图像指示与识别信息关联的浏览器 屏幕的显示内容(权利要求1)。
[0009] 【引用文献列表】
[0010] 【专利文献】
[0011] 【专利文献 1】JP2009-140155A
[0012] 【专利文献 2】JP2013-54693A
[0013] 【非专利文献】
[0014] 【非专利文献1】"Selenium HQ",(在网络上),(于2013年9月26日检索到), 互联网〈URL:http://docs, seleniumhq. org/>
[0015] 【非专利文献 2】Takashi 0ΚΑΜ0Τ0, "Selenium for automating Web test regardless of browser (1/3) ",(在网络上),(于2013年9月27日检索到),互联网
[0016] <http://www. atmarkit. co. jp/ait/articles/0908/19/newsl09. html>
[0017] 【非专利文献 3】Takashi 0ΚΑΜ0Τ0, "Selenium for automating Web test regardless of browser (2/3) ",(在网络上),(于2013年9月27日检索到),互联网
[0018] <http://www. atmarkit. co. jp/ait/articles/0908/19/newsl09_2. html>
[0019] 【非专利文献 4】Takashi 0ΚΑΜ0Τ0, "Selenium for automating Web test regardless of browser (3/3) ",(在网络上),(于2013年9月27日检索到),互联网
[0020] <http://www. atmarkit. co. jp/ait/articles/0908/19/newsl09_3. html>
[0021] 【非专利文献 5】"Rational Functional Tester (Functional Test/Regression Test)",(在网络上),(于2013年9月27日检索到),互联网〈URL:
[0022] http://www_06.ibm.com/software/jp/rational/products/test/rft/>
[0023] 【非专利文献6】Kazunari H0HSH0H等,"Effective System Development Practice Using Tools-Aiming at Smarter System Development-",IBM Japan, PROVISION Spring No. 69, 2011,从互联网可以得到〈URL:
[0024] http://www-〇6. ibm. com/ibm/jp/provision/no69/pdf/69_article3. pdf>
[0025] 【非专利文献 7】"SMARTBEAR TestComplete, Reducing Cost by Automation of ⑶I Testing",(在网络上),(于2013年9月27日检索到),互联网〈URL:
[0026] http://www.xlsoft.com/jp/products/smartbear/testcomplete.html? tab = 0>
[0027] 【非专利文献 8】"HP QuickTest Professional 10. 0 software",(在网络上), (于2013年9月27日检索到),互联网〈URL:
[0028] http://h50146.www5.hp.com/products/software/hpsoftware/solutions/ lineup/qtp/new. html>

【发明内容】

[0029] 【技术问题】
[0030] 对于用于应用的回归测试、用于应用的单元测试、或用于构建应用的代码研宄,对 影响的检测是重要的,该影响由改变任意应用的源代码而引起,从该应用可以提取DOM树 和CSS。于是,本发明具有使得由改变应用的源代码而引起的影响能够被自动检测的目标。
[0031] 而且,要检查应用与多种网络浏览器或同一网络浏览器的不同版本兼容,必须执 行"浏览器数量X版本数量"次数的测试,并且这是成本极其高的。进一步地,即使网络浏 览器是相同的,如果对例如Windows?、Mae OS? x、Liiutx?、And_n)id?和i〇s的 操作系统的每一个以及对每一个支持的版本要检查应用的行为(包含屏幕显示和除了屏 幕显示以外的不可见区域的行为),代价将会进一步增加。于是,要减少代价,本发明具有它 的目标,是要使得能够自动地检测由改变应用的源代码而引起的影响。
[0032] 进一步地,对用于在网络应用上自动化回归测试的常规软件是采用白名单方法的 情况,本发明具有它的目标,是要消除单独地写被白名单方法期待的定义(例如"项目X的 值应该是ABC"的定义)、测试用例或统一建模语言(UML,"unified modeling language") 的需要。
[0033] 更进一步地,本发明具有它的目标,是要使得能够检测关于设计的问题(例如行 偏移量、画图失败、或重叠的项目)。具体地,以使得能够检测没有在屏幕显示上示出的差异 (例如,在不可见的区域中的差异或者归因于显示大小的差异)为目标。
[0034] 更进一步地,本发明具有它的目标,是要使得关于这样的部分能够进行自动的确 定,其中关于该部分的被白名单方法期待的定义是困难的,并且关于该部分依赖于用户的 眼睛。
[0035] 更进一步地,本发明具有它的目标,是要使得在尽可能地减少用户的参与的同时 能够检测由改变应用的源代码而引起的影响。
[0036] 【解决技术问题的技术方案】
[0037] 本发明提供用于检测由改变从中可以提取DOM树和CSS的应用的源代码而引起的 影响的技术。此技术可以包含用于检测由改变应用的源代码而引起的影响的方法、用于检 测该影响的计算机、计算机程序以及计算机程序产品。
[0038] 根据本发明的第一方面,用于检测由改变从中可以提取DOM树和CSS的任意应用 的源代码而引起的影响的方法引起计算机执行以下步骤:
[0039] 保存用户在应用上的输入操作、和用于当期待检查屏幕状态时的至少一个定时中 的每一个定时的DOM树和CSS ;
[0040] 源代码被改变以后,按照操作的顺序仿真该输入操作,并且获取用于与当期待检 查屏幕状态时的至少一个定时中的每一个定时相同的定时的DOM树和CSS ;
[0041] 针对该相同的定时中的每一个,将在保存步骤中被保存的DOM树和CSS与在仿真 步骤中被获取的DOM树和CSS比较;以及
[0042] 输出比较的结果。
[0043] 根据本发明的第二方面,用于检测由改变从可以提取DOM树和CSS的任意应用的 源代码而引起的影响的方法引起计算机执行以下步骤,其中该计算机能够访问存储介质, 在该存储介质中保存用户在应用上的输入操作历史以及保存当期待检查屏幕状态时的至 少一个定时时的DOM树和CSS :
[0044] 源代码被改变以后,按照操作的顺序仿真该输入操作,并且获取用于与当期待检 查屏幕状态时的至少一个定时中的每一个定时相同的定时的DOM树和CSS ;
[0045] 针对该相同的定时中的每一个,将被保存在该存储介质中的DOM树和CSS与在仿 真步骤中被获取的DOM树和CSS比较;以及
[0046] 输出比较的结果。
[0047] 根据本发明的实施例,根据上文所描述的第一或第二方面的方法可以进一步引起 计算机执行以下步骤:
[0048] 源代码被进一步改变以后,按照操作的顺序仿真该输入操作,并且获取用于与当 期待检查屏幕状态时的至少一个定时中的每一个定时相同的定时的DOM树和CSS ;
[0049] 针对该相同的定时中的每一个,将源代码被改变以后被保存的DOM树和CSS与源 代码被进一步改变以后被保存的DOM树和CSS比较;以及
[0050] 针对该相同的定时,输出将源代码被改变以后被保存的DOM树和CSS与源代码被 进一步改变以后被保存的DOM树和CSS比较的结果。
[0051] 根据本发明的第三方面,用于检测由改变从中可以提取DOM树和CSS的任意应用 的源代码而引起的影响的计算机包括以下部件,其中:
[0052] 保存部件,其用于保存用户在该应用上的输入操作、和用于当期待检查屏幕状态 时的至少一个定时中的每一个定时的DOM树和CSS ;
[0053] 获取部件,其用于在源代码被改变以后,按照操作的顺序仿真该输入操作,并且获 取用于与当期待检查屏幕状态时的至少一个定时中的每一个定时相同的定时的DOM树和 CSS ;
[0054] 比较部件,其用于针对该相同的定时中的每一个,将通过该保存部件被保存的DOM 树和CSS与通过该仿真部件被获取的DOM树和CSS比较;以及
[0055] 输出部件,其用于输出比较的结果。
[0056] 根据本发明的实施例,在根据上文描述的第三方面的计算机中,针对已经被保存 的DOM树中的每一个DOM元素,该保存部件可以保存将应用到DOM元素上的CSS特性以及 该CSS特性的定义位置。
[0057] 根据本发明的实施例,在根据上文描述的第三方面的计算机中,对已经被获取的 DOM树中的每一个DOM元素,该获取部件可以获取将应用到DOM元素上的CSS特性以及该 CSS特性的定义位置。而且,在将应用到DOM元素上的CSS特性未定义的情况中,针对已经 被获取的DOM树中的每一个DOM元素,该获取部件可以获取被当作初始值而使用的值。
[0058] 根据本发明的实施例,在根据上文描述的第三方面的计算机中,
[0059] 该保存部件可以针对当期待检查屏幕状态时的至少一个定时中的每一个,捕捉应 用上的屏幕快照,
[0060] 该仿真部件可以在与当期待检查屏幕状态时的至少一个定时中的每一个定时相 同的定时时,捕捉应用上的屏幕快照,以及
[0061] 该输出部件可以响应于根据比较的结果的差异,显示通过该保存部件被捕捉的屏 幕快照和通过该仿真部件被获取的屏幕快照中的每一个。
[0062] 根据本发明的实施例,在根据上文描述的第三方面的计算机中,该输出部件可以 响应于根据比较的结果的差异,用突出的方式显示该差异,该差异是在通过该保存部件被 捕捉的屏幕快照和通过该仿真部件被获取的屏幕快照之间的差异。
[0063] 根据本发明的第四方面,用于检测由改变从中可以提取DOM树和CSS的任意应用 的源代码而引起的影响的计算机包括以下部件,其中该计算机能够访问存储介质,在该存 储介质中保存用户在应用上的输入操作历史以及保存当期待检查屏幕状态时的至少一个 定时时的DOM树和CSS :
[0064] 获取部件,其用于在源代码被改变以后,按照操作的顺序仿真该输入操作,并且获 取用于与当期待检查屏幕状态时的至少一个定时中的每一个定时相同的定时的DOM树和 CSS ;
[0065] 比较部件,其用于针对该相同的定时中的每一个,将被保存在该存储介质中的DOM 树和CSS与通过该仿真部件被获取的DOM树和CSS比较;以及
[0066] 输出部件,其用于输出比较的结果。
[0067] 根据本发明的实施例,根据上文描述的第四方面的计算机能够访问的该存储介质 中进一步保存,针对已经被保存的DOM树中的每一个DOM元素,将应用到DOM元素上的CSS 特性以及该CSS特性的定义位置,以及
[0068] 该获取部件可以针对已经被获取的DOM树中的每一个DOM元素,从该存储介质获 取将应用到DOM元素上的CSS特性以及该CSS特性的定义位置,或者在应用到DOM元素上 的CSS特性未定义的情况中,针对已经被获取的DOM树中的每一个DOM元素,获取被当作初 始值而使用的值。
[0069] 根据本发明的实施例,根据上文描述的第四方面的计算机能够访问的该存储介质 其中进一步保存,针对当期待检查屏幕状态时的至少一个定时中的每一个,被捕捉的应用 上的屏幕快照,其中
[0070] 在与当期待检查屏幕状态时的至少一个定时中的每一个定时相同的定时时,该获 取部件可以捕捉应用上的屏幕快照,以及
[0071] 该输出部件可以响
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1