测试心得

1. 为了访问私有成员,可以将测试类定义为产品类的友元类。例如,定义一个宏:
#define UNIT_TEST(cls) friend class cls##Tester;
然后在产品类声明中加一行代码:UNIT_TEST(ClassName)。 

2. 接下来,我们建立示例的产品函数:
int CMyClass::Add(int i, int j)
{
    return i+j;
}
和对应的测试函数:
void CMyClassTester::Add_int_int()
{
}
把参数表作为函数名的一部分,这样当出现重载的被测试函数时,测试函数不会产生命名冲突

3.单元测试工具
  现在开始介绍单元测试工具,这里只介绍三种,都是用于C++语言的。
  首先是CppUnit,这是C++单元测试工具的鼻祖,免费的开源的单元测试框架。由于已有一众高人写了不少关于CppUnit的很好的文章,想了解CppUnit的朋友,建议读一下Cpluser 所作的《CppUnit测试框架入门》,网址是:http://blog.csdn.net/cpluser/archive/2004/09/21/111522.aspx。该文也提供了CppUnit的下载地址。

  然后介绍C++Test,这是Parasoft公司的产品。[C++Test是一个功能强大的自动化C/C++单元级测试工具,可以自动测试任何C/C++函数、类,自动生成测试用例、测试驱动函数或桩函数,在自动化的环境下极其容易快速的将单元级的测试覆盖率达到100%]。[]内的文字引自http://www.superst.com.cn/softwares_testing_c_cpptest.htm,这是华唐公司的网页。想了解C++Test的朋友,建议访问该公司的网站。华唐公司代理C++Test,想要购买或索取报价、试用版都可以找他们。

  最后介绍Visual Unit,简称VU,这是国产的单元测试工具,据说申请了多项专利,拥有一批创新的技术,不过老纳只关心是不是有用和好用。[自动生成测试代码 快速建立功能测试用例 程序行为一目了然 极高的测试完整性 高效完成白盒覆盖 快速排错 高效调试 详尽的测试报告]。[]内的文字是VU开发商的网页上摘录的,网址是:http://www.unitware.cn。前面所述测试要求:完成功能测试,完成语句覆盖、条件覆盖、分支覆盖、路径覆盖,用VU可以轻松实现,还有一点值得一提:使用VU还能提高编码的效率,总体来说,在完成单元测试的同时,编码调试的时间还能大幅度缩短。算了,不想再讲了,老纳显摆理论、介绍经验还是有兴趣的,因为可以满足老纳好为人师的虚荣心,但介绍工具就觉得索然无味了,毕竟工具好不好用,合不合用,要试过才知道,还是自己去开发商的网站看吧,可以下载演示版,还有演示课件。

4.

博客园-.Net专区 - 周四, 2005-04-28 11:51
前段时间在做一个C++写的DLL(这个DLL中又调用了C写的驱动)的Unit Test,我使用C#来调用里面的API,为了做这个Unit Test,先是根据需求规格说明,设计和其源码设计了多个测试用例,又设计了多个辅助类(包括调用接口,为此还修改了多次C++的代码)来进行每步测试的验证检查,Unit Test的代码也写了快800行经过反复的测试,终于完成了.
想起在大学的时候,在公司做项目(用VB,VC),写好一个组件都要先写个测试程序来测试一番,保证其没有问题,可是实际工作中对Unit Test一直不太重视.最近做这个比较复杂的Unit Test后感觉颇有收获.下面是我搜索到的一些关于Unit Test的Link:
单元测试的六条准则(我粗略翻译了一下):
1.      首先写测试程序
这是XP的格言.先编写测试程序,在有足够的应用程序代码后,使得测试程序能编译通过;然后开始运行测试程序去证明它运行失败,接着继续编写应用程序代码,直到测试程序能正确运行.这个时候,你可以开始写其它的测试程序了.
2.      决不指望编写第一次就能运行成功的测试程序.
在编写好测试程序后,立刻运行之,自然运行失败科学的本质就是弄虚作假.的能力.写一个一开始就能运行成功的测试程序证明不了任何事情.
3.      从零开始,或者一个根本不能工作的用例.
4.      在做测试用例时,别嫌弃做那些琐碎的工作.
5.      松散偶合而且易测试.
为应用程序写高内聚低偶合的组件,这样在测试中就可以这个仿真组件来测试它和其它组件交互的每条路径.而且,在你写了一部份应用的代码后,可以对其进行彻底的测试.
6.      使用仿真对象.
就是仿真特定类型的对象,但实际上是一个接收器,纪录下来那些被调用的方法.
Code Project上也有文章论述Unit Test的:
附我使用的文檔格式
1.1.        目的 1.2.        術語 1.3.        參考

 

Documents
Version Statement
Scenarios
Risks
Remark
軟件需求規格說明書
 
 
 
 
概要設計說明書
 
 
 
 
詳細設計說明書
 
 
 
 
 
2.        測試規劃 2.1.        測試步驟 2.2.        測試程式設計
Class Diagram
 
 
3.        測試用例 3.1.        測試環境

 

專案
 
作者
 
測試單元
 
程式碼
 
場景
 
需求關鍵點
 
主要風險
 
程式碼版本
 
硬體配置
 
軟件配置
 
測試工具
Setup
 
Teardown
 
 
3.2.        Test Case—XXX

 

測試步驟
測試覆蓋 ( 數據)
預想結果
缺陷
日期
判定者
備註
步驟1
 
 
 
 
 
 
檢查1
 
 
 
 
 
 
檢查2
 
 
 
 
 
 
檢查3
 
 
 
 
 
 
檢查4
 
 
 
 
 
 
步驟2
 
 
 
 
 
 
檢查1
 
 
 
 
 
 
 
 
4.        測試報告

 

问题分析表
 
程序名:
测试项目:
已測試內容 :
 
未測試內容
 
測試結果 :
 
備註 :
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值