从业7年,软件测试真的是让我又爱又恨的一个行业。开心,迷茫,疲惫,愤怒经常伴随着自己。重大版本上线成功心情是喜悦;职业规划,未来的发展常常让我彷徨找不到方向,996的魔鬼加班体验让我想隐居山林,公司对测试地位的不重视常常也让我恨愤怒。这几年一直在学习前进,为了的就是让自己更有能力,让自己赚更多的钱。现在经过努力做到了测试经理的位置,在自己心目中也认可了自己。
我是在14年转行到软件测试行业的,学习了3个月,面试了4家,拿到了3家的offer,最后选了一家公司规模稍大的公司。自认为自己学习的非常好,在这里分享给大家,希望给大家带来帮助。
软件测试,发展迅猛,对测试的工程师要求越来越高,准备进入这个行业的人,必须要做好持续学习的准备,不然你终究会被淘汰。我当初入行学习的知识不仅少而且浅,毕竟当时的竞争没有现在激烈,相对来说还是很容易,而现在越来越多的机构都在想着教更多的内容,最后的结果就是大家一起卷。所以你也需要付出更多的时间。
关于学习这件事,我希望你们要知道一个道理:学什么,怎么学,学了有什么用,带着这三个问题去学习,相信会更有效。
现在,你准备好了吗?
作为一名想进军互联网行业的小哥哥或小姐姐,首先咱们需要先清楚软件的生命周期吧~
睁开你们迷人的大眼睛,大声的告诉我,测试在哪里?
嗯,眼神好的应该都能看得到。图中的 测试 就是我们测试人员参与的流程啦。通常一个项目的生命周期就如上图所示,我们参与了产品的需求分析,开发的概要设计,详细设计(开发逻辑实现流程图,数据库,技术等设计文档),开发完成代码的编写后将开发出炉的软件送到测试面前,作为测试,就开始享用(测试)这个软件,是否和产品定义的一致。测试的过程就是发现软件和需求不一致并且达成一致的过程。发现了问题,我们需要给开发提bug。开发修好了bug,我们要及时验证。等到问题全部解决,这个项目就算是测试好了。
小可爱们?请问你们知道为什么会有测试人员的存在吗,开发自己开发自己测试不是很好吗???
咳咳,可能你们是没见过这张图。↓↓
或许你会问,为什么开发不能开发和需求相符的产品呢?如果开发不产生了bug,测试人员不就是要下岗了吗,(;′⌒`)
可能在软件开发知乎专区,有一个问题是如何自学开发,那么开发的水平也是参差不齐的......
所以,测试就是来给开发找BUG的。我们一起携手让产品顺利上线。
作为一名优秀的、让开发尊敬,让产品信任,让领导放心的测试工程师,你一定需要掌握:
测试理论、测试工具、http知识、数据库知识、Linux服务器知识、自动化工具知识等好多知识。如果你看到这里没放弃,那我展开来讲。前方高能预警,非相关人员紧急撤离:
- 测试理论
你需要了解测试方法:比如 黑盒测试、白盒测试、自动化测试
你需要了解测试类型:功能测试、性能测试、兼容性测试、压力测试等
你需要了解测试流程:需求评审-用例编写-用例评审-执行测试-bug验证-回归测试-线上验证等
你需要了解测试用例怎么写:等价类、边界值、因果图等
你需要了解项目管理工具如何使用:禅道,jira等
- 测试工具
抓包工具Charles/fiddler,接口工具postman,自动化工具和性能工具jmeter
- http知识
你需要了解软件的数据如何传输,网络的模型,前后端如何交互。常见的http请求方式,状态码
- 数据库知识
CRUD--CREATE、Retrieve、UPDATE、DELETE,连表、排序等
- Linux服务器
不多说,多撸命令
是不是我学完以上就成大神了?咳咳,Is not enough~~
纸上得来终觉浅,有个项目才能行。一个项目可以很好的将学习的知识给串起来。至于项目哪里来呢?可以网上找,或者找熟悉的人要。找我的话不是免费的。
以上是做软件测试的基础知识,必须要会。
接口测试:
想提升技术,就需要学习高级的知识啦,
首先是接口测试,接着http学习后就可以学习接口知识啦,使用postman进行接口测试。
接着是使用jmeter进行接口测试。
学完jmeter,你离自动化已经很近啦。
编程语言:
这个时候就可以学习编程语言啦。
推荐python,适合编程0基础的同学。
有编程基础的就去学习java,没有编程基础的学python,免费课有很多。
学习编程语言是做自动化的基础,也可以在工作中使用代码配合测试。提升测试效率。
同学们,去学习吧,我建议按照上面顺序进行学习,觉得有用的话可以给个赞。