测试岗位区分
不同公司针对测试的岗位名称不同,但在投递简历前,需要了解一下测试岗位和主要职责内容是什么,大体上分为两类:系统测试、测试开发
- 系统测试:
60% ~ 100% 人力投入到功能测试中,负责迭代需求跟进,偏客户端方向的手工测试内容占比会更多,也会有较少的人力投入到工具开发或自动化中,目标是为了保障业务需求质量,跟踪迭代流程,保证需求顺利发布
- 测试开发:
80% ~ 100% 人力投入到测试工具、平台的开发中,工作模式类似于开发,负责内部测试工具、测试平台建设,提供给其他系统测试使用、或提供开发自测使用,目标是提供自动化测试能力,以及提升测试效率
迭代阶段测试职责
敏捷迭代中,根据需求特性设计测试用例,进行系统测试,迭代流程中的测试职责:
- 需求阶段: 参与需求分析,考虑本需求的边界异常,对其他相关模块是否有影响,是否有外部第三方依赖,是否需要进行性能、兼容性测试
- 开发阶段: 参与技术方案评审,分析代码改动影响范围,确定测试范围及回归测试范围
- 测试阶段:
– 1)测试用例编写:根据需求PRD输出本特性测试用例
– 2)测试用例评审:相关方:开发、产品、测试、leader
– 3)输出冒烟测试用例,提供P0级别主功能测试用例给开发进行自测
– 4)输出测试计划:包括本需求特性测试用例,历史主功能回归用例
– 5)测试执行:执行测试计划中测试用例,创建bug单,判断优先级及严重程度,并跟踪bug修复状态
– 6)输出测试报告:准出标准为,测试计划中的所有测试用例状态为通过(如有未通过/未执行测试用例需要说明原因),所有中高级别bug已修复并测试通过
– 7)集成测试/回归测试:所有特性合并发布分支后,进行全部功能及主流程的测试回归 - 发布阶段:
– 1)review发布内容是否为本次特性改动,进行发布
– 2)发布完成后进行线上功能验收
– 3)发布同时关注监控状态,如有异常立即回滚
功能测试
针对迭代特性,通过边界值、等价类、场景法等方式编写测试用例,尤其关注异常情况表现,相关功能影响等。常用测试方法包括:手工测试、接口测试、日志检索、数据校验等
兼容性测试
根据需求特性判断在功能测试阶段是否需要进行兼容性覆盖,包括:终端兼容、版本兼容等
- 终端:PC、Android、iOS
- 系统:Windows、Mac、Linux、Android、iOS
- 浏览器:PC、Mobile浏览器
- App版本兼容:新旧版本覆盖、向下向上兼容性
- 第三方App兼容:输入法、插件等)
性能测试
根据业务特性需求,判断是否需要进行性能专项测试,制定性能测试方案、测试场景及测试用例,在相同环境条件下(同端、同数据、同网络条件)进行性能测试。性能测试应用场景包括:1)大促等高并发场景的系统健壮性评估 2)新旧版本性能优化效果对比
- web端:首屏加载耗时、全部页面加载耗时、DNS时间、TCP时间
- 客户端:内存、CPU、流量、电量、启动速度
- 接口压力测试:响应耗时、吞吐量(TPS:每秒事务请求数、QPS:每秒请求量)、成功率
安全测试
针对需求特性分析是否存在安全隐患,添加安全测试用例,例如:接口安全、SQL注入、XSS攻击、敏感信息泄漏等
效能建设
在测试过程中,通过开源工具、自研工具代替手工测试,提升测试效率,常见测试方向有:
- 接口测试自动化: 最常见的自动化测试手段,低成本高收益
– 目的:覆盖后端接口代替手工测试,节省测试时间,针对稳定接口进行定期回归
– 方式:可以根据微服务关联接口测试用例,进行精准测试
– 有效性检测方式:借助代码覆盖率检查工具,检测接口测试用例覆盖度
– 接口测试工具:Postman、SoapUI、REST-Assured、JMeter、Apifox、Katalon Studio、Karate、WireMock、Hoverfly、Swagger、YApi - UI自动化: 根据业务特性和终端判断是否进行UI测试自动化,但由于前段改动较频繁,UI自动化往往需要很高的维护成本,高成本低收益
– 目的:代替手工测试方式,模拟用户行为实现全流程测试,也可以进行线上环境拨测,检查功能稳定性
– 特点:维护成本高,误报率高,难以发现问题,不同终端可能涉及不同技术栈
– UI自动化测试工具:Selenium、Airtest、Appium、Soapui、Robot Framework - 测试小工具:手工操作脚本化,提升测试效率,工具场景包括:数据构造、数据处理、数据模拟、Mock、
- 持续集成: 将以上自动化方案内容接入CI/CD,在服务发布时自动触发自动化用例执行,并输出测试报告