蜕变测试在机器学习领域的应用
2021-01-07敖海洋
西安邮电大学学报 2020年4期
潘 娅,敖海洋
(1.西南科技大学 计算机科学与技术学院 四川 绵阳 621010; 2.西南科技大学 计算机应用研究所 四川 绵阳 621010)
机器学习(machine learning,ML)研究计算机怎样模拟或实现人类学习行为,以获取新知识或新技能,包括重新组织已有的知识结构使之不断改善自身的性能。ML是人工智能的核心,是使计算机具有智能的根本途径。已经被广泛应用于自动驾驶[1-3]、机器翻译[4-5]、生物信息学[6]等诸多领域。
随着机器学习应用的日益广泛,其可靠性受到越来越多的关注。对机器学习可靠性的研究可以通过机器学习测试实现。目前,对机器学习的测试已经展开了大量研究。研究发现,机器学习程序测试过程中存在大量的测试预言(test oracle)问题[7],包括测试待测程序将需要大量的输入,输入的预期输出是未知的或者太昂贵而无法创建,以及与传统应用程序的测试不同,从ML应用程序中找到一个或几个不正确分类的实例并不表示存在缺陷,难以使用“测试预言”来验证计算输出的正确性,很难检测此类应用程序中的错误等问题。
测试机器学习应用程序的一种有效方法是蜕变测试(metamorphic testing,MT)[8]技术。蜕变测试是测试案例生成和测试结果验证的一种方法,使用待验证系统或者被测试程序的必要属性即蜕变关系(metamorphic relation,MR)生成多个相关测试用例,使用多个相关测试用例的预期输出关系[9]验证程序的实际输出的正确性。蜕变测试不仅可以缓解预言问题,还可以实现高度自动化。近年来,利用蜕变测试技术研究机器学习程序质量逐步成为软件测试领域的研究热点之一。……
登录APP查看全文
