51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1019|回复: 2
打印 上一主题 下一主题

[转贴] 十年测试老司机的感想!

[复制链接]
  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-8-11 09:11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    摘要:主要目的是为刚入行的测试新手纠正一些错误的“常识”。从反响来看,读者寥寥,远不如探讨诸如“面试”、“工具”等话题那般火热。对此,我能理解,却难以接受。
      常听到一句话“不怕走弯路,就怕走错路”。不过当一个测试员花费三年、五年甚至更多的时间走了弯路的时候,跟走了一条错路又有什么区别?思想指导行动,作为刚入行的测试新手来说,多看一些测试工具、测试技巧固然能快速见效提升实力,但从长期来看,多看一些测试思想却可以让自己少走弯路,少一些遗憾。
      言归正传。其实直到今天,在外行人看来(甚至包括很多项目经理/程序员),我们测试人员找bug,靠的是对系统的无知、靠好奇心、靠良好的思维发散度、靠直觉、靠“消极”的思维方式。。。这就引出了两个问题:到底什么才是测试最重要的品质?优秀的测试员和平庸的测试员区别在哪里?
      我得承认,前面提到的几点外行人对测试的印象,都是有一定道理的,甚至有些是需要我们去培养的品质。但这并非最重要的。
      当初由于公司的安排,从开发转了测试。之后很长一段时间都处于野蛮生长的状态,懵懵懂懂干了两年, 深知一个测试人员在没有好的导师是多么不易。后来有同事问我,为什么选择测试这条路,我给他一个当时我自己都信以为真的理由:做测试找bug很有成就感,有征服感。到今天我明白了,其实我并不喜欢征服,只是喜欢打破产品没有问题的幻觉。我也并不喜欢报告一些坏消息,但是喜欢将客户从虚假信息中解放出来。
      我的看法
      对于测试员最重要的品质,在之前的文章中有提到,测试员最宝贵的财产是自己受过训练的大脑,也就是思维方式,跟开发相比我们测试员的思维方式确实是不同的。
      同样的,优秀测试和平庸测试之间的差别在于他们如何思考:如何进行测试设计选择,如何解释所观察到的现象,以及如何分析和描述这些现象并且让人信服。。。 下面简单说几点。
      测试运用的是认识论
      也许看到这个题目,会有人说:这是什么鬼?我没学习过认识论也做得很好,别装X,好好说人话不行吗?——请相信我,认识论是帮助测试员更好测试的一个哲学分支。
      认识论研究如何认识所了解的东西:研究证据和推理。这是科学实践的基础。研究认识论的目标是了解怎么样才能改进我们的思维,按照测试员的方式思考意味着实践认识论 。遇到以下类似问题的时候需要用到认识论:
      ·怎么知道软件足够好?
      · 如果软件并不是足够好,怎么样才能知道?
      · 怎么知道已经完成了足够好的测试?
      另外,直接与软件测试有关的认识论问题包括:
      · 如何收集和评估证据
      · 如何进行有效的推论
      · 如何使用不同逻辑形式
      · 拥有合理的信念意味着什么
      · 形式和非形式推理之间的差别是
      · 非形式推理的常见谬误
      · 自然语言的含义与模糊性
      · 如何做好决策
      的确,从来没有研究这些问题的人,也能把测试做得很好(比如只掌握了我之前分享的测试框架)。但是想要做的比很好更好,就得研究这些问题。研究认识论可以帮助测试员设计有效的测试策略。更好的意识到自己工作中的错误,理解自己的测试能够证明什么,不能证明什么,并写出无懈可击的测试报告。
      苏格拉底早在2400年前就提倡并描述了对信念的批判性观察,直到今天哲学家、心理学家都还在继续研究认识论。作为测试人员,很有必要好好利用这份遗产。
      大胆假设小心求证
      依靠“直觉”做测试是很多测试员(包括资深的)的测试手段,但需要注意的是,“直觉”很有用,但只在开始的时候有用,而不是其他时候。不可把由直觉做出的判断作为测试报告或者质量评估的依据。除非大家都有这种直觉,否则不会相信或者采纳你的建议。直觉适合用作指南,而不能用作合理性证明。当你凭借直觉找到测试方向时,就需要用严谨的测试行为进行验证。 总之,用直觉开始工作时不错的,但用直觉做为工作的结束又是非常糟糕的。
      当然有“这是问题,因为它显然是问题”的想法时,可以换一种方式进行沟通:“这是问题,因为我看到产品的行为与需求1、2和3冲突,而我们的客户很看重这些需求。”
      所有的测试都是基于模型
      每次培训新人,我都会郑重申明这一点:在设计测试时,头脑中要创建一个产品模型(比如一个想象的图景,一份功能清单或者某个图表,知道有谁是用户,用户关心什么)。不管模型是什么,测试都主要基于产品模型进行,而不是实际产品。如果程序员怎么做你就怎么测,那相当于你默认了程序员做出来的就是对的——这是一种很危险的情况——任何时候我们都要相信,程序员是很有“创造力”的,他们能创造出各种匪夷所思的逻辑!
      有缺点的模型会产生有缺点的测试。学会一种对产品建模的新方法,就像是学会了观察产品的一种新方法。 作为测试员,有责任去研究建模问题。对建模艺术越精通,越能够更好的测试。
      关于黑盒测试
      黑盒测试意味着软件内部知识在测试中不起重要作用。需要花更多的时间在了解用户,了解他们的期望和需要,了解技术,了解软件运行环境的配置,了解与这个软件进行交互的其他软件,了解软件必须管理的数据,了解开发过程,了解竞品,等等(更多请参考我的测试框架)。我们测试员的工作就是收集信息,而收集上面这些信息的目的是为了更好的进行测试策略的制定。比如说近期软件进行了一次改动,如果说我们只去了解这次改动的内容,而不了解改动的原因(项目背景),那我们怎么能保证这次开发出来东西是用户想要的?永远对项目经理/开发说的“我们已经跟客户做过需求确认”这句话保持质疑。从我个人经验来看,很多“隐式需求”都隐藏在这些问题中。
      记住,所有的活动都试图回答某些问题,任何测试活动中,都要问自己什么样的问题能够推动自己评估测试策略,否则就会更像是一个游客,而不是测试员。
      做黑盒测试并不反对大家去了解软件代码,如果有能力,多去了解软件工作原理。了解产品的方式越多,越能更好的测试。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2022-8-11 11:27:44 | 只看该作者
    谢谢老师,这正是软件测试初学者需要的!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
     楼主| 发表于 2022-8-11 11:33:46 | 只看该作者
    juanjuan2022 发表于 2022-8-11 11:27
    谢谢老师,这正是软件测试初学者需要的!

    客气 有用就好。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 10:57 , Processed in 0.064657 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表