小程聊微服务-增艺眼中的自动化测试

2023-10-18 22:59

本文主要是介绍小程聊微服务-增艺眼中的自动化测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果说“生活不只有眼前的苟且,还有诗和远方”的话,那么自动化测试可以说是很多测试人员心中的“诗和远方”。

这里写图片描述

“诗和远方”OR“禁果”

测试自动化,需要持续改进。但由于其本身是一种过于激动人心的想法:用程序去测试程序——解放了测试人员的生产力,节省大量的人力成本,这就有点“禁果”的意思了。

一个常见的行动模式是:在实施自动化测试时,设定一些量化指标,例如根据业务、接口、模块设置的覆盖率。技术团队在完成指标的过程中,以完成指标为中心而忘记了为什么要进行自动化测试。其结果是各项指标都完成了,但是没人能说清自动化测试的效果和价值,而技术人员也没有热情再继续下去。最终,自动化测试只能“被完成”了。

那如何避免自动化测试的诱惑,或者降低诱惑的影响呢?

三观,你的三观要正

自动化测试,有开发的过程,有测试的过程,说到底,依然是测试的过程。所以自动化测试,依然遵循测试活动的基本内涵:反馈信息——它是帮助技术团队获得关于软件产品质量信息的反馈手段,这是实施自动化测试的中心。评判自动化测试是否有效的标准,就是自动化是否能够帮助技术团队获取质量信息,其关键就在于自动化测试的测试分析与设计。

没错,自动化测试的测试分析与设计

什么?自动化测试也需要进行测试分析与设计吗?不是就把手动执行的用例自动化就可以了吗?

确实,自动化测试实施的一个常见的活动模式是:选择工具或者脚本语言、确定哪些手工执行的用例需要执行,录制或编写执行的脚本,配置测试数据,执行测试。这个模式中就没有自动化的测试分析和设计。而对工具的研究学习通常是开展自动化测试的第一步,特别是对于以往做功能测试的同学而言,掌握工具比测试分析和设计是更显而易见的技能加分项。但工具却不是自动化测试的能否有效的关键。

测试分析与设计是测试活动能否有效的关键,自动化测试也不例外。例如,在数据库表结构变更的场景中,我们需要分析如何确认需要进行验证的数据特征?如何构造这些测试数据?如何验证数据结构变更前后,程序对数据新老数据的处理是符合需求的?这些都可以使用自动化的达到手工测试不同的效果。

但这好像和我们认为的自动化测试不太一样呀。是的,自动化测试并非是将手动执行的用例自动化,它有自己的测试领域,像生成大量的测试数据、多组合的测试数据、发起大量的请求、触发资源竞争、执行严格的结果检查、快速报告结果等等,它在帮助你完成手工难以完成的事,而不是帮你完成手工可以完成的事。你的每一次测试活动,如果有手工无法完成的事,那么你就应该考虑自动化测试,并对自动化进行测试分析和设计。而如果没有手工无法完成的事,我们则需要考虑是不是遗漏了什么。

那把手动执行的用例自动化作为回归测试不可行吗?

“啪啪啪”,有可能是打脸

看情况。自动化是否用于回归测试?用例是否自动化?等等,选择一个合适的自动化测试策略,需要关注:测试需求、软件系统结构、人员能力。对于需要从业务的角度进行的回归测试而言,更需要关注产品的迭代节奏或者生命周期。毕竟复杂的业务逻辑、修改已失效的测试的时间成本,通常都会给认为自动化测试能够节省人力成本的人狠狠的一记耳光。

但这并非说业务测试的回归就不能自动化,其关键在于划定业务范围。一个经验是使用“业务逻辑-失效风险”的分析,将业务逻辑按照功能失效后带来的风险进行分析后,圈定高风险业务逻辑进行自动化,严格保证高风险业务的可靠性。另一种方法则可以使用幂律分布,我们常说的2/8原则就是其一个体现:根据生产业务的使用情况,将常用业务逻辑进行自动化,保证其可靠性。

这里我们依然坚持的理念是让自动化帮助我们完成我们手工做不了的,而不是替代手工测试。

“没有两片相同的叶子”,也没有两次相同的手工测试

测试,给人的一个错觉就是重复性,包括有些公司在招测试人员的时候会有一条叫“能够胜任重复性工作”。但试问,谁会手工运行N次相同的测试呢?一个测试人员,他在执行什么测试不重要,他为什么要执行这个测试——背后的分析思考才重要。自动化的测试,能够替代的是相同的执行,却无法替代人的分析与思考。而软件产品在研发迭代的过程,是团队不断地把新的分析思考注入其中的过程。测试工作面对的是始终在不断变化的测试需求。所以测试的分析思考,包括手工和自动化的测试也需要不断地迭代改善。

“只有改善,没有成功与失败”

对于有专门自动化测试的小组而言,通常会以项目的形式开展自动化,制定任务的行动计划表或者里程碑等进行跟踪管理。而个人实施自动化,则相对自由宽松。但无论小组还是个人,为了能够保持持续改善的动力,最重要的一点是让每一步工作是有效的,实施团队或个人能够从自动化测试的过程中及时得到正向反馈。对于小组的负责人而言,这是让团队保持动力的关键。一个经验是,任务拆解细化,参考OODA环,周期性进行回顾调整。另一个负责人必须关心的事是,需要周期告知自动化测试的利益相关方目前的情况,例如技术团队、领导层、上下游合作方等。让大家看到一个持续改进的过程,树立对自动化测试的信心。

“生活不只有眼前的苟且,还有远方的苟且”

聊到这,很多人已经感到自动化测试并非是“诗和远方”,更像是“远方的苟且”——没有美感、没有情怀。对,我们所面临的都是一个一个具体的问题,拆开看很挫,很细碎,需要有勇气去面对。

参禅打坐3分钟

无论发生什么都要认真对待,这就是工作的真谛。[1]

[1]摘自《零售的哲学》

这篇关于小程聊微服务-增艺眼中的自动化测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/235655

相关文章

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环