《眼里有活儿之我是测试工程师》又名《测试如何提升效率、如何提升团队效率,自动化做了之后还能做啥》

文章列举了三个提高工作效率的例子,包括通过Jira任务触发器自动化子任务创建,规范提测时间和进度管理,以及推进任务估时来明确迭代产能。这些方法减少了手动操作,优化了工作流程,提高了团队生产力。

测试做什么事情可以提升效率呢?

只有自动化测试么?

自动化测试是建立在平台稳定,没有频繁变更的情况下的收益才最高。

很多领导,张口自动化闭口自动化,感觉做了自动化平台,质量就直接起飞了似的。

自动化用例一多,排查成本,调试成本,占用研发资源 都会飙升。

那么有没有一些 投入少,产出还高的事情呢?

还真有,以下三个例子仅供参考,切勿模仿

提效事例1

背景:

jira上创建需求时 前后端研发和测试要在下面建子任务,也就是说一个需求下面有【前端研发子任务】、【后端研发子任务】、【测试子任务】,三个任务都完成后,这个需求就算完成了

痛点:

40个需求 就是相关人员要上去分别去创建120个子任务,创建一个子任务大概需要25.24秒,一个迭代需要消耗3028秒,折合0.84人天。操作繁琐效率低、易错易漏

解决方案:研究jira,通过jira任务触发器完成

最终结果:实现至少有5个团队使用,每年多出了50人天产能, 每年可以为公司节省4w元

样图:

提效事例2

背景:

一个迭代内的多个需求,提测时间并不一致。研发、测试对提测时间没有什么感觉,1号该提测的需求3号才发邮件提测,变相压紧测试时间。

痛点:

1)大量需求在最后一两天提测,造成“前松后紧”的情况,测试时间不足,上线延期。

2)测试无法在执行用例时发散业务想法,变相降低测试质量。

3)上线前5天内未能及时爆出风险

解决方案:规范jira字段填写,撰写自动化脚本,定时获取任务提测时间,计算整体进度,自动通知钉钉

最终结果:延期提测减少50%,进度一目了然,风险预警显著提前

样图:

提效事例3

背景:

迭代期间,研发和测试的任务繁重,往往都是接了一堆任务,但对于总量缺乏清晰认知,总是会出现“急活儿 这个加到迭代里去”、“都是重要的活儿 都要上”    研发和测试长期加班仍不能如期上线

痛点:

1) 每个人不知道自身一个迭代到底能处理多少任务

2) 产线每个迭代产能不清晰,迭代常常延期,通知项目组延期时也很晚,项目组猝不及防

3)上线前5天内未能及时爆出风险

解决方案:推进jira任务估时,针对现有人力,完成全部高优先级任务,中优先级任务根据时间紧迫程度替换、低优先级任务暂缓甚至不做

最终结果:明确产能极限,根据产能设计排期与上线方案,在人力不足的情况下依旧如期交付产品

样图:

-----------------------

附言:

与自己和解吧,能把测试的需求测完就不错了,还抽时间做这个,搞了也没用,技术壁垒低的事情是得不到认可的。

如果真的要做,一定要领导有感知,同意你去做这个事情。

不然就是辛辛苦苦努力了一年 ,还做了团队流程梳理、自动手段提升效能,结果就是绩效最低,不说了我去做黑盒了。

