如何进行集成测试?有哪些好的方法?

24
我们编写了自己的集成测试工具,可以编写许多“操作”或测试,例如“生成订单”。我们有许多参数可以用来配置测试(例如订单数量)。然后我们编写第二个操作以确认测试是否通过/失败(即是否存在订单)。
该工具用于:
- 集成测试 - 数据生成 - 端到端测试(通过混合和匹配多个测试)
它似乎表现良好,但需要开发经验来维护和编写新测试。我们的测试团队希望参与其中,但他们很少有 C# 开发经验。
我们即将开始一个新的 Greenfield 项目,我正在研究编写和维护集成测试的最佳方法。
以下是问题:
- 如何执行集成测试? - 使用什么工具进行测试(FitNess?自定义?NUnit)?
期待大家的建议和评论。
谢谢! David

你打算使用持续集成测试吗? - Paul Sonier
我的意图并不是在提出问题,但我相信至少一些开发/C#经验对测试人员非常有益。这可能是他们学习一些开发技能的时候了。 - Greg D
@McWaffletix - 我们编写的自定义工具在代码被CC.NET检查时运行,因此它将持续运行 :)@Greg D - 我完全同意 :) 但是我们的测试人员不这样认为!问题在于说服他们C#很有趣。这是一个完全的心态转变,我们经常听到“我们不是开发人员”... - David Kiff
3个回答

12

集成测试可以在用户界面层面(通过自动化功能测试-AFT)或服务/ API接口层面进行。

两种情况下都有几个工具:

我曾经参与过的项目成功地使用了 Sahi Selenium 进行Web应用程序的AFT, white 适用于.NET WPF或winforms应用程序的AFT, swtBot 适用于Eclipse Rich客户端应用程序的AFT和Java swing应用程序的frankenstein

Fitnesse适用于服务/ API级别测试或仅在UI以下运行的测试。如果正确执行,则具有业务可读的测试的优点,即非开发人员可以阅读和理解测试。像NUnit这样的工具对此目的不太有用。SOAPUI特别适用于测试SOAP Web服务。

需要考虑的因素:

  • 持续时间:您能容忍8小时的测试运行吗?
  • 脆弱性:AFT可能会针对不断变化的应用程序变得非常脆弱(例如,小部件的ID和位置可能会更改)。需要足够的技能和精力来不硬编码更改的部分。
  • 保真度:你希望它有多接近现实世界?例如。除非提供商为您提供可以使用测试轰炸的测试环境,否则您可能必须模拟与支付网关的交互。

这里捕捉到了一些细微差别。

完全披露:作者与上述大多数(但不是全部)免费开源工具背后的组织有关联。


这就是我们最终的目标。我们创建了一个 Web 应用程序,它像 WCFTestClient.exe 一样运行,但允许使用复杂类型,因此我们可以使用 Selenium 在 UI 级别执行集成测试 :) - David Kiff

2
你可以尝试使用Concordion框架来编写HTML文件中的用户验收测试。它采用BDD风格的方法。同时也有一个.Net版本

1
这个还没有正式发布,但是StoryTeller看起来很有前途。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接