新华一城书集店铺主页二维码
新华一城书集 微信认证
上海新华书店官方微信书店
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

开发者测试(第2版)

58.65
运费: ¥ 5.00-20.00
库存: 12 件
开发者测试(第2版) 商品图0
开发者测试(第2版) 商品缩略图0

商品详情

编辑推荐.png

本书是一本面向软件开发者的软件测试教材,旨在从开发者的角度介绍软件测试理论、方法和实践。本书从测试基础概念出发,结合概率统计和图论基础建立软件测试理论分析框架;然后从多样性、故障假设、图分析三个方面构建开发者视角的系统性软件测试方法;最后介绍开发者测试实践的三部曲,即单元测试、集成测试和回归测试。本书适合作为计算机相关专业的教材,也可供从事软件发和测试的工程师、研究人员参考使用。

内容简介.png

本书是一本面向软件开发者的软件测试教材,旨在从开发者的角度介绍软件测试理论、方法和实践。本书从测试基础概念出发,结合概率统计和图论基础建立软件测试理论分析框架;然后从多样性、故障假设、图分析三个方面构建开发者视角的系统性软件测试方法;最后介绍开发者测试实践的三部曲,即单元测试、集成测试和回归测试。同时,本书穿插讲解了部分智能化软件测试的最新研究成果。本书以软件测试理论为主线,阐述了开发者测试方法背后的内在联系和主要区别,以启发读者思考。全书共分为9章,第1~3章主要介绍软件测试理论,第4~6章介绍软件测试方法,第7~9章介绍软件测试实践。软件测试工具、测试案例和实践内容请参阅本书配套线上资源。

作者简介.png

南京大学软件学院教授、博导,主要从事智能软件工程的研究。慕测平台(mooctest.net)创始人、全国大学生软件测试大赛和IEEE国际软件测试大赛发起人,主要从事智能软件工程研究,长期专注于软件测试产学研。担任IEEE Transactions on Reliability 期刊Associate Editor,JSS、SPE和SQJ等期刊Guest Editor,QRS 2016、TSA 2016、QSIC 2013、AST 2013等学术会议的程序委员会共同主席。主持国家自然科学基金面上项目2项、发明专利转让项目1项、发明专利许可项目1项、海关总署金关工程二期项目1项。参与973计划、国家自然科学基金重大国际合作项目和重大研究计划重点项目等若干项。已经在包括软件工程顶级学术期刊ACM TOSEM和IEEE TSE及其他学术会议和期刊等发表论文80多篇,申请专利30余项(已授权15项),部分成果已经在百度、阿里、华为、海关总署、国家软件产品质量监督检验中心等应用,研究成果获2012年度江苏省科学技术奖一等奖和2015年湖北省科技进步一等奖。

【媒体评论】

陈振宇南京大学教授、博士生导师,慕测平台创始人,主要从事智能软件工程研究,长期致力于产教研融合。IEEE国际软件测试大赛发起人,江苏省计算机学会产业工委执行主任,CCF杰出会员与杰出讲者,国家级一流本科课程;软件测试负责人。在国际权威会议和期刊发表论文百余篇,多次荣获ACM SIGSOFT Distinguished Paper和IEEE QRS Best Paper。授权发明专利30余项,部分成果已经在华为、中国船舶、航天科工、国家电网、中国电科等知名企业转化,研究成果获2017年CCF NASAC青年软件创新奖和省部级科技进步奖多项,获2022年国家级教学成果奖一等奖和二等奖。

房春荣南京大学副教授,博士生导师。紫金学者,CCF高级会员,慕测平台核心成员,主要从事智能软件工程研究。主持国家自然科学基金项目3项,国家重点研发项目2项;发表CCF_A类论文50余篇,获得最佳论文1项;授权发明专利10余项,部分成果在知名企业应用。曾担任AST、AIST、ISSSR等国际会议程序委员会共同主席,多次担任软件工程顶会程序委员会委员,参编多项软件工程国家标准。获国家级教学成果奖、CCF TCFTC软件测试青年创新奖等。

