测试运行:使用TestApi进行错误注入测试

错误注入测试是指有意向待测试的应用程序中注入错误,然后运行该应用程序以检验其错误处理情况的过程。 错误注入测试可采取多种不同的形式。 在本月的专栏中,我将介绍如何使用 TestApi 库的组件,在运行时向 .NET 应用程序中引入错误。

要想了解我在本专栏中所讲述的内容,最好是看一下图 1 所示的屏幕快照。 该屏幕快照显示我正在一个名为 TwoCardPokerGame.exe 的虚拟 .NET WinForm 应用程序上进行错误注入测试。 一个名为 FaultHarness.exe 的 C# 程序正在命令 shell 中运行。 它改变了待测试应用程序的正常行为,所以当用户第三次单击标记为 Evaluate 的按钮时,应用程序将引发异常。 在这种情况下,Two Card Poker 应用程序不能妥善地处理应用程序异常,从而导致系统生成的消息框。

图 1 运行中的错误注入测试

让我们进一步看看此方案,考虑一些相关细节。 从命令 shell 启动 FaultHarness.exe 时,工具会在后台准备分析代码,该代码截取 TwoCard­PokerGame.exe 的正常代码执行。 这一过程称为错误注入会话。

错误注入会话使用 DLL 来启动对调用应用程序 button2_Click 方法的监视,该方法是标记为 Evaluate 的按钮的事件处理程序。 错误注入会话已经过配置,这样,当用户前两次单击 Evaluate 按钮时,应用程序按代码编写的方式运行,但第三次单击时,错误会话会导致应用程序引发 System.ApplicationException 类型的异常。

错误会话记录会话活动并对一组文件进行日志记录,以测试主机。 请注意,在图 1 中,前两次单击应用程序 Deal-Evaluate 可工作正常,但第三次单击生成异常。

接下来,我将简要介绍待测试的虚拟 Two Card Poker Game 应用程序,提供并详细说明图 1 所示的 FaultHarness.exe 程序代码,并就何时适合使用错误注入测试以及何时更适合使用其他技术提供一些提示。 虽然 FaultHarness.exe 程序本身十分简单,大多数复杂工作由 TestApi DLL 在后台执行,但理解和修改我在此处提供的代码来满足您自己的测试方案需求要求您充分了解 .NET 编程环境。 也就是说,即使您是 .NET 初学者,您也应当能够轻松理解我介绍的内容。 我相信,您将发现探讨错误注入的趣味性,这对于您的工具集来说可能也是有益的补充。

时间: 2024-08-20 02:37:19

测试运行:使用TestApi进行错误注入测试的相关文章

spring依赖注入测试时出错

问题描述 spring依赖注入测试时出错 错误如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'analysisService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationExcepti

c语言-请问谁有错误定位测试集siemens suite或者告诉我下载地址啊?

问题描述 请问谁有错误定位测试集siemens suite或者告诉我下载地址啊? 如题所示,siemens suite是西门子测试一个程序错误定位能力的一个测试集,有132个c程序.看到很多论文使用,但是死活找不到下载位置,求大神帮忙,万分感谢!!!

点击登录报如下错误,测试loginDao报如下错误

问题描述 点击登录报如下错误,测试loginDao报如下错误 测试代码为: package cn.xuxu.login.dao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.xuxu.login.entity.User_XuXu; public class tes

测试运行: 使用Windows PowerShell进行小型测试

您可以将 Windows PowerShell 看成是对旧的 cmd.exe 命令外壳程序以及相关 .bat 文件的一个重大升级.虽然 Windows PowerShell 是为系统管理任务设计的,但它的某些功能也使之完全适用于轻量级测试任务.本月,我将以 Windows PowerShell 命令行和轻量级 Windows PowerShell 脚本两种方式对基于 Microsoft .NET Framework 的代码模块进行测试. 请看图 1 和图 2 中所示的屏幕截图.图 1 显示了对名

sql注入测试经验教程

  登录注入 先看一个我们一般用的登录页面sql语句(原生态php执行的sql) $sql = "select * from users where username = '$username' and password = '$password'"; 对于这种sql,对应一个万能密码和用户名: 万能密码: xx' or 1='1 万能用户名: xx' union select * from users/* 执行时mysql解释为: $sql = select * from users

测试运行: 使用Team System自定义测试自动化

测试软件的最佳方法不只一种.除手动测试外,根据您的具体开发环境,您可使用商业测试自动化框架.开放源代码和内部测试自动化框架,以及自定义测试自动化脚本.所有这些方法都各有优缺点. 自定义测试自动化脚本的优势是编写快捷且最为灵活.但是,可管理性是自定义测试自动化的瓶颈.超大批量的测试脚本.测试案例数据和测试结果使得测试不堪重负.幸运的是,您可使用 Visual Studio 2005 Team System 管理自定义测试自动化.我将使用一些屏幕快照对此进行解释.首先,请考虑图 1 中所示的执行测试

通过错误的sql来测试推理sql的解析过程

在学习Oracle的时候,必然会接触到sql解析的过程.这个过程大体是这样的步骤. 1.对sql的文法检查,查看是否有文法错误,比如from,select拼写错误等. 2.在数据字典里校验sql涉及的对象是否存在. 3.将对象进行名称转换,比如同义词转义成对应的对象.比如select * from t t是一个同义词指向hr.test 4.检查语句的用户是否具有访问对象的权限 5.生成执行计划 6.将游标产生执行计划,sql文本装载入library cache所在的heap中. 这个过程看起来比

iOS单元测试和UI测试全面解析

编写测试可不是一项迷人的工作;然而,由于测试可以避免使你的宝贝应用程序变成一块充斥错误的大垃圾场,所以编写测试又是一项非常有必要做的工作.如果你正在阅读本文,那么你应当已经知道你应该为您的代码和用户界面编写测试,只是不确定如何在Xcode中编写测试. 也许你已经开发出一个能够工作的应用程序,只是还没有对它进行测试;另一方面,当您扩展该应用程序时,你又想对其任何的更改进行测试.也许你已经写了一些测试,但尚不能确定它们是否是正确的测试.或者,你现在正在开发您的应用程序,并且想随着工作的进展对之进行测

JBuilder2005单元测试体验之测试配置

   在测试用例向导的最后一步,允许你创建一个测试用例的运行配置项,如下图所示: 图 错误!文档中没有指定样式的文字.创建运行测试项 在一般情况下,你不必为每个测试用例类单独创建一个运行配置项,JBuilder会采用默认的运行配置运行测试用例. 测试运行配置项在需要指定不同的测试运行器(默认为JBTestRunner).一次运行多个测试用例时,允许你进行特殊的定制.通过Project->Project Properties...->Run,在Run设置页中列出了工程所有已定义的运行配置项,Ru