如今我们面临着一个难题。当一名测试人员离职时,仅从预算报表来看,很难说服公司再招聘一名测试人员。哪怕是离开一位支持多个团队的测试人员,也可能会影响整个部门,导致产品质量下降、集成环节出现问题。
作为一名软件开发经理,面对无法控制的外部因素,处境非常艰难。他们依赖越来越少的测试人员来维护一个持续变化的系统。为了思考如何提高工作效率、减少重复性工作,并腾出更多时间处理更有挑战性的问题,今天一位软件开发经理给我和其他几位测试人员发来了以下信息[我对部分细节进行了简化]。
软件开发经理 [下午1:12 ]
…… 如果我贸然谈论一个自己并不专业的话题,请大家原谅…… 但我想说
从我们在QA领域的能力来看,我一直在思考如何优化它。使用生成式人工智能(GenAI)如 GitHub Copilot这类工具是否可行?它可以承担一些基础工作,而且还有很多其他的优势。
我们公司已经有企业版的 GitHub 账号。
作为一名负责任的经理,提出 “我们已经获得授权使用的这款产品能否提高我们的工作效率?”是很有意义的。我花了些时间思考这个问题,并给出了如下回复:
我 [下午 3:22] :
我认为,如果我的工作只是编写测试用例,那么人工智能(尽管我很担心其对环境造成的影响)或许是个不错的选择。但本周我的工作内容主要是这样的:
- 审查实习生的Kubernetes合并请求,确定函数抽象的可能性,优化断言精度,以及是否可以删除某个测试用例。
- 在我的机器上本地运行两个新团队的应用程序,并更新README,以便新开发者也能在本地运行这些应用程序。
- 理解新团队的架构图,写下关于测试任务的要点;然后在需求细化会议上讨论了半小时,最终发现预期调用的API端点尚未实现,需要优先添加可测试性功能。
- 剩余会议时间讨论如何验证其他任务的完成状态,明确监控需求。
- 排查失败的Kubernetes测试,发现是另一个团队做了更改,与测试人员 1确认其应用的新UI行为,判定三个失败用例中仅第一个具有当前优先级,然后卡在了一个原本正常工作的 UI 页面上,因为Playwright自动生成的CSS选择器返回了两个元素,而不是预期中的唯一一个。
如果我遇到不需要人工完成的工作,我会很乐意将其委托给机器。但我不确定上述这些任务中哪些可以交给机器。(如果其他人有可以委托给机器的工作,告诉我。)
如果我们的瓶颈是必须要人工回归测试,那么在产品发布前几天,是否可以聘请第三方服务来进行测试?比如https://utest.com/。
另外两位测试人员也发表了意见,一位支持我的观点,另一位则更加关注经理问的具体问题。他们有兴趣尝试AI,看看它能做什么。
我是否误解了软件开发经理所提问题的核心?也许是的,也许同事们的工作内容,或我在其他时段的工作,确实能受益于代码自动补全功能,比如更多“是的,那个词就在我的嘴边,谢谢IDE将它显示在我的屏幕上。”
但从我的视角来看,我认为加速代码输入并非是核心问题。有位智者反复强调:“更快敲代码解决不了问题”,以至于我现在写下这句话时,仿佛他的声音仍在我脑海中回响。我完全支持测试自动化。但本周GitHub Copilot确实无法提升我的工作效率。测试工程师的工作既需要精湛技术,更离不开人性化思考。
你如何看待这个问题?你如何优化工作流程?你的工作哪些部分是技术性的,哪些部分又涉及技术细节?哪些任务可委派给机器执行?如果有,你做了么?