自动化测试技术笔记(三):如何编写技术方案

简介: 首先这个要求我觉得挺正常,一方面评审可以查漏补缺完善细节,另一方面也可以考察具体的落地经验和能力。其次,我认为技术方案其实有个通用的模版,或者说抽象的经验参考,这也是本篇文章我想聊的话题。

前面两篇笔记我介绍了自动化测试前期调研注意事项和前置准备阶段切入点,有同学在后台提问:“做完前期的调研和准备工作,领导要求写一个落地方案并评审,自动化测试的落地方案该怎么写”?


首先这个要求我觉得挺正常,一方面评审可以查漏补缺完善细节,另一方面也可以考察具体的落地经验和能力。其次,我认为技术方案其实有个通用的模版,或者说抽象的经验参考,这也是本篇文章我想聊的话题。


结合个人的工作实践和思考,我认为构成一个技术方案,有如下五点要素:


  • 背景现状:当前的业务、技术表现,遇到了什么问题;
  • 痛点挑战:这些问题对业务和技术带来了哪些痛点,要解决痛点面临哪些挑战;
  • 落地方案:为了解决上述的痛点和挑战,打算从哪些方面用什么手段在什么时间来解决;
  • 产出价值:产出是什么,从哪些维度衡量产出,用哪些指标评估问题的解决程度和创造的价值;
  • 总体规划:整体规划是什么,短中长期里程碑是什么,要投入哪些资源,需要谁协同配合,对业务和团队价值;


下面的内容,我会从上述五点要素来展开说明。


阐述背景现状


首先,在编写技术方案的时候,第一也是最重要的一点,一定要阐述清楚项目背景或当前现状。我发现很多同学有所谓的技术偏执,遇到问题第一反应是解决问题,拿着锤子满世界都是钉子。


但其实,我更建议在遇到问题时,首先应该考虑如下几点:


  1. 当前问题是偶发问题还是频发问题;
  2. 类似的问题在其他团队/场景是否存在;
  3. 除了方案A,有没有方案B或者方案C来解决问题;
  4. 如果不做该方案,当前问题造成的损失是否可以接受;


这样思考问题的好处在于:


  1. 避免陷入技术陷阱,在低层次挣扎;
  2. 找到更高维度的解决方案,解决更大更多的问题;
  3. 降低重复解决低级问题而带来的资源浪费和精力分散;


那如果要落地自动化测试,背景或者说现状怎么写呢?可以参考如下例子:


  1. 业务范围大,业务场景复杂,每次发版要回归的case太多;
  2. 业务趋于稳定,但测试时间较少,可能无法发现更多更细节的问题;
  3. 迭代周期比较快,测试人力资源不足,回归测试无法覆盖更多的场景;


如上例子仅供参考,阐述背景的原因在于体现当前面临的问题,以便引出后续的解决方案,这是有的放矢。


列举痛点挑战


上面列举了三条例子,从中可以发现,当前的现状带来了哪些痛点和挑战。总结如下:


  1. 测试case比较多,回归耗时(时间);
  2. 业务稳定但测试时间不足,容易漏侧(质量);
  3. 测试人力资源不足,会导致测试时间变长或加班赶工(成本);


还记得之前我在软件工程的文章中提到的质量三要素吗?他们分别是时间+范围+成本。


当然,日常工作中还有可能有其他痛点,比如测试用例中很多前置动作都是重复性场景,比如日常测试效率不高需要提高测试过程效率,再比如测试团队的技术建设等原因。


列举痛点和挑战的目的在于,即承接了上面的现状和问题,又可以为后续的技术方案铺路,整体逻辑要清晰合理


说明落地方案


阐述了现状背景,列举了痛点挑战后,接下来就是要说明通过什么方式来解决这些问题,这就是落地方案。一般在编写技术方案时,我个人的经验是如下几点必须重点说明:


  1. 技术方案针对的需求或业务范围(比如核心业务,核心服务,高频流程);
  2. 技术方案的选型、对比结果和demo效果是否适合当前的团队(成熟稳定的工具+活跃的生态&丰富的文档+简单的上手难度+较低的维护和二次开发成本);
  3. 方案落地所需要投入的资源(人力+时间+购买的资源)、需要哪些团队&人协同配合(沟通协作管理成本);
  4. 方案落地有哪些关键节点&里程碑(落地步骤1-2-3-4-5,分别在什么时候达成什么效果解决什么问题);
  5. 不同里程碑阶段,用哪些指标度量评估问题得到了解决,项目达到了预期效果;


技术方案编写完成后,一定要拉上领导和相关同学以及配合方进行评审。一方面是查漏补缺,另一方面也体现出自己的专业能力,当然有的时候最好能和协作团队达成利益一致,这样可以获得更好的支持配合。


罗列产出价值


具体的落地方案评审结束,接下来就要重点聊聊项目产出和价值了。


产出决定了你的工作量,价值决定了你的KPI和年终绩效,因此这点还是很有必要重点说明的。当然,衡量产出和价值,一定需要具体的可量化的指标,否则无法量化的东西无法谈价值。


以自动化测试为例,我个人的观点是基于实际的目的出发来制定度量指标。举例:


自动化测试目的 细分类型 度量指标 如何度量
效率 造数据效率
  1. 每周造数条数
  2. 平均造数耗时
  3. 造数任务调用量
和手动造数耗时对比
冒烟测试效率 冒烟执行耗时 和手动冒烟测试耗时对比
线上回归效率 回归执行耗时 和手动回归测试耗时对比
覆盖率 接口覆盖率
  1. P0/P1接口覆盖率
  2. 总体接口覆盖率
