51Testing软件测试论坛
标题:
请教DSP 平台 如何做 白盒测试。
[打印本页]
作者:
tohope
时间:
2009-1-14 17:31
标题:
请教DSP 平台 如何做 白盒测试。
做了两年开发,代码流程都很清楚。
只是,刚刚转到测试上来,做白盒测试,我看了几天网页,还是没明白如何在dsp上实现。
有没有哪位兄弟,做过这方面的东西。请给个提醒!
需要做什么?
怎么做?
覆盖测试到底要怎么做?代码有几十k,我测试时,如何才能做到覆盖???
接口、ISR这些函数如何处理?
问题太多太多,谢谢大家不吝赐教,回答一个也行!
作者:
yamaya
时间:
2009-1-15 16:51
覆盖测试:首先画出程序的流程图,然后根据流程图画出DD路径,选取需要测试的路径(可根据判定覆盖、条件覆盖等,选择测试的强度)。然后在需要的地方插入打印信息或调试信息等。
单元测试时,函数可一个一个的测,对于接口函数,可先假定这些被调用函数都是正确的,模拟给出传入的参数,目的是是本函数(被测函数)可正确执行,也可根据需要设置参数的等价类及边界值。
说的不知道对不对,请见谅。
作者:
tohope
时间:
2009-1-16 10:05
标题:
谢谢 yamaya 的关注。
谢谢,我就按照你说得做了,但是,对覆盖的实现很疑惑。
1。是不是对每个函数都要进行覆盖测试测试?
2。如下例程序:如何做白盒测试(因为系统所限,决定使用C语言、在DSP板上跑如下程序,程序是一个简单的嵌入式处理流程,在中断服务程序中接收数据,然后,处理,最后发送数据)。
这个例子,是常用的简单模型,我想做嵌入式程序中基本上都有这样的流程,不知道如何进行,全面的白盒测试,我没有做过测试,望请经验前辈,指点一二,不胜感激。
int RecFlag;
int OutputFlag;
void main(void)
{
HwInit(); //硬件初始化
IntInit(); //中断初始化
while(1)
{
if(RecFlag == 1)
{
DataProc();
}
if(OutputFlag == 1 )
{
DataOutput();
}
}
}
void isr()
{
RecData(gInArray);
RecFlag = 1;
}
//由gInArray 获取,处理,返回gOutArray();
void DataProc(void)
{
int i ;
if(gInArray[0] == 0)
gOutArray[0] = 1;
else if(gInArray[0] == 1)
gOutArray[0] = 2;
else
gOutArray[0] = 3;
for(i = 0;i<sizeoflast;i++)
gOutArray[i+1] = 0x80;
OutputFlag = 1 ;
}
void DataOutput(void)
{
for(i = 0;i< SENDBUFSIZE ;i++)
{
writeSerialPort(gOutArray
);
}
}
作者:
yamaya
时间:
2009-1-16 17:17
我觉得最基本的,可以在isr函数中分别指定不同的参数,给gInArray数组和RecFlag赋不同初值组合,从而测试main函数的不同分支。此外再加上DataProc和DataOutput函数中,i参数的不同取值(可考虑边界值),取值组合的多少依据判定覆盖、条件覆盖及你希望的测试强度。
至于是不是每个函数都要测试,我觉得在这个例子里,需要测的应该是main、DataProc和DataOutput三个函数,而且可以一并测试。
这方面接触的也不多,说的错的地方敬请指正。
作者:
独角兽妹妹
时间:
2009-6-8 17:08
我是作嵌入式测试工具的。在覆盖率这块:语句覆盖,分支覆盖,Call覆盖。
作者:
majun915
时间:
2009-6-8 19:31
我只有学习 帮顶得份了 呵呵
作者:
dylyq1104
时间:
2009-6-19 11:55
正在学习中,受教了
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2