云测试带我们从封闭走向开放
发布日期:2016-3-4 17:3:17
云测试是基于云计算的一种新型测试方案,基于高性能、可恢复性、弹性、安全性的云平台,测试人员可以从中访问到大量的计算资源,使企业更好地了解到怎样能使客户拥有更好的产品体验。云测试最主要的优点是可节省内部测试环境的创建、维护和审批成本,从而能够有效地帮助企业节约硬件资源,加速企业应用面市进程。但云计算作为新兴技术,让很多传统用户不敢轻易接招,他们认为很难评估这个方案到底能给他们带来多少好处,也对企业内部测试团队和组织架构如何围绕它进行转型感到茫然。 带着这个疑问,在11月21日北京国际会议中心的TOP100全球软件案例峰会上,51CTO记者专访到中兴通讯技术总工刘长山,与我们分享中兴测试团队在云测试服务中,是怎样通过吸收传统测试的经验,从而在技术和体验两个层面,来更多的发挥测试价值和作用的。 采访对象简介: 刘长山,中兴通讯技术总工, 测试系统工程师。主要负责智能终端类产品测试方案设计,测试架构、能力搭建等工作。个人爱好音乐,电影,不算技术控,但对测试技术有强烈的兴趣。 首先请您介绍一下您个人的发展情况,在中兴主要负责哪些工作? 2004年毕业以后我就到了中兴,一直负责测试领域的工作,已十年了。从最早的终端产品,到产品级解决方案的测试,包括传统的测试,测试的执行、设计,再到测试架构,可说一直在测试领域不断学习。 在中兴,终端类的测试都是在我们的产品测试中心完成的,测试中心的团队技术非常强大,本人负责整个技术、框架、体系和流程搭建这一块。我们内部有一个技术标准委员会,负责产品测试的各项组织、设计工作。 是什么让您想到要转变思路,开展共享的云(如阿里云)测试服务呢? 云测试平台的搭建,也是我们整个团队基于现状所考虑的。从内部来讲,中兴是个传统企业,规模比较大,分工也比较细。以往的这种传统的模式,不论是人工组织的,还是说流程驱动的,效率提升的空间很大。比如测试资源的使用效率。所以我们希望能够建立一套方案来综合将人、工具、设备、系统这些资源可以复用起来。前两年“云计算”技术的兴起,可以利用“云”这个体系和思路去帮助实现我们的想法,任何人借助“云”的平台都能够简单的使用服务。 传统测试关注的重点,主要是这个产品有没有做好,对用户感觉的关注点相对差一些。移动互联网时代下,产品更多的是要考虑客户的体验,云测试是开放的,他可以让我们更好地了解怎么做让用户对这个产品达到最大程度的满意。 您认为目前移动应用产品的性能测式还存在什么主要的问题?对如何解决这些问题有什么设想? 相信大多数消费者都遇到过类似的问题,比如说曾经我Andriod手机里安装了一款非常流行的新闻聚合软件,里面有一个性能的bug。在不插卡,WIFI的环境下经常出现闪退,或者是严重卡顿。而有时,平时可以正常使用的软件,有时候就会变得很慢,特别是在解锁后或者刚开机不久的时候。以上是非常典型的两种性能问题。 造成这类的问题有两个原因,应用设计和平台或者操作系统的设计问题。对于第一种情况,建议作为应用的开发者很重要的一点,是在设计之初就要考虑不同场景下用户的使用场景。比如像Andriod资源加载过程,界面频繁刷新都会影响界面的流畅性,在设计的过程中就要设计好资源的使用,比如CPU的使用,网络的状态等等。 另外就是android系统的优化,Android作为开源系统确实很优秀,但是在性能方面确实存在一定的局限,这部分局限性也需要应用的设计者在早期架构时考虑。比如不同版本间的差异,硬件高低配置的性能差异等,结合这些特性才能够设计出一些客户体验更好的一些产品。 很多人觉得测试的开展和项目的进度之间存在着矛盾,甚至看不到测试的未来在哪儿。那么通过咱们开展的云测试服务,在平衡项目进度、成本与保证测试质量之间的关系这方面,您有哪些经验可以和我们分享? 咱们的云平台设架构是怎样的?与其他厂商相比较,它的优势或者特点在哪里? “云测试”不是一蹴而就的,而是基于我们企业的特点来设计的。中兴的云测试架构主要为测试基础资源层、软件技术和能力层、及平台服务层,对应经典架构中IaaS、SaaS、 PaaS三层服务。 在我们内部实际的改造过程中,涉及到流程的改造、技术和能力的提升、方法的改变,包括观念的改变。云(如阿里云)测试的服务能够解决一个基础性的问题,就是测试资源的高效实用。我们通过虚拟化的技术,把移动终端、存储、测试资源整合到我们的共享资源池,这样一方面降低企业成本,现有测试资源可以平滑的延续使用,另外也满足了新增实验室和能力的持续不断加入。 云测试解决方案,我们一直在持续改进,根据我们的需要和自身技术能力的提升不断优化设计。现在,我们已经把测试服务云做成一个标准的产品,通过集成流程管理系统和测试资源管理系统来高效使用测试资源和人力,让我们可以更多的关注产品设计阶段的测试和用户的使用,而不在过渡担心资源和技术上的问题。 现在我们的测试方法有哪些具体的改变呢? 对于很多传统的企业,产品的的测试更多偏向人工的测试,一些仪表在项目紧张的时候,有时需要测试人员两班倒,甚至三班倒。在“云”的体系之下,我们通过技术的改进,来提升我们的设备使用效率。比如说我们可以通过“自动化”的方法,把任务下给仪表,让仪表自动地去完成这个测试。再通过一个平台,把这个结果自动输出,再把这个结果回传到我的平台中去。这个过程不需要人工参与,就不涉及人员的排配,不管这位同学是新手,不需要培训,也不需要担心因为经验不足出现结果误判。过程经验通过持续不断的的积累,结合自动化测试技术的引入,让我们的测试进展的更加透明。任务分配、测试日报、计划下发、任务跟综和结果回收都是自动化的,带来了非常大的改变。我们的测试管理团队很开心,因为日报都不用人来手动编写了,通过测试云就自动完成了。 这个过程对我们团队的分工产生了什么影响呢? 直接影响就是测试分工走向专业化。对于一个传统或者说相对大型的产品的测试,往往不会是一两个研发、测试人员就可以承接的。对于大型产品的测试往往需要非常专业的分工和有效组织。面向研发的,需要代码级和仿真的能力,而面向体验类的测试,又测试人员能够站在用户的角度去设计场景,包括和用户交流,沟通反馈等,可以说差别越来越大。 我们针对不同软件的、硬件的、协议的、底层的、用户的需求,都有不同的团队相对固定的来负责这个事情。这个好处就是经验可持续地积累起来,同时利用我们测试云(如阿里云)的知识库平台,可以将经验和技术转化为可见的成果。 您觉得在移动互联时代的背景下,优秀的测试人员应该具备哪些素质? 最主要是要有持续学习心态,对于新技术和改变不要抵触,拥抱变化和不断的提升自己,适应时代的变化。 这次参加TOP100案例峰会,我就觉得是个很好的机会。让我们这些技术人员可以和不同行业的,做不同产品的人产生交流。如果只埋头苦干,不仰望星空,肯定是不行的。这次大会能提供这样一个交流的平台,我觉得收获很大。 同时,创新能力也是很重要的,要关注测试方法和测试技术的创新。 “打铁还须自身硬”,要善于发现日常工作中的价值点,找到平时工作中效率不高或可大幅提升的点来思考。遇到问题,不能简单的增加人力,时间,而是善于利用工具,设计工具和开发工具来帮助我们。 第三个我觉得就是开发和设计能力。虽然很多人会认为测试的技术含量不是很高。但是实际上很多测试,特别是面向底层的这个测试还是需要很强大的研发能力的。 比如我们的测试开发团队做的几个主要的设计是这样的:我们的硬件测试开发团队来做仿真。在真正的产品没出来之前,那我们就可以根据这些仿真结果进行判断,我们的产品一旦做出来到底行不行?发热能不能满足要求?射频指标达不达标?我们软件测试开发团队做编码级别测试。那么在这个产品没集成在手机上的时候,先在手机仿真器上、模拟网络上把功能跑一遍,我就知道这个产品大部分功能状态怎么样。 还有很多重要的能力是测试人员必须具备的,比如组织能力,沟通能力等等,很多测试的前辈总结了很多经验,值得每个测试人思考和总结。 以前强调的比较多研发和测试的最佳比例,如1:2等等,说的越来越少了,另外一个现象是,一些新兴的互联网企业测试的人数确实越来越少了,比如Facebook号称没有测试人员。很多人会疑问,是不是测试团队就会消亡了?专业的测试人员是不是就没有未来了? 一些传统的产品,大的比如飞机产品,小的比如网络产品,移动终端等,没有专业的测试团队,直接让用户来使用,不太可能。比如现在手机使用中越来越多的安全性问题,性能问题,就需要专业的工具和团队来测试。而反过来,如果只做一个APP工具,那就不需要那么严格,因为其实就算出现报错退出,用户也能忍受。专业化的测试在某些产品仍然非常重要,而且分工可能会越来越细,而一些轻量级的消费产品,产品迭代会越来越快,产品的测试策略和参与的角色也会不同。比如互联网的有些产品,仍然需要测试,但这个时候参与的是往往是普通的用户,而不再是大量的测试人员。 在这种大的背景下,信息化的测试系统就更加重要了,通过工具和服务,可以进一步帮助传统的测试团队轻量化,因为有更多复杂的流程通过E化系统来解决。云测试的实现可以让项目快速流动起来,有了“TE”(测试资源管理系统),测试用例、测试工具、方法、总结,甚至是测试时间,都变成测试资源,测试的成员都可以方便的看到和使用。同事,测试的计划、资源管理、成本进度、实验室管理系统都通过项目管理系统连接。这一切帮助我们的测试人员解放出来,可以更深入产品的底层,做更多早期和专业的测试。 面向不同的用户视角,咱们云测试的服务是怎样实现的? 首先,和用户互动更方便了。通过我们的平台,让真正的用户直接参与到我们的设计和测试中。云(如阿里云)平台中有一个众测的平台,让一些友好用户,免费使用我们的产品。在这段时间里,只需要手指动动,用户遇到的问题和建议就可以通过云测试服务平台把这个问题报上来。用户觉得哪块儿不好,录个音说句话,就马上可以传到平台里,让我们的工程师第一时间了解到真实的用户在使用的过程中体验是怎么样的。 其次,我们的专业能力更强了,比如 “手机安全实验室”。我们会把一些常见的安全性能方面用户比较关注的一些点,变成自动化的工具和用例。以往这个工作需要人工来操作,来主观感觉手机卡不卡或者说安不安全,没有量化标准。现在这些都可以转化为客观的判断准则,把这个相对主观的事情变成客观的方法去做,整个效率和准确率也是提升的很明显的。 最终,通过我们的项目流程管理系统和资源管理系统为核心,我们把测试流程,测试技术和测试工具以及测试资源整合到一起,形成整体的测试信息化解决方案,让我们测试内容原来使用手工或邮件传递的内容都电子化起来,整个产品的测试周期和效率都大大提升。我们现在做的事情是移动化,将一些测试的流程移动化起来,让产品的测试流转更快捷。 下一条: OpenStack到底是发行版还是服务?
|