系统极客一直在努力
专注操作系统及软件使用技能

Windows 10安装部署:软件兼容性测试(上)

Windows 10

何为软件兼容性问题?这个问题的界定表面上看要比硬件兼容性问题难判断,因为软件兼容性问题表现得并没有硬件兼容性问题直接。有很多种表现形式,让 IT 人员非常难判断。但实际上,软件兼容性问题判断的原则非常简单,只要应用程序在新的操作系统上运行时较之前环境有任何不同之处,即断定为不兼容。不兼容的表现形式多种多样:有完全安装不了的、有装上不能用的、有能用但部分功能缺失的、也有完全能用但是有细微的差别的,这些统统都算作不兼容。所以依据这个准则来判断兼容性问题,就更加容易一些。一般大型企业的软件数量主要还是集中在定制开发的应用较多,如公司内的 OA、ERP、CRM 等等,都是需要花很多的经历进行严格的测试,才能确保准确无误的升级到新的操作系统中去,另外大型企业也会使用到数量众多的通用型应用程序,这些软件由于数量级太大,需要借助第三方工具进行测试,这些内容我们将会在后面的内容中介绍。

软件兼容性问题

每次的操作系统更新换代,或多或少的都会带来一些软件兼容性问题。因为操作系统的变化,会直接影响到应用程序的运行。遇到软件兼容性问题,没有必要慌张,因为出现兼容性问题都是有原因的。了解了原因,也就不难找到解决方案。下面我们来分析一下造成应用程序兼容性问题的原因。



1. 操作系统版本变更 很多老旧应用程序都会用一条语句 if(majorversion>=5&&minorversion>=1) 即大版本号大于等于 5,小版本号大于等于 1 来判断当前操作系统的版本号,从此控制应用程序的启动环境,如果操作系统的版本号不满足条件,就会收到一个弹出对话框,告诉你当前的操作系统不满足该应用程序的最低安装要求。之所以用这条语句是因为开发人员在开发应用程序的时候,并没有把应用程序放到老版本的操作系统做测试,所以为了确保应用程序能够正常稳定的运行,用这条语句限制应用程序必须安装在 Windows XP 或之后的操作系统,但由于 Windows Vista 的版本号变更(MinorVersion=0),不满足应用程序启动条件,造成了非常多的应用程序无法正常启动。到了 Windows 7,版本号又能够满足条件,很多在 Windows Vista 上不能运行的应用程序又能够运行了,但仍有少数应用程序无法正常启动。

windows-10-deployment-software-compatibility-test-2

2. Windows 资源保护(WRP) 这个功能是从 Windows Vista 时代就有的一个 Windows 特性,该特性能够将 Window s的关键文件夹如 Windows 文件夹、Sytem32 文件夹中的系统文件以及注册表关键位置保护起来,让应用程序无法向这些位置写入或者删除数据。这样可以有效的提高操作系统的稳定性,但这一机制会影响到一些老旧的应用程序的正常运行。理论上讲,应用程序的却不应该随意往这些地方写数据,但很多开发人员因为开发时代的原因,没有遵从这些规则。这样的软件在新的操作系统上就有可能出现兼容性问题。

3. Internet Explorer 保护模式 这个功能也是从 Windows Vista 开始有的新特性,旨在保护用户在上网时避免浏览器遭到攻击,被恶意安装病毒木马。这个功能主要是将 IE 的运行权限降到最低,让 IE 在显示网页时只能做有限的事情,如下载网站元素、渲染素材、显示输出。在 Windows XP 时代,很多用户在上网浏览网页的时候,不知不觉就中了木马、病毒。这是因为 IE 在 Windows XP 中使用的是管理员权限,管理员权限可以随意安装应用程序,这也就给恶意用户留下了漏洞,开发一些恶意控件,脚本,挂在网站上。当用户去访问网站,就通过 IE 自动安装这些东西,并且没有任何界面,让用户在不知不觉中中招。IE 保护模式,有效地避免了类似情况的发生,所有要安装的控件都需要得到用户的确认才可以运行,大大提高了 IE 的安全性。但许多的企业 BS 架构插件在这种模式下就会出问题,因为权限的降低,导致插件得不到应有的管理员权限,也就不能正常运行了。

windows-10-deployment-software-compatibility-test-3

