首页 / 专利库 / 资料储存系统 / 数据存储库 / 用于开发Web产品的系统和方法

用于开发Web产品的系统和方法

阅读:619发布:2020-05-11

专利汇可以提供用于开发Web产品的系统和方法专利检索,专利查询,专利分析的服务。并且根据由Web产品的目标版本显示的Web页面的内容,生成Web产品的目标版本的至少一个目标散列值。将目标散列值与根据由Web产品的基线版本显示的Web页面生成的至少一个对应的基线散列值进行比较。目标散列值与基线散列值之间的差异指示Web产品的目标版本的 用户界面 与Web产品的基线版本的用户界面之间的差异。响应于目标散列值与基线散列值之间的比较,生成Web产品的目标版本的用户界面。,下面是用于开发Web产品的系统和方法专利的具体信息内容。

1.一种生成Web产品的用户界面的方法,包括:
根据由所述Web产品的目标版本显示的Web页面的内容,生成所述Web产品的所述目标版本的至少一个目标散列值;
将所述目标散列值与根据由所述Web产品的基线版本显示的Web页面生成的基线散列值进行比较,其中,所述目标散列值与所述基线散列值之间的差异指示所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面之间的差异;以及响应于将所述目标散列值与所述基线散列值进行比较,通过修改由所述Web产品的所述目标版本显示的Web页面以使得所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面相匹配,来生成所述Web产品的所述目标版本的用户界面。
2.根据权利要求1所述的方法,还包括:
生成由所述Web产品的所述目标版本显示的Web页面的目标截屏;
响应于检测到所述目标散列值与所述基线散列值之间的差异,将由所述Web产品的所述目标版本显示的Web页面的所述目标截屏与根据所述Web产品的所述基线版本生成的基线截屏进行比较;以及
响应于检测到所述目标截屏与所述基线截屏之间的差异,生成差异通知,所述差异通知指示所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面不匹配,其中,所述差异通知包括所述目标截屏与所述基线截屏之间的差异的图形指示。
3.根据权利要求2所述的方法,其中,生成所述差异通知包括:
识别所述目标截屏内的与所述基线截屏内的对应像素区域不同的像素区域;
至少部分地基于对所述目标截屏进行修改以可视地指示所述目标截屏内的与所述基线截屏内的所述对应像素区域不同的像素区域,来生成经修改的目标截屏;以及将所述经修改的目标截屏存储到存储一个或多个经修改的目标截屏的截屏存储库中。
4.根据权利要求3所述的方法,还包括:在用户界面中显示经修改的目标截屏中的一个或多个经修改的目标截屏,所述一个或多个经修改的目标截屏包括可视地指示所述目标截屏内的与所述基线截屏内的所述对应像素区域不同的像素区域的经修改的截屏。
5.根据权利要求4所述的方法,还包括:至少部分地通过以下操作,来根据所述Web产品的所述基线版本生成基线数据:
根据由所述Web产品的所述基线版本显示的Web页面的内容生成至少一个基线散列值;
以及
通过捕捉由所述Web产品的所述基线版本显示的Web页面的截屏来捕捉所述基线截屏。
6.根据权利要求5所述的方法,其中,所述至少一个基线散列值包括通过以下操作生成的基线HTML散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取超文本标记语言HTML;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的所述超文本标记语言HTML应用散列函数;
其中,所述至少一个目标散列值包括通过以下操作生成的目标HTML散列值:i)提取包含在由所述Web产品的所述目标版本显示的Web页面中的超文本标记语言HTML;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的超文本标记语言HTML应用散列函数;并且
其中,将所述目标散列值与所述基线散列值进行比较包括:将所述目标HTML散列值与所述基线HTML散列值进行比较。
7.根据权利要求6所述的方法,其中,所述至少一个基线散列值还包括通过以下操作生成的基线样式表散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取至少一个样式表;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的样式表应用散列函数;
其中,所述至少一个目标散列值还包括通过以下操作生成的目标样式表散列值:i)从由所述Web产品的所述目标版本显示的Web页面提取至少一个样式表;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的样式表应用散列函数;并且其中,将所述目标散列值与所述基线散列值进行比较还包括:还将所述目标样式表散列值与所述基线样式表散列值进行比较。
8.根据权利要求7所述的方法,其中,所述至少一个基线散列值还包括通过以下操作生成的基线图像文件散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取至少一个图像文件;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的图像文件应用散列函数;
其中,所述至少一个目标散列值还包括通过以下操作生成的目标图像文件散列值:i)从由所述Web产品的所述目标版本显示的Web页面提取至少一个图像文件;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的图像文件应用散列函数;并且其中,将所述目标散列值与所述基线散列值进行比较还包括:还将所述目标图像文件散列值与所述基线图像文件散列值进行比较。
9.根据权利要求8所述的方法,其中,所述至少一个基线散列值还包括通过以下操作生成的基线字体文件散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取至少一个字体文件;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的字体文件应用散列函数;
其中,所述至少一个目标散列值还包括通过以下操作生成的目标字体文件散列值:i)从由所述Web产品的所述目标版本显示的Web页面提取至少一个字体文件;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的字体文件应用散列函数;并且其中,将所述目标散列值与所述基线散列值进行比较还包括:还将所述目标字体文件散列值与所述基线字体文件散列值进行比较。
10.一种用于生成Web产品的用户界面的系统,包括:
处理电路
存储能够在所述处理电路上执行的程序代码的存储器,并且其中,所述程序代码在由所述处理电路执行时,使得所述处理电路:
根据由所述Web产品的目标版本显示的Web页面的内容,生成所述Web产品的所述目标版本的至少一个目标散列值;
将所述目标散列值与根据由所述Web产品的基线版本显示的Web页面生成的基线散列值进行比较,其中,所述目标散列值与所述基线散列值之间的差异指示所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面之间的差异,以及响应于所述目标散列值与所述基线散列值的比较,通过修改由所述Web产品的所述目标版本显示的Web页面以使得所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面相匹配,来生成所述Web产品的所述目标版本的用户界面。
11.根据权利要求10所述的系统,其中,所述程序代码在由所述处理电路执行时,还使得所述处理电路:
生成由所述Web产品的所述目标版本显示的Web页面的目标截屏;
响应于检测到所述目标散列值与所述基线散列值之间的差异,将由所述Web产品的所述目标版本显示的Web页面的所述目标截屏与根据所述Web产品的所述基线版本生成的基线截屏进行比较;以及
响应于检测到所述目标截屏与所述基线截屏之间的差异,生成差异通知,所述差异通知指示所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面不匹配,其中,所述差异通知包括所述目标截屏与所述基线截屏之间的差异的图形指示。
12.根据权利要求11所述的方法,其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路进行以下操作来使得所述处理电路生成所述差异通知:
识别所述目标截屏内的与所述基线截屏内的对应像素区域不同的像素区域;
至少部分地基于对所述目标截屏进行修改以可视地指示所述目标截屏内的与所述基线截屏内的所述对应像素区域不同的像素区域,来生成经修改的目标截屏;以及将所述经修改的目标截屏存储到存储一个或多个经修改的目标截屏的截屏存储库中。
13.根据权利要求12所述的系统,其中,所述程序代码在由所述处理电路执行时,还使得所述处理电路显示经修改的目标截屏中的一个或多个经修改的目标截屏,所述一个或多个经修改的目标截屏包括可视地指示所述目标截屏内的与所述基线截屏内的所述对应像素区域不同的像素区域的经修改的截屏。
14.根据权利要求13所述的系统,其中,所述程序代码在由所述处理电路执行时,通过使得所述处理电路进行以下操作来使得所述处理电路根据所述Web产品的所述基线版本生成基线数据:
根据由所述Web产品的所述基线版本显示的Web页面的内容生成至少一个基线散列值;
以及
通过捕捉由所述Web产品的所述基线版本显示的Web页面的截屏来捕捉所述基线截屏。
15.根据权利要求14所述的系统,其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成基线HTML散列值来使得所述处理电路生成至少一个基线散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取超文本标记语言HTML;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的所述超文本标记语言HTML应用散列函数;
其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成目标HTML散列值来使得所述处理电路生成至少一个目标散列值:i)提取包含在由所述Web产品的所述目标版本显示的Web页面中的超文本标记语言HTML;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的超文本标记语言HTML应用散列函数;并且其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路比较所述目标HTML散列值与所述基线HTML散列值,来使得所述处理电路比较所述目标散列值与所述基线散列值。
16.根据权利要求15所述的系统,其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成基线样式表散列值来使得所述处理电路生成至少一个基线散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取至少一个样式表;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的样式表应用散列函数;
其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成目标样式表散列值来使得所述处理电路生成至少一个目标散列值:i)从由所述Web产品的所述目标版本显示的Web页面提取至少一个样式表;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的样式表应用散列函数;并且
其中,所述程序代码在由所述处理电路执行时,还使得所述处理电路通过还比较所述目标样式表散列值与所述基线样式表散列值,来比较所述目标散列值与所述基线散列值。
17.根据权利要求16所述的系统,其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成基线图像文件散列值来使得所述处理电路生成所述至少一个基线散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取至少一个图像文件;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的图像文件应用散列函数;
其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成目标图像文件散列值来使得所述处理电路生成所述至少一个目标散列值:i)从由所述Web产品的所述目标版本显示的Web页面提取至少一个图像文件;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的图像文件应用散列函数;并且其中,所述程序代码在由所述处理电路执行时,还使得所述处理电路通过还比较所述目标图像文件散列值与所述基线图像文件散列值,来比较所述目标散列值与所述基线散列值。
18.根据权利要求17所述的系统,其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成基线字体文件散列值来使得所述处理电路生成至少一个基线散列值:i)从由所述Web产品的所述基线版本显示的Web页面提取至少一个字体文件;以及ii)对从由所述Web产品的所述基线版本显示的Web页面提取的字体文件应用散列函数;
其中,所述程序代码在由所述处理电路执行时,还通过使得所述处理电路通过以下操作生成目标字体文件散列值来使得所述处理电路生成至少一个目标散列值:i)从由所述Web产品的所述目标版本显示的Web页面提取至少一个字体文件;以及ii)对从由所述Web产品的所述目标版本显示的Web页面提取的字体文件应用散列函数;并且
其中,所述程序代码在由所述处理电路执行时,还使得所述处理电路通过还比较所述目标字体文件散列值与所述基线字体文件散列值,来比较所述目标散列值与所述基线散列值。
19.一种存储程序代码的非暂时性计算机可读介质,所述程序代码用于生成Web产品的用户界面,其中,所述程序代码在由处理电路执行时,使得所述处理电路执行包括以下操作的方法:
根据由所述Web产品的目标版本显示的Web页面的内容,生成所述Web产品的所述目标版本的至少一个目标散列值;
将所述目标散列值与根据由所述Web产品的基线版本显示的Web页面生成的基线散列值进行比较,其中,所述目标散列值与所述基线散列值之间的差异指示所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面之间的差异;以及响应于将所述目标散列值与所述基线散列值进行比较,通过修改由所述Web产品的所述目标版本显示的Web页面以使得所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面相匹配,来生成所述Web产品的所述目标版本的用户界面。
20.根据权利要求19所述的非暂时性计算机可读介质,其中,使得由所述处理电路执行的所述方法还包括:
生成由所述Web产品的所述目标版本显示的Web页面的目标截屏;
响应于检测到所述目标散列值与所述基线散列值之间的差异,将由所述Web产品的所述目标版本显示的Web页面的所述目标截屏与根据所述Web产品的所述基线版本生成的基线截屏进行比较;以及
响应于检测到所述目标截屏与所述基线截屏之间的差异,生成差异通知,所述差异通知指示所述Web产品的所述目标版本的用户界面与所述Web产品的所述基线版本的用户界面不匹配,其中,所述差异通知包括所述目标截屏与所述基线截屏之间的差异的图形指示。

