结果不确定的复杂 AI 系统给测试人员和程序员带来了挑战。Fiona Charles 认为,这样的系统在高影响、高风险应用程序中将越来越普遍。测试人员应该提升他们的思考能力和学习能力,发展一些个人优势,比如说勇气和良好的判断力。
软件测试顾问和项目测试经理 Fiona Charles 将在 2017 年欧洲测试大会上发表主题演讲“提升可能性”。
软件日新月异地发展,我们不断设计不同的方法来创造并实施它,并设计更先进的工具来协助创造实施过程中的每个阶段。软件测试不再有健壮的主导性典范。我们对如何测试,何时测试,谁来做测试,甚至我们是否需要测试的态度都因为有了新的方法和技术而发生改变。
InfoQ 采访了 Fiona Charles,询问了她关于测试必须解决的主要挑战,这些挑战会如何影响测试行业,测试人员期望能提供的价值,测试人员需要具备的基本技能,如何获得这些技能,以及测试人员的未来会将如何。
InfoQ:目前测试中面临的主要挑战是什么?
Fiona Charles:我觉得基本的挑战和我们现在软件测试中已有的那些有什么不同,我们从来没有时间和能力来测试所有方面的东西,所以我们要决定测试什么,如何彻底测试,以便我们为利益相关者提供最好的产品。然后做出这些战略决策,如何能最有效地、最高效地进行测试?
一直以来覆盖面都是一大挑战。迄今为止,在主流之外,结果不确定的复杂 AI 系统也存在着重大挑战。这样的系统在高影响、高风险应用程序中将越来越普遍,我认为更多的软件从业者会接触到对它们的编程和测试。举一个例子,我们看到 AI 系统现在在美国司法系统中做出有关判决和假释的决策。我们从媒体获悉,“学习”系统很容易受到为它们选择的学习数据的影响。显而易见的是,它们的测试都很具有挑战性,甚至会给程序员和测试人员带来道德挑战。
InfoQ:这些挑战会如何影响测试行业?
Charles:专业测试的实践总是在变,部分是为了应对测试挑战,但主要是由于技术和软件开发方法的改进。我认为它总是在改变的,并且是为了类似的原因在改变的。
当然,敏捷的出现已经改变了测试人员在团队中的角色,以及他们在软件项目中要做的事情。以前所谓的“瀑布”方法经常耽误测试人员的时间和技能,他们需要几周或几个月忙于设计测试,由于几乎没有人做过任何单元测试,他们用了这么多时间就发现了一些很简单的错误。现在这样可怕的时代已经一去不复返了,大多数测试人员都进入了新的阶段(至少从表面上来看是这样的)。
我不确定敏捷是否已经成功兑现了高质量软件的承诺,但是回到更加集成和协作的程序员和测试人员团队的方面,敏捷是成功了。我之所以称之为“回到”是因为这是我们很多老手一开始接触的测试:在集成、协作的团队里,每个人都做出贡献,做出了想要得到的软件,看到客户开始使用让我们很高兴。
我发现的缺点是,从没在敏捷项目之外的项目工作过的测试人员可能永远不会学习怎么处理复杂性问题,这让我很担忧 AI 项目和大型软件项目的未来。当你只需要处理少部分功能的时候,不需要认真分析、战略性思考。在可预见的未来,社会仍然需要一些非常大的软件项目,这些项目需要拥有很强能力和领导能力的测试人员的投入。测试人员可以从哪里学到这些必要的大项目技能呢?
目前据我所知,只有一名对 AI 项目有深入了解的测试人员:Bill Matthews。Matthews 提醒测试人员需要发展自己思考、处理复杂性的能力,我再次认为,潜在的问题就是大多数测试人员都在做敏捷项目。
InfoQ:测试人员期望能提供的价值有没有发生变化?
Charles:是的。但正如我上面所说的一样,实践和期望都改变了,然后再次发生了变化,不仅仅变了一次,可能它们会继续改变。可能大多数的结果是有益的,但有些结果可能是有害的。
目前,许多测试人员也担任他们团队的质量督导员,他们在测试的同时也要指导程序员如何改进自己的测试。我认为这样的工作模式是非常积极的。增加自动化单元和服务级别的测试也是非常积极的。
如果经理或程序员觉得,程序员或自动化测试完全足够,团队中不需要专业的测试人员,这就是不太积极的。很久以前就有关于这个问题的争论,现在不值得在这里深究,但这个问题很重要。如果你满足正确的标准,你系统里的错误对利益相关者造成的影响很低,甚至没有造成影响,那没有测试人员无可厚非。但情况不总是这样的。
新的变化趋势是现在需要更快、更频繁地发布产品,所以集成功能测试的时间越来越少,这对于错误会造成严重问题的系统是一种很大的挑战。
InfoQ:你认为哪些技能对测试人员来说是必不可少的?
Charles:这个问题可大可小。我一开始就说,测试人员需要的不仅仅是技能。作为测试人员,还需要发展个人的优势或特性,比如说勇气和很好的判断力。
我已经在我博客中的一篇博文:测试人员可以受益的一些技能和个人素质中的思维导图上,介绍了测试人员的基本技能和个人素质列表。思维导图中的技能和特性从某种程度上来说也是相关联的。测试人员可能不会在所有情况下使用所有技能,但在职业生涯中,我们大多数人总能在某段时间用到某个技能。自从发布以来,我也在不断完善列表。我将会在主题演讲中详细举例。
简短来说,我会说是思考和学习的能力。就像人脑是中央测试工具一样,思考也是测试人员的干细胞技能。当然,思考这个话题覆盖面很广,包括逻辑、创造力、批判性思维、分析、综合、问题解决等等测试人员需要的很多其他认知过程。但是如果你不能学习,不能持续学习,你的思考也会是有限的。回到个人的优势和特性来说,如果你不充满好奇心,你也不会学习。
InfoQ:测试人员可以获得什么?
Charles:实践。培养好奇心。与其他任何技能一样,你的想法越多,你在不同领域和环境中想得越多、学得越多,你的思考和学习能力就越强。
想一下你工作的环境,想一想在你不喜欢的环境中工作的情况。如果你只在敏捷团队中工作,尝试一下在所谓的“瀑布”项目中的工作情况,反之亦然。
同样,和拥有与你不同专业观点和意见的人合作完成测试和软件开发。你可以从“另一方面”学到很多有用的东西,在你不熟悉的环境中实施你自己的实践。
最后,通过思考并理解复杂的系统和领域,提高处理复杂性问题的能力。
InfoQ:测试人员的未来将如何?
Charles:我不是先知,所以每次问我这个问题我的答案都是一样的。未来会发生一些不可知的社会、经济和技术变革,作为测试人员我们要付出自己的技能和个人优势。
我们只能决定我们要提供什么,所以我觉得这就是我们要努力的地方。测试人员需要灵活性强、适应性强,总是学习新的技能和方法,并愿意承担新的角色和活动。
没什么新的补充了!
InfoQ 以问答、总结和文章的形式报道了 2017 年欧洲测试大会。早先,InfoQ 发表了与 Adrian Bolboacă的问答,讨论如何写好单元测试的问题。
评论