1 自然输入
自然输入是指对底层函数的正常调用即可获得的内部输入。代码一中Compare()函数内,int a1 = GetArea(r);可以自然取得外接正方形的面积。如果外接正方形面积a1要得到某个预期的值,要传递合适的半径r,半径r称为间接输入。间接输入需根据自然输入及底层函数的功能来倒推,要获得符合预期的自然输入有三个条件:一是底层函数存在,二是底层函数正确,三是间接输入正确。很多时候,自然输入很简单,而间接输入很复杂,这就是难于初始化。
2 不可控
是指调用实际代码,但实际代码的输出难于控制,无法产生测试需要的指定值。例如,底层函数返回一个随机数,就是不可控。在实际项目中,不可控是很常见的,下面的代码是空调控制程序中的一个函数:
extern int GetTemperature(int *pTemperature); //取环境温度
int gExpectTemperature = 25; //全局变量,预设的目标温度
/*
功能: 空调控制程序片断,取得环境温度并计算制冷器需运行的时间
参数: pWorkTime, 输出参数,保存制冷器需运行的时间
返回: int类型,如果函数执行失败,返回0,否则返回非0值
*/
int WorkTime(int *pWorkTime)
{
int success = 0; //取环境温度是否成功
int temperature; //环境温度