蜕变测试,本质上是一种基于“属性”的测试。所谓“属性”,指的是被测对象应该具备的某些相对简单的特征。属性是从期望的冗余分解里得到的,一般只提供比较少的冗余信息。 最常用的属性是程序不变量,也就是程序里某个变量应该恒等于什么、恒不等于什么、恒处于某个范围内,等等。比如正弦函数的计算结果,应该恒处于[-...
蜕变关系(Metamorphic Relation, MR) MR是蜕变测试中的核心概念。蜕变关系是指:在输入变化时,输出应该遵循的预期规律。 蜕变关系的一致性 当输入按照蜕变关系发生变化时,得到的新输出和原始输出的关系符合蜕变关系定义的预期(例如,在情感分析任务中,蜕变关系定义为:改变同义词不应该改变情感。) 蜕变关系的不一致性 当...
在之前的文章中我们提到过,冗余信息越多,测试准绳的检出缺陷的能力越强。 测试准绳的缺陷检出能力 蜕变测试的冗余信息是从蜕变关系里来的。如果想更有效地检出缺陷,我们应该用冗余信息比较多的蜕变关系来建立测试准绳。 比方说,计算最大公约数的期望,可以分解出这样两个蜕变关系: 直觉上,似乎是前者提供的信息更多,...
模型蜕变测试(MetamorphicTesting,MT)是一种特殊的测试方法,最早用于解决传统测试方法难以应对的复杂软件系统,特别是那些没有明确预期输出的系统。在模型算法方面,主要利用模型算法内含属性的测试方法,蜕变测试的核心思想是利用已知的、可验证的输入输出关系(蜕变关系)来推断未知的输出结果,从而验证程序的正确性,换...
为了解决这一问题,一种新的测试方法——蜕变测试(Metamorphic Testing)应运而生。 蜕变测试是一种基于现有成功的测试用例生成新的测试用例的方法。它的核心思想是,如果一组测试用例能够成功地通过测试,那么基于这些成功测试用例生成的新的测试用例也有很大可能通过测试。同时,新的测试用例可能会揭示出之前未发现的软件...
蜕变测试(metamorphic testing)是一种新型软件测试技术。要把蜕变测试这个概念讲清楚,不是一件容易的事情。 蜕变测试的科学定义是:识别被测软件所具有的蜕变关系(metamorphic relations),通过检查这些蜕变关系是否成立来判断软件是否存在缺陷的技术。这里的蜕变关系,指的是被测软件多对输入/...
蜕变测试——蜕变关系(一) 写在前面的话 文献介绍 文献说明 蜕变关系知识库 数值计算蜕变关系 算法蜕变关系 几何学蜕变关系 机器学习蜕变关系 优化算法蜕变关系 微积分蜕变关系 写在前面的话 2月28日,正在准备着为下周一的汇报做准备,老师快步走来,从今天开始,研究 蜕变测试 ,然后发了好几篇论文给我。啃书、...
1、蜕变测试概述 2、蜕变测试的典型案例 回到目录 1、蜕变测试概述 程序的执行结果不能预知的现象在测试理论中称为“Oracle问题”,即预期结果不知道。 例如测试sin(x)函数时,sin270的预期结果并不知道,这时就无法验证当x=270 时程序执行的正确性。 Oracle问题是“软件测试中最困难的任务”,它导致测试人员只能选择...
蜕变测试(Metamorphic Testing,简称MT)是一种独特的测试方法,它就像一个侦探,通过发现和检验隐藏的规律来帮助我们测试那些难以直接判断对错的复杂事物。🕵️♂️ 想象一下,你正在玩一个超级计算器游戏,但这个计算器有点特别,它的按钮上没有明确标注每个功能的具体作用。比如,有一个按钮叫“神秘运算”。🔢...
蜕变关系则是指在蜕变测试中,确定新旧版本软件之间的关系,以便准确地进行测试。蜕变测试的规则包括确定蜕变关系、设计测试用例、执行测试用例、比较测试结果等。根据蜕变关系的不同特点,蜕变测试可以分为等价类蜕变测试、边界值蜕变测试、因果关系蜕变测试等不同的分类。 从功能角度来看,蜕变测试的目的是确保软件在升级后...