韩育珍,陈军华,高建华
(上海师范大学 计算机科学与技术系,上海 200234)
条件筛选搜索系统包含大量数据信息,用户可以定制条件,以筛选并显示满足条件的数据信息,它需要承受大量用户的服务请求,必须适应长期和高频的访问操作[1],带来保障服务可靠性的挑战。传统软件测试技术可以有效检测并纠正软件中存在的故障和缺陷以应对这一挑战,但它存在着两大问题,即测试用例集的可靠性问题[2]和 Oracle 问题。其中,Oracle问题表示待测软件的执行输出结果复杂或者无法预知的情况[3]。蜕变测试(metamorphic testing)是一种有效缓解复杂系统Oracle问题的软件测试方法[3,4],其测试方法是检查执行程序的多次输入输出是否满足预期的蜕变关系(metamorphic relationship)。
学者们已使用蜕变测试对Oracle问题的缓解进行了初步探索,发现构建有效的蜕变关系可以帮助缓解Oracle问题[5,6]。Zhou等[6]提出通过检查程序多次输出之间的关系代替检查程序的单次输出执行测试。Segura等[3]提出了定义了等价性、等效性、子集、非交集、并集、差集6种蜕变关系输出模式(metamorphic relationship output pattern)。Zhou等[7,8]提出了基于对称(symmetry)的蜕变关系输出模式。Sun等[9]提出了蜕变关系输入模式的概念。Segura等[1]提出了输入等价、洗牌、合并条件、析取条件、不相交的分区、完整分区和分区差异7种蜕变关系模式。
研究发现,条件筛选搜索系统降低了信息的认知负载,增加了多样化的搜索模式。通过分析现有的蜕变关系模式在条件筛选搜索系统执行测试时检测到的软件设计故障及检测效率,提出了两种蜕变关系模式,有效提高了软件设计的故障检测效率。……