华信教育资源网
现代软件测试技术权威指南
作   译   者:茹炳晟 出 版 日 期:2025-03-01
出   版   社:电子工业出版社 维   护   人:符隆美 
书   代   号:TP494990 I S B N:9787121494994

图书简介:

在过去的十几年中,软件测试技术的演进突破了曾经的局限,发生了翻天覆地的变化,在新的领域有了更广泛的应用场景。 本书从现代软件测试技术的视角,深入探讨近年来涌现和快速发展的测试技术,以及在快速变化的技术环境中依然保持高度相关性和实践价值的方法论与技巧。本书内容主要包括现代软件测试的工程理念,测试策略、分析和设计,测试与系统架构的关系,各项测试技术精要,自动化测试框架的设计与实现,AI产品、大数据产品、区块链、图形图像相关测试技术,以及大模型赋能下的测试智能化等。 我们希望这是一本软件测试技术领域的"百科全书”,无论你是希望在专业领域不断精进的技术专家,还是希望打下扎实基础的入门读者,都能从本书中汲取宝贵的经验。
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    在过去的十几年中,软件测试技术的演进突破了曾经的局限,发生了翻天覆地的变化,在新的领域有了更广泛的应用场景。 本书从现代软件测试技术的视角,深入探讨近年来涌现和快速发展的测试技术,以及在快速变化的技术环境中依然保持高度相关性和实践价值的方法论与技巧。本书内容主要包括现代软件测试的工程理念,测试策略、分析和设计,测试与系统架构的关系,各项测试技术精要,自动化测试框架的设计与实现,AI产品、大数据产品、区块链、图形图像相关测试技术,以及大模型赋能下的测试智能化等。 我们希望这是一本软件测试技术领域的"百科全书”,无论你是希望在专业领域不断精进的技术专家,还是希望打下扎实基础的入门读者,都能从本书中汲取宝贵的经验。

    图书详情

    ISBN:9787121494994
    开 本:16(185*235)
    页 数:836
    字 数:1204

    本书目录

    目    录
     第1章  现代软件测试的工程理念	1
    1.1  软件的可测试性	1
    1.1.1  可测试性的定义	1
    1.1.2  可测试性引发的问题	2
    1.1.3  可测试性的三个核心观点	4
    1.1.4  可测试性的四个维度	5
    1.1.5  不同级别的可测试性与工程实践	8
    1.2  测试左移和开发者自测	13
    1.2.1  传统瀑布模型下软件测试面临的挑战	13
    1.2.2  测试左移的早期实践	14
    1.2.3  软件测试工程化面临的挑战与机遇	16
    1.2.4  测试左移的进阶实践	19
    1.2.5  测试左移的深度思考	21
    1.3  测试右移的工程实践	21
    1.3.1  生产环境冒烟测试	22
    1.3.2  全链路压力测试	22
    1.3.3  混沌工程	24
    1.3.4  红蓝对抗	26
    1.3.5  A/B测试	27
    1.3.6  灰度发布	28
    1.3.7  线上监控	30
    1.3.8  用户体验分析	31
    1.4  DevSecOps:从安全测试到安全工程	34
    1.4.1  传统软件安全开发体系面临的挑战	34
    1.4.2  新技术对软件安全开发提出的挑战	35
    1.4.3  DevSecOps概念的诞生与内涵	36
    1.4.4  DevSecOps工具	37
    1.4.5  典型DevSecOps流程解读	39
    1.5  DevPerfOps:从性能测试到性能工程	41
    1.5.1  DevPerfOps的由来	41
    1.5.2  全链路压测的局限性	41
    1.5.3  DevPerfOps全流程解读	42
    第2章  软件测试策略	46
    2.1  什么是测试策略	46
    2.1.1  测试策略不等于测试方针	47
    2.1.2  测试策略不等于测试计划	48
    2.1.3  测试策略不等于测试方案	48
    2.1.4  测试策略本质上是一种选择	49
    2.2  常用的测试策略	50
    2.2.1  基于产品质量的测试策略	50
    2.2.2  基于产品特性价值的测试策略	52
    2.2.3  不同产品阶段下的测试策略	57
    2.2.4  基于探索的测试策略——启发式测试策略	58
    2.2.5  自动化持续测试策略	60
    2.3  测试策略的制定方法	62
    2.3.1  四步测试策略制定法	63
    2.3.2  产品质量评估模型	65
    2.3.3  组合缺陷分析技术	69
    2.4  测试风险分析	81
    2.4.1  测试风险识别	82
    2.4.2  测试风险评估	85
    2.4.3  测试风险应对	86
    2.5  不同研发模式下的测试分层	88
    2.5.1  瀑布模式下的测试分层	88
    2.5.2  敏捷模式下的测试分层	89
    第3章  测试分析和测试设计	93
    3.1  测试分析和测试设计概述	93
    3.1.1  好的测试设计的“味道”	93
    3.1.2  当前测试设计的困顿	93
    3.1.3  测试分析和测试设计是两个不同的活动	94
    3.2  测试分析的方法	95
    3.2.1  深入理解质量是做好测试分析的基础	95
    3.2.2  软件产品质量模型	96
    3.2.2  深入理解测试类型	103
    3.2.3  通过质量属性来探索测试方法	104
    3.2.4  通过质量属性确定测试的深度和广度	105
    3.2.5  使用车轮图进行测试分析	105
    3.3  测试设计的方法	107
    3.3.1  基于路径分析的测试设计方法	107
    3.3.2  基于输入-输出表的测试设计方法	118
    3.3.3  基于等价类-边界值的测试设计方法	119
    3.3.4  基于因子表的测试设计方法	123
    3.3.5  几种测试设计方法的比较	127
    第4章  软件测试与系统架构	129
    4.1  典型应用系统架构与测试关键指标	129
    4.1.1  典型应用系统架构	129
    4.1.2  客户端请求的网络通信	131
    4.1.3  与测试相关的系统架构关键指标	132
    4.2  缓存架构及对缓存测试的影响	134
    4.2.1  缓存架构	134
    4.2.2  缓存对测试的影响	136
    4.3  异步消息驱动架构及其对测试的影响	137
    4.3.1  异步消息驱动架构	137
    4.3.2  异步消息驱动架构对测试的影响	138
    4.4  负载均衡架构及灰度发布对测试的影响	139
    4.4.1  负载均衡架构	139
    4.4.2  灰度发布及其对测试的影响	141
    4.5  分布式数据库架构及高可用性测试	142
    4.5.1  分布式数据库架构	142
    4.5.2  分布式数据的高可用性测试	144
    4.6  微服务架构及其对测试的影响	145
    4.6.1  微服务架构	146
    4.6.2  微服务架构对测试的影响	147
    4.7  大数据架构及机器学习对测试的影响	148
    4.7.1  大数据架构	148
    4.7.2  机器学习对测试的影响	149
    第5章  Web测试技术精要	151
    5.1  Web测试技术概述	151
    5.1.1  Web测试技术要点	151
    5.1.2  Web自动化测试技术	155
    5.2  基于编程语言的Web测试框架	157
    5.2.1  Selenium	157
    5.2.2  Airtest	164
    5.2.3  Playwright	165
    5.3  基于编程语言的测试代码的组织	169
    5.3.1  未经组织的测试代码	171
    5.3.2  组织后的测试代码	173
    5.4  Web自动化测试的痛点	180
    5.5  高效执行自动化测试	181
    5.5.1  并行模式	181
    5.5.2  无头模式	183
    5.5.3  模拟登录	183
    5.6  稳定的自动化测试	184
    5.6.1  基于页面或元素状态的等待	184
    5.6.2  重试机制	186
    5.7  视觉验证测试	186
    5.7.1  Appilitools Eyes	187
    5.7.2  Recheck-Web	190
    5.8  自我修复测试	193
    5.8.1  Healenium	193
    5.8.2  Recheck-Web	198
    5.9  无代码/低代码自动化测试	201
    第6章  移动端测试技术精要	204
    6.1  移动端测试基础技能	204
    6.1.1  通过HTTP Debug Proxy深入
    了解移动端测试	204
    6.1.2  设计测试用例	205
    6.2  移动端测试进阶	208
    6.2.1  UI自动化测试	208
    6.2.2  稳定性测试	220
    6.3  移动端测试的左移和右移	224
    第7章  接口测试技术精要	226
    7.1  接口测试概述	226
    7.2  接口测试关键技术	227
    7.2.1  模拟协议客户端	228
    7.2.2  接口逻辑模拟	228
    7.2.3  数据驱动	236
    7.2.4  测试断言	239
    7.2.5  解耦技术	239
    7.2.6  关键字驱动	242
    7.2.7  测试报告	242
    7.3  自动化接口测试关键技术	243
    7.4  接口测试的新技术	244
    7.4.1  契约测试	244
    7.4.2  流量录制	245
    7.4.3  精准测试	246
    7.5  接口测试平台化	246
    7.6  测试右移下的接口测试	249
    第8章  代码级测试技术精要	250
    8.1  代码级测试技术概述	250
    8.2  静态代码分析技术	251
    8.2.1  静态代码分析概述	251
    8.2.2  静态代码分析的优势	253
    8.2.3  静态代码分析方法的类型	254
    8.2.4  静态代码分析的原理	256
    8.2.5  常见静态代码分析工具	258
    8.2.6  静态代码分析工具面临的挑战	261
    8.2.7  静态代码分析工具的选择	262
    8.3  代码评审技术	263
    8.3.1  代码评审概述	263
    8.3.2  代码评审的价值	263
    8.3.3  代码评审的类型	264
    8.3.4  代码评审的内容	265
    8.3.5  代码评审最佳实践	266
    8.4  契约测试技术	274
    8.4.1  契约测试概述	274
    8.4.2  契约测试基本要素	277
    8.4.3  继承与契约	280
    8.4.4  一些说明	283
    8.5  单元测试技术	286
    8.5.1  单元测试概述	286
    8.5.2  设计方法	291
    8.5.3  测试先行	300
     8.6  智能测试技术	301
    8.6.1  智能测试技术概述	301
    8.6.2  智能测试技术阶段划分	302
    8.6.3  智能测试关键技术	304
    第9章  性能测试技术精要	312
    9.1  性能市场现状	312
    9.2  RESAR性能工程概述	313
    9.2.1  RESAR性能工程	313
    9.2.2  性能容量规划	326
    9.2.3  性能工具解析	328
    9.3  性能测试阶段	329
    9.3.1  需求阶段	329
    9.3.2  准备阶段	333
    9.3.3  执行阶段	334
    9.3.4  报告阶段	336
    9.3.5  环比阶段	337
    9.4  性能监控分析逻辑	338
    9.4.1  操作系统监控分析逻辑	338
    9.4.2  开发语言监控分析逻辑	353
    9.4.3  数据库监控分析逻辑	366
    9.5  性能分析案例	391
    9.5.1  场景运行数据	391
    9.5.2  分析系统架构	391
    9.5.3  拆分响应时间	392
    第10章  可靠性测试技术精要	420
    10.1  可靠性测试概述	420
    10.1.1  可靠性测试目的	420
    10.1.2  可靠性测试设计	420
    10.1.3  可靠性测试环境	422
     10.1.4  可靠性测试执行	422
    10.1.5  可靠性测试工具	424
    10.1.6  可靠性评估指标	424
    10.1.7  可靠性测试报告	426
    10.2  可靠性设计验证	426
    10.2.1  可靠性故障管理验证	427
    10.2.2  可靠性冗余设计验证	428
    10.2.3  可靠性容灾设计验证	428
    10.2.4  可靠性过载控制验证	430
    10.3  可靠性负向验证	431
    10.3.1  故障模式	431
    10.3.2  故障预案	432
    10.3.3  混沌工程	433
    第11章  自动化测试框架设计和实现	435
    11.1  自动化测试框架概述	435
    11.1.1  自动化测试框架的定义	435
    11.1.2  自动化测试框架的目标	435
    11.1.3  自动化测试框架和测试库的区别	436
    11.2  自动化测试框架类型	437
    11.2.1  简单测试框架	437
    11.2.2  x-Driven测试框架	439
    11.2.3  混合型测试框架	442
    11.2.4  不同类型测试框架对比	443
    11.3  自动化测试框架的通用实现原理	444
    11.3.1  分层架构模型	444
    11.3.2  gTAA模型	446
    11.3.3  通用型测试框架	447
    11.4  自动化测试框架开发设计指南	448
    11.4.1  测试框架必备特征	448
    11.4.2  代码编写原则	449
    11.4.3  设计模式的使用	455
    第12章  测试基础设施能力建设	462
    12.1  测试执行环境架构设计基础	462
    12.1.1  测试执行环境概述	462
    12.1.2  测试基础架构的设计	464
    12.1.3  早期的测试基础架构	464
    12.1.4  经典的测试基础架构	465
    12.2  测试执行环境架构设计进阶	466
    12.2.1  基于Docker实现的Selenium 
    Grid测试基础架构	466
    12.2.2  引入统一测试执行平台的测试基础架构	467
    12.2 .3  基于Jenkins集群的测试基础架构	469
    12.2.4  测试负载自适应的测试基础架构	470
    12.2.5  测试基础架构的选择	471
    12.3  实战案例:大型全球化电商网站的测试基础架构设计	471
    第13章  软件测试新实践和新方法	477
    13.1  测试驱动开发	477
    13.1.1  测试驱动开发的基本理念	477
    13.1.2  UTDD、ATDD与BDD	479
    13.1.3  测试驱动开发的误区	482
    13.2  精准测试	483
    13.2.1  精准测试的技术实现	484
    13.2.2  精准测试的前沿探索	487
    13.3  代码注入测试	489
    13.3.1  灰盒测试面临的挑战	489
    13.3.2  OOP的困境及AOP的解决思路	490
    13.3.3  AOP基本概念及其启示	493
    13.3.4  基于AOP的测试实战案例	498
    13.3.5  AOP的局限性	512
    13.4  混沌工程	512
    13.4.1  混沌工程的起源	513
    13.4.2  混沌工程的原则	513
    13.4.3  攻防演练	515
    13.4.4  混沌工程的相关工具	515
    13.5  变异测试	518
    13.5.1  变异测试的基本流程	519
    13.5.2  变异测试的核心概念	520
    13.5.3  变异测试的应用案例	522
    13.5.4  变异测试的工程化实践	525
    13.6  探索式测试	527
    13.6.1  探索式测试的基本理念	527
    13.6.2  探索式测试的思维模型	528
    13.6.3  探索式测试的方法	529
    13.6.4  探索式测试的开展	533
    13.6.5  探索式测试的误区	534
    13.7  微服务测试	535
    13.7.1  云原生和微服务	535
    13.7.2  微服务测试体系建设	541
    第14章  智能化测试技术	557
    14.1  从测试视角看AI	557
    14.2  基于数据的智能化测试	561
    14.3  基于目标的智能化测试	564
    14.4  智能化测试的实践	570
     第15章  AI产品测试技术	574
    15.1  AI产品测试技术概述	574
    15.1.1  AI相关概念	574
    15.1.2  AI产品对测试提出的挑战	575
    15.2  AI产品的功能测试	576
    15.2.1  AI产品功能测试面临的困惑	577
    15.2.2  蜕变测试	578
    15.2.3  AI产品的测试评估	579
    15.3  AI产品的非功能测试	583
    15.3.1  模型相关的性能度量指标	583
    15.3.2  AI产品相关的性能指标	586
    15.3.3  伦理道德验证	587
    第16章  大数据产品测试技术	591
    16.1  大数据基础知识	591
    16.1.1  初识大数据	591
    16.1.2  什么是大数据	592
    16.1.3  主流大数据架构和产品	593
    16.2  大数据产品测试与传统软件测试	594
    16.2.1  大数据产品测试与传统软件测试的联系	594
    16.2.2  大数据产品测试面临的挑战	595
    16.3  测试数据的准备	597
    16.3.1  测试数据的重要性	597
    16.3.2  数据准备方式	597
    16.4  大数据产品的功能性测试	602
    16.4.1  ETL测试	602
     16.4.2  数据质量测试	607
    16.5  大数据产品的非功能性测试	610
    16.5.1  大数据产品非功能性测试面临的挑战	611
    16.5.2  非功能性测试设计	612
    第17章  区块链测试技术	618
    17.1  区块链概述	618
    17.1.1  区块链定义	618
    17.1.2  区块链特征	618
    17.1.3  区块链分类	619
    17.1.4  区块链的应用场景	619
    17.2  区块链测试技术总览	620
    17.2.1  区块链通用架构体系	621
    17.2.2  区块链“四横四纵”测试体系	625
    17.3  DApp测试	626
    17.3.1  DApp概述	626
    17.3.2  专项测试	630
    17.3.3  异常测试	640
    17.3.4  安全测试	644
    17.3.5  稳定性测试	648
    17.4  分布式共识测试	651
    17.4.1  常见共识算法	651
    17.4.2  专项测试	654
    17.4.3  异常测试	667
    17.4.4  安全测试	676
    17.4.5  稳定性测试	681
    17.5  智能合约测试	685
    17.5.1  智能合约	685
    17.5.2  专项测试	696
    17.5.3  异常测试	709
    17.5.4  安全测试	715
    17.5.5  稳定性测试	729
    17.6  P2P网络测试	731
    17.6.1  P2P	731
    17.6.2  专项测试	738
    17.6.3  异常测试	745
    17.6.4  安全测试	752
    17.6.5  稳定性测试	760
    第18章  图形图像相关应用的测试技术实践	765
    18.1  机器视觉产品的测试概述	765
    18.1.1  机器视觉概述	765
    18.1.2  测试机器视觉产品的挑战和策略	765
    18.2  AI技术在画质增强方向的产品	767
    18.2.1  画质客观测试	777
    18.2.2  画质测试的效能提升实践	779
    18.3  AI技术在人脸识别方向的产品	780
    18.3.1  人脸解锁概述	780
    18.3.2  AI技术在人群画像、人群追踪
    客流技术方向综合应用的产品	787
    第19章  大模型赋能下的测试智能化	790
    19.1  大模型和大语言模型	790
    19.1.1  大语言模型与代码生成	791
    19.1.2  多模态大模型	794
    19.2  大模型时代的智能化测试	795
    19.2.1  软件测试本质探讨	796
     19.2.2  更聪明的猴子	798
    19.3  大模型智能化测试的探索实战	799
    19.3.1  智能探索型测试	799
    19.3.2  测试用例生成	803
    19.3.3  测试结果分析和诊断建议	805
    19.3.4  利用Hydra Lab搭建智能化测试平台	805
    第20章  XRunner应用案例	809
    20.1  信息系统领域性能保障痛点	809
    20.1.1  业务挑战	809
    20.1.2  技术挑战	810
    20.1.3  工具挑战	810
     20.2  解决思路	812
    20.2.1  技术突破	812
    20.2.2  业务突破	814
    20.2.3  工具突破	815
    20.3  案例	815
    20.3.1  背景简介	815
    20.3.2  压测需求	816
    20.3.3  压测目标	816
    20.3.4  压测方案	816
    20.3.5  压测方法和范围	816
    20.4  实践后的效果对比与总结	818
    20.4.1  压测结果	818
    20.4.2  总结报告	820
    
    展开

    前     言

    前    言
    站在2024年这一历史节点回顾软件测试领域的发展历程,我们不难发现,在过去的十几年中,从理论框架到实际应用,软件测试技术的演进突破了曾经的局限,发生了翻天覆地的变化。基于这样的背景,在QECon组委会的支持下,我们着手设计并牵头编写了本书,试图全方位、系统化介绍软件测试技术在各个领域的发展和应用。
    本书从一开始便站在现代软件测试技术的视角进行深入探讨。这里所说的“现代”,不仅仅是指近年来涌现和快速发展的测试技术,还指那些在快速变化的技术环境中依然保持高度相关性和实践价值的方法论与技巧。本书所介绍的软件测试技术,不仅仅局限于自动化测试框架、测试平台或性能测试工具等具体的技术手段还包括测试策略的制定、测试设计的方法论等多个方面,这些都是软件测试过程中至关重要的工程实践。通过全面的讨论,本书旨在帮助读者更好地理解软件测试技术的核心概念和应用场景。
    我们希望为读者呈现一个全面而深刻的视角。书中的内容不仅紧跟行业的最新发展动态,包括最前沿的技术实践和发展趋势,使读者能够时刻把握行业脉搏,跟上技术发展的步伐,还着力于介绍那些经过时间验证、依然具有重要价值的经典知识与技能。
    本书是20多位软件测试专家的智慧结晶,他们在各自的技术领域和实践操作中都拥有丰富的经验和深厚的背景,都贡献了各自最擅长、最有价值的内容。本书的内容编写始终以实用性为导向,旨在为读者提供最直接、最有效的指导和建议。与其说本书是一本理论性著作,倒不如说它是一部高度浓缩的实践宝典。我们希望这是一本软件测试技术领域的“百科全书”,无论你是希望在专业领域不断精进的技术专家,还是希望打下扎实基础的入门读者,都能从本书中汲取宝贵的经验。
    全书共有20章,包括90多节,主要涉及现代软件测试的工程理念,测试策略、分析和设计,测试与系统架构的关系,各项测试技术精要,自动化测试框架的设计与实现,AI产品、大数据产品、区块链、图形图像相关测试技术,以及大模型赋能下的测试智能化和XRunner应用案例等内容。
    总而言之,希望本书能成为一本既紧跟时代发展,又具有深度与广度的专业指南书,希望每一位从事软件测试或对软件测试感兴趣的读者,都能从中获得丰富的收获与启发。书中难免有疏漏与不足之处,我们诚恳地期待你提出宝贵的意见与建议。
    
    茹炳晟   陈磊
    2024年11月 
    
    展开

    作者简介

    茹炳晟,腾讯Tech Lead,腾讯研究院特约研究员,腾讯集团技术委员会委员,中国计算机学会(CCF)TF研发效能SIG主席,《软件研发效能度量规范》标准核心编写专家,中国商业联合会互联网应用技术委员会智库专家,中国通信标准化协会TC608云计算标准和开源推进委员会云上软件工程工作组副组长,多本技术畅销书作者。
  • 样 章 试 读
    本书暂无样章试读!
  • 图 书 评 价 我要评论
华信教育资源网