• 软件测试需不需要懂代码?


    无论是刚入测试行业的萌新,还是已经在测试行业闯荡了两三年的小司机们,都会琢磨一个问题:如果要持续发展下去,我要不要懂代码?

    在软件测试初级阶段,不需要编程能力。但是任何一个职业,都会追求长期发展。

    让我们来看看软件测试的几种职业生涯历程(转行的就另说了)。

    1、技术 + 管理方向:一枚萌新 - 》技术阶段 -》测试经理、主管这样的管理岗

         -------编程能力 + 管理能力俱在

    2、纯技术方向 :一枚萌新 -》功能测试 -》自动化/性能/安全 - 》测试开发/性能、安全测试专家/架构师

         -------优秀的编程能力

    3、产品方向:一枚萌新 -》业务专家 -》产品经理、产品需求等岗位。

        -------不需要编程能力

    1、萌新阶段、点点点(web/app....客户端)  ----初级测试工程师

    初入软件测试行业,要成为一名合格的的软件测试工程师,需要学习的东西还是很多的。

    1)软件测试理论基础;

    2)测试用例设计、测试功能覆盖、软件测试项目实战应用;

    3)对业务的精准把握 、培养对bug初步处理和分析

    4)在长期的测试工作中,要培养敏锐的bug嗅觉;

    5)良好的沟通表达能力。如果你连一个bug都表达不清楚,那就尴尬了。如果你不能与开发好好聊天,那也尴尬了。

    但此阶段,主要是功能测试为主,像用户一样去手工操作系统,模拟用户的使用场景 。

    所以不需要任何的编程能力,你都是可以胜任的。因此,软件测试的入门并不难。

    也因此,在软件测试岗位上,有很多非计算机专业的同胞一样可以优秀的胜任。

    2、功能测试小司机、测试工具   -----初级测试工程师

     随着测试时间的增加,就需要掌握更多的东西来扩充自己的技术能力了。毕竟也只能刚入行的时候才能叫萌新啊。。。

    1)数据库操作:mysql、oracle等

    2)linux操作、环境搭建

    3)各种测试工具:抓包fiddler,wireshark

    4)从架构层了解被测系统、http通信协议、接口测试及其工具postman、soupui、jmeter等。

    5)app的专项测试、兼容性测试、易用性测试

    在这个阶段,会有一部分人成为小组长、小领导。主要工作内容就是分配组内的测试任务、把握和反馈任务进展、完成测试工作。

    在一些特殊的行业(比如医疗),可以逐渐形成业务专家。

    在此阶段对编程能力也没有要求。

    3、自动化/性能/安全(必须会编程)  ------中高级测试工程师

    具备测试能力与代码能力,提升测试效率与软件质量。

    以下以自动化测试为例来说明。

    1)选一门编程语言学习:java、python、ruby等

    2)了解自动化测试、自动化测试工具、web/app/接口/pc端自动化基础

    3)框架思想、项目实践与流程

    在功能测试岗位中做了几年时间之后,会开始焦虑。

    在工作中,感受到了成长的限制。除了业务越来越熟之外,工作就是点点点,其它方面没有成长。

    想跳槽想涨薪,但是很有挫败和无力感,因为全身上下价值就在这里。

    想在工作的过程中自学提升,迈向高薪的自动化测试、性能 测试、安全测试等。

    当然自动化测试工具也可以实现自动化,但是有好与坏的区别。

    第一道门坎就是编程!! 

    -----引起了很多人的头疼。非计算机专业的没接触过、计算机专业已毕业几年,早忘了。

    于是,又妥妥的成为新阶级的萌新。

    我应该把编程和自动化学到什么程度?我应该学到什么程度才能在面试中面上自动化测试?才能在工作中胜任起来?(性能 和安全通用)

    带着一脸懵逼的状态去自学代码、自学自动化。查到什么资料学什么。

    而招自动化测试的岗位,基本上都是要有实战经验的,没经验的直接咔了,或者转功能测试岗。

    在这个过程中,有些人放弃了,有些人经历了一两年还在挣扎中,有些人机遇来了上了这趟船。。。。

    但一旦上了船,就打开了新世界的大门,可以扬帆起航走的更远。

    而且,在开发同胞的眼中,你作为测试的地位绝对上升不少。。。。

    另外,想要成为优秀的安全测试与性能测试工程师,则不仅仅是会编程还需要有更多的计算机相关知识。

    4、测试开发/性能、安全测试专家(必须会编程)  ------高级测试工程师

     测试开发,具备测试能力与代码能力,提升测试效率与软件质量。又可以做开发,又可以做测试。

     要求比较强的开发能力,深入代码层。一般不直接参加测试工作。

    1、对测试框架、测试工具的二次开发,更好的符合公司产品的测试要求

    2、开展单元测试或者协助开发开展单元测试,从开发阶段就开始把控产品代码质量。在后续迭代过程中快速挖掘问题

    3、开发测试工具和平台,为测试团队提高测试效率,各种测试的简化、测试结果的量化。比如性能测试平台、接口测试平台等。

    5、测试经理、主管   -----技术与管理并存、能与开发抗衡、能服众

         此处省略几百字。

     感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

     

  • 相关阅读:
    浅述mesh广播中的1827与1828
    十五、MySQL(DCL)如何实现用户权限控制?
    C++-标准库 std::pair的三种构造函数
    树、二叉树概念(+堆的实现)
    【学习笔记】RabbitMQ-6 消息的可靠性投递2
    【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问
    【并发编程】第二章:从核心源码深入ReentrantLock锁
    什么是PYTHONPATH,导包导模块究竟要怎么用才合理
    sysbench--生产--02--mycat和mysql的性能
    软件测试|Python自动化测试实现的思路
  • 原文地址:https://blog.csdn.net/hlsxjh/article/details/134246833