梳理核心接口,投入最多资源精力
用例覆盖率
  1. P0case覆盖率
  2. P1case覆盖率
梳理核心case,投入最多资源精力
业务场景覆盖率
  1. 正向场景覆盖率
  2. 逆向场景覆盖率
  3. 核心场景覆盖率
根据业务场景,case by case度量
过程质量 构建执行成功率 自动化任务执行成功率 低于某个阈值判定脚本质量不通过
用例执行通过率 自动化case执行成功率 低于某个阈值判定提测质量不通过


制定度量指标时,建议遵循如下几点:


  1. 切忌面向指标/面向KPI做度量;
  2. 考虑到冗余成本,指标不宜过多;
  3. 制定指标是为了提升质量,而非做数据;
  4. 根据做自动化测试的目的来制定度量指标;
  5. 度量指标对比应该以是否解决了痛点为依据;
  6. 度量指标是辅助评估依据,并不是唯一正确的结果;
  7. 制定指标应考虑到哪些指标更实际有效,从解决问题角度出发;
  8. 度量指标不要单一的评估,应结合多个维度来综合评估开展质量度量;


概括总体规划


聊完产出和价值,方案基本就算完成了,但为了锦上添花,大家可以考虑阐述自己对于项目的总体规划和构思。比如:


  • 当前现状是A;
  • 第一阶段要达成B效果,解决C问题;
  • 未来半年要达到D效果,这样做的好处的E;
  • 长期来看,遮掩做对业务和技术团队的价值是F;


有句话我觉得说的挺对的,惠而不费的话要多说&事要多做


关于自动化的技术笔记,到这里就整理完了。


后续我会更新关于性能测试的一些技术笔记,大家敬请期待。

相关文章
|
10天前
|
Kubernetes 监控 安全
Kubernetes实战:集群管理与自动化技术详解
【6月更文挑战第27天】Kubernetes实战聚焦集群自动化管理,涵盖核心概念如主从架构、API Server及工作节点,强调自动扩缩容、RBAC安全控制与日志监控。通过IaC工具如Helm实现配置自动化,结合Prometheus等进行持续监控,强调安全策略与资源优化,展现K8s在现代应用管理中的威力。
|
12天前
|
安全
DC/AC电源模块也成为了推动工业自动化生产技术进步的重要组成部分
DC/AC电源模块也成为了推动工业自动化生产技术进步的重要组成部分
DC/AC电源模块也成为了推动工业自动化生产技术进步的重要组成部分
|
12天前
DC/AC电源模块推动了工业自动化生产技术的发展
DC/AC电源模块作为电力转换装置,能够将直流电转换为交流电,并提供给工业设备供电。它的出现极大地推动了工业自动化生产技术的发展。
DC/AC电源模块推动了工业自动化生产技术的发展
|
13天前
BOSHIDA DC/AC电源模块:推动工业自动化技术的发展
BOSHIDA DC/AC电源模块:推动工业自动化技术的发展
BOSHIDA DC/AC电源模块:推动工业自动化技术的发展
|
4天前
|
安全 测试技术 网络安全
网络安全中的渗透测试与风险评估:技术深度解析
【7月更文挑战第3天】在网络安全领域,渗透测试和风险评估是两种不可或缺的技术手段。通过模拟黑客的攻击手段来发现系统中的安全漏洞,以及通过系统性的方法来识别和评估潜在的风险和威胁,两者共同为组织提供了全面的网络安全保障。随着技术的不断发展和网络环境的日益复杂,渗透测试和风险评估的重要性将日益凸显。因此,网络安全从业者应不断学习和掌握这两种技术,以应对日益严峻的网络安全挑战。
|
9天前
|
存储 人工智能 运维
超大规模云网络技术新突破!阿里云斩获中国自动化学会科技进步一等奖
阿里云携手浙江大学、上海交大联合攻坚的超大规模云网络技术及应用成果,斩获中国自动化学会(CAA)科技进步奖一等奖。该成果实现了超大规模云网络调控技术的高性能突破,将十万级任务配置下发提升至秒级的超高水平,填补了该项技术的国内空白。
|
3天前
|
数据采集 监控 数据可视化
利用LabVIEW和数字孪生技术实现PCB电路板测试
利用LabVIEW和数字孪生技术实现PCB电路板测试
|
7天前
|
测试技术
探索软件测试中的模拟与仿真技术
【6月更文挑战第29天】在软件测试领域,模拟和仿真技术是提升测试效率、确保产品质量的重要手段。本文将深入探讨模拟与仿真技术的定义、应用场景、实施步骤及其对软件测试流程的影响,旨在为读者提供一套系统的理论框架和实践指南,以促进其在软件测试工作中的有效运用。
|
8天前
|
机器学习/深度学习 人工智能 监控
探索自动化测试的前沿技术与实践
在软件开发周期中,自动化测试已成为确保软件质量和效率的关键因素。本文旨在探讨自动化测试的最新技术和实践方法,通过分析当前行业内的最佳实践和面临的挑战,提供一系列针对性的策略和建议。我们将深入讨论如何有效集成自动化工具、优化测试流程、以及提升测试覆盖率和精确度。文章结合了权威的数据支持和技术分析,旨在为读者提供实用的指导和见解,帮助他们在不断变化的技术环境中保持竞争力。
11 0
|
9天前
|
SQL 存储 Java
程序技术好文:软件工程概论第一次课堂测试
程序技术好文:软件工程概论第一次课堂测试