软件测试入门指南

近年来,越来越多的新人涌入软件测试这个行业,刚毕业的应届生就不说了,转行的也不在少数。

很多人抱怨说软件测试工作真是越来越难找了,公司的要求也越来越高。在这样一个大环境下,大浪淘沙,一不小心就被拍到沙滩上。。。

做过2年左右的测试管理,前后面试过的测试工程师也不下百人了,自诩有点面试经验。

站在测试管理者的角度,整理了一些初级测试(功能测试)必备的技能供大家参考。

功能测试,俗称点点点,很多人说点点点没技术含量,其实这个理解是不对的。功能测试是测试中最基础也是最重要的部分,设计高效的测试用例、吃透业务逻辑也不是件容易的事情。

自动化、性能等测试都是在功能测试稳定之后才进行的,功能测试做好了才是最无可替代的。

1 基本的测试理论

// 软件开发流程(研发管理流程)

常规的流程是:产品经理整理需求文档、绘制产品原型,并组织产品、开发、测试相关人员召开需求评审会议。

评审之后,开发人员开始编写代码,并进行单元测试;测试人员同步开始编写测试用例、评审测试用例。

开发完成并自测之后,部署到测试环境,测试人员开始测试,包括集成测试、系统测试等等。

最后验收测试(UAT),产品上线。

这个流程你要明白各个岗位在其中承担什么角色,具体做哪些事情。

//常用的用例设计方法

等价类划分法、边界值法、正交试验、因果图法、场景法等等,这些一定要弄清楚原理。大部分的测试都知道等价类划分、边界值法,但是很少有人把正交试验、因果图用得很6的,基本上只知道个概念。

咱们为什么要了解这些方法?设计测试用例可不是想到哪写到哪哦,学习这些是为了保证用例的准确率、覆盖率。

面试的时候,面试官也不会直接问你测试用例有哪些设计方法,一般会结合具体的场景考察你的用例设计方法和思路,比如一个输入框怎么测、用户登录怎么测。

公众号后台回复“用例”获取用例模板。

// BUG的管理及生命周期

了解BUG从建立到修复到回归验证到关闭的全流程。

// 软件测试模型

瀑布模型、V型、W型、H型、敏捷等等。这个面试的时候被问到的频率还是挺高的,一般不会直接去问你理论,而是让你结合工作经验描述你前公司的测试模型,或者更深入地问你这些模型的优缺点。

近年敏捷模型很流行,比较灵活,主张快速交付,我所在的公司采用的就是这种模型。

2 不同类型的产品如何测试

// C/S架构产品

即客户端/服务器模式,需要安装客户端和服务端的安装包,客户端依赖于服务端运行,两端均要进行测试,还涉及到软件安装、卸载、更新。

// B/S架构产品

即浏览器/服务器模式,在浏览器中运行,不需要安装。B/S架构产品对UI的要求更高。除了基本的功能测试,还要考虑浏览器的兼容性、性能等等

// 移动端APP

在移动端(手机、pad)运行。涉及功能、UI、软件安装卸载更新、设备兼容性、移动端特有的手势、横竖屏、来电干扰、弱网等等。

这里仅提供简要的思路,大家可以多找些资料进行深入学习。

3 软件测试相关工具

// 测试工具

接口测试工具Postman、抓包工具Fiddler等(或浏览器的F12功能),接口/性能测试工具Jmeter(加分项)。

//辅助的管理工具

测试流程管理工具:如禅道、Bugzilla、TAPD(企业微信自带的工具)、JIRA、Azure DevOps Server。就我用过的而言,禅道和JIRA是比较好用的,可以登录禅道官网体验免费版的使用。

版本管理工具:SVN、GIT。用于管理多版本的代码、文件,这两个原理差不多的,学起来也很简单。

4 数据库

数据库操作也是开发和测试人员的基本技能。软件前后端的交互,本质就是数据的交互。

主流数据库MySql、SqlServer、Oracle,可先从MySql学起,SQL语句增删改查是必备的,还有嵌套子查询、多表联查,这些对于初级测试来说足够了。

学习的时候最好从建表开始,一个字母一个字母手敲SQL,一步步实操,查看数据的变化,这个印象才是最深刻的。

5 Linux

很多公司的产品是部署在Linux系统上的,作为测试工程师要掌握Linux常用的命令,正常能做到用命令查看日志、定位问题、会搭建测试环境就可以了。

6 计算机网络知识

了解网络协议,知道TCP/UDP区别、GET/POST区别。

如果你想面试初级测试或者普通的功能测试,那么了解以上足够了。若想进一步提升自己,那就去多学学自动化测试和性能测试,很多稍微大点的公司都有专门的自动化测试和性能测试人员,要求更高当然薪资也很高。

进阶

// 自动化测试

包括接口自动化、UI自动化,建议先学接口自动化, UI的改动最频繁、维护成本也最高,接口一般比较稳定,因此比较常用的是接口自动化。能自己编写框架或使用搭建好的框架编写自动化用例、执行自动化测试。

// 学习一门编程语言

可用于做自动化测试时编写自动化测试框架,做性能测试也是需要了解编程语言的。推荐Python或Java,Python对于初学者来说更容易上手。

// 性能测试

会做脚本跑并发、会性能监控、定位调优。

软件测试这条路,一路走来就像升级打怪,不断学习,就算成为不了大佬,也不至于成为被浪拍在沙滩上的那一个。

软件测试这条路,一路走来就像升级打怪,不断学习,就算成为不了大佬,也不至于成为被浪拍在沙滩上的那一个。

希望我的分享能帮助到你,我是墨石,喜欢请点个“在看”哦!

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

你可能感兴趣的