阿里测试嘉年华-分享

愿望就是什么时候能够去参加GTAC大会那就最棒了。

之前阿里邀请过测试界的大牛James Bach在北京办公室做过两天的Rapid Test培训,前两天正好在ATA上看到好些篇很棒的关于这个培训分享,正好这次嘉年华召开,于是就带了些长见识的期待来参加,然后就失望了。回到现实,这次嘉年华以DT时代为背景,由童战介绍阿里现有的几个测试平台(kelude、pts、sts、hitest、mts)为抛砖引玉,接着是从大数据和手淘两方面对阿里的测试理念进行了阐述,又拿了百胜为中小企业代表介绍他们的测试怎么做,下午就测试的未来做了畅想,百度和腾讯的测试之说也临时不讲了,下午场昏昏欲睡。


有几个名词挺有意思,可能也是之前没有关注过的。

云测。 开发者将App上传后,在服务器端的自动化测试环境中部署和测试,只需要选择测试的网络和机型等便可在线测试,测试完后输出标准测试报告。主要针对的移动App兼容性测试。这里在线测试分为两种,一种是自动化的脚本测试,另一种应该就是有一些待命的执行人员进行手工测试,再挖深一点,可以支持脚本录制上传执行,或者是增加人工体验测试。总的来说最直接的好处是省去了购买大量真机,简化了安装、运行、卸载测试和一些基本脚本测试和体验测试。

众测。即每个人都可以做测试,下载了软件后人人都可领任务试用测试并给出一定的反馈,像百度众测平台和阿里现在在做的嗨测都是这种模式;更专业一点大概就是安全测试领域乌云、Freebug等推出的白帽子众测服务,这是企业可短时间内有偿地组建虚拟的安全团队,对产品进行有效的安全测试。道哥之前有篇文章对众测平台的前景做了些分析:传送门

Test is dead。这个是欧阳辰提到在GTAC 2011大会中Alberto Savoia的开场发言“Test is Dead“。后来在下午的“测试未来的探讨”中,若干个人都就这个点说着略带无底气的发言 = =!。事实回来翻这个演讲时,这个结论是有一定条件前提的 (1)所有关于checking的工作(validation跟verification)都可以自动化之后。(checking指对着test cases做执行,这个工作其实可以通过全民众测去完成) (2)可以让部分用户在cloud上面对开发的版本做测试。(这大概就是云测?) (3)开发者必须自己做测试,而且团队里面没有测试人员。 体现出来的是,测试不是做checking,而是具有质量思维与架构能力,不管是以工具还是流程优化等各种方式去推动和优化整个软件生命周期。


除了名词外,另外一个印象比较深的是欧阳辰提到的软件测试的发展史:

  • 以《软件测试的艺术》为代表作的79-82年时代,那个时候测试是带着找bug的心态来完成的
  • 83年时IEEE对软件测试下了定义,表明测试是需要确保软件满足规定的需求或弄清预期结果与实际结果之间的差别”
  • 接着对软件测试就谈到了质量度量,也就是代码覆盖率、测试自动化覆盖率、bug趋势分析、bug特点分析及分类、响应时间等
  • 最大程序和最快速度满足客户需求
  • 质量是用户体验,提供用户价值

这个变化过程,从单纯的“找错”到想要找差别、再到通过指标来衡量质量、最后到以用户的角度来衡量质量(也就是说测试不应该只看是否符合产品当初定义的需求,而是应该更大而全地看待是否符合用户的需求与体验),软件不单单是有着做某件事的功能,而应该是以一种服务的形式展示出来。


谈了这些大的,说些接地气的。 印象比较深的元战讲《手淘测试的历程》。虽然是移动应用,但提到的有些现状实际也是十分有共性,这里简单列下。

  • 发布版本快使得回归验证的次数增多,耗时耗力,而且含大量重复的工作
  • 非功能性问题发现效率不高,引申到自己工作时的体会就是此类问题发现不易、复现不易、被修复的优先级也不高
  • 有些自动化的投入产出比不高,比如ui层面的自动化
  • ……

在这些问题下仍然有些事情我们是可以去做的,除去从需求和产品设计上去把握外,他提到可以从架构和秩序两个方面做些努力,在架构的时候提高产品的可测性,同时定义好产品提交集成的标准。(思维没到这个层次,理解不能= =!)。

具体的测试方法

  • 不可忽视的代码扫描:规则才是关键
  • 让测试包功能强大:bug复现时直接通过日志、环境等记录来完成
  • 让产品具有自我检测功能:也就是执行与验证过程解耦
  • 在云端管理质量(项目管理、代码扫描、bug管理、集成打包、持续集成、数据分析、发布管理、自检问题、真机适配、运维平台、测试工具、自动化)

这些方法也不是今天就被提出来的,但我从这里感受到的一点是,方法论总是简而短的,而如何把这些方法践行,并且在践行的时候结合实际的产品设计出效率与质量最高的测试方式及度量方式才是最重要的,就比如代码扫描这个被践行这么多年的测试方式,其实最重要与有价值的的应该是设定最有效的规则。


回到自己,最近对自身工作思考了三点:

一是如何将产品质量呈现出来,只有这样大家才能更容易地看到它,认识它,并改善它。这就意味着需要一定的数据收集才能对数据做出有效的分析从而产出有效的质量报告,数量的收集又必须讲求低成本与隐形。在后面的项目中可以思考下这个。

二是提测的标准定义,标准的本身是没有意义的,定标准是因为对测试期间的质量进行分析后,其实应该把一些原本在单测和冒烟测试的时候可以覆盖到的问题尽早地解决掉,这类大多是采用路径法可分析出来的用例,这个需要开发有一定的质量意识。

三是如何在提高有效性下把自动化效率提高,作为小白,还是先把已有的工具用熟用好吧。


PS: 关于”Test is Dead”,我怎么想呢,说实话,谁都希望自己的职业是有价值的,但与其想一个职业名词本身的意义外,更重要的应该是先把能做的事情做完美了,然后价值就出来了^_^

crystal /
Published under (CC) BY-NC-SA in categories 测试  tagged with 阿里测试嘉年华