失真
底层函数调用的是桩代码。桩代码当然不能实现原有代码的功能,这就是失真。这个例子跟介绍不可控是同一个函数,不同的是,底层函数调用的是桩代码,一般的桩代码是什么也不做的,底层函数的返回值总是0,并且未输出环境温度,测试做不下去。失真是打桩造成的,是打桩的必然结果。可不可以通过修改桩代码来解决失真呢?有时候是可以的,有时候不行,后面会有进一步的介绍。
刚才我们讨论了失真。
难于初始化
在谈到自然输入时,我们讨论过,为了使底层函数产生需要的测试输出,需合设置合适的外部输入,即通过设置外部输入的方式来初始化底层函数,很多时候,这个工作是很困难的,例如,要使圆的面积等于100.00,半径应该是多少?再如,为了使一个映射表在搜索某个对象时能返回真,需要预先建立该对象并加入表中,很简单的一个输出,却需要比较麻烦的初始化。实际工作中比这些例子更难的多得是。这些就是难于初始化。