推荐序三
移动互联网行业的快速发展影响了很多软件研发模式的发展,在当前追求小步快跑、持续交付、高效研发的场景下,不少传统的测试方法及实践已不再适用。在我20年从业的经历中,曾经经历过团队规模从数十人壮大至数百人,产品形态从企业内部软件产品发展到亿级用户流量的移动互联产品,目睹过开发人员为不断追求最新的技术而兴奋不已,也目睹过测试人员在质量与效率之间苦苦挣扎的窘态。测试人员到底应该具备怎样的技能?专业的测试团队价值在哪里?优秀的测试团队应具备怎样的素质?这些问题会给测试团队建设和测试管理带来困扰,我们应该如何思考和实践呢?也许这本书会有你想要的答案。
作者与我是好友,我们各自在研发和测试领域耕耘多年,闲暇时会对测试工作进行深入探讨,其中一点共识是:移动互联网时代给测试工作带来巨大挑战的同时,也带来巨大的机遇与变革,测试工作有巨大的发挥空间和价值输出点,这足以让人深入探究,并感到众多乐趣。
以下是我们在探讨过程中提到的几个令人印象深刻的观点,供大家在阅读本书时参考:
测试工作的最终目标是服务于产品的商业价值。测试工作不能只限定在交付后期的质量保障上,而应全流程参与,所有有利于提升产品商业价值的工作,测试人员都应该参与,比如,产品需求分析、原型讨论、功能测试、自动化测试、探索测试、性能测试、产品试用、产品使用情况分析等,贯穿产品研发的全流程。
产品质量必须是由测试人员和开发人员共同负责的。说得通俗一些,开发人员要懂测试,测试人员也要懂开发。可以让测试人员和开发人员成为不可分割的团队,让开发人员也能高效地参与测试,这样整个研发团队才能得到真正的高质量成果。测试团队不仅要提升自身的效率,也要提升整个研发团队的交付效率,正如《Google软件测试之道》一书中提到的,测试团队属于工程生产力团队,以产品交付和效率提升为己任。
敏捷开发强调开发人员和测试人员作为团队成员共同交付软件产品,自我驱动不分彼此地协同工作,这一思想既能指导软件开发流程,也能影响团队的管理框架,对研发团队的工作模式构建影响深远。可以鼓励大家勇于尝试,但是也要注意,不要把重心放在所谓的敏捷“流程”上,而应放在“人”这个核心要素上,争取做到开发人员和测试人员都具备这样的意识,自我驱动、相互推进、协同工作。
我们不能局限于已有的工作流程和方法。任何有助于完成测试工作或提升效率的手段都是测试人员值得去尝试的,每个测试人员都应该要求自己学习和掌握自动化测试、性能测试、工具开发等技能,把这些技能归档到“工具箱”中,拿来即用。当你能越来越熟练驾驭这些工具时,恭喜你,你已经成长为合格的测试架构师了。
更多的内容和观点在这本书中有详细的探讨。让人愉悦的是,作者不局限于枯燥呆板的说教形式,而是通过轻松的故事与实践来逐步揭示软件测试优秀的工作模式,和读者一起思考其中的逻辑与因果关系。希望看完本书的你和我一样,对测试工作有更加前沿的认知。
刘谆
招商银行信用卡中心 信息技术部 副总经理