触发方式:
假定下面的参数能取到所有的整数。
if(param1 > 1 && param1 < 2 && param2 > 19 && param2 < 21)
triggerbug();
通过调节触发范围,就能调整bug的再现频率。
除此之外,利用整数溢出也能制造出不易再现的bug。
函数内静态变量由于和函数的调用次数相关,也可以被用来制造不易再现的bug。
制造BUG:假定目标函数返回一个浮点数,那么最好的方式是在正确的结果上面修改最低的几位。例如如果应该返回1.2345,就在就返回1.2346。这种bug不仅不易察觉还容易将锅甩到别的模块去。
关于触发和制造BUG:可以在A方法里面收集触发条件,在B方法里面制造bug,这种非线性的方式能够更好的隐藏整个逻辑。
关于注释:现实里给局部变量起名以及为算法添加注释往往是很困难,所以我们可以利用这一点给局部变量起有误导的名字然后自己建立一组注释来解释这一点,最后将注释做成patch留到单位的电脑里不提交。他们不是裁员不补偿么,35以上就裁员么,那只要他们把电脑收走就让后继者无法接手你的工作。
关于测试:现实里测试组根本不可能进行全覆盖的测试,所以可以和测试组的哥们商量一下,故意对某些测试case放行,让bug到生产领域爆发。
适用范围:算法多的程序类型—AI,大数据,云计算等等,因为这种类型的函数由于代码量多,很容易隐藏各种逻辑。
它们不是996是福报么,那就让他们嗑药嗨到死。多多转发。
触发方式:
假定下面的参数能取到所有的整数。
if(param1 > 1 && param1 < 2 && param2 > 19 && param2 < 21)
triggerbug();
通过调节触发范围,就能调整bug的再现频率。
除此之外,利用整数溢出也能制造出不易再现的bug。
函数内静态变量由于和函数的调用次数相关,也可以被用来制造不易再现的bug。
制造BUG:假定目标函数返回一个浮点数,那么最好的方式是在正确的结果上面修改最低的几位。例如如果应该返回1.2345,就在就返回1.2346。这种bug不仅不易察觉还容易将锅甩到别的模块去。
关于触发和制造BUG:可以在A方法里面收集触发条件,在B方法里面制造bug,这种非线性的方式能够更好的隐藏整个逻辑。
关于注释:现实里给局部变量起名以及为算法添加注释往往是很困难,所以我们可以利用这一点给局部变量起有误导的名字然后自己建立一组注释来解释这一点,最后将注释做成patch留到单位的电脑里不提交。他们不是裁员不补偿么,35以上就裁员么,那只要他们把电脑收走就让后继者无法接手你的工作。
关于测试:现实里测试组根本不可能进行全覆盖的测试,所以可以和测试组的哥们商量一下,故意对某些测试case放行,让bug到生产领域爆发。
适用范围:算法多的程序类型—AI,大数据,云计算等等,因为这种类型的函数由于代码量多,很容易隐藏各种逻辑。
它们不是996是福报么,那就让他们嗑药嗨到死。多多转发。