2009-01-13 48 views
10

对于C++,有很多很好的单元测试框架,但我找不到一个好的functional testing。有了功能测试,我的意思是触及磁盘的东西,需要整个应用程序等。C/C++功能/系统测试的测试框架?

点情况:什么样的框架可以帮助测试是否您的I/O工作?我有一个手动滚动系统,它创建临时文件夹,围绕一堆数据进行复制,因此测试总是在相同的环境中完成,但在我花费更多时间在我的定制框架之前 - 是否有那里已经有好的一个?

+0

你在哪个平台上? – 2009-01-13 13:37:50

+0

目前的Windows和Linux。我目前的测试框架是针对.NET 2编写的,适用于Mono工作的地方。 – Anteru 2009-01-13 16:14:01

回答

3

我从头开始写了三遍 - 两次用于测试使用FIX协议交谈的C++应用程序,一次用于GUI应用程序。

问题是,你需要模拟外界做适当的系统测试。我的意思是“你的代码之外” - 在你的应用程序之外。这涉及模拟最终用户,外部实体,互联网等。

我通常使用perl来编写我的系统测试框架和测试,主要是因为它很适合访问各种操作系统设施,而正则表达式是一流的公民。

一些提示:确保您的日志很容易解析,但详细但不太详细。有一个理智的默认配置。轻松“重置”应用程序 - 您需要在每次测试后完成。

我通常使用的方法是使某种“适配器”将应用程序与外部世界的通信转换为某些可执行文件的标准输入/标准输出。然后我在上面构建一个perl框架,然后测试用例使用框架。

2

下面我列出了一些我知道的工具和更大的测试应用程序。如果您提供有关您的平台(操作系统等)的更多信息,我们可能会提供更好的答案。

对于您所需要的一部分,微软提供了Application Verifier

应用程序验证程序(AppVerifier)在测试应用程序用于与Microsoft Windows XP兼容的运行时验证工具。该工具可用于在应用程序运行时测试各种已知的兼容性问题。本文详细介绍了使用AppVerifier作为应用程序开发和测试周期的有效补充的步骤。

应用程序验证程序可用于测试低内存条件,其他低资源和其他API使用情况。

这个难题的另一部分是Microsoft Detours包,它可以用你自己的代码替换API调用(对于难以设置的测试返回错误代码很有用)。

Detours是一个用于在x86,x64和IA64机器上检测任意Win32函数的库。 Detours通过重写目标函数的内存代码来拦截Win32函数。 Detours软件包还包含用于将任意DLL和数据段(称为有效内容)附加到任何Win32二进制文件的实用程序。

还有其他更大(也更昂贵)的综合软件包可用。 Borland制作Silk
自动软件使得TestComplete。选择其中一种工具可以满足您的应用需求。
IBM/Rational提供了可在多种平台上使用的Rational Functional Tester,并且功能丰富。

+0

与Detours相提并论的是,尽管v2.1是免费的,但它仅适用于研究,非商业,非生产。 3.0版本取消了这些限制,但花费9,999美元 - 如果您不知道它是否满足您的需求,则需付出沉重的承诺。 – 2011-07-05 21:05:14

0

您好我不确定我们的框架是否有助于您的情况,但它会挂钩到Rational Functional Tester中,并允许用户创建各种数据集以附加到不同的测试并更改环境而无需更改脚本和重用以有效的方式实现自动化。 看看你的兴趣: http://www.testpro.com.au/Test-Automation-Framework.html