前不久,公司新来了个实习生,一来就安排在了最牛的部门,那天我和公司聊起,这小子到底什么来头,不会走的关系户吧。后来,一次聚会,我们发现他并不是什么关系户,总的来说他并不是什么富裕家庭。他能比我们做的好,全凭人家很努力。在测试行业这么多年,以前经常听到开发对我说,天天的点点点有意思没?
和IT圈外的同学、朋友聊起自己的工作,往往一说自己是测试,无形中也会被大家轻视,总有人会问你,为啥干测试啊,怎么不干开发呢?不可否认,在他们心中,你肯定是因为能力不足,无法胜任开发的工作,所以只能干着平凡、索然无味的测试工作。但是新来的实习生告诉我,测试并不只是单纯的点点点...只要你肯努力,你就可以做到。
开始入门自动化
看过好多应届生的回答,都很坦诚
“我技术不太好,先做测试,以后有机会转开发”。
测试就是点点点,于是把行政妹子拉来一阵点点点… 以至于都觉得,阿猫阿狗都能来做测试。
个人觉得,测试的前景并不差,只要自己肯努力;我刚出来的时候是在鹅厂做外包的功能测试,天天点点点,很悠闲,点了两年,发觉这样下去会废,然后就开始学习python,java,学着搞自动化测试。
在入门阶段,要有很强的自制力,后面学会了一些皮毛,跳槽去另外一家公司,平常比较好学,加班或者没什么项目做的时候都会自己看书,学敲代码,很幸运被领导赏识,被送去培训了一个月,是有专人带,然后回来就把公司app的自动化交给了我,这才算是真正入门自动化了
测试开发
然后就开始自己琢磨,抄人家的框架,后面又跳槽去了一家金融公司,专职做自动化,这里自动化的负责人是字节出来的,很厉害,然后在那家公司我拼命跟着他学,皇天不负有心人,久而久之,我发现面试的题目我基本一看就会,开始的初级到现在的高级,现在我到新公司做接口自动化,然后在开发一个测试平台(突然发现,自己还是涉足挺广)。算是证明了自己......
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以点击下方链接加入我们群,里面有各种软件测试资源和技术讨论。QQ群号:587968587,或者关注微信公众号:程序员北诗
没有努力过就不要说测试这个行业没前途。
在这里,我把对于功能测试的理解写下来在这里,希望能够给你一点方向感!
一、 熟练使用SQL
常用的 sql 语句一定会写。比如说增删改查之类。
了解数据库的事务、会编写存储过程、熟练常用的系统函数。
了解并可以进行数据库的备份、迁移、还原、镜像等操作
对 sql 语句进行调优,并对可以对运行的语句监控查看性能
了解数据库集群等操作。
二、 Linux
Linux是测试人员的基础功,不需要掌握太难或者很不常见的Linux命令,正常能做到查看日志,定位问题就可以了。
1、基本命令
常用的Linux基本命令,面试经常会问的,或者给出一种场景,问你用什么命令。
2、查看日志
初级测试人员在工作时经常遇到,发现bug,开发不承认或者不愿意解决的情况,测试人员怎么摆脱这样的问题呢?
那就是根据发现的bug根据日志级别,来查看日志,定位问题。
具体的日志级别分为四级:
info : 代码 info 信息,不包括sql语句等一些debug信息
warning warning : 代码警告信息error :
程序本身报错信息 java.lang.outindexERROR…
critical :几乎用不到
一般不符合需求的bug在 debug中,程序本身报错的bug在 error中。
三、 使用数据库,跟数据流向
1、数据库的本质
常见数据库主要是MAYSQL、ORECAL、Redis
其中Mysql数据库是典型的关系型数据库
2、数据库操作
(1) 数据库和表操作
(2)表数据操作
(3)复杂sql查询
四、写好测试用例
测试用例必须包含的内容:
用例编号、用例名称、测试背景、前置条件、优先级、重要级、测试数据、测试步骤、预期结果、实际结果、备注。
1、测试用例的编写流程
需求分析->提取测试点->测试用例编写->测试用例评审
2、编写测试用例的思路
(1)根据产品的RPD,提取测试点。
(2)根据数据流的走向。
(3)根据的架构部署。
(4)编写测试用例的常用方法:等价类划分法、边界值分析法、流程图法等。
(5)覆盖弱网测试、接口测试、安全测试、性能测试等。
(6)常用测试工具有:Postman、 Charles、 Fiddler 、Jemter、Loadrunner等。
3、编写测试用例注意事项
(1)根据项目的实际情况设计测试用例表格
(2)用例格式不要生搬硬套
(3)根据具体情况编写
(4)学会质疑需求,不要完全按照需求来写测试用例,要从客户和产品的角度来理解需求,看到需求之外的功能和体验
五、 http与https协议
面试经常关于Http协议的下面几个问题
Http协议原理
http和http协议的区别
TCP和UDP的区别
session和token的区别
公钥和私钥的理解
get和post的区别
从输入URL到页面加载发生了什么
什么叫代理,正向代理和反向代理?
六、了解业务
业务熟悉后,会知道很多常识,知道下面的常识之后,你就可以尝试进阶,学习做自动化测试、接口测试、性能测试
什么时候介入自动化 => 当你系统趋于稳定的时候
什么时候介入接口测试 => 当接口开发完毕的时候
什么时候介入性能测试 => 当出现促销的时候,或者抢购的时候(618大促,过年抢火车票,抢优惠券)
比如说,5000张优惠券,大概有多少人抢,在多长时间内抢完。
七、 bug管理
做功能测试,还有个很重要的工作就是bug管理,一个优秀的的测试人员,线上bug非常多,多于和你一起工作的其他同事,但是线上bug非常少,少于其他同事。
1、 bug定义
(1)不符合需求的
(2)程序本身报错
(3)不符合用户的使用习惯
2、bug生命周期
当我们测试人员提交一个bug的时候,自始bug就有它的生命周期,从开始到结束。
3、测试报告
把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础测试报告和测试计划一样,一般由测试leader编写,测试人员需要了解一下测试报告中都有哪些内容。
八、 典型bug
1、抓包作用:测试一个app搜索功能,抓包,抓到一个搜索接口,突然发现抓到了两个请求接口 -> 当访问量上来了,服务的压力上升两倍
2、数据流走向 :测试时候发现页面上数据只有一条,但是数据库里面多了一条 -> 1、数据量变大,查询变慢 2、脏数据太多,瞬间爆满,程序崩溃了
3、弱网测试:app项目一定要有弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
大家在学习软件测试的理论时要学会收集各种资源,我也为大家整理了很多相关的学习资源,各种类型都有,放在交流群里了,里面不仅有干货资料,还有视频讲解,大家可以一起探讨提升哦~
总结
做好功能测试并不是一件容易的事情。我做了两年的互联网功能测试,还是很多知识不明白,只有不断的学习,自己才能成才。
很多人功能测试都做不好,就想做性能测试、自动化测试,其实是好高骛远,我觉得基础打好了,再去学习,肯定事半功倍!
最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,有需要的朋友可以加QQ群:587968587,或者关注微信公众号:程序员北诗,每天都分享超多测试资源!!!
最后一句话送给大家:机会只垂青有准备的人,这是一个靠本事的社会。有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,导致机遇与你擦肩而过。
机油,测试人,路在脚下,成功就在明天!