软件测试 / 测试开发丨应该如何设计测试方案
本文转自测试人社区,作者 AD
原文链接:https://ceshiren.com/t/topic/28828
测试方案设计
简介
在科学界已经被验证的一个非常有效的学习方法,叫做费曼学习法,运用费曼技巧,只需花上 20 分钟就能深入理解知识点,而且记忆深刻,难以遗忘。
费曼学习法的主要核心是:
Concept (概念)
Teach (教给别人)
Review (回顾)
Simplify (简化)
而任何一个领域,在做方案设计和总结的过程中,其实就是将自己积累的技术和知识进行抽象总结,将逐步解决问题的过程立体化、可视化地展现给大家,而不只是简单地介绍一个结果。
学习价值
对自己的工作不仅要知其然还要知其所以然,尝试站在更高的视角思考问题,完善自己的工作。
对工作不仅要能做好,更要能完整的表达与转述,如此在布置工作、汇报工作乃至于求职面试的时候,才能完整的展示出来自己的实力,做的多而完全不会表达是职场大忌。
优秀的方案等同于优质产品,如果能输出优质的方案/产品,是进阶到专家的必走之路。
应用场景
其实,功能测试、自动化测试、性能测试、安全测试、测试框架开发、平台研发等工作都是为了提高软件测试的质量,没有高低贵贱之分,都是必要的辅助手段。可以将软件测试类比为一个兵团,上述这些工作是不同的兵种,在面对一场战役的时候,我们需要考虑的是如何排兵布阵,以赢得战役,而不是排列兵种的等级。
小步迭代、快速上线的敏捷开发时代,再次对测试提出了更高的要求,持续集成、快速验证、全方位监控线上质量,需要测试人员更早地介入产品研发的整个过程,以便更好、更全面地了解产品。测试左移到开发阶段进行代码评审、单元测试,右移到运维阶段进行持续部署、线上监控,从而可以更加立体地保障软件的质量。
如何设计
明确设计思路与方向
确立目标
制定计划
制定策略
定期复盘结果
设计思路
在设计方案或者表述的时候必须遵循 总-分-总。
使用 STAR 法则对每个方案进行描述。
确立目标
在设计任何一个方案的时候,第一步一定是确立目标。确立目标的时候需要从以下几个维度进行考量:
业务背景:业务的侧重点是什么,他们更想要的交付是什么。
团队背景:团队的情况、资源、能力、技术栈。
确认完背景之后,需要梳理目前团队所碰到的挑战是什么,需要整体的罗列出来。比如:
资源紧缺。
业务复杂。
架构冗余。
制定计划
所有的问题不可能一蹴而就的解决,所以在梳理出问题之后,使用紧急重要四象限等多种方法,将现有的问题分类,制定不同阶段的阶段性目标。
注意: 制定测试计划的时候不要搞一言堂,一定要拉上下级多多沟通,并且要有灵活调整的能力。
制定策略
在确立目标之后,就需要思考如果需要达成这些目标,应该使用什么样的方式方法。常见的测试策略有:
功能测试。
安全测试。
兼容性测试。
自动化测试。
性能测试。
持续集成/持续交付 Devops。
当然,还有其他不同类型的测试策略,不在此做过多赘述。
其中每一个测试策略都有其自己要保障的重心,再次强调,使用什么测试策略,一定是和自己的测试目标是对齐的。
定期复盘
制定完成计划时候,就会进入到实施阶段,实施的结果如何,中间是否有什么问题,都需要定期跟进与复盘。碰到问题及时解决或者汇报。
常用方法论
写测试方案是一个可大可小的工作内容,如果要输出一个特别优质的测试方案,甚至需要一个团队的力量。大部分同学往往在刚开始写测试方案的时候就已经犯难,觉得无从下手。在这里介绍一些科学的方法论,辅助大家完成这一工作。
5W2H 法
5W2H 分析法又叫七问分析法,创于二战中美国陆军兵器修理部。简单、方便,易于理解,实用,富有启发意义,广泛用于企业管理和技术活动,对于决策和执行性的活动措施也非常有帮助,也有助于弥补考虑问题的疏漏。
WHAT——是什么,目的是什么,做什么工作。
WHY——为什么要做,可不可以不做,有没有替代方案。
WHO——谁,由谁来做。
WHEN——何时,什么时间做,什么时机最适宜。
WHERE——何处,在哪里做。
HOW ——怎么做,如何提高效率,如何实施,方法是什么。
HOW MUCH——多少,做到什么程度,数量如何,质量水平如何,费用产出如何。
适当绘图
思维导图
编写测试用例,梳理思路
架构图
在梳理业务架构、技术架构中最常用的一种绘图手段。
时序图
时序图描述对象是如何交互的,并且将重点放在消息序列上。
类图:
类图主要应用在开发过程中,完成概要设计的一种方式和手段。
金字塔原理
自上而下
提出主题思想。
设想受众的主要疑问。
写序言:背景—冲突—疑问—回答。
与受众进行疑问—回答式对话。
对受众的新疑问,重复进行疑问—回答式对话。
自下而上
列出你想表达的所有思想要点。
找出各要点之间的逻辑关系。
得出结论。
相关资料
饿了么质量体系搭建实战
金字塔原理
推荐
Python 全栈开发与自动化测试开发班
由浅入深实战进阶,从小白到高手
以 Python 全栈开发为基础,深入教授自动化测试技能,为学员打造全面的技术能力。通过系统学习和实际项目实战,学员将具备在职场中脱颖而出的竞争力。不仅能够灵活运用 Python 进行开发,还能够保障项目质量通过自动化测试手段。这是一个全面提升职业竞争力的机会。
课程详情
Python 开发必备基础技能与项目实战
Pvthon 编程语言/算法和数据结构/面向对象编程 Web 后端开发/前端开发/测试管理平台项目实战
人工智能 ChatGPT 实战
人工智能辅助学习各种开发和测试技能/Pytorch 深度学框架/平台开发实战
数据分析与自动化办公
数据采集/Pandas 与数据处理技术/ECharts 与数据可视化技术/爬虫实战/自动化办公/批量文件处理
UI 自动化测试与高级项目实战
Web 自动化测试/App 自动化测试/ PageObject 设计模式
接口自动化测试
接口协议分析/Mock 实战/服务端接口测试
性能测试
性能测试流程与方法/JMeter 脚本参数化/Grafana 监控系统搭建
简历指导与模拟面试
1V1 简历指导/模拟真实面试/测试开发岗面试全攻略名企私教服务 名企专家 1v1 辅导/行业专家技术指导/针对性解决工作难题/绩效提升辅导与晋升复盘
课程亮点
名企私教服务 先学习后付费 高额奖学金
专属社群+晚自习在线答疑
5V1 全方位辅导作业+考试强化学习效果
简历修改 模拟面试 就业内推 面试复盘
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/239cfa16cbd7859547d8e5e0f】。文章转载请联系作者。
评论