用于模糊测试Windows表单应用程序的任何好工具或技巧?

时间:2010-05-28 12:56:24

标签: .net winforms testing fuzz-testing

我正在维护一个带有Windows.Forms接口的~300K LOC C#传统胖客户端应用程序。该应用程序充满了小错误和怪癖。例如,我最近发现了一个错误,如果用户通过DataViewGrid上的单元格编辑和标签(而非点击),并且选择了某个单元格,则应用程序会获得“未将对象引用设置为对象实例”异常。我发现(或得到一个错误报告)大约每周或每两周这样的新事物。我已经受够了,并且正在考虑对应用程序进行某种模糊测试,试图找出未发现的问题。

如果我进行自己的模糊测试,我认为我至少需要能够独立生成运行我的应用程序(主窗口,FormX,FormY,FormZ,...)的测试工具。尝试将事件注入其中。

我试图找到适合这种情况的工具,但到目前为止还没有为Win Forms提供任何东西。 (但是,似乎并不缺少针对Web应用程序的模糊测试工具。)

有用的想法吗?

2 个答案:

答案 0 :(得分:6)

我总是喜欢在Palm掌上电脑上使用的Gremlins测试工具的想法。它生成随机抽头事件以清除UI编程错误。您可以在应用中执行相同操作,在随机位置生成数百万个鼠标向下和向上事件。您需要P / Invoke PostMessage()并使用Control.GetChildAtPoint()来生成WM_LBUTTONDOWN / UP消息的窗口句柄。测试循环中的Application.DoEvents()以使事件处理程序运行。

答案 1 :(得分:4)

在网上进行一些搜索,我找到了2个链接,其中包含有关Fuzz测试WinForms应用程序的有用工具和信息:

  • Monkey Fuzz Testing - codeplex上的alpha状态工具,看起来非常接近我想要的。从网站:“MonkeyFuzz主要向程序发送随机键盘和鼠标事件,但它可以记录沿途的动作。这使得它们可以重放用于回归测试。”我可以尝试一下并报告我的调查结果。
  • 来自威斯康星大学CS部门的Paper on Random Testing。这是2000年至2002年,但似乎包含一些好的信息,他们在研究中使用links to tools。但是,似乎工具可能至少已过期10年。
相关问题