Web应用程序的回归测试方法和装置制造方法及图纸

技术编号:8271344 阅读:190 留言:0更新日期:2013-01-31 03:33
本申请公开了一种Web应用程序的回归测试方法和装置,其中,该方法包括:获取第一Web应用程序和第二Web应用程序中各功能对应的网页地址,其中,所述第一Web应用程序和第二Web应用程序为同一Web应用程序的不同版本;在相同的测试环境下使用所述获取的网页地址同时请求所述第一Web应用程序和第二Web应用程序;对所述第一Web应用程序响应于所述请求返回的第一结果对象和所述第二Web应用程序响应于所述请求返回的第二结果对象进行比较,得到比较结果。本申请解决现有技术中测试负担较大的问题,在对程序潜在错误的发现数量方面明显强于现有技术,从而减少了测试负担,提高了测试速度。

【技术实现步骤摘要】
本申请涉及互联网领域,具体而言,涉及一种Web应用程序的回归测试方法和装置
技术介绍
敏捷开发是当今全球的软件行业最为流行的开发方式之一,越来越多的在各国软件企业中推行。敏捷开发的一个重要的特征为频繁交付新的软件版本。然而,这个特征带来了频繁的测试,而且,不能保证新增加的功能不会影响到以前的功能,所以敏捷开发模式下会频繁地进行回归测试,也就是,把以前的功能重新测试一遍。这样,导致了大量重复的测试工作,也成为了敏捷开发在实践中遇到的最大的问题。上述回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误 或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极限编程方法中,更是要求每天都进行若干次回归测试。敏捷开发理念对测试工作的压力在于产生频繁的、高重复性的测试工作。目前,国际上还没有很好的解决方案,通常的回归测试的方法为单元测试+自动化测试+人工测试+其它辅助工具(如图片比对测试),上述自动化测试包括使用商业软件(例如,QuickTestProfessional (快速测试专业QTP)等))进行测试。上述单元测试的机制是为软件(每个)“最基本单元”编写一段测试代码。然后运行这些测试代码,检查“检测点”的实际值与期望值是否一致。单元测试理念认为每个“单元”是正确的,整体就是正确的。单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。上述QTP等商业软件的机制是通过鼠标移动、键盘点击操作被测应用,即而得到相应的测试脚本,对该脚本可以进行编辑和调试。在记录脚本的过程中可在插入“检测点”的同时建立期望值。在执行的时候回放该测试脚本,然后检查“检测点”实际结果与期望结果是否相冋。然而,即使使用上述的解决方案,仍然需要测试人员进行大量工作,效果还是不尽如人意,特别是像互联网产品这种在线应用上,测试人员必须要再测,这是因为I)对于单元测试而言需要编写测试代码,测试代码的覆盖率不会达到100%。通常覆盖率越高,写的越深入,重构时面临修改的可能性也越大,这里,重构指的是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。因为重构后的单元不一定是重构前的单元。单元测试也需要跟着“被重构”。另外,单元测试受制于外部数据源和开发人员的能力,因此单元测试对重构后代码是否存在错误的检查能力是很有限的。2)对于QTP等商业自动化测试软件而言QTP等商业自动化测试软件特点在于可以检查页面功能。但是就是这种特征,使得当页面功能有些改动,就需要重新录制脚本。功能变了也要重新录制脚本。而且对于外部数据源的依赖更强,因为它不像单元测试可以Mock(制造假的)数据,举个简单例子当回放测试脚本时,数据库中的数据的测试数据和当初已经完全不同了,甚至字段都不同了。实际使用时很有可能就放弃了对一些结果进行检测。第二个问题,现在页面效果,越来越绚。商业软件很多时候并不能正确捕捉并回放页面事件。导致整个测试都不能运行完。所以针对于回归测试这种场景,商业软件的作用还赶不上单元测试。这些产品的优点在于使用面比较宽,比较通用,但效果比较差。3)对于图片比对测试而言图片比对测试与本申请原理有许多相似之处,但作法却完全不同,简单的说用相同的输入请求两个版本的程序,让计算机自动比较两个程序返回的结果页面是否相同,基本的方法是通过将结果页面直接变成图片然后用算法比对这两 个图片是否相同。图片比对测试通常效果不好,原因是很多功能不可能从外观上体现出来,比如页面上一个超链接是有问题的,不是从外观上能发现的,只有点进去才知道,所以这种问题就测试不出来。另一个问题,即便是页面外观是不同的,也不能认为是错误的。比如一些网站上有很多广告都是随机出现的。这样都会被当成“错误”测出来,这一定是不对的。由上可知,现有的回归测试方法仍然需要大量的人工测试,从而增加了测试负担,降低了测试速度。
技术实现思路
本申请的主要目的在于提供一种Web应用程序的回归测试方法和装置,以至少解决现有技术中测试负担较大的问题。根据本申请的一个方面,提供了一种Web应用程序的回归测试方法,其包括获取第一 Web应用程序和第二 Web应用程序中各功能对应的网页地址,其中,所述第一 Web应用程序和第二 Web应用程序为同一 Web应用程序的不同版本;在相同的测试环境下使用所述获取的网页地址同时请求所述第一 Web应用程序和第二 Web应用程序;对所述第一 Web应用程序响应于所述请求返回的第一结果对象和所述第二 Web应用程序响应于所述请求返回的第二结果对象进行比较,得到比较结果。根据本申请的另一方面,提供了一种Web应用程序的回归测试装置,其包括获取单元,用于获取第一 Web应用程序和第二 Web应用程序中各功能对应的网页地址,其中,所述第一 Web应用程序和第二 Web应用程序为同一 Web应用程序的不同版本;请求单元,用于在相同的测试环境下使用所述获取的网页地址同时请求所述第一 Web应用程序和第二 Web应用程序;比较单元,用于对所述第一 Web应用程序响应于所述请求返回的第一结果对象和所述第二 Web应用程序响应于所述请求返回的第二结果对象进行比较,得到比较结果。通过本申请的技术方案,能够达到以下有益效果I)通过在相同的测试环境下使用网页地址同时请求两个版本的Web应用程序,可以比对出前后两个版本之间的差异,而这种差异可以体现出修改后的代码是否对Web应用程序的各个功能产生影响,也就是说,根据比较的结果可以判断出两个版本的Web应用程序中的哪些功能没有改变,哪些功能发生了改变,从而在后续测试中可以只针对发生了改变的功能进行测试,而不需要对没有发生改变的功能进行测试,这样减少了测试次数和测试负担,提高了测试速度;2)通过在相同的测试环境下使用网页地址同时请求两个版本的Web应用程序,使得测试基本不依赖具体测试数据,这样可以降低测试数据的维护成本;3)本申请通过将Web应用程序响应于请求返回的结果对象中的所有属性(包括所有子属性)转换为基本的数据类型再序列化到磁盘上,解决不同应用程序对象之间无法比对的问题;4)本申请通过限制遍历深度和检查类名等方式来控制属性遍历范围,从而解决了遍历比较时容易失去控制,无法成功遍历的问题; 5)本申请在比较结果对象时对具有随机性特征的属性提供自定义的比较器,保证对被测程序的高覆盖率;6)本申请先将比较结果生成数据文件,然后再读取所述数据文件中的比较结果,按照不同格式的报表格式使用所述比较结果来生成报表,这样,得到比较结果的测试过程和生成报表的过程分离开,使得在需要生成不同的报表时,可以不需要重新进行测试过程,而直接根据数据文件进行扩展,从而减少了测试次数,降低了测试时间,提高了测试的扩展性;7)本申请在所述Web应用程序执行所请求的功能的过程中对Web应用程序进行拦截得到结果对象,从而解决了本文档来自技高网
...

