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

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

都说中国人喜欢搞运动,喜欢搞活动,老外就不这样。那是不是呢?讲述一个我经历的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. Linux Shell编程(7)——变量赋值

    =赋值操作符(它的左右两边不能有空白符) 不要搞混了=和-eq,-eq是比赋值操作更高级的测试.注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符.例子:简单的变量赋值 #!/b ...

  2. 保留n位四舍五入小数

    一:可选择保留位数,注释很解释的很详细,上图 二:全部代码 using System; using System.Collections.Generic; using System.Component ...

  3. One day

    1.c的格式化输入输出:  printf()和scanf()函数可以较好实现格式化输入输出,例子如下:  printf("%3d",3); //结果为__3 (_为空格)  pri ...

  4. AOJ 0525 穷举

    题意:有一个烤饼器可以烤r行c列的煎饼,煎饼可以正面朝上(用1表示)也可以背面朝上(用0表示).一次可将同一行或同一列的煎饼全部翻转.现在需要把尽可能多的煎饼翻成正面朝上,问最多能使多少煎饼正面朝上? ...

  5. Android中 判断是平板还是手机

    //是平板返回true 不是平板返回false public  boolean isTablet(Context context) { return (context.getResources().g ...

  6. windows server作为文件服务器如何精细控制权限

    最近使用windows server 2003搭建了文件服务器,对于其中关于共享文件权限的精细控制有了较深的体会. 当前实现基本的共享文件目录结构是(上传图片真心费劲,大家将就一下吧): |--部门1 ...

  7. 一个美国小券商的生存之道Tradestation

    转自:证券时报记者 张欣然 桂衍民 中国互联网金融的口号喊了十几年,众多证券公司仍然苦于找不到新的蓝海,研究大西洋彼岸的美国TradeStation公司的业务模式,也许对国内的证券公司会有一些启迪. ...

  8. openresty nginx 安装过程记录

    转载请注明原始地址 http://www.cnblogs.com/dongxiao-yang/p/4877799.html 一 :系统版本 1 cat /etc/issue: CentOS relea ...

  9. web容器线程数和程序中线程阻塞导致 请求超时

    问题描述: web项目启动之后.调用dubbo的远程服务. 但是有个基础服务报错. 当并发访问用户量上来之后. dubbo服务的报错返回 比正常服务慢 不能正常消费服务 清理服务线程. 也就是dubb ...

  10. Linq to sql并发与事务

    本文转载:http://www.cnblogs.com/lovecherry/archive/2007/08/20/862365.html 检测并发 首先使用下面的SQL语句查询数据库的产品表: se ...