对于 C++,有很多好的单元测试框架,但是我找不到一个好的功能测试框架。对于功能测试,我的意思是接触磁盘的东西,需要整个应用程序就位等。
以防万一:什么框架有助于测试您的 I/O 是否有效?我有一个手动系统,它创建临时文件夹,复制一堆数据,所以测试总是在同一个环境中完成,但在我花更多时间在我的自定义框架上之前——有没有好的一个已经在那里了吗?
对于 C++,有很多好的单元测试框架,但是我找不到一个好的功能测试框架。对于功能测试,我的意思是接触磁盘的东西,需要整个应用程序就位等。
以防万一:什么框架有助于测试您的 I/O 是否有效?我有一个手动系统,它创建临时文件夹,复制一堆数据,所以测试总是在同一个环境中完成,但在我花更多时间在我的自定义框架上之前——有没有好的一个已经在那里了吗?
我已经从头开始写了 3 次——两次用于测试使用 FIX 协议与交易所通信的 C++ 应用程序,一次用于 GUI 应用程序。
问题是,您需要模拟外界来进行适当的系统测试。我的意思不是“在你的代码之外”——在你的应用程序之外。这涉及模拟最终用户、外部实体、互联网等。
我通常使用 perl 来编写我的系统测试框架和测试,主要是因为它可以很好地访问各种操作系统工具,并且正则表达式是一等公民。
一些提示:确保您的日志易于解析、详细但不太冗长。有一个健全的默认配置。轻松“重置”应用程序 - 您需要在每次测试后执行此操作。
我通常使用的方法是拥有某种“适配器”,将应用程序与外界的通信转换为某些可执行文件的标准输入/标准输出。然后我在此基础上构建了一个 perl 框架,然后测试用例使用该框架。
下面我列出了一些我知道的工具和更大的测试应用程序。如果您提供有关您的平台(操作系统等)的更多信息,我们可能会提供更好的答案。
对于您需要的部分内容,Microsoft 提供了Application Verifier:
应用程序验证程序 (AppVerifier) 是一种运行时验证工具,用于测试应用程序与 Microsoft Windows XP 的兼容性。此工具可用于在应用程序运行时测试各种已知的兼容性问题。本文详细介绍了使用 AppVerifier 作为应用程序开发和测试周期的有效补充的步骤。
应用程序验证器可用于测试低内存条件、其他低资源和其他 API 使用情况。
难题的另一部分是 Microsoft Detours 包,它可用于用您自己的代码替换 API 调用(例如,为难以设置的测试返回错误代码)。
Detours 是一个库,用于在 x86、x64 和 IA64 机器上检测任意 Win32 函数。Detours 通过重写目标函数的内存代码来拦截 Win32 函数。Detours 包还包含用于将任意 DLL 和数据段(称为有效负载)附加到任何 Win32 二进制文件的实用程序。
还有其他更大(且更昂贵)的综合软件包可用。Borland 制造丝绸。
自动化软件使TestComplete成为可能。选择其中一种工具将取决于您对应用程序的需求。
IBM/Rational 提供了Rational Functional Tester,它可以跨许多平台使用,并且功能丰富。
嗨,我不确定我们的框架是否对您的情况有所帮助,但它与 Rational Functional Tester 挂钩,并允许用户创建各种数据集以附加到不同的测试,并在不更改脚本的情况下更改环境,并重用自动化有效的方式。如果您有兴趣,请查看: http ://www.testpro.com.au/Test-Automation-Framework.html