软件测试和质量保障是复杂的系统性工程,技术、人、流程、标准等各个环节的完善都不可或缺。这就要求测试从业人员要具备非常综合的技能,尤其是越往高阶职位发展,需要关心和解决的问题就越复杂、越有挑战。
测试高手之所以成为高手,绝不仅仅是因为技术实力强大,更重要的是经历过风雨,并善于总结各种项目踏坑填坑的血泪经验,能在实战中迅速提升自己的综合能力。
本文就分享一位测试老鸟不断从工作中总结的测试改进 Tips,供各位测试同学参考!也欢迎在评论区留言分享你的测试改进意见!
测试改进 Tips
1. 测试一个产品或项目,不只停留在测试产品功能、性能本身,也要从整体角度(上升到产品角度)来了解各种情况(整个调用量,峰值是多少?客户使用情况、有哪些客户?线上集群部署情况等等),知道为什么会新增某个模块?
2. 发现问题要习惯追问 5 个为什么?(参考 5 个 Why )层层深入,认识到根本原因,并实施解决方案。
比如,你发现你的网站崩溃了。显然,你第一反应是恢复它。但是危机一旦过去,应开展事后调查询问为什么:
为什么网站崩溃了?因为所有前端服务器上的 CPU 使用率都达到了 100%。
为什么 CPU 使用率达到 100%?因为一段新代码包含一个无限循环。
为什么会出现这样的代码?因为某员工出错了。
为什么他会出现这样的错误?因为他没有为这个功能写单位测试代码。
为什么他没有写单位测试代码?因为他是一名新员工,且没有在测试驱动开发方面接受正确培训。
在这五个地方进行修正:
恢复网站。
移除错误代码。
帮助出错的某员工了解为什么他的代码没有起到预期作用。
培训该员工学习测试驱动开发相关知识。
将测试驱动开发纳入新工程师入门指导内容。
3. 所有做的事情,其根本目的都是要解决痛点,不管是自动化测试、工具或流程等。勿忘初心,别因为出发太久,就忘了为什么出发。
4. 开发修改点的原因、背景,务必了解清楚(包括具体代码)。
5. 注意关注项目的数据模型(表结构)、技术实现(设计思想),用于项目风险评估。
6. 接手一个项目的测试工作,作为 Owner,除了搞清需求外,还要知道:项目打算上线的时间,有哪些功能点需要上线,占比多少?跟规划是否一致?然后,自己评估是否合理,如果比较急,则需要考虑对应的测试解决方案。
7. 设计测试用例,除了功能场景覆盖外,还要结合项目本身特性去考虑。(比如网关层的并发、连接超时、稳定性等、如 Redis 命令的幂等性、Kafka 的高可用、一致性等)。
8. 测试报告写明 Bug 原因和解决方案。
9. 提高自动化测试的稳定性(设置超时、出错重试等)。
10. 每个人都有自己的主要任务,对于测试工具(平台),其实用性和用户体验非常重要。因为只有当这些工具真正能帮忙用户(并减少维护成本),才“活”的长久。(避免中看不中用)
11. 出了问题,不要怕。重点在快速定位 Bug、快速解决。强调日志和报警的重要性。
12. 跟开发沟通:如果忙,可以等,但要给个明确的时间点。
13. 技术是基础,但归根到底解决问题的能力才是核心力。(要学会突破固定模式和思维限定,从多角度去分析和定位问题原因)
14. 线上故障问题 review。(了解背景,发生的原因,如何避免)
15. 数据能力:工具或平台产生 -> 推广应用(形成数据)-> 分析优化(输出能力)
16. 很多技术、工具或产品都是通用的,需要针对公司特定场景做到有所突破才是亮点。
(文章来源于霍格沃兹测试学院)