2

我正在寻找一个测试框架来涵盖我们的黑盒集成测试。我们需要非开发人员可以编写脚本的东西(也不是 C# 单元测试类型的东西)。

我想到的最初场景是:

  1. 恢复已知数据库
  2. 运行 sql 代理作业 (ETL)
  3. 针对输出数据库执行验证 sql 脚本

  1. 运行 msi 安装
  2. 检查文件夹/文件/RegKeys/Services/etc 的存在
  3. 运行 msi 卸载

到目前为止,我还没有找到任何看起来合适的东西。我们将使用的主要是 UI 测试(Project White/etc),但不包括这些情况。或者基于单元测试框架的集成测试,我们还没有准备好推动我们的 QA 团队进行。

如果我找不到其他任何东西,我目前正在尝试为这部分测试滚动我们自己的内部工具。

4

1 回答 1

4

看起来你想运行一堆命令行参数,对吧?

好吧,我看到了两种方法:

1)您可以发明自己的领域特定语言。这是一种奇特的说法,即您编写了一个具有一些非常高级功能的解释器。非技术人员编写批处理文件之类的东西,您编写一些 C# 来读取文件,执行 switch 语句,然后运行命令。FIT 可能是最常用的方法——它是集成测试的框架。(这样做的方法是用逗号分隔事物:command,param1,param2。假装它是一个非常简单的汇编程序。然后你的 switch 语句接受 param1..paramx 并将它们粘贴在一个字符串数组中并将其传递给函数. 该函数处理数组。)

这样做的问题是您的客户会想要变量。他们会想要循环。很快,您就实现了一个完整的编程解释器,它以列格式读取数据。臭死了。

所以你可以...

2) 教你的客户一门脚本语言。我会研究 perl 和 test::more - 或者可能是一些 ruby​​ 测试的东西。

如果这不起作用,也许你可以......

3) 放弃让客户创建所有测试。相反,让工具匠与客户配对创建大纲,然后返回并将其转换为代码。

如果您使用的是浏览器,我建议您使用 selenium 或 watIR,但看起来您使用的是命令行方式。

给我发电子邮件 (matt.heusser@gmail.com) 或在我的博客 (xndev.blogspot.com) 上阅读有关测试框架的更多信息。我的博客是询问谷歌什么是测试框架的排名第二的搜索结果,所以我很乐意推荐它。:-)

问候,

--heusser

于 2009-05-13T15:47:48.303 回答