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

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

都说中国人喜欢搞运动,喜欢搞活动,老外就不这样。那是不是呢?讲述一个我经历的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. LA3353

    感觉好久没做网络流这类的题目都不快会做了 网络流建模之前首先要分析性质 选择要求每个点恰属一个环就代表每个点在选择的图中,只有唯一入度和唯一出度 那就简单了,对n个点拆点,对于原图的边i-->j ...

  2. -_-#【JS】isFinite

    /** * isFinite(number) * 检查是否是无穷大 * 如果 number 是有限数字(或可转换为有限数字),那么返回 true * 如果 number 是 NaN(非数字),或者是正 ...

  3. (转载)PHP静态方法

    (转载)Lamp兄弟连PHP 6.静态方法(static修饰的方法),不能访问非静态成员(在非静态的方法中,可以访问静态成员).因为非静态的成员,就必须用对象来访问,访问内部的成员使用的就是$this ...

  4. 动态规划(斜率优化):SPOJ Commando

    Commando You are the commander of a troop of n soldiers, numbered from 1 to n. For the battle ahead, ...

  5. ARM机器码分析

    我们编写的汇编程序还是不够底层,CPU都是对机器码进行操作的,所以还需要用汇编器将汇编代码转换成机器码才能被CPU处理.下面举几个例子来说说分析ARM机器码的方法. 对编译连接之后得到的ELF进行反汇 ...

  6. UVa11613 Acme Corporation(最小费用流)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33452 [思路] 最小费用流. 构图: 1 每个月建立2个点,建立 ...

  7. cocos2d的框架思路

    这是我第一次写cocos的框架思路哈,虽然只是写完了一个程序,按理来说应该再多写一些,多积累一些经验了再来写这个框架的构成,但是我觉得还是把我这次写代码的所有想法先记下来哈,等到以后继续写cocos的 ...

  8. C++ static(施工中)

    static 变量 头文件中的static会在引用该头文件的cpp中分别生成副本 //H.h #ifndef _H_H_ #define _H_H_ ; #endif //Ex_2.c #includ ...

  9. 【索引】Volume 0. Getting Started

    AOAPC I: Beginning Algorithm Contests (Rujia Liu) Volume 0. Getting Started 10055 - Hashmat the Brav ...

  10. Android少量数据保存之SharedPreferences接口实例

    SharedPreferences数据保存主要是通过键值的方式存储在xml文件中 xml文件在data/此程序的包名/XX.xml 格式 <?xml version='1.0' encoding ...