赵源南京大学信息管理学院博士后,主要从事知识图谱和大模型双向驱动的系统研究。负责慕测平台的研发与改进,参与多个工具与平台的设计与实现,为全国职业院校技能大赛、全国大学生软件测试大赛提供技术支持。参与研发多项国家重点研发计划课题、国家自然科学基金项目(重点项目),与华为、SAP等知名企业进行合作研发,入选2023年度江苏省;卓越博士后计划。

目录简介.png

目  录前 言第1章 快速入门11.1 多样性测试入门21.1.1 随机测试21.1.2 等价类测试41.1.3 组合测试51.2 故障假设测试入门81.2.1 常见软件故障81.2.2 边界故障假设111.2.3 变异故障假设121.3 图分析测试入门141.3.1 图生成方法141.3.2 图结构测试161.3.3 图元素测试171.4 开发者测试若干示例18本章练习21第2章 基础概念222.1 测试的基础概念222.1.1 常用测试术语222.1.2 测试的理论框架272.1.3 测试的基本问题312.2 开发者测试常用工具352.2.1 常用静态测试工具362.2.2 常用动态测试工具372.2.3 DevOps相关工具392.3 待测程序示例422.3.1 三角形程序Triangle422.3.2 日期程序NextDay432.3.3 均值方差程序MeanVar46本章练习50第3章 Bug理论基础523.1 软件Bug与PIE模型533.1.1 初识Bug533.1.2 PIE模型543.2 Bug理论分析563.2.1 Bug的反向定义563.2.2 Bug的不确定性583.2.3 Bug的非单调性593.2.4 Bug间的干涉性603.3 软件调试633.3.1 Bug理解633.3.2 Bug定位683.3.3 Bug修复70本章练习72第4章 多样性测试784.1 多样性测试理论与方法794.1.1 随机测试794.1.2 等价类测试874.1.3 组合测试904.2 开发者多样性测试974.2.1 代码多样性测试984.2.2 组合多样性测试1024.2.3 行为多样性测试106本章练习110第5章 故障假设测试1125.1 故障假设测试理论与方法1135.1.1 边界值测试1135.1.2 变异测试1195.1.3 逻辑测试1235.2 开发者故障假设测试方法1315.2.1 边界故障假设1315.2.2 变异故障假设1365.2.3 逻辑故障假设138本章练习141第6章 图分析测试1436.1 图测试基础1446.1.1 图的基础概念1446.1.2 控制流图1466.1.3 数据流图1486.1.4 事件流图1506.2 图结构的测试方法1536.2.1 L_路径测试1536.2.2 主路径测试1556.2.3 基本路径测试1576.3 图元素的测试方法1606.3.1 数据流测试1616.3.2 逻辑测试164本章练习171第7章 单元测试1727.1 单元测试基础1737.1.1 概述与最佳实践1737.1.2 模拟单元测试1777.1.3 单元测试评估1807.2 自动化单元测试1827.2.1 单元测试执行1827.2.2 单元测试生成1857.2.3 单元测试演化189本章练习193第8章 集成测试1958.1 集成测试概述1968.1.1 目标与基本流程1968.1.2 集成测试策略1998.1.3 集成测试分析2048.2 接口测试2078.2.1 常用方法与最佳实践2078.2.2 自动化接口测试2098.2.3 智能化接口测试212本章练习216第9章 回归测试2179.1 回归测试概述2189.1.1 目标与定义2189.1.2 回归测试评估2229.1.3 回归测试优先级2259.2 回归测试类型2289.2.1 切片回归测试2289.2.2 回归测试集约简2319.2.3 切片聚类回归测试2349.3 聚类回归测试2389.3.1 动态聚类抽样测试2389.3.2 加权聚类抽样测试2409.3.3 半监督聚类抽样测试245本章练习249

【前言】

前  言

