zoukankan      html  css  js  c++  java
  • 浅谈测试的本质

      为什么总说要想把功能测试做好的人,才是真正的测试牛人,这话不是没有道理的。可能不是我们没有足够的能力去做好它,而是没有足够的耐心去做好它。就如同很多人评价测试是一项没有技术含量的工作一样,因为在很多外行的眼里,测试就是点点鼠标,找找功能中所谓的缺陷,或者说是瑕疵。正因为如此,所以我们从事测试工作的人就更加觉得自卑,非要弄出点让人看起来有意义的技术,比如说自动化测试、性能测试和安全性测试等。一般对于这些个层面的测试,在大多数人看来,包括是开发牛人也无法完全去掌握所有的技术深度,所以这就是通常大家眼中所谓的有技术含量的工作。正所谓闻道有先后,术业有专攻。开发的本质工作是生产,而测试的本质工作是质检,这是从工业流程的角度上来讲的,当然肯定不巧当。不过这里要表达的意思就是,如果你想成为一个非常优秀的技术工程师,那你最好开发和测试都精通,比如就有这样的职位叫开发测试工程师,我估计这样的人很难招,因为他们自己也不知道他们需要什么样的人。除此之外那就是开发工程师和测试工程师之分了,毕竟这两个职位有本质的区别。其实,一般情况下那个说测试没有技术含量的人,那他的开发工作肯定做不好,因为他肯定不了解什么叫测试,一个不了解测试的人,谁能相信他可以把开发做好。谈了这么多,当然我的意图很明确,就是如何对待所谓没有技术含量的测试,大家都可能公认的功能测试,特别是手动功能测试。不过说实话,我之前也是这么认为的,所以也是在进入测试行列之后以有机会就拼命去研究自动化、性能测试、安全性测试等,最后可能遨游了一圈也没搞明白测试的本质是什么,我们为什么要做测试。所以导致现在我碰到很多的刚入门测试的朋友,就整天喊着要学习自动化、要学习LoadRunner性能测试什么的,原因是因为他们的开发看不起他们,他们的公司不待见他们,也导致他们自己觉得更没信心去做好。当然这也是现状,一时间处在那个环境的人确实无法自我领悟,所以为什么说要经历了才能懂得呢。

      我还记得之前有一个测试朋友,跟我讨论,因为他一直做功能测试,他做功能2~3年了,讨论出去可以拿多少薪水的问题,我也是一口否定,如果没有其他方面的技术储备,肯定是不可能的,因为只会功能测试,就这个几年的经验,算不上什么优势,因为在公司看来,如果你只会一种最基础的技能,那可能跟一个应届生没有多大的区别,至少应届生可以培养,而且成本还低很多,似乎这样的分析还是很在理的,不过估计拿到现在,我觉得也很难说服我自己的。其实,纵观整个行业来看,目前国内的软件企业也是百家争鸣,对于测试行业的认可度也不是特别的高,至少相比国外,那还有一个时代的差距。但是大凡跳槽过几次的朋友都不难发现,多数软件公司的软件产品目前都处于功能问题上纠结,更别说可靠性了,还有压力和安全等,就更无从谈起了。也就是说我们当前所承担的大部分工作,就是要把产品的功能缺陷给解决了,只要完全解决了功能问题,才可以谈产品的可靠性等一系列品质。这也是为什么众多行业测试人员都在追求高质量的自动化测试,当然主要是针对功能,因为功能是工作量最多,产品质量的根源,也正是由于我们无法高效地完成功能测试,特别是手动功能测试都无法做好,才去追求自动化功能测试。不过,严格地从逻辑思维的角度上来讲,自动化的设计也是来自于手动测试,如果手动测试无法开启的测试思维,自动化当然也无法做到。

      当然,我不是要表达功能测试有多难,而是要明确要把功能测试做好是非常难的。最近,我在跟一个项目的二期测试,需求那边提两个文档,一个需求列表,一个是需求说明,当对照两个文档看了半天没有看明白之后,我就开始急了,找需求沟通,需求说,这是汇总N多个人的想法然后得出来的这个文档,如果你要是不明白的话,你可以去找谁、谁、谁...等等。听到这当然我就受不了,面对这样的需求,除了埋怨,我不知道接下来还能做什么。所以说做测试容易吗,做好测试那就更不容易了。需求不明确,对于我们来说那就是太正常不过了,但是总归还得做。在无法从需求那里需求帮助的时候,我们就只能相互沟通,试着去理解这些问题,当然大部分问题还是之前遗留的问题没有解决了,也只能理解一个执行一步了。面对差不多上百条问题,执行了一部分就开始觉得乏味了,因为盲目而且又失去了测试思路,当然效率很差了。于是,开始寻找解决办法了,总结之后大致有如下几条:

    1.翻阅之前提交到JIRA上的bug,重新执行一遍。

    2.将之前的测试用例库,对照相关的需求一个一个的执行

    3.阅读同组测试人员提交到JIRA上的bug,就近寻找的测试思路。

    所以说做功能测试最大问题就是失去测试思路,当功能测试变得很乏味的时候,如何寻找测试的灵感,这就成为了功能测试过程中的瓶颈。任何一个人都有迷失方向的时候,此时要做的就是不断地尝试去调整过来,重新回归到正确的方向上来。

    一个优秀的测试人员不是你拥有多么全面的技术,而是你如何理解测试工作的本质,任何方向的学习,最终的目的都是服务于我们工作的本质。

  • 相关阅读:
    Java 异常处理机制和集合框架
    如何在Windows 下安装Python
    公司为啥要上市?上市对公司有什么好处?
    MongoDB Driver:使用正确的姿势连接复制集
    mongodb复制集开启安全认证
    关于 MongoDB 复制集
    如何高效的使用 Git
    Linux shell常用命令
    MongoDB 查看所有用户账号信息
    MongoDB开启安全认证
  • 原文地址:https://www.cnblogs.com/candle806/p/2024947.html
Copyright © 2011-2022 走看看