liulinzhu 发表于 2007-6-8 14:59:27

请教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 的值就行了,
不知大侠有什么更好的意见。谢谢啊~~~~~~

liulinzhu 发表于 2007-6-8 15:01:32

补充:还要加上测试最后一个“return 1;”

xiaocuier 发表于 2007-6-8 16:00:29

输入在函数体内根本都没有用到,任何输入得到的结果都是一样的,所以说输入没有用处。

个人意见:还需要要测试一下ful_port 的值,例如在ful_port超出数组ful_telno[]范围的情况下,会有什么样的结果。比较规范的写法应该是开发在所有的if(...)前面要判断一下ful_port的值,如果超出了数组的长度,直接return;

xiaocuier 发表于 2007-6-8 16:07:41

另外对于输入参数,因为它是一个指针,虽然在函数体内没有用到,但是在函数体外,使用它之前应该有一个初始化的过程,就是定义这个指针,我们需要检查一下函数使用完之后有没有把指针释放掉。
做开发的时候经常碰到这类问题,如果没有释放,会有很大的内存消耗。
希望对你有所帮助

liulinzhu 发表于 2007-6-8 17:08:23

回复 #4 xiaocuier 的帖子

哇塞

得到你的指点,我感到非常荣幸哦。
这正是我作为新手需要注意的
再次感谢xiaocuiersdlkfj2

xiaocuier 发表于 2007-6-8 17:31:58

sdlkfj2 不客气,作测试我也是新手。大家共同进步!

liulinzhu 发表于 2007-6-11 10:04:39

我也是新手~~
差距咋就这么大呢!!sdlkfj9 sdlkfj9

caocao668 发表于 2007-6-11 14:38:30

学习中

xinminghe 发表于 2007-12-25 17:23:35

学习中
页: [1]
查看完整版本: 请教testcase设计方法