本书是一本面向软件开发者的软件测试教材,旨在从开发者的角度介绍软件测试理论、方法和实践。本书从测试基础概念出发,结合概率统计和图论基础建立软件测试理论分析框架;然后从多样性、故障假设、图分析三个方面构建开发者视角的系统性软件测试方法;最后介绍开发者测试实践的三部曲,即单元测试、集成测试和回归测试。同时,本书穿插讲解了部分智能化软件测试的最新研究成果。本书以软件测试理论为主线,阐述了开发者测试方法背后的内在联系和主要区别,以启发读者思考。全书共分为9章,第1~3章主要介绍软件测试理论,第4~6章介绍软件测试方法,第7~9章介绍软件测试实践。软件测试工具、测试案例和实践内容请参阅本书配套线上资源。本书主要面向具有一定编程基础的高年级本科生,教师可以根据自己的习惯编排教学次序。本书导读与教学建议如图1所示。

图1 本书导读与教学建议

第1章是快速入门,通过一个简单的三角形程序Triangle,介绍了软件测试的基本内容。1.1节介绍了多样性测试原则,包括随机测试、等价类测试和组合测试。1.2节介绍了故障假设测试原理,包括常见软件故障、边界故障假设和变异故障假设。1.3节介绍了图分析测试方法,包括图生成方法、图结构测试和图元素测试。通过学习本章,读者可以对软件测试常用方法有一个初步的了解。

第2章是基础概念。2.1节简要介绍了软件测试的基础概念,包括常用术语和测试理论框架,并基于理论框架重新审视了软件测试三大基本问题,包括测试生成、测试预言和测试终止问题,这三大问题贯穿全书,成为软件测试理论与方法的核心。本章为后续章节的深入学习奠定了基础。2.2节介绍了开发者测试常用工具, 包括静态测试工具、动态测试工具和DevOps相关工具。2.3节介绍了软件测试教材常用的三个待测程序示例,包括三角形程序 Triangle(输入三个边,输出三角形的类型)、日期程序NextDay(输入某一天的年月日,输出后一天的年月日)和均值方差程序 MeanVar(输入一组数字,计算其算术平均值 Mean 和方差 Var),这三个待测程序贯穿全书,但后续章节也会引入一些更加复杂的软件项目作为示例。

第3章是Bug理论基础,介绍了Bug的概念、分类和生命周期等。3.1节首先简要介绍了软件Bug的历史,名词概念的借鉴和延伸是工程技术领域的常用手段。本节还介绍了PIE模型,建立执行_感染_传播的基本分析框架,为Bug的准确定义和统一概念提供基础。3.2节深入分析了Bug的四大性质。首先介绍Bug的反向定义,即通过执行测试的动态分析和故障修复来定义Bug。这样的反向定义势必带来Bug的不确定性。对于任意程序和失效测试,存在不同的修复方法使得测试通过,从而可以派生出不同的Bug定义。本节还介绍Bug的非单调性定义,以及它给测试和修复带来的障碍。借鉴物理波的相长干涉和相消干涉概念,本节定义Bug间的干涉,并分析干涉给测试和调试带来的诸多挑战。在PIE模型的基础上,3.3节介绍了软件调试三部曲,即面向失效的Bug理解、面向错误的Bug定位、面向故障的Bug修复,从而衔接了开发者的测试与调试。本章可帮助读者更好地理解软件测试中Bug的本质和处理方法。

第4章是多样性测试。4.1节介绍了多样性测试理论与方法,包括随机测试、非均匀的随机测试、反馈引导距离极大化的自适应随机测试以及路径遍历引导性随机测试。等价类假设策略及其常用方案包括等价类划分策略、等价类划分和随机测试相结合的理论与方法。组合测试基本思路包括经典的t_强度组合测试准则、约束组合测试准则和可变强度组合测试准则,采用基于随机贪心的经典组合测试策略AETG等方法来完成测试生成优化。4.2节介绍开发者多样性测试,代码多样性测试要求程序在测试运行时实现对其程序结构的覆盖遍历;组合多样性测试通过分支组合覆盖测试实现分支条件的组合枚举和测试生成;行为多样性测试通过将路径行为特征提取和聚类抽样相结合,适应不同规模的开发者测试要求。本章为开发者提供了基础且丰富的测试方法选择。