4. Internet Explorer 版本 大部分使用 Windows XP 的用户都在使用 IE6,很多企业的 BS 架构应用程序也是基于 IE6 开发的。而 Windows 10 系统中的 IE 版本为 IE11,版本跨越很大,很多底层的结构也有很大变化,这就造成了很严重的兼容性问题,其中尤其突出的就是网页渲染标准的不同。IE6 的标准是当年微软自己定义的,但到了 IE8 之后 IE 采用 W3C 标准,两者之间差别较大。用 IE6 标准开发的网页放到 IE11 进行显示就会有很大出入,常见的现象如文字重叠、布局混乱、功能键无法正常使用,按钮无法点击等等,另外还会有一些安全性上的变化会带来一些奇怪的现象发生,这些都需要注意。但值得一提的是:在 IE11 中有一个专门针对企业用户设计的企业模式,能够让 IE11 模拟 IE8 的方式工作,旨在解决企业一些老旧的基于 IE8 开发的 BS 结构应用兼容性问题,保证企业 LOB 的正常运行。最后要提到的是 Windows 10 中的 Microsoft Edge,该浏览器是一个轻量化的浏览器,访问网页的速度以及各个性能指标都优于 IE,但该浏览器(目前)不支持第三方插件,所以企业可以先进行相应的测试,如果在 Edge 遇到任何兼容性问题,可选择仍然使用 IE11。

5. 64位架构 目前市面上的 Windows 操作系统分为 32 位和 64 位,由于硬件的快速增长,主流的 PC 机内存都大于 4GB。对于 32 位系统,没有办法支持超过 3GB 的内存,所以几乎面临淘汰。对于 64 位系统来说本身可以支持 32 位的应用程序操作系统中运行,可以看到有一个 Program Files (x86) 的文件夹,专门用于存放 32 位应用程序。另外 64 位操作系统利用一个叫 WOW 的进程保证 32 位应用程序能够正常运行。但仍然会有一些 32 位的应用程序可能在 64 位操作系统上运行不正常,另外硬件驱动程序也会因为 32 位,64 位而造成无法安装的问题。

windows-10-deployment-software-compatibility-test-4

7. 弃用的组件 每次操作系统的更新,都会涉及一些组件的替换。从 Windows XP 升级到 Windows 8,其中的组件如 Outlook Express,输入法映射等功能已经不再提供。很多应用程序在工作时,会调用类似的系统组件,比如当点击某一个按钮,启动邮件客户端 Outlook Express,方便用户编写邮件。但类似的程序升级到了 Windows 10 以后会出现点击按钮无反应,或者报错的情况。

8. UAC 该功能从 Windows Vista 开始被引入,是 Windows 的一个非常关键的安全机制,UAC 能够将用户的权限控制在 User 级别而不是 Administrator。众所周知,Administrator 权限很大,能做很多事情,很多恶意分子会利用这一特性,制作很多恶意木马程序,利用管理员权限,劫持计算机。由于这类木马程序没有任何用户界面,所以用户没有任何感知,就已中招。UAC 的介入有效的阻止了类似的情况发生,当恶意软件要工作时,UAC 会自动弹出,让用户自己判断该行为是否可以继续,只有当用户点击「是」以后,进程才能生效,这样能够阻挡很多恶意软件的发作,同时 UAC 还可以判断进程是否为不安全进程,如果为不安全进程,UAC 将自动阻止进程继续。但是很多的老旧的应用程序在运行时也需要用到管理员权限,但又无法正确触发 UAC 机制,让 UAC 顺利弹出,所以会出现各种错误提示或者工作不正常。

软件类型

一般企业的应用程序可分为两大类:通用应用程序LOB 应用程序(关键型业务系统)。所谓的通用应用程序即市面上可以买到的,由具体的厂商推出,用户广泛的应用程序,如:Office、Adobe Reader、QQ、Firefox、赛门铁克、360 等等。一般此类应用程序兼容性问题不多,即便有兼容性问题,也会很快就有相应的更新或者新版本发布。而业务应用程序则是由企业自主开发或由第三方 ISV 定制开发,专门为企业量身打造,为客户的业务提供支持,如 XX 公司财务系统。此类软件分为 CS 应用(客户端服务器结构的)和 BS 应用(浏览器与服务器结构的),兼容性问题颇多,而且不能及时很快的解决,需要借助一些缓解措施过渡,直到有补丁更新或新版本推出。

赞(0) 赞赏

评论 抢沙发

微信赞赏