15、非 .NET 应用程序的测试问题

非 .NET 应用程序的测试问题

1. 测试背景与目标

在软件测试中,若要对非 Microsoft Visual Studio .NET 开发的软件进行测试,使用 AutomatedGUITest 工具时会遇到一些问题。该工具能在将基于 COM 的应用程序转换为托管程序集后对其进行测试,但对于其他非 .NET 应用程序,由于它们定义了特定于平台和 CPU 的唯一入口点方法(如 WinMain()),而 .NET EXE 二进制文件虽也有 WinMain() 或 Main() 作为入口点,但背后逻辑不同。.NET 二进制文件包含使用 Microsoft Intermediate Language (MSIL 或 IL) 构建的代码,它独立于平台和 CPU,在运行时通过即时编译器 (JIT) 转换为特定于平台和 CPU 的指令。因此,之前章节开发的代码无法让 AutomatedGUITest 工具对传统应用程序进行测试。本文的目标是为 AutomatedGUITest 项目添加一些代码,使其能够对传统应用程序进行 GUI 对象查找和测试,并以 Notepad.exe 应用程序为例进行演示。

2. 中间语言(MSIL)

2.1 MSIL 概述

在编译为托管代码时,编译器会将源代码转换为 Microsoft Intermediate Language (MSIL),这是一组独立于 CPU 的指令集,可高效转换为本地代码。MSIL 包含用于加载、存储、初始化和调用对象方法的指令,以及用于算术和逻辑运算、控制流、直接内存访问、异常处理等操作的指令。在代码执行之前,MSIL 必须通过即时编译器 (JIT) 转换为特定于 CPU 的代码。由于公共语言运行时为其支持的计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值