<think> 我们正在讨论多进程、多线程和协程的区别和适用场景。 根据用户之前的上下文,他是一名软件测试人员,正在准备南京的求职面试。他简历中提到了Python基础、自动化测试、性能压测以及一些中间件和容器技术。 面试官问的是关于上下文管理器的问题,但现在他希望以口语形式回答多进程、多线程、协程的区别和适用场景。 我们需要注意: 1. 回答要口语化,就像在面对面交流。 2. 结合测试工作,尤其是性能压测、自动化测试中可能遇到的场景。 3. 参考站内引用中关于事件循环、协程调度、互斥锁和条件变量的内容,以及非堆内存增长问题(可能涉及内存管理)等。 思考如何组织回答: 多进程:每个进程有独立的内存空间,通过IPC(进程间通信)交换数据。优点:稳定,一个进程崩溃不会影响其他进程;缺点:创建和切换开销大,通信复杂。适用场景:CPU密集型任务(如计算密集型压测),需要充分利用多核CPU。 多线程:同一进程内的多个线程共享内存,通过锁(互斥锁、条件变量等)来同步。优点:创建和切换开销比进程小,通信简单(共享内存);缺点:一个线程崩溃可能导致整个进程崩溃,需要处理同步问题(死锁、竞态条件)。适用场景:I/O密集型任务(如网络请求、文件读写),或者需要共享大量数据的任务(例如UI自动化测试中多个操作并行)。 协程:用户态的轻量级线程,由程序自身控制调度(而不是操作系统),在单线程内实现多任务并发。优点:切换开销极小(因为不需要操作系统介入),可以支持高并发(比如数千个协程);缺点:不能利用多核CPU(除非与多进程结合),需要异步编程模型。适用场景:高并发I/O密集型任务(如网络爬虫、高并发接口测试)、异步编程(例如使用asyncio进行接口自动化测试)。 结合站内引用: 引用[1]提到事件循环是编程范式,I/O多路复用是操作系统的机制。在协程中,事件循环就是核心,它负责调度协程。 引用[2]详细说明了Go语言中协程的调度(GMP模型),我们可以借鉴这个思想来解释协程的高效性。 引用[3]说明了多线程中互斥锁和条件变量的作用,这可以帮助我们解释多线程同步的问题。 引用[4]展示了多线程处理网络连接的例子,但需要注意线程被唤醒后只有一个能处理连接,这涉及到线程调度和锁。 引用[5]提到了一种严格框架的思想,我们可以类比到协程的调度框架。 回答结构: 1. 先分别解释多进程、多线程、协程是什么,有什么特点。 2. 比较三者的区别(资源占用、切换开销、并发能力、稳定性等)。 3. 结合测试场景举例说明适用场景。 注意:避免过于学术化,用测试工程师熟悉的例子。 </think> 好的,面试官!这个问题在性能压测和自动化测试中经常遇到,我用大白话给您捋清楚三者的区别和适用场景,就像给不同任务选合适的“工人班组”👷‍♂️👇 --- ### **1. 多进程:独立车间流水线** > **特点**: > - 每个进程有**独立内存空间**(像隔离的车间) > - 进程间通信靠**IPC**(消息队列/共享内存等,像车间之间传真文件) > - **开销大**:创建/销毁像建新厂房,耗资源 > > **适用场景**(测试中的例子): > - ✅ **CPU密集型任务**:比如用`Locust`性能压测时,启动多进程充分利用多核CPU跑计算(如加密算法压测) > - ✅ **需要强隔离的场景**:自动化测试中某个用例崩溃(比如内存泄漏),不会影响其他进程[^3] > - ❌ 不适用高频数据交互(进程间通信太重) --- ### **2. 多线程:车间里的协作小组** > **特点**: > - 线程**共享进程内存**(同车间里工人共用工具) > - 需用**锁机制**(互斥锁/条件变量)避免资源冲突[^3] > - **开销中等**:创建比进程轻,但线程太多切换成本高 > > **适用场景**: > - ✅ **I/O密集型任务**:接口自动化测试时,用多线程并发发HTTP请求(线程在等响应时其他线程可干活) > - ✅ **需要共享数据的任务**:比如UI自动化中多个操作线程共用一个浏览器实例 > - ❌ 避免CPU密集型任务(Python有GIL锁,多线程反而不如多进程) --- ### **3. 协程:一个工人的分身术** > **特点**: > - **单线程内**实现并发(一个工人切换干多件事) > - 靠**事件循环**调度(工人自己决定活儿的顺序)[^1] > - **开销极小**:像翻备忘录,切换不用找操作系统 > > **适用场景**: > - ✅ **超高并发I/O**:用`asyncio`模拟万人同时抢票的压测场景 > - ✅ **异步编程**:爬虫批量抓取数据时,协程比线程省90%内存 > - ❌ 不能替代多进程(单进程跑不满多核CPU) --- ### **三者的核心区别总结** | **维度** | 多进程 | 多线程 | 协程 | |----------------|------------------------|------------------------|------------------------| | **隔离性** | ⭐⭐⭐⭐(完全隔离) | ⭐⭐(共享内存) | ⭐(单线程内) | | **开销** | 内存占用大,创建慢 | 中等 | 极小(KB级) | | **并发能力** | 靠多核(物理并发) | 受GIL限制(伪并发) | 单线程万级并发 | | **难点** | 进程间通信复杂 | 锁同步容易死锁 | 异步编程思维门槛 | --- ### **测试中的经典组合** - **压测平台架构**: ```mermaid graph LR A[压测主控] -->|多进程| B[Worker进程1] A -->|多进程| C[Worker进程2] B -->|协程| D[协程1-发请求] B -->|协程| E[协程2-收响应] ``` 用**多进程吃满CPU核** + **每进程内协程处理高并发I/O**,这是性能压测的最优解[^2] - **UI自动化**:多线程操作不同浏览器标签页 + 协程管理异步事件(如弹窗检测) --- **举个实际例子**: > 假设我们要测试一个电商秒杀接口: > - 用**多进程**启动压测集群(物理隔离) > - 每个进程内用**协程**模拟1万个用户并发请求 > - 用**多线程**实时收集日志和监控数据(共享结果队列) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值