6.2.5 定位问题
由于云产品运行在何处对于用户来说是透明的,一旦发现这个问题,开发工程师往往需要登录到发生问题的机器去查看log文件以确定问题,进而解决问题。但是,运行位置不固定给定位问题带来了很大麻烦。如图6-4所示,一旦系统发生问题,我们能够确定是在哪台机器上出现的吗?在悉尼,在法国,还是在纽约?
图6-4 云软件测试缺陷定位问题
案例6-6:HP的云缺陷定位系统。
由于云计算采用网格计算方式,系统在哪里运行对用户来说都是透明的,虽然它具有很大的优势,但是这也正如前面所述,对于发现缺陷、定位问题带来了麻烦。幸好HP公司推出了一套基于云的缺陷解决系统。该系统运行在主服务器上,一个产品对应一个日志,其日志实时地把当前应用所在的应用服务器、数据库服务器等信息写在Log日志中。一旦发现问题,可以先从主服务器这个Log日志中通过问题发生的时间信息来确定发生问题机器的位置,然后登录到问题所在服务器中去查找相应的Log日志,从而定位问题。
6.2.6 法律法规问题
基于云的软件测试的目的除了发现Bug外,在云计算中还有一个关键性的问题,那就是由于各国的法律法规不同,而造成数据隐私性的问题。比如,欧洲有《荷兰数据保护法》《欧洲个人数据保护指令》,美国有《美国-欧盟保护港》等,这些条款中存在各种不一致性的地方。
案例6-7:云计算中的法律法规问题。
某公司计划把他们的应用软件中的存储部分放在某个云运营商处,软件测试部门贾经理根据市场部门反馈回的信息,获知该云运营商所有服务器有两台位于美国,4台位于欧洲。由于9·11以后,美国颁布了《爱国者法案》,这条法案中规定“只要有检查是否存在恐怖袭击的需求,美国政府有权利查看任意一台存储在美国本土机器中的任何资料信息”。另外,微软也承认《爱国者法案》可获取欧盟云端的资料。基于这些调查,贾经理将这个信息以Email的方式告诉公司CEO与CTO。CEO与CTO专门召开了公司中高层人员会议,决定更换云运营商,新的运营商的服务器全部在远东地区,并且查实这些国家不存在像《爱国者法案》那样的由于法律法规引起的数据安全性问题。
6.2.7 迁移性软件测试
迁移性软件测试在云计算中普遍存在,如要更换供应商,或者对云平台进行大规模的升级,都需要进行迁移性工作,如图6-5所示。迁移性软件测试主要测试迁移后系统在新的环境中是否可以正常运行,是否会发生数据丢失以及原环境中的数据是否清除干净等。
图6-5 迁移性软件测试
案例6-8:云运营商的变更。
由于蒙特利尔软件公司决定以后的业务主要集中在中国市场,所以他们决定把产品从AWS转移到阿里云平台上。这个转换给测试部门带来很大的工作量。测试部门的工作主要包括:
(1)确保在转换过程中不影响原有客户业务的工作,也就是说,迁移对客户来说是透明的。
(2)迁移以后产品的所有功能是否可以正常运行?
(3)如果在迁移过程或者迁移后发现功能不能正常运行,是否可以复原?
(4)迁移后,在美国云端的数据、文件等信息是否清理干净?
(5)……
于是,测试经理将迁移过程中可能遇到的所有问题列出一个CheckList,在测试工程师的配合下制定了测试计划,并和研发部门一起讨论了解决方案,最后与开发工程师配合,经过半个月的时间,成功完成了整个系统的迁移。
6.2.8 功能测试
除[J1] 和传统测试一样的问题外,云产品的被测系统更加复杂,很多测试工程师必须理解整个系统的运作,才能开展工作,这对软件测试工程师的要求提高了。测试环境的部署花费的时间和代价也很大。另一方面,很多场景难以模拟,如部分机器坏掉,存储上的不同步问题,因为这本身就是一个公开的问题。下面讨论基于云上的功能测试需要特别考虑的地方。
测试服务质量:正如第6.3.1节“云计算优缺点”所描述,要把软件产品运行在云上,就需要云运营商的支持,所以,选择好的云运营商就成为测试的内容。对于云运营商而言,我们是甲方,是产品的使用者,所以基于这样的测试,可以看作是对云运营商产品的验收测试,并且在某些时候可能还需要云运营商帮助我们定制一些功能。
测试云运营商提供的文档:使用云平台,肯定需要对云上的设备进行一些配置,而这些配置手册往往由云运营商提供。作为一个测试工程师,我们需要测试提供的文档是否正确,与实际操作是否一致,并且检查配置界面是否友好。
测试接口:接口测试在云产品中也非常重要。我们首先要了解应用程序采用什么样的接口,然后了解云运营商提供哪些接口,最后确定平台是否可以满足产品的接口。
案例6-9:测试产品接口。
某产品中有一个下载文件的功能,在公司内部测试是成功的,但是放在云上发现这个功能不能工作了。后来经过定位发现这个下载功能使用的是SFTP,而云系统仅提供了普通的FTP功能。最后与运营商协商,决定在云端启用SFTP,并且用户选择FTP,还是SFTP,可以由软件厂商通过控制面板来选择。
测试服务配置:测试服务配置一般由测试工程师按照云营运商提供的文档进行操作,检查系统设置是否正常,如语言、时间格式、日期格式、公司标记、操作授权等因素。
测试定制:对于某些公司的某些功能,可能需要云运营商来定制。定制的功能是测试人员需要认真测试的部分。
另外,还有Web测试、多平台测试、离线功能等,本书不再进行描述。
6.2.9 自动化测试
传统的软件测试工具和框架也不能满足在云上的要求。仔细展开有很多方面,这里只讨论自动部署问题,因为虚拟机也是动态生成的,所以要有一个合适的机制把软件测试工具部署上去,并且有集中的控制,这是很难的。
案例6-10:基于云的自动化软件测试。
某公司的产品原先的自动化测试框架是这样的:产品运行在服务器上,自动化测试脚本运行在另外一台机器上,每个服务器都有自己的IP地址,通过TCP/IP进行通信。当这个产品运行在云上后,由于产品是运行在虚拟机中的,而虚拟机的IP地址都是临时动态生成的,所以原有的测试框架肯定不适合现在的云环境。公司人员正在考虑新的自动化测试解决方案。
参考文献
【1】《软件测试的艺术》(原书第三版),Glenford J. Myers Tom Badgett CoreySandler著,张晓明黄琳译,机械工业出版社,2012年4月。
【2】《云服务软件测试:如何高效地进行云计算软件测试》,Kees Blokland Jeroen Mengerk Nartin Pol著,段念等译,人民邮电出版社,2014年7月。
【3】《软件性能测试过程详解与案例解析》(第二版)段念著,清华分大学出版社,2012年6月。
【4】《软件测试设计》,马俊飞郑文强编著,电子工业出版社,2011年4月。
【5】《嵌入式软件测试》,康一梅张永革胡江吴伟著,机械工业出版社,2008年7月。
【6】《探索吧!深入理解探索式软件测试》,Elisabeth Hendrickson著徐毅译李晓辉审校,机械工业出版社,2014年1月。
【7】《软件测试之魂核心软件测试设计精解》(第二版)晓利琼著,电子工业出版社,2013年5月。
【8】《探索式软件测试》,James A Whittaker等著,钟颂东等译,清华大学出版社,2010年4月。
【9】《探索式软件测试实践之路》,史亮高翔著,电子工业出版社,2012年8月。
【10】《软件测试案例与实践教程》古乐史九林等著,清华大学出版社,2007年2月。
【11】《实用软件测试指南》James A Whittake著,马良荔俞立军著贲可荣审校,电子工业出版社,2003年1月。
【12】《软件测试》Ron Patton著周予滨姚静等译,机械工业出版社,2002年7月。
【13】《高级软件测试卷1高级软件测试分析师》Rex Black著刘琴周震漪郑文强马俊飞译,清华大学出版社,2011年8月。
【14】《软件测试设计》马俊飞郑文强编著,电子工业出版社,2011年4月。
【15】《软件测试基本教程》(第二版)Andreas Spillner Tilo Linz HansScheafer著刘琴周震漪马俊飞郑文强译,人民邮电出版社,2009年4月。
【16】《众妙之门Web用户体验设计与可用性测试》【德】Semashing Magazine著李函霖译,人民邮电出版社,2014年11月。
【17】《软件测试技术经典教程》赵斌编著,科学出版社,2007年5月。
【18】百度百科:http://baike.baidu.com。
【19】百度文库:http://wenku.baidu.com。
【20】如何配置ANT:http://jingyan.baidu.com/article/90808022c5eed8fd91c80f90.html。
【21】Google开源项目风格指南(中文版):http://zh-google-styleguide.readthedocs.org/en/latest/。
【22】博客园:http://www.cnblogs.com。
【23】51CTO开发频道:http://developer.51cto.com。
【24】51testing:http://www.51testing.com。
【25】领测国际:http://www.ltesting.net。
【26】啄木鸟软件测试培训网:http://www.3testing.com。
【27】理发师模型:http://blog.csdn.net/myfuturemydream08/article/details/6286347。
【28】大数据:http://wenku.baidu.com/link?url=miICmmJv6MI5coS-6OYFNjtHS_GWf_FU8mL M66hyYqPgm_8x80jl6VgAcObNVcf6RNPJFA8OjZjLvzQt5BdcqBzoczUZUMybb5poTuB1FrG。
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。