文献综述(或调研报告):
在当前基于Ajax的web应用程序动态探索技术领域上,由哥伦比亚大学设计出的Crawljax与Feedex是两个目前十分优秀的技术工具。在Ajax中,表示状态的是(单页)用户界面的DOM树的内部结构,而上述程序可以通过记录对各种用户界面状态更改的点击跟踪来对应用程序进行建模,最终得到一个程序的一个状态流图。在上述两种程序中,Crawljax采用Levenshtein算法将生成的DOM树与触发事件之前的DOM树进行比较,利用阈值的大小表达两个DOM树的区别,阈值为0意味着如果两个DOM状态在结构和内容上完全相同,即没有生成新的状态,而在阈值大于某一值时则认为生成了新的状态。而Feedex则与传统的自动化测试程序有着较大的区别,提出了测试模型的四个参数-功能覆盖率、导航覆盖率、页面结构覆盖率和测试模型的大小。对比传统的自动化测试程序,Crawljax对于基于Ajax的应用程序搜索具有较高的有效性、正确性、性能以及可伸缩性;Feedex与传统的爬虫方法相比拥有更高的代码覆盖率、多样性和更小的测试模型。
我们的任务重心就是在于状态比较上,当前相似性比较有如下几种方法,第一,将两个DOM树结构作为两个字符串,并使用里氏方法比较其编辑距离,该方法丢失了DOM树中的一些结构信息;第二,Bag of Path方法,该方法提取DOM状态中从根结点到每个叶子节点的路径,并通过比较两个状态的叶子节点路径判断状态相似性,该方法保留了状态中父子节点的结构信息,但丢失了兄弟节点的信息;第三,Bag of XPath方法,该方法对Bag of Path方法进行了改进,将提取叶子节点的路径改为提取其XPath,这种方法不仅保留了DOM状态中父子节点的关系,还保留了同类型兄弟节点的结构信息,准确性更高,但由于没有包含不同类型兄弟节点的结构信息,因此结构信息也不完整;上述方法均具有不同程度的缺陷,而在图像视觉领域上,哥伦比亚大学也针对web程序测试出现错误中断设计了基于OpenCV的程序VISTA,其可以通过利用测试用例执行过程中提取的视觉信息,以及图像处理和爬行技术,支持Web测试破损的自动修复,经过研究及实践检验后,VISTA 作为一种运行时监控技术,用于检测测试的错误行为超越了简单的其他检测技术,特别是可以在运行时进行大量的正确修复,同时又只需要较低的开销,具有很高的实用性。
综合上述,对于我们课题的走向就有了初步的理解,我们的研究方向就可以从上述论文中的文件如何提高相似性比较的方法上进行研究,从而解决基于图像视觉对用户界面DOM状态相似性研究的课题。
参考文献
- Mesbah A. Software Analysis for the Web: Achievements and Prospects[C], In proc. of the International Conference on Software Analysis, Evolution, and Reengineering. IEEE, 2016:91-103.
- 许蕾. Web应用测试框架及其实现技术研究[D]: [博士学位论文]. 南京: 东南大学计算机科学与工程学院, 2004.
- Wang W, Lei Y, Sampath S, et al. A combinatorial approach to building navigation graphs for dynamic web applications[C]. In proc. of the International Conference on Software Maintenance. IEEE, 2009:211-220.
- Mesbah A, Deursen A V, Lenselink S. Crawling Ajax-Based Web Applications through Dynamic Analysis of User Interface State Changes[J]. ACM Transactions on the Web, 2011, 6(1):1-30.
- Fard A M, Mesbah A. Feedback-directed exploration of web applications to derive test models[C]. In proc. of the International Symposium on Software Reliability Engineering. IEEE, 2013:278-287.
- Stocco A, Yandrapally R, Mesbah A. Visual web test repair[C]. In proc. of the ACM Joint Meeting on the Foundations of Software Engineering. ACM, 2018: 503-514.
资料编号:[179551]
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。