●章软件测试概述(1)
1.1为什么要进行软件测试(1)
1.1.1致命的辐射治疗(1)
1.1.2消失在太空(2)
1.1.3阿丽亚娜5型火的杯具处女秀(2)
1.1.4一触即发的第三次世界大战(2)
1.2什么是软件测试(2)
1.2.1软件测试学科的形成(3)
1.2.2软件测试的正反两种思维(4)
1.2.3软件测试的其他观点(4)
1.2.4软件测试的完整定义(5)
1.2.5软件测试的原则(5)
1.3如何开展软件测试(6)
1.3.1测试与开发之间的关系(7)
1.3.2软件测试的模型与过程(8)
1.3.3软件测试周期(9)
1.4小结(10)
习题1(10)
第2章软件测试的相关概念(12)
2.1软件质量(12)
2.1.1软件质量的含义(12)
2.1.2软件质量保证(13)
2.2软件缺陷(14)
2.2.1软件缺陷产生的原因(15)
2.2.2软件缺陷的构成(16)
2.2.3软件缺陷修复的代价(17)
2.3软件测试的分类(17)
2.4测试计划(20)
2.5测试用例(21)
2.6测试环境(21)
2.7测试报告(22)
2.8小结(22)
习题2(22)
第3章黑盒测试(24)
3.1黑盒测试的基本概念(24)
3.2等价类划分法(25)
3.2.1等价类的划分(25)
3.2.2划分等价类的方法(26)
3.2.3等价类划分法测试用例设计(27)
3.3边界值分析法(31)
3.3.1边界条件(31)
3.3.2边界值分析(32)
3.3.3边界值分析法测试用例设计(34)
3.4边缘测试(37)
3.5判定表法(37)
3.5.1判定表的组成(37)
3.5.2基于判定表的测试(39)
3.5.3基于判定表测试的指导方针(40)
3.6因果图法(41)
3.6.1因果图法的基本概念(41)
3.6.2因果图法概述(42)
3.7场景法(45)
3.8其他黑盒测试方法(47)
3.8.1错误推测法(47)
3.8.2正交表法(47)
3.8.3功能图法(50)
3.8.4黑盒测试方法的选择(51)
3.9小结(52)
习题3(53)
第4章白盒测试(58)
4.1白盒测试的基本概念(58)
4.2代码检查法(60)
4.2.1代码检查的概念(61)
4.2.2代码检查的方式(61)
4.2.3代码检查项目(63)
4.3逻辑覆盖测试法(63)
4.3.1语句覆盖(64)
4.3.2判定覆盖(64)
4.3.3条件覆盖(65)
4.3.4判定蔡跫覆盖(65)
4.3.5条件组合覆盖(65)
4.3.6路径覆盖(66)
4.4基本路径测试(66)
4.5其他白盒测试方法(69)
4.5.1数据流测试(69)
4.5.2程序插桩(70)
4.5.3域测试(72)
4.5.4程序变异测试(72)
4.5.5白盒测试方法的选择(73)
4.6灰盒测试(73)
4.7小结(74)
习题4(74)
第5章单测试(79)
5.1单测试概述(79)
5.1.1单测试的环境(79)
5.1.2单测试的原则及意义(80)
5.2单测试的内容(81)
5.3单测试的过程(81)
5.4单测试的主要技术(82)
5.5单测试工具(82)
5.5.1单测试工具简介(82)
5.5.2UnitTest介绍(83)
5.5.3UnitTest的基本用法(84)
5.5.4覆盖率统计工具Coverage(92)
5.6小结(93)
习题5(93)
第6章集成测试(95)
6.1集成测试概述(95)
6.1.1集成测试的概念(95)
6.1.2集成测试的原则(97)
6.1.3集成测试过程(97)
6.2基于功能分解的集成(98)
6.2.1自顶向下集成(98)
6.2.2自底向上集成(99)
6.2.3三明治集成(101)
6.3集成测试技术(101)
6.3.1集成测试技术及内容(101)
6.3.2集成测试工具Jenkins(102)
6.3.3构建基于Python的持续交付(104)
6.4小结(104)
习题6(105)
第7章系统测试(106)
7.1系统测试概述(106)
7.1.1系统测试的含义(106)
7.1.2系统测试的过程(106)
7.2系统测试的内容(107)
7.2.1系统功能测试(107)
7.2.2系统性能测试(109)
7.2.3系统安全性测试(120)
7.2.4用户界面测试(122)
7.2.5其他乏能性测试(123)
7.3小结(125)
习题7(125)
第8章自动化测试(127)
8.1自动化测试的内涵(127)
8.1.1手工测试的特点(128)
8.1.2自动化测试的特点(128)
8.1.3自动化测试的引入(129)
8.2自动化测试技术(132)
8.2.1静态代码分析(132)
8.2.2录制与回放(133)
8.2.3脚本技术(134)
8.3自动化测试工具(138)
8.3.1测试工具的分类(138)
8.3.2白盒测试工具(140)
8.3.3黑盒测试工具(152)
8.3.4系统性能测试工具(165)
8.3.5安全性测试工具(171)
8.3.6测试管理工具(172)
8.4自动化测试的开展(174)
8.4.1树立正确的自动化测试认识(174)
8.4.2合理选择自动化测试的导入时机(174)
8.4.3选择合适的测试工具(175)
8.4.4组建自动化测试系统(175)
8.4.5合理地调度资源(176)
8.5小结(177)
习题8(177)
第9章实用软件测试技术(179)
9.1Web应用系统测试(179)
9.1.1Web应用系统测试基础(179)
9.1.2界面测试(180)
9.1.3功能测试(181)
9.1.4性能测试(186)
9.2嵌入式测试(186)
9.3测试(187)
9.3.1测试分类(187)
9.3.2移动应用软件测试(189)
9.4大数据测试技术(190)
9.4.1大数据测试的基本思想(190)
9.4.2大数据测试的基本流程(190)
9.4.3工具的选择(191)
9.5回归测试(192)
9.6小结(192)
习题9(193)
0章软件测试管理(195)
10.1软件测试管理概述(195)
10.2测试管理计划(196)
10.2.1测试计划模板(197)
10.2.2测试计划跟踪与监控(199)
10.3软件测试文档(201)
10.3.1IEEE/ANSI测试文档概述(201)
10.3.2软件周期各阶段测试交付的文档(202)
10.3.3测试文档类型(203)
10.4测试人员组织(206)
10.4.1测试团队的建设(206)
10.4.2软件测试经理(208)
10.4.3测试小组的分类(209)
10.4.4测试团队成员的合适人选(209)
10.5配置管理(211)
10.6测试风险管理(212)
10.7测试成本管理(214)
10.7.1软件测试成本管理概述(214)
10.7.2软件测试成本管理的一些基本概念(214)
10.7.3软件测试成本管理的基本原则和措施(216)
10.8测试管理工具(216)
10.8.1TestDirector测试管理工具及应用(216)
10.8.2TestManager测试管理工具简介(222)
10.8.3TestLink测试管理工具简介(223)
10.9小结(224)
习题10(225)
参考答案(226)
内容简介
本书主要介绍了软件测试的一般原理和各种测试方法,并适当加入了目前测试领域的各种优选理论和技术,以方便读者了解前沿的测试理念和技术。本书精心设计了浅显易懂的测试案例,甄选了开源测试工具,加入了Python相关测试内容,方便读者快速了解工具使用方法及其在软件测试中扮演的角色。本书兼顾了软件评测师和ISTQB(靠前软件测试资质认证委员会)的考试大纲,理论与实践并重,为获取软件测试职业证书奠定了基础。本书可以作为高等院校软件工程专业、计算机科学与技术专业、计算机应用专业,以及其他相关专业的本科生教材,同时可供计算机软件专业以及其他相关专业的科研人员、软件开发人员、软件测试人员以及相关大专院校的师生参考。