在传统型软件开发组织中,各项工作都以瀑布式流程开展,从需求分析、系统设计、编程开发,到测试、部署等一环扣一环,上一项工作全部结束就进入下一步。如果需求确定,工期充裕则一切正常,这个开发模式看起来很美好。但互联网行业的一大特点就是充满了不确定性,而且追求以快打慢,这就使得传统软件开发模式风险四伏。常见的情形就是大家都被催着赶进度,开发刚写完逻辑就提交测试,测试人员才做了一遍正向验证就提交线上部署。可想而知,产品在线上出的所有问题都会被开发和运维推向测试,最常听到的一句话就是“为什么不测试好就同意上线?”可测试真的不应该成为软件质量的“背锅侠”,而且也不能将问题简单地指向某个组织或个体。软件开发组织应当学习新观念、新思维,学会使用包括 AI 工具在内的新技术,去做好 AI 时代的软件开发工作。《现代软件测试技术之美》这本书就深入探讨了当前业界流行的测试理念,以及大厂成功的软件测试实践。书名中的“现代”二字,就体现了本书在技术前沿的探索与思考。技术方法是“术”,观念和思维是“道”,我们先来了解现代软件测试之道。在瀑布式开发模式中,各个岗位的技术人员各司其职,每个人专注于自己手头上的工作。但这会造成一个现象,就是大家只关心自身的工作质量,当软件系统出现问题时,往往需要耗费巨大的成本用于人员的协调。要改变这种局面,就要革新观念。书中提出“软件质量全员负责”的观点,即从“只要我的工作做好了,就不关我的事”转变到“软件的任何问题我都有责任”。观念转变了,组织发展出测试左移与测试右移的新思维也就水到渠成了。对于测试人员来说,要在项目启动阶段就开始参与从需求分析到方案设计的过程。这有助于测试人员充分理解软件的业务逻辑,实现信息对等。书中推荐使用行为驱动开发(Behavior Driven Development,BDD)和特性驱动开发(Feature Driven Development,FDD)的方法。对于开发人员来说,则要成为代码的“第一责任人”,要学会使用各种测试工具,对代码进行充分自测之后才提交测试。书中建议开发人员可以实践测试驱动开发(Test Driven Development)的思想,同时在评估周期时要预留充足的测试时间。测试右移则是将测试工作扩展至生产环境,其本质思想是将质量管理延续到服务发布后,通过监控、预警等手段,及时发现问题并跟进解决,将影响范围降至最小。测试右移最典型的理念是 TiP(Test in Production,产品测试),基于 TiP 的实践有生产测试和性能评估、A/B测试、灰度发布、混沌工程、线上监控、用户体验分析等,书中对这些概念和方法都有详细的介绍。对于当前业界流行的测试方法论,本书也一一做了介绍,包括契约测试、测试驱动开发、探索式测试、低代码测试、混沌工程。本书作者团队由来自业界的大佬与技术专家组成,他们深耕行业多年,在软件测试领域具备丰富的理论知识与实践经验,让我们来认识一下。腾讯 Tech Lead,腾讯研究院特约研究员,中国计算机学会技术前线委员会研发效能 SIG 主席,《软件研发效能度量规范》标准核心编写专家,中国商业联合会互联网应用工作委员会智库专家,腾讯云、阿里云、华为云“最具价值专家”,出版过《测试工程师全栈技术进阶与实践》。公众号“茹炳晟聊软件研发”的主理人。
吴骏龙
某大型互联网公司质量与效能团队技术总监,腾讯云“最具价值专家”,曾任 Wish 中国测试总监、阿里巴巴本地生活高级测试经理。在软件质量体系、服务容量保障、服务稳定性建设、软件研发效能等领域深耕多年,善于通过创新手段解决工程难题。他是测试行业优秀的实践者和前沿技术的传播者,多次受邀参加 QCon、QECon、CCF 等行业峰会并进行演讲。现任 Thoughtworks 软件测试和质量专家,具有 20 年软件开发和测试工作经验,对Web 应用测试、服务器性能测试、移动测试、安全测试、敏捷测试、测试驱动开发、测试分层一体化解决方案,以及代码管理、持续集成、持续交付和 DevOps 等有深入研究,曾是多个行业峰会的演讲嘉宾。组织的思想统一了,我们开始学习各项新技术如何为测试工作赋能。
书中介绍了多达11种测试技术,其中既包括成熟且应用广泛的流量回放、精准测试、模糊测试、变异测试、服务虚拟化等技术,还有随着大数据和 AI 兴起的全链路压测、移动测试、人工智能测试等,我们来探索一下这些新技术的玩法。这项技术是为了测试系统的整体性能,它的理念是与其将预防做得完善,不如在线上环境中对实际峰值进行模拟并观测。这项技术是阿里为应对双 11 大促演进而来的,实施难度相当大,堪称性能测试的珠峰。书中介绍了六项重点工作:压测数据隔离、压测模型构建、应用服务改造、压测流量制造、风险控制、组织协作。读者可以在书中看到各步骤的详细说明。移动平台的测试难点在于操作系统的多样性与快速变化,以及移动设备良莠不齐,几乎在任何环境下都有可能被使用。书中提出首先要制定测试策略,可分为基础测试、进阶测试和产品测试三种类型。然后是制定测试架构,绘制测试架构实例图,在此图的引导下开展测试工作。AI 技术蓬勃发展,在测试领域已经得到了应用。书中介绍了机器学习在 GUI 自动化测试执行方面的两个案例:一个是通过控件的统计学特征来识别 GUI 对象;另一个是直接通过视频外观来查找页面对象。随后还提出了两种更高级的思路:第一种是通过机器学习训练一个机器人,使其成为某个领域的测试专家;第二种是先构建被测系统的模型,然后基于后台日志来分析页面跳转与微服务调用的关系。ChatGPT 这款人机对话神器可高效提升自动化测试能力,可被视为用于编写自动化测试用例的强大低代码工具。书中给出了一个详细示例,演示 ChatGPT 生成基于 Cucumber 的 GUI 自动化测试用例。另外,书中还对安全测试新技术、大数据测试进行了详细介绍。《现代软件测试技术之美》从整体上阐述了相对于传统测试技术,新近时期在测试领域的思想变化,以及新方法论、新工具的具体使用。可以帮助读者站在技术之上的层面,把握现代软件测试的精髓。本书的最大特点就是内容全面,先从理念上辨析了业界诸多争论话题,然后探讨了 5 种测试新方法和11 种测试新技术,解答了测试技术人常见的困惑,最后剖析了 4 则软件测试行业典型案例。本书作者团队也由业界大佬与一线技术专家组成,从高屋建瓴的体系建设到技术运用的细节,展现了作者团队多年的技术积累与丰富的大厂实践经验。作者们在写作本书时尽力以简洁易懂的语言进行描述,还精心绘制了大量图示,以将复杂的概念和流程形象化表达。精彩内容展示
除了软件测试从业人员,软件开发人员、架构师和企业管理人员也都可以从这本书中获得启发。毕竟测试左移、测试右移都强调技术和业务的融合,要打破个体间的孤岛就要读这本书。本书以内容全面性、权威性,得到业界诸多专家的赞誉。本书全面介绍了现代软件测试技术、工具与实践,例如,契约测试、混沌工程、流量回放、精准测试等。书中介绍的可测试性设计、TDD、实际案例等内容也很实用。全书涵盖了测试新技术和新的测试场景,实践性强,有助于快速提高读者的技术水平和实践能力。
— 朱少民,《全程软件测试》《敏捷测试:以持续测试促进持续交付》的作者
本书系统地剖析了现代软件测试所面临的诸多挑战,针对性地总结了测试左移、右移的理念和实践,也提炼了在安全和大数据等新兴测试方向上的实战方法,同时还展望了生成式AI在智能测试方向的应用。该书内容广泛、案例实用,是测试从业人员很好的参考书。
— 肖然,Thoughtworks 中国区总经理、中关村智联软件服务业质量创新联盟秘书长
当我第一次拿到这本书,就被这本书的内容深深吸引了。这是一本涵盖测试技术、质量保障实践的书,内容上不仅适合有一定经验的从业者参考,而且也适合初入测试行业的读者学习,如果你也和我一样热爱软件测试技术,那么,你一定不要错过这本书。
— 陈磊,京东前测试架构师、《接口测试方法论》《持续测试》的作者
本书深入浅出地探讨了现代软件测试的技术与实践,涵盖了新的测试理念和测试场景,如人工智能辅助测试、混沌工程等。本书还包含丰富的案例,帮助读者将理论知识与实际工作相结合。我向每一位追求卓越、渴望在软件测试领域持续成长的专业人士,强烈推荐这本不可多得的佳作。
—阮峰,南京争锋信息科技有限公司董事长兼CEO
本书不但介绍了测试左移和测试右移的基本理论,而且也阐述了当前主流的软件测试技术和新的应用场景,非常适合希望在软件测试领域持续提升能力的读者学习。本书还特别介绍了最近正在兴起的各种测试新技术,如混沌测试、精准测试、全链路压测、大数据测试、人工智能测试等,助力读者解决传统测试技术效率不高和无法发现更多软件Bug的问题,对读者具有很好的实践指导作用。
—徐琨,Testin云测CEO
在 AI 时代要玩转软件测试,就看《现代软件测试技术之美》!在留言区参与互动,并点击在看和转发活动到朋友圈,我们将选1名读者获得e读版电子书1本,截止时间5月15日。