本篇文章不是关于人工智能与测试的,它也不是要证明在AI时代仍需要测试的合理性。它谈论的是人们对质量和质量人员普遍存在的消极态度。它探讨了其他同行如何看待质量人员。提到AI仅仅是为了阐明一些观点。
2022 年 11 月,当 ChatGPT 发布时,世界迎来了人工智能的新时代。它的下一个版本通过了美国律师资格考试,实现了重大技术突破。与晶体管数量翻倍的摩尔定律不同,人工智能在 2012 年至 2018 年间实现了 30 万倍的指数级增长。各行各业的专业人士陷入恐慌,软件测试人员也不例外。对软件测试持否定态度的人,又有机会来撰写一些软件测试/测试人员的终结宣言。这并不新鲜,过去已经发生过无数次,未来也很可能发生。不可否认的事实是,终结宣言的一部分是由少数测试人员撰写的,我喜欢称他们为 “表面测试人员”。他们只是纸上谈兵。他们的心态和行为与测试原则并不相称。
在软件开发生命周期中,测试一直被看做是次要的—虽然不喜欢,但并没有被抛弃。虽然这听起来像是泛泛而谈,但从业一段时间的专业人士可以证明这一点。毕竟,人们可能会想—在测试人员没有贡献任何代码的软件中,发现错误有什么特别之处呢?随着频繁发布软件更改和自动化回归测试的迫切需求,对测试的这种理解发生了变化。测试也不仅限于 GUI 系统和基于 Web 界面的黑盒测试。测试现在会涉及 API、数据库、信息安全和可用性等等。
突然间,测试不再是一个“不那么酷”的职业了。编写代码来进行自动化测试和在 UI 背后进行测试的能力提升了一些测试人员的地位。开发人员和测试人员之间不再存在歧视。现在有两种测试人员—手工测试人员和自动化/技术测试人员。出于正当理由,组织投资于测试人员的能力提升,以适应这一新现实。然而,在这个过程中,测试的基本原则被遗忘了。现在雇用测试人员是根据他们在网页上查找元素的能力。分析和解释复杂需求的能力被忽视了。仿佛人们忘记了自动化测试就是功能测试。一个功能测试人员的良好标志不仅在于他们如何实现自动化,还在于弄清楚哪些回归测试必须自动化。后者需要系统、流程和业务领域的知识。他们有能力联系各个方面,获得全局视角。在拥有多个系统、跨职能团队和流程的大型机构中,这是一项非常重要的技能。他们也是善于质疑解决方案并指出风险的人。
不可否认,自动化对许多企业的成功至关重要。但是,有人天真地认为 “自动化测试 “是灵丹妙药,可以解决软件工程中的所有问题,因此即便是优秀的手工测试人员也可以被淘汰,这种想法是有问题的。作为一名质量专业人员,当有人问“你们为什么还在手工测试所有东西?为什么不能自动化?”时,你会感到非常沮丧。这就好像,你只需点击一个按钮,一个工具就会帮你完成所有测试,然后给你一份报告。也许人工智能将来会做很多质量从业者的工作,但我们必须明白,编写自动测试的人是人类。人工智能很可能会成为专业人员必须学习的功能测试和自动化测试工具。但我怀疑人工智能或任何由人工智能增强的自动化工具能否执行探索性测试。回到当前环境中的自动化,测试人员需要首先确定测试已通过,然后才能自动化测试或对多个数据集/流程执行测试。在谈到 “自动化测试 “时,需要结合具体情况。这是投资与回报之间的平衡。一刀切的方法无济于事。根据组织的具体情况,多种方法结合起来可能最合适。
鉴于道德方面的考虑和即将出台的法规,如果说AI需要什么,那就是专门的功能测试人员,而这些测试人员不一定只在自动化测试的背景下被看到或理解。
事实上,测试人员必须适应不断变化的技术环境,否则就只能选择灭亡。质量应该是每个人的责任,这句话没错,但如果你认为你不需要测试人员,因为你在一个充满科技初创企业的开发者大会上听到过这样的言论,那你可能就太以偏概全了。开发与测试之间的差距在不断缩小,但对独立的测试专业人员的需求始终存在。尤其是像航空业、医疗和金融机构这样的关键行业。作为一名消费者,如果 Netflix 崩溃一小时或我无法在 Spotify 上听音乐,我的世界不会崩溃,但如果我的借记卡在我出国旅行试图支付医药费时无法使用,或医疗测试设备出现假阳性,我会倍感压力。
正因为如此,这些行业在如何开发和测试系统方面,受到监管。虽然法律对安全测试的对象和方式有明确规定,但对软件系统的功能测试却没有明确规定。
APRA 监管的实体必须确保测试由具有适当技能且职能独立的专家进行—《信息安全监管准则 CPS 234》。
不过,监管机构确实强调需要对系统进行适当和严格的测试。正因为如此,这些机构才制定了有关测试的标准和控制措施。
测试与编码的区别在于思维方式。无论项目中的角色是什么,你都需要具备这种思维方式的专业人员。有测试背景和经验的人可以帮助你在团队中建立这种思维模式。我很幸运曾与一些最优秀的软件专业人员共事过,他们本可以很容易地转行从事编码工作,但却坚守测试领域,因为这最能激发他们的兴趣。我也很幸运曾与功能测试人员共事,他们凭借丰富的知识,发现了自动化测试无法发现的关键bug。
你知道吗?仅在2020年,美国由于低质量软件而损失了2.08万亿美元。
软件测试不会消亡。它不会灭绝。正如测试人员过去所做的那样,他们将适应、转变并接受当前的现实,如云技术和人工智能等新兴技术。他们的能力、角色、职责以及他们与团队其他成员互动的方式都将发生变化。很抱歉,我的标题误导了你们。请放心,你无法杀死测试。
“开发人员是开发人员,测试人员是测试人员。两者终有一天会相遇。我们把这个领域称为“质量工程”。
因此,在你决定淘汰测试人员之前,先了解一下质量保证对你的组织意味着什么(如果不是流程本身的话)。如果你仍然想淘汰测试人员,那就动手吧,但请记住,历史表明,测试人员总是笑到最后!
我测试,故我在。如果你愿意,可以试着将我抹去,但就像凤凰涅槃一样,我会一次又一次地从灰烬中重生。