说明书全文

用于开发Web产品的系统和方法

技术领域

[0001] 本公开总体涉及用于开发Web产品的系统和方法,并且更具体地涉及用于检测Web产品的目标版本的用户界面与Web产品的基线版本的用户界面之间的差异的改进的技术。

背景技术

[0002] 在Web产品(例如,Web页面或Web应用)的开发期间,希望能够有效且高效地确定Web产品的一个版本的用户界面是否与Web产品另一个版本的用户界面不同。这种情况在生成Web产品的新版本(例如,向Web产品添加新特征、和/或修复在Web产品的之前版本中已经检测到的程式错误)时出现。发明内容
[0003] Web产品的新版本的用户界面与之前的基线版本的用户界面之间的差异可以指示,在生成Web产品的新版本时对Web产品所做的改变已经使得Web产品的目标版本的用户界面被不正确地显示。
[0004] 检测Web产品的新版本的用户界面与Web产品之前的基线版本的用户界面之间的差异特别重要,因为Web产品的新版本的功能验证可能不足以检查Web产品的新版本的用户界面的正确性。Web产品的新版本的功能验证可能不能够检测Web产品的目标版本的用户界面是否被不正确地显示。
[0005] 之前的用于检测用户界面之间的差异的技术具有明显的缺点。例如,之前的一些用于检测用户界面之间的差异的技术通过获取一个用户界面的截屏和另一个用户界面的截屏并且随后将两个截屏显示给用户来操作。用户则必须可视地比较所显示的两个截屏并且尝试确定在它们之间是否存在任何视觉差异。这些之前的技术至少就需要大量的用户时间来做出视觉比较而言是资源密集的。因为难以正确地且无遗漏地通过所显示的两个截屏的视觉比较来识别差异,所以这些之前的技术也是容易出错的。
[0006] 其他之前的技术已经尝试纯粹基于两个用户界面的截屏的自动比较来检测用户界面差异。然而,截屏的实际内容可能依赖于外部因素,与潜在的Web产品的操作无关,例如,浏览器版本和/或屏幕分辨率。因此,完全依靠截屏的自动比较的技术通常具有高的误否定确定率,其甚至在截屏不相匹配实际反映由外部因素引起的截屏之间的差异(例如,显示Web页面的浏览器版本的差异)时,也不正确地指示在被比较的用户界面之间存在差异。
[0007] 为了解决之前的技术的上述和其他缺点,在本文描述用于在生成Web产品的用户界面时检测用户界面差异的新技术。在本文描述的技术中,根据由Web产品的目标版本显示的Web页面的内容,生成Web产品的目标版本的至少一个目标散列值。将目标散列值与根据由Web产品的基线版本显示的Web页面生成的至少一个基线散列值进行比较。目标散列值与基线散列值之间的差异指示Web产品的目标版本的用户界面与Web产品的基线版本的用户界面之间的差异。
[0008] 响应于目标散列值与基线散列值的比较,可以通过修改由Web产品的目标版本显示的Web页面以使得Web产品的目标版本的用户界面与Web产品的基线版本的用户界面相匹配,来生成Web产品的目标版本的用户界面。
[0009] 在一些实施例中,响应于检测到目标散列值与基线散列值之间的差异,可以将根据由Web产品的目标版本显示的Web页面生成的目标截屏与根据Web产品的基线版本生成的基线截屏进行比较。响应于检测到目标截屏与基线截屏之间的差异,可以生成差异通知,该差异通知指示Web产品的目标版本的用户界面与Web产品的基线版本的用户界面不相匹配。差异通知可以包括目标截屏与基线截屏之间的差异的图形指示。
[0010] 在一些实施例中,生成差异通知可以包括:i)识别目标截屏内的与基线截屏内的对应的像素区域不同的像素区域,ii)至少部分地基于对目标截屏进行修改以可视地指示目标截屏内的与基线截屏内的对应的像素区域不同的像素区域,来生成经修改的目标截屏,以及iii)将经修改的目标截屏存储到存储一个或多个经修改的目标截屏的截屏存储库中。
[0011] 在一些实施例中,经修改的目标截屏中的一个或多个经修改的目标截屏可以在用户界面内被显示。用户界面中所显示的一个或多个经修改的目标截屏可以包括:可视地指示目标截屏内的与基线截屏内的对应的像素区域不同的像素区域的经修改的截屏。
[0012] 在一些实施例中,可以至少部分地通过以下操作来根据Web产品的基线版本生成基线数据:i)根据由Web产品的基线版本显示的Web页面的内容生成至少一个基线散列值;以及ii)通过捕捉由Web产品的基线版本显示的Web页面的截屏来捕捉基线截屏。
[0013] 在一些实施例中,基线散列值可以包括通过以下操作生成的基线HTML散列值:i)从由Web产品的基线版本显示的Web页面提取超文本标记语言(HTML);以及ii)对从由Web产品的基线版本显示的Web页面提取的超文本标记语言(HTML)应用散列函数。目标散列值可以包括通过以下操作生成的目标HTML散列值:i)提取由Web产品的目标版本显示的Web页面中包含的超文本标记语言(HTML);以及ii)对从由Web产品的目标版本显示的Web页面提取的超文本标记语言(HTML)应用散列函数。将目标散列值与基线散列值进行比较可以包括:将目标HTML散列值与基线HTML散列值进行比较。
[0014] 在一些实施例中,基线散列值还可以包括一个或多个基线样式表散列值,每个基线样式表散列值通过以下操作生成:i)从由Web产品的基线版本显示的Web页面提取样式表;以及ii)对从由Web产品的基线版本显示的Web页面提取的样式表应用散列函数。目标散列值还可以包括一个或多个目标样式表散列值,每个目标样式表散列值通过以下操作生成:i)从由Web产品的目标版本显示的Web页面提取样式表;以及ii)对从由Web产品的目标版本显示的Web页面提取的每个样式表应用散列函数。将目标散列值与基线散列值进行比较还可以包括:将至少一个目标样式表散列值与至少一个基线样式表散列值进行比较。例如,可以通过所公开的技术的一些实施例从Web页面提取并且可以通过所公开的技术的一些实施例对其应用散列函数的各种样式表中的每个样式表可以由包含样式表语言(例如,层叠式样式表(CSS))的一个或多个文件组件或包括该一个或多个文件,并且可以定义提取Web页面的从中提取样式和/或表示的部分。
[0015] 在一些实施例中,基线散列值还可以包括一个或多个基线图像文件散列值,每个基线图像文件散列值通过以下操作生成:i)从由Web产品的基线版本显示的Web页面提取图像文件;以及ii)对从由Web产品的基线版本显示的Web页面提取的图像文件应用散列函数。目标散列值还可以包括一个或多个目标图像文件散列值,每个目标图像文件散列值通过以下操作生成:i)从由Web产品的目标版本显示的Web页面提取图像文件;以及ii)对从由Web产品的目标版本显示的Web页面提取的图像文件应用散列函数。将目标散列值与基线散列值进行比较还可以包括:将至少一个目标图像文件散列值与至少一个基线图像文件散列值进行比较。
[0016] 在一些实施例中,基线散列值还可以包括一个或多个基线字体文件散列值,每个基线字体文件散列值通过以下操作生成:i)从由Web产品的基线版本显示的Web页面提取字体文件;以及ii)对从由Web产品的基线版本显示的Web页面提取的字体文件应用散列函数。目标散列值还可以包括一个或多个目标字体文件散列值,每个目标字体文件散列值通过以下操作生成:i)从由Web产品的目标版本显示的Web页面提取字体文件;以及ii)对从由Web产品的目标版本显示的Web页面提取的字体文件应用散列函数。将目标散列值与基线散列值进行比较还可以包括:将至少一个目标字体文件散列值与至少一个基线字体文件散列值进行比较。
[0017] 本文描述的技术的实施例可以提供对之前的解决方案的显著改进。例如,所公开的技术的实施例可以不需要用户可视地比较所获取的Web产品的目标版本和基线版本的用户界面的截屏。此外,在一些实施例中,在散列值比较显示目标散列值与基线散列值之间没有差异的情况下,除了相对简单的散列值比较之外无需执行自动截屏比较,因此,在目标散列值与基线散列值相匹配时不需要使用系统资源来执行相对复杂的截屏比较。而且,在所有情况下,在执行任何自动截屏比较之前执行散列比较减少或消除了在仅执行自动截屏比较的情况下可能以其他方式由外部因素(例如,浏览器类型、屏幕分辨率)引起的误否定指示。在一些实施例中,在目标散列值与基线散列值不相匹配的那些情况下执行确认性的截屏比较有利地避免了在散列不相匹配但用户界面实际上相同的情况下对用户界面差异的误指示。在一些实施例中,提供图形化地指示目标截屏与基线截屏之间的差异的差异通知有利地向用户指示由目标版本显示的Web页面与由基线版本显示的Web页面如何不同,从而使得由目标版本显示的Web页面可以被有效地生成(例如,在适当时修改或不修改),使得目标版本的用户界面与基线版本的用户界面相匹配。附图说明
[0018] 根据对附图中所示的特定实施例的以下描述,上述和其他目标、特征和优点将显而易见,在附图中,相似的附图标记贯穿不同附图指代相同的部分。附图的元素不一定按比例绘制,而是重点在于说明各个实施例的原理。
[0019] 图1是示出了在所公开的技术的一些实施例中的组件的第一示例并且示出了可以在一些实施例中执行的针对一个或多个验证用例中的每个验证用例生成一个或多个基线散列值和基线截屏的示例的框图
[0020] 图2是示出了在所公开的技术的一些实施例中的组件的第二示例并且示出了在所公开的技术的一些实施例中可以针对一个或多个验证用例中的每个验证用例执行的一个或多个目标散列值与一个或多个对应的基线散列值的比较、目标截屏与对应的基线截屏的比较、以及差异通知的生成的示例的框图;
[0021] 图3是示出了所公开的技术的一些实施例中的可以被执行以生成基线数据的步骤的示例的流程图
[0022] 图4是示出了在用于使用图3中生成的基线数据执行用户界面差异检测的所公开的技术的一些实施例的操作期间执行的步骤的流程图;以及
[0023] 图5是示出了在用于将一个或多个目标散列值与一个或多个对应的基线散列值进行比较以便检测的目标散列值与基线散列值是否相匹配的所公开的技术的一些实施例的操作期间执行的步骤的流程图。

