软件测试如何提升编程能力?

2022-12-08,,,,

你好,我是小牛。

现在是2020年了,快60岁的SOHO中国创始人潘石屹在个人微博上宣布开始学习python,令人佩服。小到中小学各种少儿编程班层出不穷,再到高中生的OI竞赛,佼佼者可以直接保送各种名校甚至清华姚班......

在大学本科教育阶段,几乎所有学校的工科专业在大一或者大二都会学习一门编程语言,比如C语言或者python语言。甚至某些学校的经管类的专业也会学习编程语言,编程已经逐渐成为了大学教育阶段的通识课。

这一切,似乎都在预示着,全民编程的时代已经到来。所以,作为一枚互联网从业者,不懂编程,不去学编程,你还好意思嘛!

对于IT行业来说,只要你是技术类相关的岗位,编程能力都是非常核心的竞争力,也是你日后跳槽加薪的重要砝码。

对于开发来说,会编程仅仅是达到了入门门槛。除了需要掌握最基本的语言基础之外,还需要掌握常用的技术框架。比如java后端开发要求的SSH框架或者SSM框架等等。

甚至,一些知名大厂比如字节跳动,还要求你读过各种框架源码,不仅要会使用这些框架,还要会造***。除此之外,还要求掌握各种数据结构与算法,可以现场手撕代码......

那么,再谈谈作为软件测试从业者来说,编程应该掌握到什么程度,以及应该如何提升编程能力呢?

首先要搞明白测试人员学习编程的目的是什么?没有箭靶子,拼命拉弓又有什么用呢?

绝大多数测试人员学编程的目的主要是用来做自动化测试,包括web自动化,app自动化,接口自动化。

主要编程语言就是java或者python,关于新人应该选择java还是python作为上手语言,推荐看下之前写的这篇文章。

软件测试:Java  VS  Python

简单来说,之前没什么编程基础,推荐python入行,简单易学。开发转测试或者之前大学学过java的可以选择java上手。

当然,语言仅仅是工具,不应该成为你通往进阶之路的绊脚石。刚开始,建议深入学习一门,工作久了,最好两者都会,只有这样,机会来了,才能抓住。

除自动化之外,就是开发测试平台和测试工具了。不过这种,一般是大厂才有足够的财力,人力去搞。需要的开发能力接近开发水准,至少也要具备开发一个小型web系统的能力……一般达到这种水平,薪水和待遇和开发也相差无几了。

然后,重点来了,作为一个测试人员应该如何提升编程能力呢?

其实,不管你是做开发还是做测试,又或者还是一枚在校大学生,想要提升编程能力,只有一条路,就是不停的coding,debug,coding,debug……

当然,主要方式有两种,一是去OJ上面刷编程题,二是做项目,在工程中实战。

一般想要面试大厂的大佬都会直接去leetcode上面刷题,用来熟悉并掌握基本的数据结构以及常见算法。

由于关注小牛公众号的粉丝大多为没什么编程基础的转行小白和刚入行的初级测试,不推荐大家上来就刷leetcode,难度太高,很容易放弃。推荐大家另一个刷题网站牛客网,上面有一些基础的编程题目。

而且选择刷题类型时,也有技巧。不推荐大家刷需要用到复杂数据结构和算法的题目,刷题的目的主要是用来锻炼自己的编程思维,学会从计算机的角度去思考问题。以及用来掌握并巩固编程语言基础语法比如循环,判断,集合等等。还有最重要的是锻炼解决问题的能力,报错如何debug,如何排查问题等等。

刷题比做项目实战的好处是题目一般比较短,通常几十行代码就可以搞定。很容易就获得成就感,也可以培养编程的感觉以及兴趣。而做项目的话,学习周期以及需要掌握的知识技能树就要多很多,很容易中途放弃。

下面再聊聊另一种方式,在项目工程中实战,以自动化为例。

对于小白来说,即便你看不了不少自动化相关的视频,但是真正开始从零到一去写自动化测试框架难度还是不小,多见于一些创业小公司,领导一拍脑袋,跟你说公司要搞自动化,给你多久时间让你实现。从无到有,挑战确实不小。

除此之外,对于一些大公司,之前已经有成熟的并真正应用的自动化框架,更多的工作是对之前的框架进行优化,做一些封装,兼容更多的功能。有之前的代码基础作参考,再上手改代码,难度就会小很多。

如果你目前在做手工测试,准备转型自动化,三种自动化框架中,请优先学习接口自动化。目前,需求最大,性价比最高。

现在,专门做自动化的岗位也越来越少了,一般都是,功能,自动化,性能都做,只是不同技术水平,日常工作占比不同而已。

关于如何学习,你可以自学也可以报培训班,有些机构还行,会带着你做项目,但是不做推荐。自学的话可以去公众号回复关键词获取资源,也可以加我微信领取一套完整的自动化视频。

具体更详细的手工测试如何转自动化,之后会发文章详细说一下,也可以先看下之前在B站录制的视频,手工测试如何转自动化?分为上下两集,贴个地址吧。

https://www.bilibili.com/video/BV1fi4y1s7ct

关于如何提升编程能力?其实也没啥好办法,多写代码,仅此而已!