持续交付 自研小公司如何保证测试质量以及线上环境稳定思考

工具人一号 · 2024年09月05日 · 最后由 工具人一号 回复于 2024年09月14日 · 5395 次阅读

想和大家探讨交流下针对小型自研公司,测试岗位情况,测试质量和如何保证线上环境稳定。
成员分布及项目情况:3 产品,11 开发,3 测试,三个项目【均持续迭代并分布四个平台】
三个项目目前情况:A 和 B 项目代码重合度非常高,项目基础部分 70% 共用,20% 耦合度很高,10% 独立功能;C 项目基本是单独研发;【三个项目的功能都很复杂,模块关联性很强】
目前产品情况:3 个产品各一个项目
目前开发情况:2 个开发 C 项目,9 个开发 A,B 项目
目前测试情况:1 个 C 项目【该项目需求迭代稳定,或者重心不在这个项目,保证正常需求开发就行】,2 个 A,B 项目
今天就 A,B 这两个项目进行说明:
作为测试,有时候一直想找方式方法改进工作现状,提高效能,但是 9 个开发基本是分三条线再跑,每周都交付很多功能且交付质量并不高,基本是交付完后就开始下一期开发,领导对迭代速度还有要求,基本每周都要发版一次,目前测试能保证的是当期迭代更新的内容质量没有问题,再横展开【对系统的了解及经验】测试,尽可能避免影响到其他模块功能,所以要求测试对整个系统的业务熟悉度非常高。因为迭代速度及工作量,目前好像只能顾及到本期需求,但又想在此之上做出些改变,提高效能,或者有更好的办法对整个系统稳定进行优化,目前大概是这样的一个流程循环着。
有没有同是自研小公司【迭代比较快的】的测试小伙伴,来分享下你们公司是怎么一个流程【包含每个阶段的时间周期】,学习学习,或者也可以针对我们公司的这种情况,给我点建议,虚心求教,谢谢大佬们。

共收到 17 条回复 时间 点赞

我说一下思路,你可以提取看看哪些是有用的。

一、测试环境统一

你提到三个项目功能都很复杂,且模块关联性很强,那想必维护环境,构造测试数据都是一个比较耗时的工作。不知道你们现在的测试环境是什么状态,是否有办法把三个项目的测试环境归一,这样有助于减少环境搭建,数据构造的时间。当然这里面会牵扯很多问题,比如产品的架构是否支持解耦,但是最简单的前后端分离应该是可做的吧。这个可以考虑下,但是如果太困难可以放弃。

二、人员合理分工

你们总共才三个项目,测试人员是 3 个人,那我的建议是每个人负责研究一个项目的系统业务,研究的过程中要有各种文档积累,包括但不限于业务流程图,数据流图,架构图,环境组网图,功能思维导图,然后三个人再开会互相讲,这样的好处是,每个人都可以同时熟悉三个系统,但是画流程图的那个人肯定是最熟悉的。发测的时候由熟悉的那个人来评估测试范围,排测试计划等。(熟悉系统的情况下,评估新需求范围和改动影响范围,估算工作量应该是不难的)

三、测试用例复用

【A 和 B 项目代码重合度非常高,项目基础部分 70% 共用。】

这样的话是不是可以提取通用功能,这一部分测试用例共用,那你写用例的时间又可以节省了。如果共用部分的代码是直接复用的话,那根据我上面的测试环境统一的前提下,共用功能只测试一次,不用重复测试了。

四、接口自动化

根据你的描述,A、B 两个项目的接口自动化可操作性和价值应该还是很大的。因为你们人少,可以先用一些现有的接口自动化工具来做,postman、apifox、MeterSphere、Jmeter 都可以,要是有代码能力,一两天时间搭个框架也是很简单的。接口自动化的重点是做回归测试,这样你们就有更多充足的时间测试新需求。

不是自研小公司,是香港上市公司,但是我刚进来时就发现公司团队管理很混乱,管事的是老板从上家带过来的员工,已有的技术员工不懂什么项目管理、开发规范、测试规范等,都是拿到需求就开始写代码,写到哪是哪,所以版本发布后系统经常出线上问题,这些是背景信息。我是从大厂跳过来的,对于这些问题的解决办法是,先找人了解和熟悉业务系统,按照目前项目迭代情况完成自己的本职工作,没有人带,全靠自己的经验度过试用期,保证系统不出大问题,中间过程很痛苦。然后几个月之后,就开始着手搞自动化,自己搭框架,写代码,在进公司六个月的时候自动化可以跑起来了,这些都是抽工作间隙或者下班后搞的,没有领导要求我干,但是我觉得应该要做,后面又过了几个月招来了一个研发组长,我开始和这个组长一起制定和完善研发过程管理规范,慢慢规范业务、产品、研发、测试的工作职责,目前我们是一周一个迭代,我负责的几个系统也几乎没有生产问题,现在也在准备在公司内分享我的自动化实践。

@xxxxxxixi 老哥你方便整理下你的自动化实践经验,写成专栏或者帖子分享下嘛,感谢

xxxxxxixi 回复

想知道 产品会出详细需求文档吗?还是一句话需求,一页纸原型这种

xxxxxxixi 回复

老哥,关注你了,期待后续分享

码,看后续

看楼主描述,感觉加班很严重。
如果功能上线不是很急的话,是否可以考虑 2 周 1 迭代(我们现在就是这样,之前也是 1 周 1 迭代,感觉时间太赶,质量没法保障)。
另外,可以考虑下产品和开发的角度来改进问题:
产品角度:因为业务模块复杂,可以考虑增加产品每日验收,尽量缩小需求偏离;
开发角度:新功能或改进功能,可以要求开发备注一下影响范围(可以写一个开发提测的规范)

xxxxxxixi 回复

分享的时候,顺带 T 下我

xxxxxxixi 回复

你们系统趋于稳定吗,新功能影响范围大吗?做自动化后期维护代码成本高吗?

newman 回复

很感谢你很认真的回复了我这么多,针对你说的,目前 80% 和你说的一样再进行着,只是文档维护和接口自动化这些没做,这个系统复杂到或者说更新一个小功能,就能影响到一半系统功能,按领导周更的要求没时间去维护;接口自动化这里更是一言难尽,两年前做过,但是开发接口写的简直不堪入目,字段格式乱,而且参数基本未校验,做了一套感觉意义不大,基本都在前端校验的,迭代更新跑了几次,代码就开始重构了,之前的接口和接口的传参格式全部改变,再加上那会人员减少,没有精力,导致接口自动化也搁置;目前一同出现接口问题概率不大,大部分在前端;给开发也提过代码质量问题,没多大用,所以发这个帖子,想知道大家公司一些流程或者好的方法,不过也从你给我回复中,吸收到人员分配及如何互相了解系统的方法,感谢。

接口自动化保障主流程回归就行了 如果像提测那样参数都校验太消耗时间了

红尘 回复

整理了文档,发布在公司内部的平台上

dianfei 回复

我们产品出的需求文档,经常一两句话需求,类似业务需求

从你的描述来看,感觉你目前的问题不只是自动化测试就能解决的,组织架构,研发过程管理规范,比如需求评审、开发设计评审、code review、需求验收、上线 checklist 等,这些规范的完善比自动化测试更重要。

问一个题外话,你对目前项目的构架了解吗?既然是不同的项目,为什么代码会强依赖?

xxxxxxixi 回复

相当于一个项目,但针对不同行业,算是定制化

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册