软件测试的未来是深入思考与探索。
随着软件越来越复杂,并与我们的现实世界深度融合,传统的测试方法将必须进化。在物联网(IoT)、人工智能(AI)和机器学习主导的世界里,测试的工具、技术和方法都需要同步升级。当我们面对“更智能”的系统时,测试将不再是一个操作对应一个已知预期那么简单。很多时候,我们甚至不知道系统应当如何反应,也无法预判其在某些情况下的行为。测试人员需要展开深入探索,极具创造性地设计各种测试场景,才能真正了解这些“智能系统”会做出怎样的响应。同时,他们还必须对这些响应对客户意味着什么保持敏感,前所未有地站在客户立场上发声。
02
对测试未来要有信心
很多人认为新兴技术趋势会让测试人员失业,而我并不认同。我曾参与过这些领域的项目开发,它们急需能引发深度思考的测试人员。在这个更加智能化的数字世界里,我们面临着无数需要考虑的场景。此刻从事测试工作,正是令人着迷的绝佳时机。软件测试已经发生重大变化,主要源于……敏捷开发实践的推广。团队节奏越来越快,持续集成与持续部署已经成为常态,这要求每个人都掌握新的技能。如今,测试人员必须“左移”,在开发初期就介入测试工作。与五年前相比,我们在交付流程的早期阶段就开始提供价值,充当客户的倡导者。与此同时,开发人员也逐渐学会在提交代码前自行完成更多的功能测试。或许最大的变化是:测试人员不再是“质量的唯一负责人”。我们意识到,要在这个快节奏的环境中真正成功,每个人都必须将质量作为自己工作的一部分。
03
未来需要掌握新技能
在测试 IoT 或 AI 应用时,我必须编写代码才能进行有效测试。而这不仅仅是自动化测试的编写,还包括搭建测试所需的基础设施,从而得出有价值的结果。比如在测试 IoT 应用时,我需要搭建模拟服务来替代第三方集成接口;在机器学习应用中,我要模拟成千上万次交互,以触发系统学习,并分析其输出结果。这一切都需要对代码有相当的熟悉度。除了编程技能,测试人员还必须学习这些新兴技术的趋势、它们对软件本身以及客户的潜在影响。可学习的内容太多了,作为一个计划长期留在这个行业的人,我建议尽早开始学习,就算你的当前工作暂时还不需要。
世界在变化,软件在变化,测试也必须随之演变。不要害怕,测试人员依然大有可为,这场旅程令人振奋!
04
笔者对于软件测试发展的想法
从市场需要量上来说,目前软件测试岗位的需求量确实在减少,比疫情之前或者疫情初期。且有很多公司要求开发去承担一些测试任务,目的是为了减少测试人员的开支。外部的环境就是这样,可能短期内无法改变很多。但是还是要向前看。如何保持自己的竞争力呢?
有软件开发的思维和技能。未来软件测试也要懂软件开发的一些知识点,特别是关键系统的关键逻辑或算法。
遇到新技术新思维出现的时候,测试人员要保持一颗好奇心,很多新技术不一定被测试直接利用,但是它背后的思维可以借鉴。
懂项目相关的技术栈,框架架构等,起码做到心中有数。
多和项目人员沟通,了解需求细节,对于测试有好处。
质量保证,做好规划,为软件发版留好时间窗口,评估好发版的潜在风险。