测试程序的架构/设计建议

时间:2009-09-28 20:42:36

标签: c++ testing

我正在尝试用c ++构建一个测试程序,以自动化测试特定的应用程序。测试将涉及将具有字段“CommandType”和其他一些字段的请求发送到服务器

commandType可以是'NEW','CHANGE'或'DELETE' 测试可以是

  1. 发送一堆没有模式的随机请求
  2. 发送100个“新”请求,然后发出大量“更改”请求,然后发出200个“删除”请求
  3. 发送'DELETE'请求,然后发送'CHANGE'请求 ......等等。
  4. 如何设计我的软件(什么样的模块或层),以便添加任何新类型的测试用例都很容易和模块化?

    编辑:更具体地说,此测试将仅测试一个获取上述类型请求并处理它们的特定应用程序。这将是一个客户端应用程序,将请求发送到服务器。

4 个答案:

答案 0 :(得分:1)

我不会创建自己的框架。有很多已经写好的,遵循一个共同的模式,可以优雅地满足您的需求。

我见过的所有版本中的xUnit框架允许您添加新的测试用例,而无需编辑运行测试的代码。例如,CppUnit提供了一个宏,当添加到测试用例时,将使用全局注册表自动注册测试用例(通过我假设的静态初始化)。这允许您添加新的测试用例而不会破解打开并编辑运行它们的东西。

不要让xUnitCppUnit中的“单位”让您觉得不合适。我已经将xUnit框架用于所有不同类型的测试。

答案 1 :(得分:0)

我会将每个单独的测试分成它自己的程序,或者如果它需要超出一两个函数的代码,它就是它自己的源文件。然后在我的主要例程中,我会做类似的事情:

void main()
{
    run_test_1();
    run_test_2();
    //...
    run_test_N();
}

或者,我建议利用Boost Test Library并遵循其约定。

答案 2 :(得分:0)

我假设你不是在谈论创建单元测试。

恕我直言,你的问题太模糊,无法提供有用的答案。这是为了测试一个特定的应用程序,还是你试图制作足够通用的东西来测试尽可能多的不同应用程序?这些应用程序在哪里生活?它们是客户端服务器应用程序,Web应用程序等吗?

如果您希望工具测试的是多个应用程序,则需要一个在测试工具和应用程序之间创建协议的体系结构,以便您可以转换工具和工具使用者的指令。了解被测试的应用程序可以理解的指令。我过去做过类似的事情,但我只需要担心5种不同的“应用程序”,所以总结应用程序的所有独特功能然后创建支持它们的interfact是一个非常简单的问题。所有

我不认为NEW,CHANGE和DELETE也是你唯一的命令类型。许多测试涉及数据清理,测试报告等。应用程序都以自己的特殊方式处理这些问题。

答案 3 :(得分:0)

使用C ++单元测试框架,阅读this了解详细信息和示例