2010-08-09 115 views
1

我想知道你们是否有很好的阅读方式来考虑将单元测试/验收/集成测试归类为什么。我有以下情况,如果它应该在单元测试中,我们正在进行一场辩论:单元测试应该覆盖压力测试吗?

在我们的数据访问层中,某些语句使用sql,如“select * from people where id IN( 'x','y'),其中IN语句是根据输入动态生成的。最近我们发现我们的Oracle db在IN语句中有1000个变量的限制。一个单元测试场景我们测试单元测试中的sql对数据库是否工作以及逻辑是否正确但是压力测试应该在更高的级别完成

如果我们要测试1000个记录单元测试,我们需要每次填充大量记录的数据库,这可能是低效的。

有什么建议吗?

回答

3

关于你particuliar例如,你其实应该考虑为它做2次测试:

  • 第一个是单元测试,并检查你的函数可以接受请求的输入的最大数量要求。如果没有详细说明,请向分析师澄清。动态生成的请求,比如这是后来调试的痛苦。
  • 第二个是压力测试。但不应该在你的代码的这个特定部分上执行,而应该在将使用它的集成部分上执行。如果你开始进行压力测试单元块,那么你最终会做出过早的优化,因为你会忽略大局,并开始假设这将如何工作,而不是真正地观察它是如何工作的。
2

我相信压力测试应该作为单元测试的一部分来实现。一般来说单元测试应该包含

  1. 准确度试验
  2. 故障测试
  3. 压力测试

如果你不想运行压力,当你运行的其他测试,每次测试,可以考虑将压力测试分组在单独的文本夹具中。

2

单元测试应测试并指定被测单元的功能。在这种情况下,你正在测试数据库,而不是单元,所以我认为这个测试真的是一个单元测试。

一个单元应该独立于它正在使用的数据库,如果您正在测试单元与特定数据库交互的方式,那么它对我来说似乎是一个集成测试