测试工程师的日常工作, 就是写写sql, 调调接口, 偶尔写写脚本

测试工作的重要性

对于一个项目来说, 如果未经测试, 或者测试不充分的项目是不可以上线的, 会有很很致命的问题, 线上用户的体验感会很差, 项目的后期开发也会很受影响.

测试工作的流程

一开始就要充分了解需求, 每一个需求的实现和与其相关的内容都要考虑进去, 不要硬拖着再去开发, 会出现很多问题, 导致无效的返工, 项目因此会延期. 需求分析>> 编写用例 >> 提测>> 对BUG的跟踪管理 >> 经过至少三轮的提测后, 在测试服或者UAT中已经很稳定了,没有重大BUG了,达到 上线标准了 >> 上线, 冒烟加侧重点进行测试.

冒烟测试

顺着需求, 能把正常流程跑一次, 冒烟测试就完成了. 冒烟测试一般是在首轮提测的时候做的, 根据 项目的需求, 完成整体流程,如果冒烟都没有通过, 就可以把版本打回去让开发自测后再提测.

集成测试

在冒烟之后,根据需求文档写出来的测试用例进行全方位的测试, 开始扣细节, 等价类, 边界值这种常用的测试思维对项目进行测试, 往往是二轮测试的时候进行的.

对重点部分进行严格校验

在第三轮的时候, 基本流程完全没问题, 根据需求也基本测得比较齐全了,但是此时真正的测试重心就不再是那种简单的点点点了,此时测试重心应该是这个项目里最重要的部分, 与钱相关的部分. 充钱增加的积分, 订单生成后赠送的积分, 订单在退款后返回的积分, 订单没有满足下单条件支付失败有没有扣钱? 这些涉及到金钱的, 每一轮都要进行验证; 上线的时候,对于用户注册和修改密码这种也要手动过一次, 以及常见流程稍微过一次, 都OK了才满足上线标准.

接口测试

并非所有的接口都需要进行测试, 由于项目进度的原因, 是没法做到的. 一般是针对重要接口进行测试, 测试的重点一般是业务逻辑冲突, 比如我在A地下单, 跑去B地享受服务, 这个时候就要校验订单地点, 而不是只是看是不是会员. 如果后台对于 所有的接口,都进行很多业务逻辑的校验,反而会 导致代码 臃肿. 比如App给后台某个接口传递一个不该传递的用户, 用这个用户的信息调用了一个非重点校验的接口, 这算BUG 吗? 可以算, 也可以不算, 这种其实只要APP 自己判断逻辑没错, 就不会出现的问题, 就不是后台的BUG. 这种业务逻辑没处理好出现的BUG, 其实都不是代码的BUG, 反而是对需求理解不充分导致的,这些通过功能测试,往往是没法覆盖齐全的,这就是 接口测试的重要性.

性能测试

这个往深里学, 就是一个很深入的学问, 而不是仅仅会用Jmeter这样的脚本工具进行并发测试, 设计几个并发场景就是会性能测试了. 不会服务器调优, 不懂服务器架构对于性能的影响, 都不算真正的会性能测试.