论文部分内容阅读
随着实际应用需求的不断增加以及Web应用程序技术的发展,Web应用程序的开发和使用日益广泛。Web应用测试是保证Web应用质量的重要手段。Web应用具有内容动态性、运行复杂性和用户使用多样性等特点,迫切需要自动化测试方法和工具的支持,以满足其充分和频繁测试的需求,提高Web应用的质量和生产率。 基于HTML代码分析的Web应用测试方法具有较高的自动化程度,但仍存在测试不够充分和效率不高等问题。针对这些问题,本文提出一种基于约束组合的Web应用自动化测试方法。该方法采用一种改进的深度优先算法自动搜索Web应用状态空间,在搜索过程中利用页面相似性算法处理动态页面,有效解决了状态空间爆炸问题,同时,通过对页面噪声信息和相似元素的分析和处理,减少不必要的路径搜索。在表单组合数据生成过程中,通过考虑数据取值的约束,避免无效测试数据的生成,有效地提高了表单测试的充分性。 在上述工作的基础上,设计实现了基于约束组合的Web应用自动化测试工具ComWebTest,并对九个开源Web应用进行实验研究。结果表明,考虑约束的两两组合方法覆盖了100%的表单提交结果,远高于无约束的两两组合方法,同时所生成的测试用例数量减少了14.39%;而页面相似性算法相比于现有的方法更有效地处理了动态页面;ComWebTest工具覆盖了导航图中76.55%的节点和70.38%边,覆盖率远高于现有工具Tansuo的41.51%和30.41%,也高于工具VeriWeb的44.74%和43.60%。此外,针对54个植入故障,ComWebTest检测出47个,而Tansuo和VeriWeb分别检测出31个和22个,表明ComWebTest具有更好的故障检测能力,但也花费了更多的运行时间。