15、非 .NET 应用程序的测试问题及解决方案

非 .NET 应用程序的测试问题及解决方案

1. 非 .NET 应用测试的挑战

在测试非 Microsoft Visual Studio .NET 开发的软件时,使用 AutomatedGUITest 工具会遇到一些问题。该工具在将基于 COM 的应用程序转换为托管程序集后可以对其进行测试,但对于其他非 .NET 应用程序,它们定义了特定于平台和 CPU 的唯一入口点方法,如 WinMain(),这与 .NET 应用程序不同。.NET 二进制文件包含使用 Microsoft 中间语言(MSIL 或 IL)构建的代码,它是与平台和 CPU 无关的,在运行时通过即时编译器(JIT)将内部 IL 编译为特定于平台和 CPU 的指令。而 AutomatedGUITest 工具无法使用之前章节开发的代码对传统应用程序进行测试。

2. 中间语言(MSIL)

2.1 MSIL 概述

当编译为托管代码时,编译器将源代码转换为 Microsoft 中间语言(MSIL),这是一组独立于 CPU 的指令,可以高效地转换为本机代码。MSIL 包括用于加载、存储、初始化和调用对象方法的指令,以及算术和逻辑运算、控制流、直接内存访问、异常处理等操作的指令。在代码执行之前,MSIL 必须由即时编译器(JIT)转换为特定于 CPU 的代码。由于公共语言运行时为其支持的计算机体系结构提供了一个或多个 JIT 编译器,因此同一组 MSIL 可以在任何受支持的体系结构上进行 JIT 编译和执行。

2.2 元数据

当编译器生成 MSIL 时,它还会生成元数据。元数据描述了代码中的类型,包括每个类型的定义、每个类型成员的签名、代码引用的成员以及运行时

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值