请教testcase设计方法
被测函数:uchar fl_evt_tmr(struct TASK_IF_MSG *rcvmsg)
{
ful_port = ful_getecb - ECB_MUL_TM1;
if(ful_telno[ful_port].dialwait_tmid != 0xff)
{
tm_inptm(ful_port,STOP,0);/* RGW1.1 I */
ful_telno[ful_port].event = EVENT_DIAL_TO;
return 0;
}
if(ful_telno[ful_port].hwtwait_tmid != 0xff)
{
tm_onhtm(ful_port,STOP);/* RGW1.1 I */
ful_telno[ful_port].event = EVENT_ONHOOK_TO;
return 0;
}
if(ful_telno[ful_port].dialpause_tmid != 0xff)
{
tm_inttm(ful_port,STOP,0);/* RGW1.1 I */
ful_telno[ful_port].event = EVENT_KETA_TO;
return 0;
}
if(ful_telno[ful_port].trmlock_tmid != 0xff)
{
tm_loctm(ful_port,STOP);
ful_telno[ful_port].event = EVENT_ONHOOK_TO;
return 0;
}
return 1;
}
其中红色为常量,紫色为全局变量,绿色为函数,蓝色为输入。
试问,在这里输入有用吗?个人认为只要测各分支里的ful_telno[ful_port].event 的值就行了,
不知大侠有什么更好的意见。谢谢啊~~~~~~ 补充:还要加上测试最后一个“return 1;” 输入在函数体内根本都没有用到,任何输入得到的结果都是一样的,所以说输入没有用处。
个人意见:还需要要测试一下ful_port 的值,例如在ful_port超出数组ful_telno[]范围的情况下,会有什么样的结果。比较规范的写法应该是开发在所有的if(...)前面要判断一下ful_port的值,如果超出了数组的长度,直接return; 另外对于输入参数,因为它是一个指针,虽然在函数体内没有用到,但是在函数体外,使用它之前应该有一个初始化的过程,就是定义这个指针,我们需要检查一下函数使用完之后有没有把指针释放掉。
做开发的时候经常碰到这类问题,如果没有释放,会有很大的内存消耗。
希望对你有所帮助
回复 #4 xiaocuier 的帖子
哇塞得到你的指点,我感到非常荣幸哦。
这正是我作为新手需要注意的
再次感谢xiaocuiersdlkfj2 sdlkfj2 不客气,作测试我也是新手。大家共同进步! 我也是新手~~
差距咋就这么大呢!!sdlkfj9 sdlkfj9 学习中 学习中
页:
[1]