纵观各大公司的核心理念,往往都有一条类似“以客户为中心”的价值观。华为公司更是把“以客户为中心”放在其核心价值观的第一条,以显示它的重要性。从我 们入职培训开始,公司就反复强调并引导大家深入讨论,希望使这一理念深入人心。那对于我们从事软件测试的工程师来讲,如何真正践行“以客户为中心”的理 念,如何把这一理念融入日常的测试工作呢?

在回答这些问题之前先来看一个故事:

都说中国人喜欢搞运动,喜欢搞活动,老外就不这样。那是不是呢?讲述一个我经历的IBM举办的“以客户为中心(Think as Customer)”的活动。

那是在2006年我为IBM 工作期间,我所在的WebSphere 产品线开展了非常大的 “Think as Customer”培训和实践活动以及硬性要求。这个活动跟我们测试相关的思想是:

- 测试人员要站在用户的视角看待产品和问题;

- 当测试人员在测试过程中遇到产品的问题,用户也同样会遇到;

- 当测试人员通过错误提示和日志都无法找到原因并解决问题,用户也会面临同样的情况;

- 发现并解决一个很小的Serviceability问题,就会减少一个客户打support电话的机会,每处理一个support电话,公司就花费200美元。

对于我们测试团队,这个活动的硬性指标是:每发现10个1,2级的问题,必须开出3个3,4
级的Usability或Serviceability的问题。在这种要求下,迫使我们测试人员在测试过程中审视产品每一个细节,仔细去验证产品的提示信
息、错误信息和日志是否正确反映了当时的情况,是否可以指引用户去独立修正错误而不需要求助于support。当时的确花费了我们很多时间,但带来的好处
是把多年来很多小问题,测试人员觉得可提可不提的问题,开发人员认为不是问题的问题等等,通通开出defect去修复。正因为有了从上到下的贯彻和执行
力,测试人员和开发人员共同参与这个活动,这让开发和测试对于这种类型的问题很容易达成共识,测试人员少了很多阻力,很多的交锋就无形化解了。

虽说这个活动为了3,4级defect而专门去找、去修复,让人感觉有些死板和机械,但是活动本身促成我们对Usability和
Serviceability问题进行了深入的学习和讨论,加深了对此类问题的理解,并对以客户为中心的测试理念深入人心。即使产品后来不再搞这种专门的
活动,我们已经形成了意识和习惯,自觉去践行这一理念,因为Think as Customer已经融入到我们的工作之中。 
    再举一个最近发生的例子: 
   
测试人员在测试大数据量备份时发现提交一个启用重删功能的备份作业,当作业运行一半左右的时间,终止它,这时作业会在一小段时间内终止,这里并没有问题。
问题是接下来,当提交下一个备份作业后,作业显示正在进行中,而实际上需要等待2个小时左右,备份作业才会真正开始。当测试人员遇到这个问题,不知道为什
么作业会等待这么久才运行,而且没有日志输出告知我们作业在干什么。让人很容易会以为作业hang住并再次取消它,除非你不去管它,否则我不知道谁有耐心
持续等待2个小时左右。

这个场景经开发人员分析,认为这一现象出现是因为终止第一个重删作业后,后台在进行碎片整理和删除工作,在这个工作完成之前新的作业是不能启动的,所以前
端会看到新的作业等待2个小时后才真正开始。开发就此得出的结论是这个不是问题,因为从他们的角度去看,这是正常的,当终止一个重删备份作业后,后台要进
行清理工作,而实际上后台也正是在做删除和碎片整理。但是如果从客户角度去看待这个问题,这个是不能接受的!首先,碎片整理和删除工作本身性能需要提
升,2个小时的处理时间太长;其次,如果性能无法提升,那碎片整理和删除这个工作本身出现的时机就需要改进,不能影响用户下一个备份作业,应该选择在没有
备份作业执行的时候运行;最后,日志也并没有任何输出,用户无法得知后台在干什么,容易导致用户更多错误操作,甚至认为是产品出现问题。

管中窥豹,从这个例子我们可以看到,同一个场景,从开发人员角度觉得不是问题的,但从客户角度看就有可能是一个问题。所以对测试人员来说,我们对产品和问题的评判应该从客户角度出发,对不利于客户理解,不方便使用的问题说不,对于客户可能遇到的问题不妥协。 
    再来看下面这两个问题,是否容易得出答案了呢:

- 软件测试是以开发设计为中心,还是以客户为中心?

- 当开发和设计人员说:产品就是这么设计的,就是这么工作的;而我们发现从用户角度来看并不合理,我们该怎么办? 
   
软件测试应该站在客户的立场上去看待产品和问题,当与设计开发的场景发生冲突时,更要从客户使用的角度去考虑,模拟自己就是客户在使用我们的产品,对于是
否是问题,判断起来就容易明晰。另外,我们从上到下都应该贯彻“以客户为中心”的理念,当设计、开发和测试人员都有这种理念的时候,我们对问题的识别和解
决就会顺利很多,更容易达成一致。 
   
