本书内容共分为四篇:基础篇(第1~4章)包括软件测试的定义、测试类型及软件测试项目实测应用等;设计篇(第5~8章)包括软件测试设计技术,如黑盒测试用例设计方法、白盒测试用例设计方法,以及这些方法在实际项目中的应用等;技术篇(第9~11章)包括自动化测试原理、UI及接口自动化测试技术、常用自动化测试框架及自动化项目应用;扩展篇(第12~14章)包括性能测试、移动端测试及渗透性测试等。本书注重与软件测试技术接轨,强调将理论融入实践案例中,突破原有教材体系的理论框架,更多地将动手实践引入其中,具有以项目为导向、覆盖面广、重点突出、编排人性化、立体式教学等特点。本书既适合作为高等院校计算机类相关专业的教材,也适合从事软件开发、测试和维护的工程技术人员阅读。
本书特色:(1)体现教材为课程服务、课程为学生服务的教改思想。本书配套电子版参考资料、知识点短视频、操作步骤视频,创建了云平台智能+教辅平台,多方位支持学生“学练一体”的个性化学习。(2)教材内容的选择上参考了世界职业院校技能大赛“软件测试”赛项的比赛内容。在讲法上,更强调案例的丰富性和对教学、大赛的指导性。(3)整体设计以案例为导向,从实践到理论再到实践完成学习。本书从第1章开始就要求读者测试实际项目,体会软件测试的乐趣,然后逐步讲解什么是缺陷、如何设计用例等内容,在练习过程中让读者体会到各类知识点的真正含义。(4)全局覆盖,重点突出。本书覆盖和涉及了软件测试过程中的基础技术理论及技术理论,以方便读者全面了解这门学科,同时根据市场实际应用需求重点讲解功能测试和自动化测试内容,让读者对这两个模块有更深入的了解和认识。(5)人性化编排。立体式教学。本书以初学者的思维方式进行编排,无须死记硬背就可以轻松快乐地学习软件测试。同时,本书采用讲学互补、智能教辅,方便教师开展教学指导。为便于教学,本书提供丰富的配套资源,包括教学大纲、教学课件、电子教案、程序源码、习题答案、教学进度表和500分钟的微课视频。
前言
党的二十大报告指出: 教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是优质生产力、人才是优质资源、创新是优质动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。
软件测试是软件开发过程的重要组成部分,用来确认一个程序的品质或性能是否符合开发之前所提出的要求,是软件质量的关键步骤。软件测试的目的包括: 发现软件程序中的错误,对软件是否符合设计要求、是否符合合同中所要达到的技术要求进行有关验证以及评估软件的质量,最终实现将高质量的软件系统交付用户。
计算机和网络的发展日新月异,也引领着软件测试技术飞速发展,软件测试的相关岗位越来越多,人才缺口越来越大。目前
,许多高校都开设了“软件测试”课程,却苦于缺乏好的教材。市面上软件测试方面的教材大多倾向于理论阐述,教材内容更新不及时,导致教学内容比较陈旧,
无法匹配社会对测试人才的需求,并且这些教材还缺乏配套的实践指导。
为弥补软件测试技术教材的不足,编者与北京浩泰思特科技有限公司合作,共同策划编写了本书。
本书内容分为四篇,共14章。
基础篇(第1~4章)围绕软件测试概述、软件测试入门、软件测试技术体系和软件测试的过程管理进行详述。通过
对本篇的学习,读者可以明白为什么要进行软件测试,掌握软件测试的定义、目的和原则,学会如何报告软件缺陷和如何描述测试用例,懂得软件测试的各种分类,掌握如何管理软件测试的过程。
设计篇(第5~8章)是本书的重点,也是软件测试的重点内容。本篇涵盖了白盒测试
、黑盒测试、接口测试等多种测试的用例设计技术,每种技术都提供了案例,以帮助读者理解这些测试技术的内涵和使用方法。本书也特别为这些测试技术提供了丰富的配套练习,供读者进行针对性学习。
技术篇(第9~11章)重点讲述单元自动化测试框架、UI及接口自动化测试框架、Web UI自动化测试框架。通过对这些框架的学习,读者可以更好地理解和掌握自动化测试的框架及其实现方式。
扩展篇(第12~14章)重点讲述性能测试的原理和工具、移动App非功能测试工具、Web安全中的渗透性测试等内容。通过
对本篇的学习,读者可以了解到软件测试领域的新技术和新发展。
本书打破已有教材体系的理论框架,将更多的动手实践引入教材中,形成独具特色的编写风格。
(1) 体现教材为课程服务、课程为学生服务的教改思想。传统的课程注重教师的讲解,创新的课程则更注重学生的主动学习。编者为本书配套了电子版参考资料、知识点短视频、操作步骤视频,创建了云平台智能+教辅平台,多方位支持学生“学练一体”的个性化学习。
(2) 教材内容的选择上参考了世界职业院校技能大赛“软件测试”赛项的比赛内容,包括但不限于黑盒测试用例设计、白盒测试用例设计、Selenium自动化测试、LordRunner性能测试等。在讲法上,更强调案例的丰富性和对教学、大赛的指导性。
(3) 整体设计以案例为导向,从实践到理论再到实践完成学习。本书从第1章开始就要求读者测试实际项目,体会软件测试的乐趣,然后逐步讲解什么是缺陷、如何设计用例等内容,在练习过程中让读者体会到各类知识点的真正含义。
(4) 全局覆盖,重点突出。本书覆盖和涉及了软件测试过程中的基础技术理论及技术理论,以方便读者全面了解这门学科,同时根据市场实际应用需求重点讲解功能测试和自动化测试内容,让读者对这两个模块有更深入的了解和认识。
(5) 人性化编排、立体式教学。本书以初学者的思维方式进行编排,无须死记硬背就可以轻松快乐地学习软件测试。同时,本书采用讲学互补、智能教辅,方便教师开展教学指导。
本书既可作为高等院校计算机类相关专业课程的教材,也可作为从事软件开发、测试和维护的工程技术人员的参考书。
为便于教学,本书提供了丰富的配套资源,包括教学大纲、教学课件、电子教案、习题答案和微课视频。
资源下载提示
课件等资源: 扫描封底的“图书资源”二维码,在公众号“书圈”下载。
素材(源码)等资源: 扫描目录上方的二维码下载。
微课视频: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的视频讲解二维码,可以在线学习。
本书由山西省财政税务专科学校大数据学院院长乔冰琴担任主编,北京浩泰思特科技有限公司
资深软件测试工程师郝志卿、李含欢担任副主编。全书由乔冰琴负责修订。
由于本书涉及面广,加之编者水平、经验有限,书中难免存在疏漏,敬请读者批评指正。
编者
2025年3月
目录
扫一扫
配套资源下载
基础篇
第1章软件测试概述
1.1为什么要进行软件测试
1.2软件测试的定义
1.2.1软件测试定义的正反两面性
1.2.2服从于用户需求的软件测试
1.3软件测试的目的
1.4软件测试的原则
1.5通用术语
1.6缺陷报告
1.6.1一个简单的缺陷报告
1.6.2缺陷报告的重要组成
1.6.3完整的缺陷信息列表
1.6.4缺陷的管理
1.7本章小结
1.8课后习题
第2章软件测试入门
2.1常见应用系统的基本特征
2.2软件测试的基本思路
2.3测试用例
2.3.1为什么需要测试用例
2.3.2什么是测试用例
2.3.3一个简单的测试用例
2.3.4测试用例的元素
2.4测试思维训练
2.5本章小结
2.6课后习题
第3章软件测试技术体系
3.1软件测试类型
3.1.1功能测试
3.1.2接口测试
3.1.3性能测试
3.2软件测试级别
3.2.1单元测试
3.2.2集成测试
3.2.3确认测试
3.2.4系统测试
3.2.5验收测试
3.3测试方法
3.3.1黑盒测试
3.3.2白盒测试
3.3.3灰盒测试
3.4测试手段
3.4.1手工测试
3.4.2自动化测试
3.5本章小结
3.6课后习题
第4章软件测试的过程管理
4.1软件测试的整体流程
4.2软件测试各阶段的工作任务
4.2.1制订测试计划
4.2.2测试需求分析
4.2.3测试建模
4.2.4测试用例设计
4.2.5测试执行
4.2.6测试总结
4.3系统上线与运维
4.4本章小结
4.5课后习题
设计篇
第5章白盒测试用例设计及应用
5.1逻辑覆盖法
5.1.1语句覆盖
5.1.2判定覆盖
5.1.3条件覆盖
5.1.4条件判定组合覆盖
5.1.5多条件覆盖
5.1.6修正条件判定覆盖
5.2基本路径测试法
5.2.1程序的控制流图
5.2.2控制流图的环路复杂性
5.2.3基本路径测试法示例
5.3本章小结
5.4课后习题
第6章黑盒测试用例设计及应用
6.1等价类划分法
6.1.1等价类划分法的定义
6.1.2有效等价类和无效等价类
6.1.3划分等价类的规则
6.1.4等价类划分法实例分析
6.2边界值分析法
6.2.1如何确定边界值
6.2.2边界值法实例分析
6.3组合测试用例设计技术
6.3.1全面测试
6.3.2单因素覆盖
6.3.3正交试验设计法
6.3.4两两组合
6.3.5具有约束关系的组合测试
6.3.6种子组合测试
6.4因果图法
6.4.1因果图的基本符号
6.4.2因果图法实例分析
6.5决策表法
6.5.1决策表的构成
6.5.2决策表法实例分析
6.6场景法
6.6.1场景法概述
6.6.2场景法实例分析
6.7测试方法选择的综合策略
6.8本章小结
6.9课后习题
第7章接口测试基础
7.1HTTP工作原理
7.2用Firefox浏览器抓取报文
7.3URL
7.4报文
7.4.1请求报文
7.4.2响应报文
7.5本章小结
7.6课后习题
第8章接口测试
8.1为什么要做接口测试
8.2接口测试的定义
8.3接口测试实例分析
8.3.1接口文档解析
8.3.2测试用例设计
8.4接口测试工具
8.4.1安装Postman工具
8.4.2使用Postman的基础功能
8.4.3Postman进阶使用
8.5本章小结
8.6课后习题
技术篇
第9章Unittest单元测试框架
9.1认识Unittest
9.2安装Python开发环境
9.3集成开发环境——PyCharm
9.3.1PyCharm的下载与安装
9.3.2PyCharm的使用
9.4使用ddt创建数据驱动测试
9.4.1安装ddt
9.4.2创建测试类
9.4.3setUp()方法
9.4.4编写测试
9.4.5代码清理
9.4.6运行测试
9.5断言
9.6测试套件
9.6.1使用TestSuite执行指定用例
9.6.2discover批量加载用例
9.7生成HTML格式的测试报告
9.8本章小结
9.9课后习题
第10章接口自动化测试
10.1Newman的使用
10.1.1安装Node.js
10.1.2安装Newman
10.1.3通过Newman执行脚本
10.2与持续集成工具Jenkins结合
10.2.1安装Jenkins
10.2.2新建job
10.2.3执行DOS指令
10.2.4Jenkins定制构建
10.2.5构建触发器
10.2.6job关联
10.2.7导出Jenkins的控制台输出
10.3本章小结
10.4课后习题
第11章WebUI自动化测试
11.1Selenium介绍
11.1.1安装Selenium
11.1.2优质个Selenium Python脚本
11.1.3WebDriver原理
11.1.4控件的识别与定位
11.2Selenium WebDriver
11.2.1Selenium WebDriver的常用方法
11.2.2WebDriver的功能
11.2.3示例: 定位一组元素
11.2.4正则匹配示例——摘取邮箱
11.3WebElement接口
11.3.1WebElement功能
11.3.2WebElement方法
11.3.3示例: 百度搜索
11.3.4示例: 爬取拉勾网职位信息
11.4自动化测试模型介绍
11.4.1线性测试
11.4.2模块化与类库
11.4.3数据驱动
11.4.4关键字驱动
11.5Selenium轻量级UI自动化测试框架
11.5.1为什么要进行框架设计
11.5.2PageObject设计模式
11.5.3BasePage对象
11.5.4实现PageObject
11.5.5构建PageObject模式测试实例
11.6框架梳理
11.7本章小结
11.8课后习题
扩展篇
第12章性能测试
12.1认识性能测试
12.1.1为什么要进行性能测试
12.1.2性能定义
12.1.3性能测试分层模型
12.1.4性能指标
12.1.5性能测试的流程
12.2LoadRunner脚本开发实战
12.2.1LoadRunner介绍
12.2.2项目介绍
12.2.3需求分析
12.2.4脚本开发
12.2.5使用LoadRunner完成H5网站的测试脚本开发
12.3场景设计精要
12.4性能测试分析思路
12.4.1观察现象
12.4.2层层递进
12.4.3缩小范围
12.5本章小结
12.6课后习题
第13章移动App非功能测试
13.1移动App启动时间测试
13.1.1用户体验角度的App启动时间
13.1.2常见的App启动时间测试方法
13.1.3使用adb获得App启动时间示例
13.2移动App流量测试
13.2.1App流量测试场景
13.2.2App流量测试示例
13.3移动App CPU测试
13.3.1App的CPU测试场景
13.3.2App的CPU占用率测试示例
13.4移动App电量测试
13.5本章小结
13.6课后习题
第14章渗透性测试
14.1Web应用安全基础
14.2SQL注入漏洞
14.2.1SQL注入原理
14.2.2SQL注入的后果
14.2.3SQL注入漏洞攻击流程
14.2.4注入点类型
14.2.5SQL注入的防范措施
14.3XSS跨站脚本漏洞
14.3.1XSS原理解析
14.3.2XSS类型
14.3.3查找XSS漏洞过程
14.3.4XSS防御
14.4CSRF
14.4.1CSRF攻击原理
14.4.2CSRF攻击场景
14.4.3查找CSRF漏洞
14.4.4预防CSRF
14.5文件上传漏洞
14.5.1文件上传漏洞利用场景
14.5.2文件上传漏洞的测试流程
14.5.3文件上传防御
14.6本章小结
14.7课后习题