先来汇总下自学的问题,我们逐一解决:
不知道自学目标是什么?没有目标就不知道学什么;
不知道怎么合理的安排时间?没有计划很难坚持;
不知道自学资源哪里全?没有成体系的都是散乱的
自学需要的项目应该怎么学?
如何就业?新人转行应该怎么写简历参与面试?
从以上五个角度的顺序给大家分享自学软件测试,接下来会总软件测试的前景作为开始。有需要的同学一定要看,全部都是干货。
一、软件测试的前景和学习目标
大的行业前景我们就不分享了,从大家最关心的薪资开始。将前景与目标放在一起是为了大家可以聚焦学习重点。
上图为职友集数据,从左到右分别是:功能测试、接口测试、性能测试、自动化测试,测试开发全国平均下来的收入。大家作为一个参考即可,因为不同地区还会被平均。下面不同的岗位我们简单介绍一下:
功能测试:又称手工测试,需要根据需求文档,执行测试用例,方法就是等价类、边界值,错误推断等等方法。(这个阶段的测试工程师,晋升空间大,但是被淘汰率也大,非一线城市薪资不高,所以建议自学的小伙伴不要到这个阶段就直接就业!)
接口测试:顾名思义就是检测外部系统和内部系统以及内部各个子系统之间的交互点。重点在于要检查数据的交换等等;(接口测试需要用到的工具就有JMeter/Postman,我们可以直接努力到性能测试的这个阶段;)
性能测试:测试系统是否满足实际运行时候的需要,并且分析系统受哪些因素导致无法跟上业务发展。(这个阶段目前来看,需求量大,薪资高;)
自动化测试:又分为UI自动化,也就是Python+Selenium定位元素模拟人进行页面操作。接口自动化也就是Python+requests;(需要涉及到脚本的编写,但是脚本是重复可用的,目前也是需求量大,薪资高的岗位;)
测试开发:需要参与到上述全部测试的各种大小规模的测试,重心偏重可测性能和通用测试基础框架。其次就是有能力在开发人员已完成的软件上进行二次开发(该岗位不仅需要编程的熟练度,更需要对业务的熟练,还需要沟通、协作等软实力;)
1.2学习目标
软件测试相关的岗位我们大概了解了一下,其实大家想要具体了解每一个岗位的招聘要求和日常工作,百度/知乎/CSDN即可。
意见:不要入门到功能测试就找工作,起码掌握编程语言+工具;但是功能测试很重要!!
不管你是做到了性能还是做到了自动化测试,都离不开功能测试,这就相当于根基。有了目标了,我们看看岗位招聘需要我们学什么。因此给大家整理了一份学习计划:
应该学什么和自学时间安排计划都已经准备好了,下面我们来送全套软件测试的资源。
二、软件测试自学资源
图片内容就是我们应该学习全套资源:
其实我们还整理了全部测试相关的课程和笔记,由于平台限制的原因,大家可以私信方式领取。
三、简历和面试技巧
3.1如何学会项目
以我们的黑马头条来举例,是功能到自动化测试必学必看的项目。项目是类似于今日头条的软件
技术亮点
搭建完整的Web和APP项目测试知识体系。
对真实项目中的核心模块进行全方面,多角度的用例设计。
讲解数据库等开发技术的测试应用方面,对业务功能进行深入测试。
fidder等调试工具在测试中的应用及相关原理。
测试工作的详细流程操作及常见环境。
测试计划及测试方案编写。
采用selenium自动化测试框架对自媒体运营平台和后台管理系统进行自动化测试。
采用appium自动化测试框架对用户端APP进行自动化测试。
采用PO模式来设计自动化测试框架的架构。
采用pytest测试框架来管理维护用例。
采用JSON来定义测试数据。
引入数据驱动技术来实现测试脚本和测试数据的分离。
采用logging实现日志收集。
使用HTMLTestRunner模板来生成简洁的HTML测试报告。
采用Allure生成内容丰富、页面美观的自动化测试报告。
采用Jenkins持续集成工具管理自动化脚本。
采用JMeter工具进行接口测试。
采用Postman工具进行接口测试。
采用requests库实现接口自动化测试。
搭建完善的接口自动化测试平台框架。
APP性能测试。
使用Locust进行性能测试。
以上的技术亮点大家要结合课程没跟着老师的节奏学习,只要对测试流程有印象之后,就可以找到相关类似的项目进行举一反三。
3.2简历体现项目
[项目描述]:二手房房源信息共享平台,进行合同网签和资金监管,卖方可以自主在系统上通过验证房源从而发布房源信息,保证房源的真实性,买方在系统上浏览房源,确定房源并付款到第三方账户,实现“一手交钱,一手交房”。
[负责模块]:负责用户注册、登录、验证房源、发布房源、浏览房源的自动化测试和性能测试。
[职责描述]:
1.分析产品需求文档,参加需求讲解会议
2.根据相关需求文档编写软件测试用例
3.搭建自动化测试框架,编写调试自动化测试脚本
4.集成项目在jenkins上,自动构建项目并发送测试报告邮件
5.使用loadrunner对负责模块进行性能测试,录制修改脚本,设计场景并记录各场景cpu、内存、响应时间等真实数据
3.3面试相关问题
如何理解你所做的项目?(考察你对业务的理解)
业务流程是怎样的?(高频问题,考察你对业务的理解)
你在这个项目中承担什么角色?(考察你的工作内容、能力)
发现的最有价值的bug是什么?(高频问题,考察你定位bug的思路)
测试思维方面:(都是高频问题)
....
更多内容我们不一一举例了,大家可以多多刷一些别人的面试经验和实际面试题。重点来说说项目方面应该如何回答。
1、对项目进行基本介绍
对项目进行基础介绍,重点要说明项目的基本功能和组成部分。
项目名称
软件的功能
主要包括哪些模块
举例:
最近测试的Tpshop项目是一个B/S架构的Web项目。Tpshop是一个B2C的电商平台系统,运营模式类似于天猫,京东这些B2C类型网站。
项目系统由前台和后台两部分构成。前台面向购物用户,包括会员、商品展示、购物车、订单、支付、用户中心等系统模块。后台面向经营商家,包括商品管理,会员管理,订单处理等系统模块。
2、描述自己的责任
向别人说明项目中的哪些模块是自己负责测试。这一部分需要挑选自己比较熟悉的业务功能模块,因为后续面试的问题可能就出自这些模块。
在项目中承担的角色:测试工程师
主要负责哪些模块的测试
举例:
我在项目中主要负责前后台会员管理、及前台购物车,订单,支付及后台订单处理相关模块测试。
3、针对部分模块展开进行说明
挑选一些有代表性的模块展开说明。这里需要注意的是说明的模块或者业务一定要描述的清晰有条理。
测试思路:
1)描述正常的业务流程和场景,列出输入(需求)的类型和范围。
2)根据需求,列出每种输入的有效等价类、无效等价类、边界值。编写用例先覆盖有效等价类,比如每一项都填写正确,可以添加成功,再测试无效等价类,比如房间类型不能重复,最后对边界值进行测试。
编写的测试用例数量
编写测试用例所用到的方法
1)等价类划分、边界值
2)因果图(判定表):考虑控件之间的组合
3)场景法:罗列实际使用的各种情况
举例:
购物车
1)购物车基本功能:
–添加;删除;跳转详情;编辑商品数量;金额显示
2)购物车和其他关联:
–用户模块(未登录用户可以添加商品,登录后合并商品到购物车)
–商品模块(商品价格;商品库存)
–订单(订单生成,购物车内对应商品清除)
–优惠活动(优惠券)
订单处理
–我们项目后台订单处理主体流程是:
商家确认订单--发货--判断用户是否是线下支付--如果线下支付,就先确认收款,再进行收货;如果是线上支付,直接进入收货---订单处理结束---后续有售后和评价相关流程。
–其他:
商家除了确认用订单,还可以对订单进行取消操作。
用户如果未确认收货,系统可以设置超时自动收货(7天)。
收货异常或其他情况下还可以进行退款操作。