让我给你们讲个小故事。
我曾拜访过一位客户,他们对自动化测试的热情高涨。“哦,我们有很多10倍速的测试过程!”他们自豪地说。出于好奇,我追问:“你们怎么运行它们呢?”他们毫不犹豫地指向办公室角落里一台落满灰尘的旧电脑。我愣了一秒,怀疑自己是不是听错了。角落里的电脑?没错,原来那就是他们“运行”测试的地方。如果说这都不算自动化名不副实,那我真不知该说什么了。
那么,如何判断你的自动化测试是真正为你服务,还是像那台可怜的旧电脑一样困在过去?以下是几个表明你的自动化测试急需升级的信号:
-
流程中仍需要手动点击“运行”
我们都向往自动化能自行运行,但如果你的测试仍需要有人手动点击“运行”才能启动,那就是个危险信号。你知道那种套路——必须有人按下按钮,然后只能祈祷一切顺利。如果这听起来很熟悉,那你的测试更接近“半自动化”而非全自动。真正的自动化应该自己运行——就像汽车无需你推车就能启动! 2. 测试执行过程中需要人工协助
如果测试执行到一半离不开人工干预,那就是另一个不对劲的迹象。如果测试因需要有人点击不可预测的操作系统弹窗、处理意外输入或做出手动决策(如在确认对话框中选择“是”)而中断,那么它们就不是全自动的。
-
寄希望于系统处于理想状态
如果测试依赖单一的系统状态才能正常运行,那就有问题了。测试应能自行处理初始化和清理执行结果。当测试运行前“希望”一切恰好就绪时,那么它们会变得脆弱,一旦有微小变动就容易失败。 4. 为特定场景硬编码测试
如果测试专为极具体的场景设计,无法适应系统变化,那这是另一个重大信号——它们并未真正实现自动化。真正的自动化应是可复用、灵活且能在不同环境中运行的。只为单一情况硬编码测试,就像造一个只能搬运特定物品的机器人——其他东西怎么办? 5. 毫无测试可靠性可言
因系统状态变化而频繁失败的测试并不可靠。如果测试无法稳定运行,说明哪里出了问题。在扩展和快速增长测试套件前,先确保测试足够稳定。可靠的自动化测试应意味着你能放心运行测试,知道无论情况如何,结果都会一致。否则,就像玩一个规则不断变化的比赛——没人会喜欢。 6. 只有你一个人单独运行测试
持续集成/持续交付(CI/CD)?没有自动化测试,就失去了意义。自动化本应简化开发流程,尤其是在CI/CD流水线中。如果团队未将自动化测试作为工作流程的一部分,就浪费了它的真正潜力。自动化在CI/CD中的真正优势在于,它能尽早且频繁地发现问题,无需每次变更都手动干预。而当自动化值得信赖时,它会获得更多关注、认可和资源分配。