云计算是目前比较热门的技术,关于云计算的定义业界有各种各样的定义标准,并且每个标准都有一定的意义。到目前为止关于云计算的定义就超过了100种。在这里,我们在这里给出CSA(Cloud Security Alliance)云计算安全联盟在Security Guidance For Critical Area of Focus In Cloud Computing V3.0的定义:
"云计算的本质是一种服务提供模型,通过这种模型可以随时,随地,按需地通过网络访问共享资源池的资源,这个资源池的内容包括计算资源,网络资源,存储资源等,这些资源能够被动态地分配和调整,在不同用户之间灵活划分。凡是符合这些特征的IT服务都可以被称作云计算服务。"
对云计算进行测试需要注意哪些问题呢:
云计算中增加了供应商角色,这给计算测试带来了复杂度
在传统软件项目中,只有软件厂商和客户这两个角色,但是引入了云计算概念,增加了供应商这个角色,供应商主要提供云平台环境。供应商在维护云平台中软硬件设备 可能不告知软件厂商,这样变更后的软硬件设备可能引起运行在云中的服务在功能或者性能上受到影响。
为了解决这个问题,最好的办法是运行自动化测试脚本,进行每日测试,事实监控软件运行情况。
由于云中使用虚拟技术且不固定,这给性能测试带来很大影响
云中的软件产品都是运行在虚拟平台上的,包括CPU,内存,硬盘。并且这些设备可能经常发生位置变化,比如今天运行在天津的某个实体设备上,明天被分配到甘肃的某个实体设备上。比如甘肃某个设备的性能远远低于天津的某个设备。这样执行同一个性能测试用例今天和明天可能完全不同。
解决办法是在性能测试的时候固定在某一个专门的虚拟设备上,整个测试完毕才可以进行资源分配。
增加了按照使用量收费的测试方法
云计算是通过使用互联网流量以及存储器使用空间进行收费的。典型的按量使用付费模型最常见的是我们日常生活中使用的水,电,气。所以在测试云产品时候需要考虑这个因素。并且这种收费方式具有快速地可伸缩性,也就是说你需要2G,马上给你2G的硬盘空间;2个小时后,业务量上去了,需要4G硬盘空间了,系统会自动给你4G硬盘空间;3个小时后业务量下去了,需要3G硬盘空间了,系统会自动给你3G硬盘空间,并且3G空间使用持续了4小时。如何收费呢?比如每小时使用1G为4美金,不满一小时按一小时收费。我们拿刚才例子,在9个小时内我们需要支付(2G*2小时+4G*3小时+3G*4小时)*4美金/小时*G=92美金。在现实测试过程中往往会发现,使用量下去了金额不降或者使用量上去了金额不升。
安全性测试
安全性是云计算最关注的问题,我们不希望存在云中的数据丢失,或者在平台迁移的时候发生丢失。以及我们存在云中的信息被非法调用查看,所以做好云安全测试是重中之重。
发现问题定位问题
由于云产品运行在何处对于用户来说透明的,一旦我们发现一个问题或者用户来电抱怨系统上去了。我们开发人员往往要登录上去查看log文件,以确定问题,从而解决问题。运行位置不固定给我们带来很大麻烦。但是幸运的是HP已经在开发一种产品 ,可以定位发生问题的具体机器上,从而帮助解决这个问题,而且这个产品的进展非常迅速了。
法律法规问题
测试的目的除了发现问题,还有一个关键问题是验证法律法规,在云中主要体现在数据隐私性方面。这个方面比较麻烦的是各个国家各不相同,比如《荷兰数据保护法》,《欧洲个人数据保护指令》,《美国-欧盟保护港》等等,而且这些条款中存在各种不一致性的地方,这样给基于法律法规的测试带来很大的麻烦。
迁移性测试
迁移性测试在云计算中普遍存在,比如要更换供应商,或者对云平台进行大规模的升级,都需要进行迁移性工作。迁移性测试主要测试迁移后系统在新的环境中是否可以正常运行,是否会发生数据丢失等等。