一、对照实验法
情形简述:
某工程A在插入了脚本1之后,突然报错。
求:是什么导致工程A出错?
实验过程:
实验组:具备了脚本1的工程A (以新名称A1作为它的名字) ——实验前结果不可知
对照组:不具备脚本1的工程A (以新名称A0作为它的名字) ——实验前结果已可知
变量:工程A是否插入了脚本1
结果:不具备脚本1的工程A0,没有报错
结论:经实验证明,当【工程A不具备脚本1】时,系统不会报错;因此,脚本1会使工程A出错,两者不兼容。
深入探讨:
简言之就是【对比产生认知】
拓展链接:【基础理论】
二、控制变量法
情形简述:
某工程A在插入了脚本1之后,突然报错。
问:脚本1与工程中A中的什么不兼容?
实验过程:
假设:脚本1可能与之前在工程A中插入的脚本2不兼容。
实验组:具备脚本1,不具备脚本2的工程A1
对照组:具备脚本2,不具备脚本1的工程A2
变量:工程A是插入了脚本1,还是脚本2
结果:工程A1与工程A2都未报错
结论:经实验证明,...故脚本1与脚本2不兼容。
深入探讨:
上例中,导致报错的原因,可能还会是“不小心删除了预设脚本”、“素材丢失”等问题。而在两组实验中,仅让“插入脚本1还是脚本2”作为唯一的【不同】,就是“把多因素的问题变成多个单因素的问题,仅改变这一个因素,从而研究这个因素对事物影响”,这就是【控制变量法】。
提问:如果上述实验结果中,未出现【工程A1与工程A2都不报错】的结果,又该得出什么结论?可能的其他实验结果有哪些?
三、中值定理
情形简述:
很久前坑了的工程A,今天填坑的时候突然报错。
只记得是某个脚本插入后,才导致报错。
该工程共插入了 脚本1~脚本100 共一百个脚本。
问:是什么导致工程A出错?
实验过程:
a. 穷举法:
逐一删除插件脚本,并测试游戏,直到游戏不再报错为止。
b. 中值定理:
1. 将脚本平均分为2组:前一半脚本为A组,后一半脚本为B组。
2. 分别只删除组A、组B,测试游戏。删除后,游戏正常运行的,为 报错组。(此处不讨论 两组都删除,系统仍报错的情况,也不讨论删除脚本后,一些素材缺失导致的报错情况。默认测试者已妥善解决这些问题。)
3. 将报错组平均分为2组,重复1.~2.的步骤。直到确定报错脚本为止。
深入探讨:
中值定理的好处是,将变量们等分为两类,迅速判断其出错的1/2位于何处。
问:此实验中的“实验组”、“对照组”、“变量”分别为什么?
四、拓展
1. 变量
本教程中的“变量”,不是指【脚本中的变量】,而是指【某bug的原因】:因"可人为控制这种原因出现与否",故称为 变量。
2. 复杂情况
1) 独立变量: 一个变量的改变不会引起其他变量的改变。
2) 非独立变量: 一个变量的改变会引起其他变量的改变。
3) 两个变量共同作用,产生一个结果。