测试运行:使用TestApi进行错误注入测试2012-01-09 MSDN James McCaffrey错误注入测试是指有意向待测试的应用程序中注入错误,然后运行该应用程序以检验其错误处理情况的过程。 错误注入测试可采取多种不同的形式。 在本月的专栏中,我将介绍如何使用 TestApi 库的组件,在运行时向 .NET 应用程序中引入错误。要想了解我在本专栏中所讲述的内容,最好是看一下图 1 所示的屏幕快照。 该屏幕快照显示我正在一个名为 TwoCardPokerGame.exe 的虚拟 .NET WinForm 应用程序上进行错误注入测试。 一个名为 FaultHarness.exe 的 C# 程序正在命令 shell 中运行。 它改变了待测试应用程序的正常行为,所以当用户第三次单击标记为 Evaluate 的按钮时,应用程序将引发异常。 在这种情况下,Two Card Poker 应用程序不能妥善地处理应用程序异常,从而导致系统生成的消息框。

图 1 运行中的错误注入测试让我们进一步看看此方案,考虑一些相关细节。 从命令 shell 启动 FaultHarness.exe 时,工具会在后台准备分析代码,该代码截取 TwoCardPokerGame.exe 的正常代码执行。 这一过程称为错误注入会话。错误注入会话使用 DLL 来启动对调用应用程序 button2_Click 方法的监视,该方法是标记为 Evaluate 的按钮的事件处理程序。 错误注入会话已经过配置,这样,当用户前两次单击 Evaluate 按钮时,应用程序按代码编写的方式运行,但第三次单击时,错误会话会导致应用程序引发 System.ApplicationException 类型的异常。错误会话记录会话活动并对一组文件进行日志记录,以测试主机。 请注意,在图 1 中,前两次单击应用程序 Deal-Evaluate 可工作正常,但第三次单击生成异常。接下来,我将简要介绍待测试的虚拟 Two Card Poker Game 应用程序,提供并详细说明图 1 所示的 FaultHarness.exe 程序代码,并就何时适合使用错误注入测试以及何时更适合使用其他技术提供一些提示。 虽然 FaultHarness.exe 程序本身十分简单,大多数复杂工作由 TestApi DLL 在后台执行,但理解和修改我在此处提供的代码来满足您自己的测试方案需求要求您充分了解 .NET 编程环境。 也就是说,即使您是 .NET 初学者,您也应当能够轻松理解我介绍的内容。 我相信,您将发现探讨错误注入的趣味性,这对于您的工具集来说可能也是有益的补充。