上周五,也就是 2021年5月21日,距离我在苹果公司担任测试人员的第一天已经过去了整整34年。在此之前,我是一名开发人员,但从那之后我一直都在从事测试工作,这让我不禁陷入回忆。
是的,这个行业经历了很多变化,但在我观察这个领域的整个过程中,似乎有一个不变的事实:软件世界中几乎每个人都认为他们了解测试,但几乎没有人想去学习相关知识。在80年代,尽管有很多人被称为测试人员,并且在测试上投入了大量资金,但测试并没有被重视。在很大程度上,今天测试依然没被重视起来。如今,流行的说法是“质量和测试,人人有责!”(并以此为由,以肤浅、业余的方式进行测试)。
当我加入这个行业时,主要的想法是通过编写流程来固化测试,然后尽可能自动化这些流程。公司认为需要测试专家来创建这些流程并进行自动化操作,所以我们有测试团队和测试经理。但测试人员总是压力重重,因为除了测试人员,每个人都希望能尽快交付产品。
后来,我和几位同事一起强烈反对这种“固化测试总是好的,非固化测试不好”的观点。我们认为,测试是会学习、思考和质疑的人,而不是像工厂流水线上那种一成不变的人。我们提倡测试工匠精神,并尊重那些致力于此的人。
敏捷方法诞生时,看似体现了人文关怀,起初似乎是对这种观点的支持。但不久,它却演变成一种新的压迫力量。敏捷并非测试人员所创,也非与他们协作之人所倡导。正如Cem Kaner经常说的那样:“敏捷方法解雇了测试人员”,因为它并不适应那些偏爱遵循固定流程的测试者。敏捷和DevOps只是对我们在80年代就遇到过的问题进行了重新包装,以一种时尚的方式呈现,穿着高领毛衣,喝着高端咖啡,一副新世纪面孔。然而,细节已变,现在的压力是让那些自称为测试人员的人放弃这种想法。此前就不受重视的测试工艺,如今被追求新颖概念的人公然抨击。一些昔日的测试老友,如今已转型为“质量教练”,有的甚至认为测试已经过时了。
今天遇到的和 80 年代一样的老问题是什么?是那些认为所有测试都应固化和自动化的管理者。
他们为什么会这样认为? 原因在于他们对优秀测试人员的真正工作内容和方式缺乏了解。在大多数情况下,他们甚至不想去学习,因为学习这些会让他们失去以无知为借口的便利—即将测试视为一个清晰的算法过程,而非一种复杂的社交过程。
今天,测试人员面临的环境有何不同?如今,对测试人员的保护和培养少了(测试经理越来越少,测试团队规模也越来越小),而交付的压力却越来越大(因为即时交付)。像 ISTQB 这样的机构愿意接受你的资金,以测试之名,利用你的恐惧和疑虑,为你提供一些糟糕的建议和陈词滥调。但好的一面是,现在网上有许多优质的学习资源可用……尽管它们常常被淹没在大量的劣质资源中。
为什么测试不能成为每个人都可以做的事情?每个人都可以来测试,这很好。我想说的是,需要特别的奉献精神和专注力来分析测试的需求,并为深入测试做好准备—找到每个重要的问题。任何人都可以做测试,就像任何人都可以在法庭上为自己辩护一样。但并不是任何人都能负责任地进行测试,也不是任何人都能成为一名为自己辩护的有效律师。
如果关于测试的主流文化如此落后,为什么它没有改变呢?因为测试是一种活动,就像管理、教学和政治一样,很容易做得不好,然后将随之而来的问题归咎于任何人或任何事情,而不是你自己。
为什么测试领域没有成长起来?因为测试人员在获得智慧并学会坚持自我之前就离开了这个领域。此外,野心勃勃、聪明的人往往不愿意被“困”在测试领域中。
James,为什么你还在测试领域?因为我成为了一名软件测试培训师。我开发了一套教授和实践测试的系统,人们似乎觉得很有帮助。尽管我所追求的卓越文化不断受到攻击,但这让我的职业生涯更有意义。
Michael Bolton希望我添加一些令人期待的内容。他要我提出一些想法,当然我也有一些思路。这个网站充满了有用的测试知识。我还教授测试课程。
根据我作为一名测试新手入职苹果公司,并第一次踏入德安萨大道10500号的经历,我认为,对于糟糕的测试问题永远不会有一个通用的解决方案。但是,你们中的任何一个人,读到这篇文章,都可以努力让自己所处的测试领域变得更好一点。