• 【转载】Think as Customer 以客户为中心的测试理念


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

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

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

  • 相关阅读:
    JAVA | Guava EventBus 使用 发布/订阅模式
    Go | Go 语言打包静态文件以及如何与Gin一起使用Go-bindata
    写了一个慢接口,年终妥妥的325
    理解C#中的ExecutionContext vs SynchronizationContext
    理解C#中的ConfigureAwait
    反直觉的三门问题
    连求最大公约数都不会,我怕不是上了个假大学
    「补课」进行时:设计模式(22)——桥梁模式
    抄答案就是了,两套详细的设计方案,解决头疼的支付掉单问题
    如何写好绩效考核中的年终总结?
  • 原文地址:https://www.cnblogs.com/asin-huang/p/4737956.html
Copyright © 2020-2023  润新知