软件缺少兼容性测试 筑堤千里功亏一篑[1] 软件测试
时间过得很快,这周一直在忙于项目的测试。在周日终于能放松一下心情,我在家看了一个久违的电视节目,电视采访了一个世界性金融投资人,问他对总裁有什么要求。他说,要求很简单,就是能够和任何人合作。其实任何事物和人都一样,除了自身的完善还需要提高和外界的兼容性,也就是“我去适应环境,而不是让环境适应我”。
这让我想起了软件测试中的兼容性测试也是这样要求的。无论一个软件的功能多么强大或者高效,如果和目前常见的软件有冲突,或者和操作系统有冲突,那么它还是没有任何价值的,只会被市场所淘汰。
软件兼容性与软件兼容性测试
(1)什么是软件兼容性
很多东西都可以和平共处,巧克力和花生就是一个很好的例子,如果你喜欢吃花生巧克力糖的话。但是,我们也知道水和油就不相容。在我们用心创建一个复杂的大型应用软件时,开发人员必须要非常努力使所开发的软件能在预期的各种环境中运行,避免不兼容的情况出现。但随着软件开发的复杂性,不同的平台,不同的应用软件的多样化,还有不同软件的实现方法的多样化,不可预见的情况越来越多,避免软件不兼容的情况也变得越来越困难。
一般来说,兼容性指能同时容纳多个方面,例如你能和朋友们友好相处,那是相互能兼容,如果相互间相处非常默契,就是兼容性非常好。同样道理,在计算机术语上兼容是指几个硬件之间、几个软件之间或是软硬件之间的相互配合程度。相对于软件来说,是指某个软件能稳定地工作在某操作系统/平台之中,就说这个软件对这个操作系统/平台是兼容的,再就是在多任务操作系统中,几个同时运行的软件之间如果能稳定地工作,就说这几个软件之间的兼容性好,否则就是兼容性不好。
另一种情况是软件共享的数据,几个软件之间无需复杂的转换,即能方便地共享相互间的数据,也称为兼容。因此,软件兼容性是衡量软件好坏的一个重要指标。从这个意义上看,软件兼容性不良就是软件推广的最大阻碍,例如在微软历史上花费人力财力最多的Vista系统,发布了半年之久依然是叫好不叫座,据说原因之一是软件兼容性最为用户所诟病。
(2)什么是软件兼容性测试
随着软件逐步被推向市场,被更多的用户安装,兼容性问题也日益凸现出来了。理论上任何两个软件之间都有冲突的可能,因此软件的兼容性就成为了衡量软件好坏的一个重要指标。兼容性测试是指测试软件在特定的硬件产台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能很好地运行的测试。简单的说,兼容性测试是指测试某新开发的软件在某一特定环境下与各种软件的协调性,软件之间能否很好的运作。例如,会不会有相互不良的影响,还有软件和硬件之间能否发挥很好的效率工作,会不会影响或导致系统的崩溃等。
(3)配置测试和兼容性测试的区别
在我们进行软件测试时,经常有两个很容易混淆的两个概念,这里特别列出来分析一下。配置测试是指验证在不同的硬件配置和软件配置下,应用程序能否正常工作。配置测试的目的是保证软件在其相关的硬件上能够正常运行,而兼容性测试主要是测试软件能否与不同的软件正确协作。
配置测试的核心内容是使用各种硬件来测试软件的运行情况,一般包括:一是软件在不同的主机平台上的运行情况,例如Dell平台和SUN平台;二是软件在不同的组件上的运行情况;三是不同的外设和不同的接口下的运行情况;最后还有不同的可选项的运行情况,例如某些可选择的不同软硬件和网络环境。
而兼容性测试的核心内容:一是测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同一操作系统平台的不同版本上兼容;二是软件本身能否向前或者向后兼容;三是测试软件能否与其它相关的软件兼容;四是数据兼容性测试,主要是指数据能否共享等。所以,配置测试和兼容性测试对软件开发都比较重要,但它们测试和关注的核心内容是有区别和不同的。
软件兼容性测试的主要内容
(1)操作系统/平台兼容性测试
市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。应用软件的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个软件可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。因此,理想的软件应该具有平台无关性。
当然,有些软件只是针对某一系列的操作系统平台来开发的,不存在跨平台的需求。但同一操作系统也有多个版本,例如Windows系统也有不同的系列版本号,如Windows 2000 /XP/Vista等,他们之间可能也有许多不同的组件属性。因此,有些软件可能需要在不同操作系统平台上重新编译才可运行,有些软件需要重新开发或改动较大才能在不同平台运行。因此,在软件发布之前,需要在各种操作系统下对应用软件进行兼容性测试。