第5章是故障假设测试,5.1节介绍了如何基于故障假设进行测试,以及故障假设测试的方法和技巧。5.2节首先介绍最常用的边界故障假设,包括输入边界、中间边界和输出边界;然后介绍了变异故障假设,包括变异分析的基本概念、变异算子选择方法及其相关理论性质,还介绍了变异分析在逻辑控制密集型的安全攸关软件中的应用,包括将程序逻辑抽象成布尔范式进行故障建模;最后介绍的逻辑故障假设集中考虑逻辑相关的故障假设。本章可帮助开发者掌握另外一种简单有效的软件测试策略。

第6章是图分析测试,介绍了图分析测试的基本概念、方法和技术。图被广泛应用于软件测试覆盖准则的定义和分析。6.1节介绍图测试理论方法和传统的结构化测试方法。图测试要求测试人员覆盖图的结构或元素,通过遍历图的特定部分完成测试目标。图测试理论方法可以来自任何软件抽象图,而不仅是控制流图、数据流图和事件流图。6.2节将传统的结构化测试方法分为三大类:L_路径测试、主路径测试和基本路径测试。其中,L_路径测试是根据图中路径长度进行简单延伸的策略;主路径测试主要针对循环带来L_路径测试的无限问题;基本路径测试通过引入独立路径的概念,覆盖最大独立路径集合,这些路径对应了这个线性空间的基向量。6.3节中的数据流测试关注变量的定义和使用元素测试形式,逻辑覆盖准则则以DC、CC、CoC、MCDC为代表,通过示例说明各个准则直接的强弱蕴涵关系,强调MCDC在工业应用中的价值。本章为读者提供了一种基于图论的软件测试方法。

第7章是单元测试,针对软件的最小可测试单元进行讨论。7.1节首先介绍单元测试的概述与最佳实践,特别强调了自动化测试;然后介绍模拟单元测试常用方法和单元测试评估方法,并阐述了全国大学生软件测试大赛的评估策略META。7.2节介绍自动化单元测试三部曲:执行、生成和演化。以JUnit为例阐述了单元测试执行框架,介绍了启发式搜索覆盖结合变异分析的生成方法、常用工具EvoSuite及其智能化改进思路,并结合大模型从修复的角度进行测试演化以满足质量保障需求。

第8章是集成测试,检测组件之间交互的正确性,发现组件间可能存在的接口问题,提高整体软件系统的质量。8.1节首先介绍集成测试的目标与基本流程,以及常用策略和分析评估方法。8.2节介绍集成测试的核心内容:接口测试。首先介绍接口测试的常用方法与最佳实践,阐述接口测试的应用案例。然后介绍接口测试的常用自动化方法和工具:Postman用于API接口测试,Selenium用于Web接口测试,JMeter用于性能接口测试。最后强调了从自动化到智能化的结合。

第9章是回归测试,验证在修改或添加新功能后新系统能否仍然正常运行。9.1节首先介绍回归测试的目标与基本概念,回归测试的一个评估分析框架以及四个评估标准(完备性、准确性、效率和通用性),测试优先级以及APFD度量准则。9.2节介绍常用程序分析辅助手段程序切片,讨论如何基于程序切片实现回归测试,测试用例约简的理论与常用方法,并结合执行剖面聚类分析失效混合回归测试方法。9.3节介绍聚类抽样回归测试,记录特定的执行剖面进行聚类测试选择,包括动态聚类抽样策略ESBS、加权聚类抽样策略WAS和半监督聚类方法SSKM的成对约束策略。

本书适合作为软件工程、计算机科学与技术、信息安全等专业的教材,也可供从事软件研发和测试的工程师、研究人员参考。通过学习本书,读者可以掌握开发者视角的软件测试基本知识和实践技能,并且深入思考软件测试的理论和方法。期待本书能够成为广大读者的良师益友,帮助读者在软件测试领域取得更好的成果。

编者

新华一城书集店铺主页二维码
新华一城书集 微信公众号认证
上海新华书店官方微信书店
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

开发者测试(第2版)

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:xhbookmall
新华一城书集微书店官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