从客户角度考虑问题,不仅限于发现问题,从产品设计和使用上,我们也应秉承这一理念,测试人员是产品的第一个客户,如果我们觉得产品不好用,不容易理解的
地方,我们的客户也会遇到同样的问题,我们应该促使产品的设计和开发更加符合客户的使用,更加合理。这也是测试工程师的职责所在。

Please Think as Customer!

【转载】Think as Customer 以客户为中心的测试理念的更多相关文章

  1. 18 Customers' Role in Good Customer Service 客户在高质量客服中的作用

    Customers' Role in Good Customer Service 客户在高质量客服中的作用 ⑴High-quality customer service is preached by ...

  2. 什么样的CRM系统适合以客户为中心的企业?

    我们不难发现,现代的企业非常依赖CRM系统,这是因为20%的优质客户能够给企业带来80%的利润,而老客户的推荐可以带来60%的客户增长.那么,什么样的CRM系统适合企业?随着信息技术的发展,客户开始拥 ...

  3. 转载:开发者眼中最好的 22 款 GUI 测试工具

    对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...

  4. (转载)mysql中百万级数据插入速度测试

    (转载)http://www.111cn.net/database/mysql/42453.htm 100W的数据对于很多朋友来说算小菜了,但今天我就想到创建一个大量数据的测试环境,于是找了一下怎么插 ...

  5. 【转载】Loadrunner实现Android / IOS 手机APP压力测试

    随着手机APP用户量的增大,大的手机APP一般都需要进行压力测试,这几天用了loadrunner 12进行了手机APP的压力测试,整理了下,大家可以参考参考怎样给Andorid / IOS手机APP进 ...

  6. 欲实施CRM软件,必须先懂什么是CRM软件

    CRM是Customer Relationship Management(客户关系管理)的缩写,它是利用信息科学技术,实现市场营销.销售.服务等活动自动化,使企业能更高效地为客户提供满意.周到的服务, ...

  7. Term_Application

    1 CRM(Customer Relationship Management)客户关系管理: (对ERP下游管理不足的补充) 是一个获取.保持和增加可获利客户的方法和过程. 市场营销.销售管理.客户关 ...

  8. CRM 建设方案(01):CRM基础

    CRM 客户关系管理系统基础 客户关系管理简称CRM(Customer Relationship Management).CRM概念引入中国已有数年,其字面意思是客户关系管理,但其深层的内涵却有着许多 ...

  9. 8Manage:物流CRM,深度挖掘快递企业下一站蓝海!

    [导读]网购的普及加快了快递物流服务在中国的发展,而物流行业也开始展露出自身巨大的发展潜力和进步空间.其中,作为物流行业根本核心的物流客户关系管理开始引起了管理者的注意,如何升级用户物流服务体验,把握 ...

随机推荐

  1. Codeforces Round #Pi (Div. 2) ABCDEF已更新

    A. Lineland Mail time limit per test 3 seconds memory limit per test 256 megabytes input standard in ...

  2. datagridview,textbox,combobox的数据绑定,数据赋值,picturebox的用法

    一:datagridview数据绑定 二:textbox的数据绑定(datetimepicker) 总结: 最好还是写成双向绑定那种,不要再写出发事件了,只要在给textbox赋值就能重新绑定了,不然 ...

  3. UVa1658 Admiral(拆点法+最小费用流)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51253 [思路] 固定流量的最小费用流. 拆点,将u拆分成u1和u ...

  4. Http报文 状态码

    一.HTTP报文 1.HTTP报文介绍 HTTP报文:用于HTTP协议交互的信息. HTTP报文由报文头部和报文主体(非必须)构成,中间由空行来分隔. 1.1 请求报文:客户端发起的报文. 1).报文 ...

  5. oracle 大文本由clob来存

    file字段是varchar2类型(最多只能存储4000字符),空间不够用了,因此将其改为clob类型(支持4G存储量). 但是如果该字段中已经有数据,是不为空的,直接用语句改,会报错. 那么需要借助 ...

  6. mvc与mvvm

    mvc:被动型式的,也就是说,只有view有要求的时候,控制器才有反应 View     Controller       Model 可以把一个页面看作是由多个view组成 Controller控制 ...

  7. Java中的字符串流的读取和写入(创建文件并判断重复账户)

    各位我又来了!!哎!好心酸!我还没注册到三天!!没法登上博客的首页!!心累!! import java.io.BufferedOutputStream; import java.io.Buffered ...

  8. Business Analysis and Essential Competencies

    Requirements Classification Schema http://files.cnblogs.com/files/happlyonline/BABOK.pptx http://fil ...

  9. 使用搬瓦工搭建javaweb环境

        /* 本文是基于搬瓦工vps的centos-6-x86_64的Linux系统搭建. 需准备的工具:1.putty(用于连接Linux系统)  2.WinSCP(搬瓦工官方提供的ftp上传下载工 ...

  10. Lucene全文检索

    Lucene写入和更新操作: if (id.equals("")) { this.goodsService.save(goods); String goods_lucene_pat ...