| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 591 人关注过本帖
标题:有没有对测试比较了解的?
只看楼主 加入收藏
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
 问题点数:0 回复次数:9 
有没有对测试比较了解的?
需要测试一大堆函数的功能逻辑是否正确。
#include "stdio.h"

#define SUCCESS 0
#define FAILE   1

int g_Func_A_result;    //控制Func_A的返回值的全局变量
#define Func_A Stub_A    // 对函数Func_A做宏替换
int Stub_A(void)            //Func_A的桩函数
{
    if(SUCCESS == g_Func_A_result)
        return SUCCESS;
    else
        return FAILE;
}

void Driver1(void);
void Driver2(void);
void Source(void);

int main()
{
    Driver1();        //不同的驱动函数
    Driver2();
    return 0;
}

void Driver2(void)
{
    g_Func_A_result = SUCCESS;    //给定入口条件
    Source();
}

void Driver1(void)
{
    g_Func_A_result = FAILE;
    Source();
}

void Source(void)
{
    Func_A();

    Func_B();
}

void Func_B(void)
{
    Func_A();
}

Source是被测代码,它内部调用了几个函数,现在不关心调用函数实现是否正确,
只是检查Source本身逻辑是否正确。所以用Stub_A替换Func_A()的功能,用全局
变量来控制返回值。然后在driver()中检查不同情况下Source的返回值是否正确。
问题是:比如我想调用Func_A返回成功,调用Func_B返回失败,Stub和driver该怎么写?
(注:不能用调用次数来控制,因为代码很多,调用关系也复杂,不可能逐个去看
每个函数是第几次被调用)
// 写的比较乱,不知是否描述清楚了。
搜索更多相关主题的帖子: include void return 
2008-05-16 20:40
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
是很乱,我无法理解“大堆函数的功能逻辑是否正确”是什么意思?你这个程序是用来干什么的?是关于驱动器的吗?

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-16 20:44
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
函数本身不是重点,我找的是测试方法

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-05-16 20:55
Q1007665007
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-5-16
收藏
得分:0 
黑盒测试的话,用大量普通数据,还有一些边界数据
当这两种数据都正确,那就可以认为这部分代码可靠

QQ1007665007
QQ群61762856
2008-05-17 00:14
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
建议给Fun_A和Fun_B分别写个“套子”函数,在里面控制,而不是简单的宏。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-17 00:20
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
回4#
我这个应该是白盒测试。
代码写完了,几个人交叉测试代码。
等这阶段完了交给测试部才是黑盒。

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-05-17 00:32
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
回5#
"套子"函数是什么东东?
能否说详细点或提供点资料?

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-05-17 00:33
Q1007665007
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-5-16
收藏
得分:0 
白盒的话可以有针对地构造边界数据啊
关键是要让所有的分支都能让它有机会运行一次

QQ1007665007
QQ群61762856
Q1007665007
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-5-16
收藏
得分:0 
或者,不如你在函数体的开头加一段直接返回的处理代码,
用一个预处理去包着它,不要的时候就改预处理参数

QQ1007665007
QQ群61762856
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
viod Fun_A()
{....}//具体实现

void Stub_A()
{//参数检查,特殊处理,错误报告等等,专门针对Fun_A这一个函数
#if DEBUG
...
#else
...
#endif
}

不过如果按照效率来说,还是LS的办法最好,写函数的时候就加上#if _DEBUG....

专心编程………
飞燕算法初级群:3996098
我的Blog
  • 10
  • 1/1页
  • 1
快速回复:有没有对测试比较了解的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017030 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved