软件兼容性测试的主要内容
(1)操作系统/平台兼容性测试
市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。应用软件的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个软件可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。因此,理想的软件应该具有平台无关性。
当然,有些软件只是针对某一系列的操作系统平台来开发的,不存在跨平台的需求。但同一操作系统也有多个版本,例如Windows系统也有不同的系列版本号,如Windows 2000 /XP/Vista等,他们之间可能也有许多不同的组件属性。因此,有些软件可能需要在不同操作系统平台上重新编译才可运行,有些软件需要重新开发或改动较大才能在不同平台运行。因此,在软件发布之前,需要在各种操作系统下对应用软件进行兼容性测试。
(2)应用软件之间兼容性测试
主要考察两项内容:一是软件运行需要哪些应用软件支持。二是判断与其他常用软件一起使用,是否会造成其他软件运行错误或本身不能正确实现其功能。
(3)不同浏览器之间的兼容性测试
现在好多应用软件都应用B/S结构,它们的客户端都使用浏览器。因此,浏览器是Web客户端最核心的构件,但来自不同厂商的浏览器对Java、JavaScript、 ActiveX、 plug-ins或HTML规格都有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。所以,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性,也是软件兼容性测试的重点之一。
(4)不同类型的数据库兼容性测试
现在很多软件尤其是ERP、CRM等软件都需要数据库系统的支持,对此类软件应考虑对不同数据库平台的支持能力,如从BD2平台替换到MSSQL平台时,软件是否可直接挂接,或者提供相关的转换工具。还有新旧数据转换的是否存在问题,软件是否提供新旧数据转换的功能。例如,当软件升级后可能会定义新的数据格式或文件格式,这就涉及到对原有格式的支持及更新,原有用户记录在新格式下是否依然可用等。另外,还需要测试转换过程中数据的完整性与正确性。
(5)软硬件配合的兼容性测试
考察软件对运行硬件环境有无特殊说明,有些软件可能在不同的硬件环境中,出现不同的运行结果或是根本就不能执行。
软件兼容性测试规划的几个建议
有过软件兼容性测试经验的人都了解,兼容性测试或许无法做到完全的质量保证,但兼容性测试是必不可少的步骤之一。因此,对软件开发来说,忽视软件兼容性测试,必将会导致用户在使用时给兼容性故障拖死的概率也越高。所以,如何在有限的成本和资源考虑下,针对此软件产品规划出适当的兼容性测试,是所有兼容性测试技术人员关注的重点。
(1)评估软件应用环境,有针对性的制定测试计划
投资和规划一个有效的兼容性测试相信会让不少软件厂商伤透脑筋,要做多少设备投资,要投入多少人力,要测试多少兼容性测试完全会影响到软件产品的最终成本。软件厂商想要专心和投资在研发上,又想要节省成本的做好兼容性测试,只有评估软件应用环境,有针对性的制定兼容性测试计划,才能兼顾成本和产品的兼容性质量质量。
(2)在多种平台/应用环境上测试
自行安装多种平台和模拟应用环境进行测试,但缺点是难以覆盖所有平台。一个软件产品的开发成功,不仅仅是编写完为使用者提供服务功能的程序而已,更重要的是能在用户环境中可靠的运行。因此,软件程序编写工作的完成,其实只是完成了开发任务中的一半,对软件进行模拟用户环境进行兼容性测试其重要性不亚于对程序本身的开发。
(3)考虑进行β测试
大型通用软件在正式发布前,通常都需要执行Alpha和Beta测试,目的是从实际用户的使用角度对软件的功能和性能进行测试,以发现可能只有最终用户才能发现的错误。
α测试(alpha测试)是在测试团队内部进行,测试的方法也较多,黑盒、白盒、压力、应力等等。β测试(beta测试)是指给指定用户公开测试,例如可以有选择地请一些最终用户实际使用,将发现的问题反馈回来再进行修改。在Beta测试中,发放多个拷贝给测试用户并让他们填写测试报告,由用户记下遇到的所有问题,定期向开发者报告,开发者在综合用户的报告后做出修改。
β测试是许多软件测试最后上市前大规模的综合测试的常用方式之一。这种做法可以覆盖多种软硬件平台,虽然非常耗时和费钱,但因为Beta测试的可以测试软件的可支持性和兼容性。所以,Beta测试不失为一种有效的兼容性测试方法。