2016年7月22日,「HPE&msup软件技术开放日」将在上海浦东新区,张江高科技园区纳贤路799号科荣大厦小楼2楼举办,msup携手HPE揭秘全球测试中心背后的12条技术实践。
徐盛:HPE测试中心总监。徐盛将在本次开放日带来《软件测试新趋势》的分享,在开放日举办之前,主办方特别对徐盛进行了采访,提前剧透在软件测试新趋势下HPE如何进行测试和质量管理。
msup:移动互联的到来给测试带来了哪些挑战?
徐盛:开发移动应用确实给我们的开发和测试人员都带来了新的挑战。我们大致总结了3个方向的挑战:
1、理念
我们传统软件的测试更多的是使用固定的测试人员,一般很少引入项目之外的人员来做测试;对于移动应用,由于设备的繁杂性和应用场景的复杂性,移动项目开始越来越多的引入外部测试人员,外包测试工作,甚至是使用众测的方式来提高测试的覆盖率。同时,在传统软件的测试中,我们主要关注在软件的功能上,功能性测试上面花费的时间是最多的。而对于移动应用,由于应用场景的不同,测试人员开始把目光投向了以往不是太受重视的非功能测试方面。特别是性能,易用性和安全性的测试。
2、速度
移动互联的一个特征就是快速,不仅包括我们设备硬件的升级速度,还包括我们应用软件的更新速度。我们现在看一些热门的移动应用,他们的更新速度是以天计算的。这样高的更新频率,对我们的开发和测试都提出了新的要求。我们测试人员在节奏如此快的项目里,需要转变传统的测试方法,采用周期更短的测试策略。
我们倡导在移动应用项目里实施DevOps,通过DevOps所推崇的持续部署的流程,应用 Shift Left(尽早地测试)、automate
everything(自动化测试,自动化构建,自动化部署),continuous
testing(持续发布新版本到QA环境,无等待的持续测试)等方法,使测试更敏捷,更快速,来保障应用的快速上线,为公司占得先机。3、工具 移动设备种类繁多(各种屏幕分辨率,各种ROM定制),最主流的操作系统至少就有2个 -
安卓,iOS,每个操作系统都有众多的版本并频繁更新,移动应用开发技术的多样性(原生,混合,HTML5,网页),等等这些使得手工测试再也无法保证设备和功能的高覆盖。不同于以往,自动化成了移动应用测试的必需品。桌面系统发展已经很多年了,它的测试工具非常的成熟好用,像HP
UFT, Selenium等等。相比之下,移动应用的测试工具才刚刚起步,对软件硬件的支持都有待提高。选择一个适合的测试工具对于我们测试的速度和质量都是至关重要。我们认为一个合格的移动应用测试工具需要支持以下几点:
兼容主流的设备,操作系统和开发技术
同时支持手工和自动化测试
基于属性的对象识别方法
支持脚本的录制回放
带有设备管理功能,支持设备的远程访问
能和持续集成系统对接
能模拟移动网络环境
选好工具,用好工具才能使我们的测试如鱼得水,快速高效。
msup:大数据技术在质量领域会带来哪些新的变化?
徐盛:传统的质量管理一般是以定性分析和质量管理人员的主观判断为主,虽然也会在很大程度上依赖于量化管理指标对组织和个人进行量化管理和考核,但是这些指标大多是离散的、不相关的,这就导致了传统质量管理的决策在很多情况下是片面的,而滞后的分析报表为决策层带来的信息通常都是“马后炮”,无法为组织建立起有一定预防能力的质量管理体系。
而大数据技术的发展为质量领域带来数据化管理的革新,使企业可以充分利用在长期的企业质量管理中积累下的历史数据,以及在当前的质量管理活动中实时产生的各项数据,如人员、计划、需求、用例、缺陷等,以全量数据分析替代片面数据计算,以实时数据展现补充滞后报表分析,以多维度数据融合提高度量指标价值,帮助企业进行基于数据的客观化质量管理。
而作为大数据技术的核心,数学建模和分析预测可以使质量管理在实时分析的基础上更进一步,为企业建立缺陷预测和风险预防的能力,真正使企业在质量管理中做到防患于未然,节省质量问题所带来的成本和损失,在此之上更是可以建立起计算机的辅助决策能力,为决策者提供基于数据的客观依据,减少主观情感和判断在决策中的不利影响。
数据可视化在大数据技术的推动下从传统的直方图、趋势图、饼图等维度单一的展现方式进化为动态的、交互的、多维的可视化展现方式,以帮助用户快速直接地从海量数据中定位到所需的信息,在质量领域,力导向图、弦图、桑基图等都有很好的应用场景。
msup:如何提升全员的质量意识?
徐盛:提高全员的质量意识非一日之功,我们觉得需要自上而下的在组织内建立全员质量管理的文化,并落地实施,持续改进。
具体实践如下: 1、定义组织的质量方针和质量策略来指导整个质量管理; 2、加强和各层级员工的沟通;
3、定义质量属性度量的性能指标(包括绩效;指标),并据此建立在项目管理中反应该系列指标的项目对应指标
4、建立质量管理系统,在项目团队中建立产品意识,质量意识,实施质量管理并持续改进; 5、把质量相关的绩效指标集成进入个人绩效指标;
6、重复以上步骤并持续改进。
msup:测试管理的难点在哪几个方面?
徐盛:测试管理在项目级别和组织级别各有不同的难点。
项目级:
测试估算
测试风险的管理
测试和开发的高效集成
测试流程改进(TPI)
组织级:
测试人员绩效的考核及其真实性和有效性
测试价值的量化和显性化
有限的测试投资组合,质量价值最大化
测试中心的透明性,高层人员对全部测试项目状况的及时了解测试中心的知识管理
测试中心技术路线制定和技术储备
测试管理体系和度量系统
测试组织成熟度评估(TMMi)
msup:企业级软件测试和互联网测试的不同有哪些?
徐盛:首先,企业级软件,特别是大型企业的业务逻辑本身十分复杂,造成了软件系统特别复杂,比如惠普就有2000多个相互连接的内部IT系统,每一个流程域都有几十个上下游程序,程序之间互相连接加护,合作完成某一个业务流程。因此测试人员需要对业务系统本身和上下游系统的数据及协调要求有深刻的理解。互联网企业的业务逻辑往往是To
C的,因此相对已经做过了简化,对逻辑本身的功能测试其实相对简化,但是对易用性,性能包括安全性测试的要求会更加看重。其次,企业级软件往往有系统的历史比较悠久,采购或开发采用的架构和技术五花八门,从集中式,到B/S到C/S到SaaS到APP都有;而且因为企业软件往往是完成一个功能,软件是用什么技术开发的是第二位的,因此企业的软件生态系统的技术比较复杂。因此对于测试软件,特别是功能自动化测试软件需要考虑满足各种类型和技术的产品的自动化要求。而对于互联网企业,网站本身就是企业的核心竞争力,需要精益求精,而且因为没有历史包袱,技术一致性比较好,加上功能测试相对简单,测试人员和开发人员又相互交叉,因此选择的自动化测试框架多是开源的框架。
再次,企业级软件系统由于比较复杂,往往是网状的拓扑结构,系统之间相互勾连,牵一发而动全身。因此测试时测试环境和数据的准备就需要花大量的时间,保证测试环境的互联互通和数据一致性就需要花大量的时间。互联网企业往往是以一个核心系统为主的星状甚至是点状结构,因此测试环境的准备相对依赖性比较小,甚至可以利用云和虚拟化的技术实时生成测试环境加载测试数据进行测试。
最后,企业级软件的大部分需求比较清楚,加上本身系统和逻辑的复杂性,项目开发选用V模型比较多,工作方式是先计划再干。测试计划上特别需要考虑上下游系统在计划上的配合。而互联网企业由于需求主要由产品经理估计,因此不确定性更大,加上环境变化快,需要更新更加频繁,因此开发方式更多采用敏捷的方式,边干边看边改。测试的工作方式要符合整个项目的工作方式的选择。
没有谁对谁错,谁先进谁落后,其实根据企业的自身情况选用合适的测试方法才是正确的答案。两边也会相互融合借鉴。比如传统企业也有手机APP应用,那其开发和测试方式就和互联网企业接近。反之,互联网企业,特别是大的互联网企业,随着系统的不断发展和复杂,也会面临传统企业现在面对的复杂逻辑和网状系统的功能测试的复杂性问题。
msup:现在测试的岗位在硅谷已经逐渐消失了,但是测试的工作还在一直继续,这种趋势会带来哪些影响,现在的测试人员应该如何应对这种变化?
徐盛:所谓的硅谷没有测试职位的话是不准确的。首先硅谷本身的大型互联网企业和传统IT企业依然还有保留有软件测试的职位。只不过因为硅谷的高成本,各大跨国企业会把新增的纯黑盒功能型测试等相对低价值的职位外包到印度等低成本的地点,这个是可以理解的。而且,由于DevOps,测试和开发的融合,有些测试职位是以开发的形式在招聘。另外在很多其他专门测试职位,比如测试经理安全性测试,依然存在。举个例子,在SimplyHired网站上在San
Jose就有1400多个QA测试相关的职位(2016年7月18号搜索)。
另外任何IT人士,包括测试人员都需要不断提高自身的能力和价值。我们也总结出了测试人员发展的所谓“火山口模型”。在会上可以跟大家详细的分享。
msup:测试用例的设计需要一定的测试方法和思维,这方面的能力应该如何培养?
徐盛:如何培养设计测试用例的测试方法和思维有如下建议: 1、系统学习软件测试用例设计方法,可以参考业界的标准,如ISTQB;
2、结合测试团队和被测系统实际情况,建立组织内的测试设计最佳实践; 3、更多的站在用户角度来考虑被测系统,持续提高用户体验;
4、积极参加各种测试沙龙,测试峰会等测试交流活动,持续学习和改进。