云计算测试的难点

     云计算是国内外比较IT从业人士的普遍认可的技术,也是国内目前比较热门的技术,关于云计算的定义业界有各种各样的定义标准,并且每个标准都有一定的意义。到目前为止关于云计算的定义就超过了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已经在开发一种产品 ,可以定位发生问题的具体机器上,从而帮助解决这个问题,而且这个产品的进展非常迅速了。
世界各地的服务器
     法律法规问题
     测试的目的除了发现问题,还有一个关键问题是验证法律法规,在云中主要体现在数据隐私性方面。这个方面比较麻烦的是各个国家各不相同,比如《荷兰数据保护法》,《欧洲个人数据保护指令》,《美国-欧盟保护港》等等,而且这些条款中存在各种不一致性的地方,这样给基于法律法规的测试带来很大的麻烦。
法律法规交易锤
     迁移性测试
     迁移性测试在云计算中普遍存在,比如要更换供应商,或者对云平台进行大规模的升级,都需要进行迁移性工作。迁移性测试主要测试迁移后系统在新的环境中是否可以正常运行,是否会发生数据丢失等等。
     功能测试
      • 除了和传统测试一样的问题之外,这样的被测系统更加的复杂,很多测试必须要理解整个系统的运作才能开展,对测试的要求提高了。测试环境的部署花的时间和代价更大,另一方面,很多的场景比较难以模拟,比如部分机器坏掉,存储上的不同步问题。因为这本身就是一个open question,什么叫部分坏掉,什么叫不同步,需要像做性能测试一样先去定义。
     自动化测试
      • 传统的测试工具和框架也不能满足要求。细展开来有很多方面,这里列举两个。一是自动的部署的问题,因为虚拟机也是动态生成出来的,所以要有一个合适的机制把测试工具部署上去,并且有集中的控制。二是debug会变得比较的困难。
     测试环境
      • 这样的系统一套部署下来可能需要几十台机器,所以搭建和维护这样的一套环境也是一个很大的开销,也使得这种测试不像我们平时测试一个独立的软件产品那样,很容易的获取资源,搭建一个系统,然后可以很快的不断调整。我们可以重新搭一套模拟的系统用于测试吗,还是必须直接在生产系统上测试?这也是一个要结合实际情况来考虑的问题。
     测试部署
      • 这个其实本质上也是测试工具的问题,传统用到的产生流量和压力的工具很多都是单机的,或者controller + agents的架构,但是放到这样的平台下不一定适用。因为:
      • 能否产生足够的流量?
      • 能否比较容易的部署,包括动态生成的虚拟机?
     数据和sample的产生
      •关于这一部分,做过性能测试的应该都比较清楚,问题和方法也比较类似,只是这里有个规模的问题。
     监控
     就是如何知道有没有出问题,哪里出了问题。前面提到的一个业界广为使用的监控平台也可以使用,但是可能还不够,因为那些默认的都是从系统的层面来看有没有问题。而最后跑的都是应用,有意义的也是应用,所以也需要从应用的角度来看问题。比如系统的资源应用到一定的程度后,应用(比如web service)看到的响应时间很长,或者有很多的time out error,甚至取不到正确的数据,这些如果只是监控机器有没有挂掉,资源使用率是不是正常是很难看出来的。
     以上是对云计算安全的一些看法,也是云计算比较难以理解的技术层面的问题,后期如果关于技术问题可联系艾威培训,或参加艾威培训关于软件测试培训课程
 

本文来自于艾威培训

转载请注明:http://www.avtechcn.com/share/1393.html