跳到主要内容

《敏捷测试价值观、方法与实践》序

·1674 字·4 分钟·

因为各种原因,这篇序在最后出版的时候没有出现在书中。

敏捷转型不如意,十有八九。 其中,软件质量不如意,又十有八九。

我没有想到,我会写一本关于敏捷测试的书。 更没有想到,这本书会是以合作的方式的完成的。

在 ThoughtWorks 工作的五年中,作为软件开发工程师和 DevOps 咨询师。我经历了系统而又全面的敏捷软件开发训练。在我接受的敏捷训练中,“测试”是一个任务,而不是一个角色或阶段,团队里所有人都应该具备测试技能及其质量意识。而在软件开发的整个生命周期中,每个阶段也都有可以测试的内容以及对应的测试方法。

这就是本书谈到敏捷测试的核心观念:事事可测,时时可测,人人可测。

事事可测的意思是每个用户故事都要能够被测试,要有验收条件。 时时可测的意思是软件在生命周期中的任何时间都是可以被测试的。 人人可测的意思是敏捷软件开发团队中的每个人都能够做测试的工作。

2018年,我加入了埃森哲。继续敏捷软件开发和 DevOps 的咨询,并和本书的另一名作者陈晓鹏老师成为了同事。那时候计划开始编写一本 DevOps 相关的书籍。

2019年接到陈晓鹏老师邀请共通写作的时候,我刚在华为公司结束一个 DevOps 转型的咨询项目,这个项目的核心就是缩短软件交付周期和提升软件质量。

在这个咨询项目中,我最深刻的感触就是:需求的质量决定了软件的质量。在质量不足的情况下,提升软件交付的速度是没有意义的。软件研发效能需要以内外部质量为核心。对外,能够满足用户的需求。对内,能够提升团队协作。

这其中最重要的是软件的质量和测试的关系。 在我看来,软件质量是目的,而测试是验证质量的手段。

恰逢晓鹏老师邀请我写这本书,我就想把自己在这个项目中对软件质量和测试相关的心得写下来。

在我看来,写一本书就是要系统性的回答一个问题。本书要回答的问题是:敏捷软件开发流程中的测试实践如何落地?

围绕着这一个问题,我们提出了本书要回答的三个问题:

  1. 敏捷软件开发是什么样子的?
  2. 软件测试人员在敏捷软件开发过程中需要了解哪些知识?掌握哪些技能?需要用到哪些工具?
  3. 如何把这些技能和实践应用到敏捷软件开发过程中?如果在实践敏捷的过程中遇到了问题,我们应该如何解决?

本书的第一部分回答了第一个问题,用了三个月,晓鹏老师很早就把大纲和内容写好。 本书的第二、三部分回答第二个问题,用了十个月。我们也参考了其它著作,而我们认为很多的书都是“知道的”太多,而“做到的”太少。于是,我们把书中提到的很多知识点用写作时最新版本的软件实践了一遍。确保本书的内容都是我们“做到的”。 本书的第四部分回答第三个问题,用了六个月。

2020年4月到6月疫情期间。我经历了一次规模化敏捷框架( SAFe )转型的项目,并成功的提升了客户的整个研发体系的敏捷性。这个案例中和测试相关的部分内容构成了本书的最后一章。

我避免把这本书写成一本“成功学”类的书。所谓“成功学”类的书,就是那些只告诉你“成功了是什么样”,而没有告诉你“失败了怎么办”的书。所以,本着务实的态度,本书将我在过去五年敏捷转型中的成功和失败的经验以“小技巧”的方式标注出来。

完成比完美重要,我们将我们的所得内容毫无保留的奉献给读者。其中不足之处,还望读者批评指正。

本书面向的读者主要是在从事软件测试的人员学习和掌握敏捷软件开发过程中的测试技能。其次是面向软件技术管理者,质量管理者。帮助其规划整个团队的质量和测试体系。

本书包含了一些代码示例,用于演示测试驱动开发,这些代码可以在 Github 上https://github.com/wizardbyron/agile-testing-book-examples 下载到。

感谢我的爱人刘倩女士,支持我在工作之余的时间完成这本书,占据了和她相处的时间。感谢参与本书早期审阅的朋友:文寒卿、杨丽颖、张敏为本书提出的宝贵建议。

感谢 ThoughtWorks 的林冰玉老师作为本书的最终审校者提供的宝贵建议。感谢 ThoughtWorks 的刘冉老师提供的安全测试章节。

最后感谢电子工业出版社的李冰,张梦菲两位编辑的辛苦付出,才能让这本书得以面世。

希望本书能够帮助您顺利的在敏捷软件开发中进行测试,祝您测试愉快~

顾宇

初稿于2021年6月27日于西安家中

修订于2022年11月1日与深圳家中