具体实施方式

[0024] 现在将参考附图描述实施例。仅通过示例方式且出于说明目的提供这些实施例。权利要求的范围不限于附图和/或本文另外描述的具体实施例的示例。
[0025] 本文描述的特定实施例、示例和实施方式可以以实现技术意义的任何方式组合。这些特征由此被组合,以形成所有可能的组合、置换和/或变形,除非这些组合、置换和/或变形在本文中已经清楚地被排除和/或技术上是不切实际的。认为该文档中存在对所有这些组合、置换和/或变形的支持。
[0026] 如本文所述,为了检测Web产品的目标版本的用户界面与Web产品的基线版本的用户界面之间的差异,根据由Web产品的目标版本显示的Web页面的内容,生成Web产品的目标版本的至少一个目标散列值。将目标散列值与根据由Web产品的基线版本显示的Web页面生成的基线散列值进行比较。目标散列值与基线散列值之间的差异指示Web产品的目标版本的用户界面与Web产品的基线版本的用户界面之间的差异。响应于目标散列值与基线散列值的比较,可以通过在需要的情况下修改由Web产品的目标版本显示的Web页面以使得Web产品的目标版本的用户界面与Web产品的基线版本的用户界面相匹配,来生成Web产品的目标版本的用户界面。
[0027] 图1是示出了所公开的技术的一些实施例中的组件的第一示例并且示出在一些实施例中可以如何使用Web产品的基线版本来生成基线数据的示例的框图。如图1中所示,UI(用户界面)比较计算机100包括:处理电路102、存储器104、以及显示设备106。处理电路102可以包括一个或多个中央处理单元(CPU)和相关联的硬件电路或由其组成,并且操作用于执行存储器104中存储的程序代码(例如,指令)。
[0028] 显示设备106可以包括任何具体类型的电子视觉显示器或由其组成。图形用户界面148可以由显示设备106显示。
[0029] 存储器104可以包括随机存取存储器(RAM)和只读存储器(ROM)的某种组合或由该组合组成。
[0030] 在操作期间,存储器104中存储的程序代码在处理电路102上执行。存储器104中的程序代码组件可以包括框架逻辑116。验证框架逻辑116包括自动化硬件和/或软件组件或由其组成,该自动化硬件和/或软件执行Web产品上的一组功能或动作,如为了说明的目的通过验证用例118示出的。验证用例118可以包括被设计用于验证Web产品的任何具体数量的验证用例。验证框架逻辑116使用验证用例118验证的Web产品可以包括Web站点、Web应用、或显示一个或多个Web页面的任何其他类型的应用软件,或由其组成。出于说明的目的,验证用例118被示出为:包括验证用例1 120、验证用例2 122、验证用例3 124、等等。验证用例118中的每一个验证用例定义Web产品中的验证点,有时被统称为“检查点”,可以在该点访问和/或验证Web产品(例如,当前由Web产品显示的Web页面的内容、由Web产品显示的用户界面的内容等)中的各个数据对象的当前值。当验证用例中的每个验证用例由验证框架逻辑116执行时,通过验证框架逻辑116将对应的一组验证激励应用于Web产品的版本。例如,用于验证用例的一组输入可以包括一组自动生成的用户输入(例如,自动生成的按钮点击和/或其他类型的自动生成的用户输入)。例如,用于每个验证用例的一组验证激励可以被包含在由验证框架逻辑116运行的脚本等之中和/或由其定义。当每个验证用例被执行、并且用于该验证用例的一组验证激励被应用于Web产品的具体版本时,使得Web产品的该版本显示与该验证用例相对应的Web页面。
[0031] 在图1的示例中,为了生成基线数据(例如,基线数据134),在Web产品的基线版本(由Web产品基线版本108所示)上执行验证用例118。Web产品基线版本108可以是Web产品的之前已经被验证为正确的版本,例如,之前已经被确认并且因此被视为是Web产品的正确操作的版本。当验证用例118中的每个验证用例在Web产品基线版本108上执行时,使得Web产品基线版本108在Web产品基线版本UI 150中显示不同的基线Web页面。例如,在Web产品基线版本108上执行验证用例1 120,使得Web产品基线版本108显示Web页面1 110;在Web产品基线版本108上执行验证用例2 122,使得Web产品基线版本108显示Web页面2 112;在Web产品基线版本108上执行验证用例3 124,使得Web产品基线版本108显示Web页面3 114;并且针对验证用例118中的所有的验证用例以此类推。
[0032] 存储器104中存储的程序代码组件还包括:散列值计算逻辑126、散列值及截屏管理逻辑128、以及散列值及截屏比较逻辑130。当验证用例118中的每个验证用例在Web产品基线版本108上执行时,散列值计算逻辑126生成用于基线Web页面的基线数据134中的对应的一组基线数据,该基线Web页面是验证用例在Web产品基线版本108上执行的结果而由Web产品基线版本108显示的。通过散列值计算逻辑126生成的每组基线数据例如通过散列值及截屏管理逻辑128被存储到散列值及截屏数据库132中。例如,当验证用例1 120在Web产品基线版本108上执行时,散列值计算逻辑126生成Web页面1 110的包括基线散列值136和基线截屏138的一组基线数据。当验证用例2 122在Web产品基线版本108上执行时,散列值计算逻辑126生成Web页面2 112的包括基线散列值140和基线截屏142的一组基线数据。当验证用例3 124在Web产品基线版本108上执行时,散列值计算逻辑126生成Web页面3 114的包括基线散列值144和基线截屏146的一组基线数据,并且针对验证用例118中的所有验证用例以此类推。
[0033] 针对由Web产品基线版本108显示的基线Web页面生成的基线散列值中的每个基线散列值可以由散列值计算逻辑126根据从基线Web页面提取的内容来生成。例如,基线散列值136可以根据从Web页面1 110提取的内容来生成,基线散列值140可以根据从Web页面2 112提取的内容来生成,基线散列值144可以根据从Web页面3 114提取的内容来生成,,并且针对当验证用例118在Web产品基线版本108上执行时由Web产品基线版本108显示的基线Web页面中的每个基线Web页面以此类推。
[0034] 在一些实施例中,针对由Web产品基线版本108显示的每个基线Web页面生成的基线散列值可以包括由散列值计算逻辑126通过以下操作生成的基线HTML散列值:i)从基线Web页面中提取基线Web页面中包含的所有的超文本标记语言(HTML);以及随后ii)对从基线Web页面中提取的超文本标记语言(HTML)应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以使用HTML文档对象模型(DOM)innerHTML性质(例如,document.documentElement.innerHTML)来提取由Web产品基线版本108显示的基线Web页面中包含的HTML。
[0035] 在一些实施例中,针对由Web产品基线版本108显示的每个基线Web页面生成的基线散列值还可以包括一个或多个基线样式表散列值,每个基线样式表散列值由散列值计算逻辑126通过以下操作生成:i)从基线Web页面中提取基线Web页面中包含的样式表;以及随后ii)对从基线Web页面中提取的样式表应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以通过以下操作来提取由Web产品基线版本108显示的每个基线Web页面中包含的样式表:使用HTML文档对象模型(DOM)styleSheets性质(例如,document.styleSheets)来从基线Web页面中提取样式表文件名称的列表。
[0036] 在一些实施例中,针对由Web产品基线版本108显示的每个基线Web页面生成的基线散列值还可以包括一个或多个基线图像文件散列值,每个基线图像文件散列值由散列值计算逻辑126通过以下操作生成:i)从基线Web页面提取基线Web页面中包含的图像文件;以及随后ii)对从基线Web页面中提取的图像文件应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以通过以下操作来提取由Web产品基线版本108显示的每个基线Web页面中包含的图像文件:使用HTML文档对象模型(DOM)images性质(例如,document.images)来从基线Web页面中提取图像文件名称的列表。
[0037] 在一些实施例中,针对由Web产品基线版本108显示的每个基线Web页面生成的基线散列值还可以包括一个或多个基线字体文件散列值,每个基线字体文件散列值由散列值计算逻辑126通过以下操作生成:i)从基线Web页面中提取基线Web页面中包含的字体文件;以及随后ii)对从基线Web页面中提取的字体文件应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以通过提取从基线Web页面中提取的样式表中包含的字体文件名称来提取由Web产品基线版本108显示的每个基线Web页面中包含的字体文件。
[0038] 可以通过任何具体的散列函数来将由散列值计算逻辑126应用于从由Web产品基线版本108显示的每个基线Web页面中提取的HTML、样式表、图像文件和/或字体文件的散列函数包含在程序代码中,该程序代码由处理电路102和/或其他硬件电路执行。例如,由散列值计算逻辑126应用的散列函数可以包括由美国家标准和技术院(NIST)发布的安全散列算法(SHA)(例如,SHA-256)或一些其他具体的散列函数,或由其组成。
[0039] 当验证用例118在Web产品基线版本108上执行时,由Web产品基线版本108显示的每个基线Web页面(例如,Web页面1 110、Web页面2 112、Web页面3 114、等等)可以在图形用户界面148之内显示,例如,在Web产品基线版本UI 150中显示。在一些实施例中,可以针对由Web产品基线版本108显示的每个基线Web页面捕捉截屏,例如,通过散列值计算逻辑126捕捉Web产品基线版本UI 150的截屏。例如,可以在Web页面1 110被显示时捕捉Web产品基线版本UI 150的基线截屏138,可以在Web页面2 112被显示时从Web产品基线版本UI 150捕捉基线截屏142,可以在Web页面3 114被显示时从Web产品基线版本UI 150捕捉基线截屏146,以及针对当验证用例118在Web产品基线版本108上执行时由Web产品基线版本108显示的所有基线Web页面以此类推。
[0040] 图2是示出了在所公开的技术的一些实施例中的组件的第二示例并且示出了在一些实施例中根据Web产品的目标版本(例如,根据Web产品目标版本200)生成的一个或多个目标散列值可以如何与之前根据Web产品的基线版本(例如,根据图1中所示的Web产品基线版本108)生成的一个或多个对应的基线目标散列值进行比较的示例的框图。图2还示出了在一些实施例中基于Web产品的目标版本生成的目标截屏可以如何与基于Web产品的基线版本生成的对应的基线截屏进行比较,并且还示出了在一些实施例中可以如何响应于散列值和/或截屏之间的比较而在一些实施例中针对一个或多个验证用例生成差异通知。
[0041] 在图2的示例中,Web产品目标版本200被存储在存储器108中,并且验证框架逻辑116通过在Web产品目标版本200上执行与之前在Web产品基线版本108上执行的用于生成基线数据(例如,图1)验证用例相同的验证用例,来使得生成目标数据。例如,如图2中所示,验证框架逻辑116在Web产品目标版本200上执行验证用例118中的每个验证用例。例如,Web产品目标版本200可以是可能已经至少部分地通过修改Web产品基线版本108的至少一部分和/或通过为Web产品基线版本108增加新的程序代码来开发的Web产品的更新的和/或经更新的版本。例如,Web产品目标版本200可以包括被添加到Web产品基线版本108以便向Web产品添加Web产品基线版本108中不存在的新功能的新的程序代码。Web产品目标版本200还可以或备选地包括修复在Web产品基线版本108中检测到的一个或多个软件程式错误的新的或经修改的程序代码。
[0042] 在图2的示例中,当验证用例118中的每个验证用例在Web产品目标版本200上执行时,使得Web产品目标版本200在Web产品目标版本UI 222中显示不同的目标Web页面。例如,在Web产品目标版本200上执行验证用例1 120使得Web产品目标版本200显示Web页面1202,在Web产品目标版本200上执行验证用例2 122使得Web产品目标版本200显示Web页面2 204,在Web产品目标版本200上执行验证用例3 124使得Web产品目标版本200显示Web页面3 
206,并且针对验证用例118中的所有的验证用例以此类推。
[0043] 当验证用例118中的每个验证用例在Web产品目标版本200上执行时,作为在Web产品目标版本200上执行验证用例的结果,散列值计算逻辑126生成用于由Web产品目标版本200显示的目标Web页面的目标数据208中的对应的一组目标数据。通过散列值计算逻辑126生成的目标数据208中的每组目标数据可以例如通过散列值及截屏管理逻辑128被存储到存储器104中。备选地,目标数据208中的每组目标数据可以通过散列值及截屏管理逻辑128被存储到散列值及截屏数据库132中。在一些实施例中,散列值及截屏管理逻辑128可以管理由散列值计算逻辑126生成的散列值和截屏,使得针对具体验证用例生成的目标散列值和截屏与该验证用例关联地存储,并且使得针对相同的验证用例生成的基线散列值和截屏也与该相同的验证用例关联地存储。
[0044] 例如,当验证用例1 120在Web产品目标版本200上执行时,散列值计算逻辑126生成用于Web页面1 202的包括目标散列值210和目标截屏212的一组目标数据。当验证用例2 122在Web产品目标版本200上执行时,散列值计算逻辑126生成用于Web页面2 204的包括目标散列值214和目标截屏216的一组目标数据。当验证用例3 124在Web产品目标版本200上执行时,散列值计算逻辑126生成用于Web页面3 206的包括目标散列值218和目标截屏220的一组目标数据集合,并且针对验证用例118中的所有验证用例以此类推。
[0045] 针对由Web产品目标版本200显示的目标Web页面生成的目标散列值中的每个目标散列值可以由散列值计算逻辑126根据从目标Web页面中提取的内容来生成。例如,目标散列值210可以根据从Web页面1202提取的内容来生成,目标散列值214可以根据从Web页面2 204提取的内容来生成,目标散列值218可以根据从Web页面3 206提取的内容来生成,并且针对当验证用例118在Web产品目标版本200上执行时由Web产品目标版本200显示的目标Web页面中的每个咪表Web页面以此类推。
[0046] 在一些实施例中,针对由Web产品基线版本108显示的每个目标Web页面生成的目标散列值可以包括由散列值计算逻辑126通过以下操作生成的目标HTML散列值:i)从目标Web页面提取目标Web页面中包含的所有超文本标记语言(HTML);以及随后ii)对从目标Web页面提取的超文本标记语言(HTML)应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以使用HTML文档对象模型(DOM)innerHTML性质(例如,document.documentElement.innerHTML)来提取由Web产品基线版本108显示的目标Web页面中包含的HTML。
[0047] 在一些实施例中,针对由Web产品目标版本200显示的每个目标Web页面生成的目标散列值还可以包括一个或多个目标样式表散列值,每个目标样式表散列值由散列值计算逻辑126通过以下操作生成:i)从目标Web页面提取目标Web页面中包含的样式表;以及随后ii)对从目标Web页面提取的样式表应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以通过以下操作来提取由Web产品目标版本200显示的每个目标Web页面中包含的样式表:使用HTML文档对象模型(DOM)styleSheets性质(例如,document.styleSheets)来从目标Web页面中提取样式表文件名称的列表。
[0048] 在一些实施例中,针对由Web产品目标版本200显示的每个目标Web页面生成的目标散列值还可以包括一个或多个目标图像文件散列值,每个目标图像文件散列值由散列值计算逻辑126通过以下操作生成:i)从目标Web页面提取目标Web页面中包含的图像文件;以及随后ii)对从目标Web页面提取的图像文件应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以通过以下操作来提取由Web产品目标版本200显示的每个目标Web页面中包含的图像文件:使用HTML文档对象模型(DOM)images(图像)性质(例如,document.images)来从目标Web页面提取图像文件名称的列表。
[0049] 在一些实施例中,针对由Web产品目标版本200显示的每个目标Web页面生成的目标散列值还可以包括一个或多个目标字体文件散列值,每个目标字体文件散列值由散列值计算逻辑126通过以下操作生成:i)从目标Web页面提取目标Web页面中包含的字体文件;以及随后ii)对从目标Web页面提取的字体文件应用散列函数。例如,在一些实施例中,散列值计算逻辑126可以通过提取从目标Web页面提取的样式表中包含的字体文件名称来提取由Web产品目标版本200显示的每个目标Web页面中包含的字体文件。
[0050] 由散列值计算逻辑126应用于从由Web产品目标版本200显示的每个目标Web页面提取的HTML、样式表、图像文件和/或字体文件的散列函数与散列值计算逻辑126用于根据基线Web页面生成基线散列值的散列函数相同,例如,由美国国家标准和技术院(NIST)发布的安全散列算法(SHA)(例如,SHA-256)或一些其他具体的散列函数。
[0051] 当验证用例118在Web产品目标版本200上执行时,由Web产品目标版本200显示的目标Web页面中的每个目标Web页面(例如,Web页面1 202、Web页面2 204、Web页面3 206、等等)可以在图形用户界面148中显示,例如,在Web产品目标版本UI 222中显示。在一些实施例中,针对目标Web页面捕捉的每个目标截屏都可以由捕捉Web产品目标版本UI 150的截屏的散列值计算逻辑126来捕捉。例如,可以在Web页面1 202被显示时从Web产品目标版本UI 222捕捉目标截屏212,可以在Web页面2 204被显示时从Web产品目标版本UI 222捕捉目标截屏216,可以在Web页面3 206被显示时从Web产品目标版本UI 222捕捉目标截屏220,并且针对当验证用例118在Web产品目标版本200上执行时由Web产品目标版本200显示的所有的目标Web页面依次类推。
[0052] 而且,在图2中所示的组件的操作期间,目标数据208中的目标散列值中的一个或多个目标散列值可以(例如,通过散列值及截屏比较逻辑130)与基线数据134中的一个或多个对应的基线散列值进行比较。例如,散列值及截屏比较逻辑130可以将目标散列值210与基线散列值136进行比较、将目标散列值214与基线散列值140进行比较、将目标散列值218与基线散列值144进行比较,以此类推。目标散列值与对应的基线散列值之间的差异指示Web产品的目标版本的用户界面(例如,Web产品目标版本UI 222)和Web产品的基线版本的用户界面(例如,Web产品基线版本UI 150)之间的差异。
[0053] 目标散列值与对应的基线散列值的比较可以包括将目标HTML散列值与基线HTML散列值进行比较或由其组成。例如,在目标散列值210包括根据Web页面1 202的HTML内容生成的目标HTML散列值并且基线散列值136包括根据Web页面1 110的HTML内容生成的基线HTML散列值的情况下,目标散列值210与基线散列值136的比较可以包括根据Web页面1 202的HTML内容生成的目标HTML散列值与根据Web页面1 110的HTML内容生成的基线HTML散列值之间的比较,或由其组成。在目标散列值214包括根据Web页面2 204的HTML内容生成的目标HTML散列值并且基线散列值140包括根据Web页面2 112的HTML内容生成的基线HTML散列值的情况下,目标散列值214与基线散列值140的比较可以包括根据Web页面2 204的HTML内容生成的目标HTML散列值与根据Web页面2 112的HTML内容生成的基线HTML散列值之间的比较,或由其组成。类似地,在目标散列值218包括根据Web页面3 206的HTML内容生成的目标HTML散列值并且基线散列值144包括根据Web页面3 114的HTML内容生成的基线HTML散列值的情况下,目标散列值218与基线散列值144的比较可以包括根据Web页面3 206的HTML内容生成的目标HTML散列值与根据Web页面3 114的HTML内容生成的基线HTML散列值之间的比较,或由其组成,等等。
[0054] 除了HTML内容之外,每个Web页面可以在一些情况中另外包含一个或多个样式表、一个或多个图像和/或一个或多个字体文件。因此,除了将目标HTML散列值与基线HTML散列值进行比较之外,目标散列值与对应的基线散列值的比较还可以包括:i)将一个或多个目标样式表散列值与一个或多个基线样式表散列值进行比较,ii)将一个或多个目标图像文件散列值与一个或多个基线图像文件散列值进行比较,和/或iii)将一个或多个目标字体文件散列值与一个或多个基线字体文件散列值进行比较。例如,目标散列值210与基线散列值136的比较可以另外包括:根据Web页面1 202的内容生成的目标样式表、图像文件和/或字体文件散列值与之前根据Web页面1 110的内容生成的基线样式表、图像文件和/或字体文件散列值之间的比较。目标散列值214与基线散列值140的比较可以另外包括:根据Web页面2 204的内容生成的目标样式表、图像文件和/或字体文件散列值与之前根据Web页面2 112的内容生成的基线样式表、图像文件和/或字体文件散列值之间的比较。类似地,目标散列值218与基线散列值144的比较可以另外包括:根据Web页面3 206的内容生成的目标样式表、图像文件和/或字体文件散列值与之前根据Web页面3 114的内容生成的基线样式表、图像文件和/或字体文件散列值之间的比较,等等。
[0055] 在目标散列值与对应的基线散列值的比较期间可以比较的多种不同类型的散列值中的任何一种或多种类型的散列值之间的不相匹配指示目标散列值与基线散列值之间的不相匹配。因此,当i)目标HTML散列值与对应的基线HTML散列值不相匹配,ii)目标样式表散列值与对应的基线样式表散列值不相匹配,iii)目标图像文件散列值与对应的基线图像文件散列值不相匹配,或iv)目标字体文件散列值与对应的基线字体文件散列值不相匹配时,检测到不相匹配。
[0056] 根据目标Web页面的生成的目标散列值与根据对应的基线Web页面生成的基线散列值的比较在一些情况中可以至少部分地通过以下操作来使得Web产品目标版本UI 150被生成:(如可能需要的)对目标Web页面进行修改使得Web产品目标版本UI 222与Web产品基线版本UI 150相匹配。例如,在一些情况中,通过散列值及截屏比较逻辑130检测到的根据目标Web页面的内容生成的目标散列值与根据对应的基线Web页面的内容生成的基线散列值之间的不相匹配当接下来由用户(例如,响应于自动生成的差异通知)而调查时,可以使得(例如,由用户)确定由Web产品目标版本200显示的目标Web页面包含用户界面程式错误(例如,显示对象或值不期望的截断、一个显示元素与另一个显示元素的不期望的重叠、或一些其他类型的用户界面程式错误)。在这些情况下,然后可以修改目标Web页面,以去除程式错误(例如,由开发人员用户修改目标Web页面的内容,以去除程式错误),使得当所产生的目标Web页面的经修改的版本稍后被显示时,Web产品目标版本UI 222正确地匹配当对应的基线Web页面被显示时Web产品基线版本UI 150的表观。备选地,在其他情况下,根据目标Web页面的内容生成的目标散列值与根据对应的基线Web页面的内容生成的基线散列值之间的不相匹配的检测可以不指示目标Web页面中的用户界面程式错误的存在,而是可以替代地i)不与目标Web产品用户界面与基线Web产品用户界面之间的实际差异相对应,或ii)导致在目标Web产品用户界面不同于基线Web产品用户界面时,(例如,由用户响应于自动生成的差异通知)确定目标Web页面被正确地设计,并且目标Web产品用户界面与基线Web产品用户界面之间的差异反映在Web产品目标版本200中对Web产品做出的更新。在这些情况下,目标Web页面不需要被修改,而是可以在散列值及截屏数据库132中利用目标散列值来替换对应的基线散列值。
[0057] 在一些实施例中,散列值及截屏比较逻辑130对根据目标Web页面的内容生成的目标散列值与根据对应的基线Web页面的内容生成的基线散列值之间的不相匹配的检测使得散列值及截屏比较逻辑130执行基于目标Web页面生成的目标截屏与基于对应的基线Web页面生成的基线截屏之间的比较。例如,对目标散列值210与基线散列值136之间的不相匹配的检测可以使得执行目标截屏212与基线截屏138之间的比较,对目标散列值214与基线散列值140之间的不相匹配的检测可以使得执行目标截屏216与基线截屏142之间的比较,对目标散列值218与基线散列值144之间的不相匹配的检测可以使得执行目标截屏220与基线截屏146之间的比较,等等。
[0058] 在一些实施例中,散列值及截屏比较逻辑130对根据目标Web页面生成的目标截屏与根据对应的基线Web页面生成的基线截屏之间的不相匹配的检测使得散列值及截屏比较逻辑130生成差异通知,该差异通知指示Web产品目标版本UI 222与Web产品基线版本UI 150不相匹配。例如,响应于检测到目标截屏212与基线截屏138之间的不相匹配,散列值及截屏比较逻辑130可以生成差异通知,该差异通知指示当Web页面1 202被显示时的Web产品目标版本UI 222与当Web页面1 110被显示的Web产品基线版本UI 150不相匹配。由散列值及截屏比较逻辑130生成的差异通知可以包括:可视地指示目标截屏与基线截屏之间的差异的图形指示。生成目标截屏与基线截屏之间的差异的这种图形指示可以包括:标识和强调目标截屏中的不同于基线截屏中的对应像素的像素;以及随后将该结果存储为用作差异通知并且可以在以后被(例如,向用户)显示的目标截屏的经修改的版本。
[0059] 例如,响应于检测到目标截屏212与基线截屏138之间的差异而生成差异通知可以包括:i)识别目标截屏212内的与基线截屏138的对应像素区域不同的像素区域,ii)生成经修改的目标截屏226,作为可视地指示目标截屏212内的与基线截屏138内的对应像素区域不同的像素区域的目标截屏212的经修改的版本,以及iii)将经修改的目标截屏226存储到一个或多个差异通知的存储库,例如,将经修改的目标截屏226存储到差异通知224中,所述一个或多个差异通知是在Web产品目标版本200上执行验证用例118时生成的。例如,差异通知224可以包括或一个或多个数据库由其组成,或备选地可以被包含在散列值及截屏数据库132之内。例如,经修改的截屏226可以是多个差异通知中的一个差异通知,所述多个差异通知是在验证用例118在Web产品目标版本200上执行时响应于检测到目标截屏与对应的基线截屏之间的差异而生成并且随后被存储到差异通知224中的。在差异通知224中存储的经修改的截屏226和任何其他差异通知则可以在之后(例如,在图形用户界面148内的差异通知显示250中)被显示给用户。例如,在差异通知224中存储的经修改的截屏226和任何其他差异通知可以是图像文件等,并且可以在已经在Web产品目标版本200上执行验证用例118中的所有验证用例之后被显示。在差异通知224中存储的经修改的截屏226和任何其他差异通知可以由散列值及截屏管理逻辑128、散列值及截屏比较逻辑130和/或操作用于显示图像文件的UI比较计算机100中执行的一些其他显示程序在差异通知显示250中显示。
[0060] 图3是示出了所公开的技术的一些实施例中的可以被执行以生成用于基线Web页面的一组基线数据的步骤的示例的流程图。在步骤300处,使用Web产品的基线版本开始基线数据生成。Web产品的基线版本可以是Web产品的之前验证的版本。
[0061] 在步骤302处,通过对由Web产品的基线版本在Web产品的基线版本的用户界面中显示的基线Web页面的内容应用散列函数,来生成一个或多个基线散列值。基线散列值可以包括根据基线Web页面的HTML内容生成的基线HTML散列值。在一些情况下,基线散列值还可以包括也可以根据基线Web页面的内容生成的一个或多个基线样式表散列值、一个或多个基线图像文件散列值和/或一个或多个基线字体文件散列值。
[0062] 在步骤304处,通过在Web产品的基线版本的用户界面中显示基线Web页面时捕捉Web产品的基线版本的用户界面的内容,来生成基线截屏。
[0063] 在步骤306处,将基线散列值和基线截屏存储到数据库(例如,散列值及截屏数据库)用于以后访问。
[0064] 图4是示出了在用于使用图3中生成的基线数据执行用户界面差异检测的所公开的技术的一些实施例的操作期间执行的步骤的流程图。在步骤400处,使用Web产品的目标版本开始用户界面差异检测。例如,Web产品的目标版本可以是相对于被用于在图3的步骤中生成基线数据的Web产品的基线版本的Web产品的经更新的版本,并且可以包括关于Web产品的基线版本的某一数量的程式错误修复和/或附加功能。
[0065] 在步骤402处,通过对由Web产品的目标版本在目标版本Web产品的用户界面中显示的目标Web页面的内容应用散列函数,来生成一个或多个目标散列值。目标散列值可以包括根据目标Web页面的HTML内容生成的目标HTML散列值。在一些情况下,目标散列值还可以包括也可以根据目标Web页面的内容生成的一个或多个目标样式表散列值、一个或多个目标图像文件散列值和/或一个或多个目标字体文件散列值。
[0066] 在步骤404处,将步骤402中生成的目标散列值与之前根据由Web产品的基线版本显示的基线Web页面生成的基线散列值进行比较。
[0067] 在步骤406处,基于目标散列值是否与基线散列值相匹配来执行分支操作。在所有的目标散列值均与基线散列值相匹配的情况下,步骤406之后是步骤414,在步骤414中,返回指示Web产品的目标版本的用户界面与Web产品的基线版本的用户界面相匹配的通知。
[0068] 否则,在目标散列值中的一个或多个目标散列值与基线散列值不相匹配的情况下,步骤406之后是步骤408,在步骤408中,通过在向之前在图3的步骤304中生成的基线截屏显示目标Web页面时捕捉Web产品的目标版本的用户界面的内容,来生成目标截屏。
[0069] 在步骤410处,基于目标截屏与基线截屏是否相匹配,执行分支操作。在目标截屏与基线截屏相匹配的情况下,步骤410之后是步骤414,在步骤414中,返回指示Web产品的目标版本的用户界面与Web产品的基线版本的用户界面相匹配的通知。
[0070] 否则,在目标截屏与基线截屏不相匹配的情况下,步骤410之后是步骤412,在步骤412中,通过修改由Web产品的目标版本显示的Web页面以使得Web产品的目标版本的用户界面与Web产品的基线版本的用户界面相匹配,来生成Web产品的目标版本的用户界面。例如,在一些实施例中,步骤412可以包括:生成指示Web产品的目标版本的用户界面与Web产品的基线版本的用户界面不相匹配的差异通知,并且之后在图形用户界面内提供的差异通知显示中显示该差异通知。随后可以通过不同通知的显示使用户修改由Web产品的目标版本显示的Web页面,从而使Web产品的目标版本的用户界面与Web产品的基线的用户界面相匹配。
[0071] 图5是示出了在用于将一个或多个目标散列值与一个或多个对应的基线散列值进行比较以便检测针对对应的验证用例生成的目标散列值与针对相同的验证用例生成的基线散列值是否相匹配的所公开的技术的一些实施例的操作期间执行的步骤的流程图。在图5的示例中,基线散列值包括:基线HTML散列值500、基线样式表散列值504、基线图像文件散列值508、以及基线字体文件散列值512,而目标散列值包括:目标HTML散列值502、目标样式表散列值506、目标图像文件散列值510、以及目标字体文件散列值515。然而,本文描述的技术不限于图5中示出的具体的基线和目标散列值,并且,本领域技术人员将认识到,尽管基线Web页面一般将包含从中生成基线HTML散列值500的HTML,并且目标Web页面将包含从中生成目标HTML散列值502的HTML,但是Web页面一般可以包括零个或更多的样式表、图像文件和/或字体文件。因此,尽管出于说明的目的示出图5的示例,但除了单个基线HTML散列值和单个目标HTML散列值、各个基线样式表、图像文件、以及字体文件散列值、以及单个目标样式表、图像文件、以及字体文件散列值之外,在其他情况下可以存在零个或更多的基线样式表、图像文件和/或字体文件散列值,以及零个或更多的目标样式表、图像文件和/或字体文件散列值。
[0072] 如图5中所示,基线HTML散列值500与目标HTML散列值502进行比较,基线样式表散列值504与目标样式表散列值506进行比较,基线图像文件散列值508与目标图像文件散列值510进行比较,并且基线字体文件散列值512与目标字体文件散列值515进行比较。如果存在匹配,则每个比较的结果为“真(TRUE)”,并且,如果存在不匹配,则为“假(FALSE)”。比较结果全部都被传递至“与(AND)”操作516。如果所有的比较具有结果“TRUE”(所有的散列值相匹配),则逻辑“AND”操作516的结果为“TRUE”,并且,如果任何一个或多个比较具有结果“FALSE”(散列值中的一个或多个不相匹配),则逻辑“AND”操作516的结果为“FALSE”。逻辑“AND”操作516的结果被示出为散列值比较结果518,因此,其在所有的散列值相匹配的情况下,具有值“TRUE”并且,如果散列值中的一个或多个不相匹配,则其值为“FALSE”。例如,在一些实施例中逻辑“AND”操作516可以包括图1和图2中示出的存储器104中存储的在图1和图2中示出的处理电路102上执行的程序代码,或由其组成。
[0073] 尽管上述描述使用用于指示具体系统、设备和/或组件的各种具体术语提供实施例的示例,但是这些术语仅是说明性的,并且仅用于方便和简洁的说明的目的。所公开的系统不限于包括或涉及由上文使用的术语标识的系统、设备和/或组件的实施例。
[0074] 本文所公开的技术的方面可以被实现为系统、方法或计算机程序产品。因此,本文描述的要素可以使用硬件、软件(包括固件、驻留软件、微代码等)或软件和硬件的组合来实现。而且,本文示出的实施例的功能可以采用计算机程序产品的形式,该计算机程序产品至少部分地在一个或多个非暂时性计算机可读存储介质中实现,该非暂时性计算机可读存储介质具有在其上存储的用于使得一个或多个处理器执行这些功能的计算机可读程序代码。
[0075] 可以利用一个或多个非暂时性计算机可读存储介质的任意组合。非暂时性计算机可读存储介质的示例包括但不限于:光盘(例如,CD或DVD)、光存储设备、磁盘、磁存储设备、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、和/或前述任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是任何非暂时性有形介质,其可以包含或存储由指令执行系统、装置或设备使用或与其结合的程序。
[0076] 附图包括根据一个或多个实施例的方法、装置和计算机程序产品的说明的框图和流程图。要理解的是,这些附图中的框中的一个或多个框、以及框的组合可以由计算机程序指令实现。这些计算机程序指令可以在用于形成专的硬件的处理电路上执行。计算机程序指令还可以被加载到用于产生机器的计算设备上,使得在计算设备上执行的指令创建用于实现一个或多个框中指定的功能的装置。计算机程序指令还可以被存储在计算机可读存储器中,其可以指示计算设备以特定方式起作用,使得计算机可读存储器中存储的指令产生制造包括实现一个或多个框中指定的功能的指令装置的产品。计算机程序指令还可以被加载到计算设备上,该计算设备用于使得操作步骤的序列的执行,以产生计算机实现的步骤,所述步骤使得在计算设备上执行的指令提供用于实现一个或多个框中指定的功能的步骤。
[0077] 本领域技术人员还将理解的是,可以对所示出的实施例做出修改和变化而不脱离本文描述的创造性的构思。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