在这个基础上量化了每一部分的得分,这是开源软件测试和评估方面很大的不同,开源软件代码都可以得到的,我们从代码角度可以做更多的工作。有很多的委托测试,我是拿不到代码的,都是拿的二进制的东西。
在这个基础之上,我们可以按照一个简单的方法就是加权平均,如果数据的样本比较多,可以用正向化的方法处理,但我们的样本不是很多,所以就用了加权平均,这个给用户做参考。
下面介绍两个例子。
第一个,就是MailScanner,它是邮件安全的网关,这里头跟信息安全相关的,国内大部分信息安全设备都是基于开源软件做的。这个东西是一个网关,是提供安全检查和反垃圾邮件、恶意软件、病毒等功能的服务软件。这个项目是2000年由英国一个大学生发起的。
这是MailScanner的工作流程,简单介绍了一下。首先邮件通过SMTP协议进入MTA服务器,这时候它会存在一个文件里头,存在目录里面,相当于一个邮件库,最后MailScanner从库里面取出邮件进行检查。通过检查的邮件又存在另外一个目录里头,如果邮件收件人是本地的,就直接放在传递系统里面,邮件系统的客户就可以收到这个邮件,如果它是转发邮件,就通过邮件服务器发往下一站,道理是很简单的。但这套东西涉及到垃圾邮件检测的技术,包括贝叶斯分析法。它可以调用20多种杀毒软件防范病毒,包括卡巴斯基,包括熊猫。而且它是开源的。
这个软件有一个问题,但它没有图形配置管理工具,由第三方基于WEB工具提供,因为它做得不错,所以有很多人给它提供插件,提供内容。
这是当邮件进入MailScanner之后如何操作的。
下面我们讲一下成熟度评估,我们拥有它的代码,就可以对它的代码进行测试。它的评测代码特征是Perl,我们用了一个评测工具Perlcritic,这个工具可以发现软件的错误和代码,而且可以直接报告出来,是否有错误,是否可以运行。Perlcritic的使用大部分规则来自Damian WCanway所写的图书。
这是代码的测试机制,我们也把它作为一个指标,有没有一个测试组有这样的测试系统,有没有BUG,有没有邮件列表等等一系列的东西,这是社区和测试的机制。
对于它的易用性,因为这款软件本身没有图形客户端,本身也没有图形化的管理工具,但没关系,有第三方可以支持,这个问题也可以得到解决。
相应的我们认为它得到了更多第三方软件的支持,所以它调用了很多应用资料和应用案例,从易用性来讲还是不错的。但是这个东西比较大,好几兆,对于存储空间比较敏感的人,使用起来可能有问题。
在对它的可用性测试方面,这个我不讲了,可用性方面我们也列出了很多成熟度方面的属性,它的功能、可靠性、性能、安全性,对系统负载的要求,是否有第三方的支持,细化了一系列的指标,通过这个来整体评估它的可用性。
MailScanner是一个基于互联网的开源项目,基本符合这类开源软件项目组织的一般形式,不过该项目在开发商还不够开放,缺乏明确的分工。
在项目构成方面,也是比较简单的,也实现了一些特定的功能。
在社区参与方面,我们考虑它有网站文档更新是否及时,代码版本有没有控制等等,但这些是不对外开放的。就像我前面划的四个层,我们进不了核心层,所以这方面测试不了。它的项目咨询也有一个公司在帮助它运作。我们认为MailScanner是一个活跃的开源软件社区,并且得到了广泛的商业支持,其实MailScanner用户量是非常大的。
关于软件版权协议,软件版权是所有参与者和使用者接触到开源都必须关注的问题,因为不同的开源软件使用不同的版权协议,每个版权协议授予用户的权利各不相同,所以我们在成熟度评估里面,这点很关键。MailScanner软件核心使用的是GPL版权协议,它是最严的一个协议,它给了你四个自由,你可以拷贝它,免费修改改,自由的重新打包转让给别人,这个都没关系,这个商业软件是不可以的,这个代码是开放的。有了这个便利,会带来一个问题,当我们拿了MailScanner来进行二次开发,原则上要求你做所有的修改,你的代码必须开放。如果是普通软件就算了,但是它是安全软件,我们后续公司一般都不会开放代码,从原则上来讲它已经违背了GPL的要求。所以我们为什么要用双授权的模式,就是为了规避这个问题。
文章来源于领测软件测试网 https://www.ltesting.net/