【技术保护点】
一种Web应用程序的回归测试方法,其特征在于,包括:获取第一Web应用程序和第二Web应用程序中各功能对应的网页地址,其中,所述第一Web应用程序和第二Web应用程序为同一Web应用程序的不同版本;在相同的测试环境下使用所述获取的网页地址同时请求所述第一Web应用程序和第二Web应用程序;对所述第一Web应用程序响应于所述请求返回的第一结果对象和所述第二Web应用程序响应于所述请求返回的第二结果对象进行比较,得到比较结果。

【技术特征摘要】
1.一种Web应用程序的回归测试方法,其特征在于,包括 获取第一 Web应用程序和第二 Web应用程序中各功能对应的网页地址,其中,所述第一Web应用程序和第二 Web应用程序为同一 Web应用程序的不同版本; 在相同的测试环境下使用所述获取的网页地址同时请求所述第一 Web应用程序和第二 Web应用程序; 对所述第一 Web应用程序响应于所述请求返回的第一结果对象和所述第二 Web应用程序响应于所述请求返回的第二结果对象进行比较,得到比较结果。2.根据权利要求I所述的方法,其特征在于,对所述第一Web应用程序响应于所述请求返回的第一结果对象和所述第二 Web应用程序响应于所述请求返回的第二结果对象进行比较的步骤包括 在所述第一 Web应用程序执行所请求的功能的过程中对所述第一 Web应用程序进行拦截得到所述第一结果对象,在所述第二 Web应用程序执行所请求的功能的过程中对所述第二 Web应用程序进行拦截得到所述第二结果对象; 将所述第一结果对象的属性和所述第二结果对象的属性进行序列化; 将序列化后的所述第一结果对象的属性和所述第二结果对象的属性加载到同一内存空间中进行比较。3.根据权利要求2所述的方法,其特征在于,在将所述第一结果对象的属性和所述第二结果对象的属性进行序列化之前,还包括 对所述第一结果对象的属性和所述第二结果对象的属性进行过滤,过滤掉无用的属性; 将除所述无用的属性之外的所述第一结果对象的属性和所述第二结果对象的属性进行序列化。4.根据权利要求3所述的方法,其特征在于,通过以下步骤判断所述无用的属性 若所述属性的深度超过预定阈值,则判断该属性为无用的属性;或者 若所述属性为预定的集合类型中的属性,则判断该属性为无用的属性;或者 若所述属性的类名不为预定集合中的类名,则判断该属性为无用的属性。5.根据权利要求2所述的方法,其特征在于,将序列化后的所述第一结果对象的属性和所述第二结果对象的属性加载到同一内存空间中进行比较的过程包括 将所述第一结果对象和所述第二结果对象加载到测试程序的内存中; 遍历判断序列化后的所述第一结果对象的属性和所述第二结果对象的属性之间是否存在差异; 若存在差异,则输出指示所述第一结果对象的属性和所述第二结果对象的属性之间存在差异的息。6.根据权利要求I所述的方法,其特征在于,在对所述第一Web应用程序响应于所述请求返回的第一结果对象和所述第二 Web应用程序响应于所述请求返回的第二结果对象进行比较之后,还包括 将比较结果生成数据文件; 读取所述数据文件中的比较结果,按照不同格式的报表格式使用所述比较结果来生成 艮表。7.根据权利要求I所述的方法,其特征在于,所述相同的测试环境包括同一时间在同一台机器上使用同一个测试程序。...

【专利技术属性】
技术研发人员:白爽
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1