Qualidade de Software
Testes Automatizados
DevOps
Engenharia de Software
Gestão de Tecnologia

软件测试周期:趋势和领导者快速指南

测试不再是项目结束时的一个阶段,而是成为产品构建过程中持续的一部分。

软件测试周期:趋势和领导者快速指南

每个技术经理都经历过同样的场景:交付准备好了,截止日期是明天,有人问“你测试了吗?”回应往往是尴尬的沉默。测试已成为每个人都认为很重要的一步,而在实践中,当日程紧张时,测试是第一个被牺牲的步骤。

这是过时的思维模式的症状。长期以来,我们将测试视为一个阶段:编码,然后测试,然后交付。当质量处于传送带末端时,它总是会输给最后期限。当你失败时,成本并没有消失,它只是转移到生产中,而生产中的成本要昂贵得多。

软件测试周期发生了很大变化。如今领导技术团队的人需要将这些变化理解为风险管理和交付速度决策,而不是技术细节。

老实说,测试周期是多少?

测试周期是检查软件是否做了它应该做的事情以及没有做它不应该做的事情的一组活动。理论上,它涉及计划、设计测试用例、执行、记录缺陷和重新测试。在实践中,重要的是一个问题:你什么时候发现有什么问题?

越早越好。编写代码时发现的错误成本很低。公民在使用数字公共服务时或电子商务中的客户在付款时遇到的同样错误会损害声誉、金钱和信任。

本文的中心论点很简单:最好的测试周期是使错误的发现更接近错误产生的那一刻。所有现代趋势所做的就是缩短这个距离。

金字塔仍然统治,但它需要背景

测试金字塔仍然是我们拥有的最好的思维导图。在底层,有许多快速且廉价的单元测试,用于检查小代码单元。中间是集成测试,检查各方是否相互通信。在顶部,很少有模拟真实用户的端到端测试。

常见的错误是倒金字塔。没有测试文化的团队往往会积累手动和接口测试,这些测试缓慢、脆弱且维护成本高昂。结果是一套随着每一次变化而崩溃并且没有人信任的套件。当没有人相信这些测试时,它们就会停止运行,我们就会陷入尴尬的沉默。

对于领导者来说,这一教训是相当重要的。不要只问“我们有测试吗?”,而要问“我们的测试工作重点在哪里?”。如果大部分成本都在金字塔的顶端,那就存在结构性问题。

真正重要的趋势

Shift-left:从头开始测试

“左移”的思想是将质量移至进度表的左侧,即移至开头。这意味着在编写规范时考虑测试,而不是在交付之后。在成熟的团队中,开发人员在编写功能的同时编写测试,并且代码审查已经考虑了覆盖范围。

在公共部门,系统需要持续多年并能适应员工和管理层的变化,这一点更为重要。没有测试的系统是下一个团队在没有手册的情况下继承的债务。

CI/CD 的自动化

持续集成使得每次更改都可以自动运行测试套件。这改变了游戏规则:反馈不再是一个事件,而是一个流程。如果更改破坏了某些内容,团队只需几分钟(而不是几周)就会知道。

自动化并没有消除手动测试,而是解放了它。人类测试人员停止重复机械脚本,并开始做机器做不好的事情:探索性测试,寻找奇怪的行为,评估经验。

AI 应用于测试,无需魔法

人工智能进入测试周期以生成案例、建议场景并识别未覆盖的代码部分。明智地使用它可以加快重复性工作的速度。但它并不能取代对测试重要内容的判断。 AI产生量;团队设定优先级。混淆两者就像通过测试的数量来衡量质量,而不是通过实际风险的覆盖范围来衡量。

团队犯错误最多的地方

第一个错误是将覆盖范围与安全性混淆。拥有 90% 的代码覆盖率并不意味着 90% 的重要代码受到保护。覆盖范围是衡量存在的指标,而不是质量的指标。团队可以详尽地测试琐碎的事情而忽略关键路径。

第二个错误是将测试视为个人或孤立部门的责任。当“QA 人员”成为一座孤岛时,质量就变成了其他人的任务。高绩效团队分配责任:质量属于每个人,从产品到运营。

第三个更微妙的错误是不维护套件。测试就是代码,它们会过时。一套废弃的套件会积累无人修复的失败测试,​​直到团队学会忽略红灯。从那时起,整个测试投资就变成了戏剧。

战略愿景:质量即速度

有一种误解认为质量和速度是对立的,测试会延迟交付。现实却恰恰相反。具有良好自动化覆盖率的团队交付速度更快,因为他们有勇气改变。如果没有测试,每一次改变都是一次黑暗中的飞跃,对失败的恐惧会阻碍产品的发​​展。

想想旺季的市政收集系统或电子商务平台。你无法在最糟糕的时刻停下来纠正严重错误。进行频繁且安全的更改的信心恰恰来自于可靠的测试网络。质量好、做工精良,让您走得快而不会摔倒。

领导力在这里的作用不是编写测试,而是为它们的存在创造文化和预算条件。这包括在截止日期压力到来时捍卫工程时间以确保质量,并通过交付内容的稳定性(而不仅仅是表面速度)来衡量团队。

结束

成熟的测试周期并不是测试最多的周期,而是在正确的时间发现正确的问题的周期。定义团队的问题不是“你进行测试吗?”,而是“你对自己交付的产品有多少信任?”。这种信任不能用工具购买,而是用文化建立的。

如果您的组织仍然将测试视为部署前的最后一步,那么问题可能不是技术问题,而是思维模型问题。在下一次关键交付开始之前,值得回顾一下这一点。博客上还有其他关于质量、自动化和工程文化的文章,如果这对您的团队来说是一个真正的挑战,那么这是一个值得讨论的好话题。

另请阅读

  • 【软件测试周期:早测试者(和晚测试者)的趋势和真实案例0
  • [自动化测试:为什么未经测试的代码是债务1
  • [自动化测试架构:需要速度的团队的快速指南2
  • [自动化测试架构:从头开始搭建的基本步骤3
  • [数字质量保证:重要工具快速指南4
  • [手动软件测试:在不成为瓶颈的情况下进行扩展的路线图5