《软件测试实战:微软技术专家经验总结》前言
2014-03-14 13:00 liangshi 阅读(1541) 评论(2) 编辑 收藏 举报经过一年多的研究和写作,我的新书《软件测试实战:微软技术专家经验总结》即将上市(亚马逊和互动出版网已经开始预售)。此书由人民邮电出版社出版,图灵社区提供在线支持(目录、试读、付费阅读、图书信息、勘误等)。期望读者不吝赐教。
以下是我为此书撰写的前言。
我在攻读博士学位时开始研究软件测试,毕业后一直任职测试工程师,从事第一线的测试工作,不知不觉已有十余年的光阴。在此期间,我阅读过大量的测试文献,参与过多个不同类型的测试项目,既学到了许多有价值的方法,也观察到了一些不太有效的实践,既通过努力获得过成功的经验,也从错误中得到了宝贵的教训。随着经历的增长,我渐渐构建出自己的知识体系,从实践中打磨出一批指导测试工作的策略与经验。自然而然,一个朴素的想法浮现出来:如果将我的所学所知分享给更多的测试工程师,想必能帮助他们节省学习与积累的时间,以更快地提高测试水平。在该想法的驱动下,我广泛地阅读了测试文献,深入地反思了自己的实践,并开始了漫长的写作。成果就是您所读到的这本书。
本书分享了我从事软件测试工作所学到的知识和所总结的经验,旨在帮助测试人员建立正确的观念,并掌握一批切合实战的测试技术。一方面,我总结了测试专家的见解和方法,将其精华内容综述在本书之中,以帮助读者提高学习效率、快速地掌握综合性的技能。另一方面,我努力将自己的经验和反思融入书稿,使它反映出我在工作中使用的策略、方法和技巧。总之,这是一本注重实效的书,尝试用理论结合实践的方式来解决现实的问题。
本书的组织方式
在概述一些基本测试观点(第1章)之后,本书按照“启发式测试策略模型”(参见4.2.1节)的基本元素来展开论述:观察到的质量(第2章)、测试设计(第3、4、5、6章)、产品元素(第7章)和项目环境(第8章)。随后,讨论了测试人员如何参与团队工作(第9章)并实施个人管理(第10章)。
- 第1章阐述我对软件测试的基本观点,介绍了我的测试价值观。作为指导原则,它们将贯穿全书的内容。
- 第2章讨论了测试人员最主要的工作产出——缺陷报告,介绍了一批实践方法,帮助测试人员高质量地报告缺陷,并利用该过程来改进测试设计。
- 第3章讨论作为测试辅助工具的测试文档,介绍了一些编写和维护文档的原则和方法。通过分析一批具体的测试文档,展示出测试设计的迭代性和多样性。
- 第4章介绍指导测试设计的模型,通过应用组合测试,阐述了如何根据项目语境来完善测试模型,然后介绍了测试建模的基本原则和常用方法。
- 第5章介绍一个测试技术分类系统,以概览各类测试技术。然后,讨论了一批有价值的测试技术,包括启发式测试先知、漫游测试、快速测试、情景测试等。在此基础上,强调了测试人员应该多样地选择测试技术,以动态地优化测试的价值。
- 第6章讨论了测试开发的基本分类,然后针对自动化测试、计算机辅助测试和大规模自动化测试,阐述了它们的基本概念、设计目标、开发策略和实作方法。
- 第7章讨论如何从测试视角来研究软件产品和业务领域,介绍了静态分析、动态分析、关系人研究、需求评审、测试调查、网络调研、领域研究等研究方法。
- 第8章讨论如何从测试视角来研究项目环境,介绍了团队分析、缺陷分析、源码分析、构建分析、自动化测试分析、基于风险的测试等研究方法。
- 第9章探讨测试人员如何有效地在团队中工作,以及如何恰当地实施测试管理。针对一些常见任务,如小组协作、测试计划、工作量估算、软件度量等,提出了一批注重实效的方法。
- 第10章分享了我实施个人管理的基本方法,包含时间管理、个人学习、经验积累、专业发展等。
目标读者
本书的主要读者是具备一定测试经验、想要进一步提高测试能力的测试工程师。全书综合了测试行家的专业建议和我的实践经验,探讨了测试价值观、测试设计、产品研究、项目研究、团队协作、个人管理等多个方面,能够帮助读者更好地理解软件测试,并提高实践水平。本书的内容面向广大的测试社区,并不要求读者掌握特定的背景知识。我希望它能够适合大多数测试人员,并通过解决现实问题来引起读者的共鸣。
此外,本书是很好的软件工程课程、软件测试课程和测试培训的参考资料,能帮助本科生、研究生和测试学员更好地理解真实的软件测试。一些测试人员在工作后会发现,课程教材和培训教程所描述的内容并不切合实际的测试工作。例如,课本中的测试设计和执行是线性实施的,真实测试流程却是迭代展开的;缺陷报告常常是测试工作的核心产出,教材却没有讨论如何有效地管理缺陷报告;测试人员被要求撰写文档,其成果又被束之高阁,却少有教程讨论如何编写有价值的文档。这时,他们可以参考本书所提出的建议,从而发展出更有效的工作策略。
如何阅读本书
本书第1章讨论软件测试的基本事实和价值观,是全书内容的基础,需要首先阅读。在读完第1章后,读者可以按任意顺序阅读本书。您既可以顺序浏览,以概观软件测试,也可以有选择地阅读感兴趣的章节,并在阅读的过程中参考相关内容。
这是一本关于实践的书,许多建议和方法来自于实践。软件开发专家Ralph E. Johnson 指出,“从实践中来的知识在没有实践之前是无法被真正理解的”(practical knowledge has to be experienced to fully understood),测试专家Cem Kaner、James Bach等也认为“你不能掌握测试,除非你重新发明它”(You can’t master testing unless you reinvent it)。在阅读过程中,读者需要积极思考本书的方法是否适用于自己的项目,然后将恰当的方法应用于真实的测试,并认真评估其效果。通过练习、评估和反思,读者能够掌握方法的原理和细节,并混入自身经验和其他技术,以演化出新的方法。坚持这样的研究和创新将帮助测试人员走上精通之路。
致谢
作为作者,我诚挚感谢人民邮电出版社和北京图灵文化发展有限公司为我提供创作的平台。感谢本书的编辑王军花、张霞等,你们的专业态度和细致工作提升了本书的品质。
我还要感谢审稿人和推荐人的批评指教,你们的细心评阅和宝贵意见令我受益匪浅。谢谢你们的时间和智慧。
最后,我要感谢妻子汤红红,没有你的理解和支持,我无法完成此书。我还要感谢儿子史泰德用欢笑带给我快乐与能量,你令我想成为一个更好的人。感谢你们让我梦想。