编辑推荐
《软件测试实用技术与常用模板》特点:理论与技能相结合。《软件测试实用技术与常用模板》的大部分章节都是先对测试的基本概念和实用理论进行清晰、全面的阐述,并且关注应用,然后利用《软件测试实用技术与常用模板》的测试模型进行实际的测试操作,以提高读者的测试技能。
实用性强。《软件测试实用技术与常用模板》给出大量实际工作中用到的测试用例、测试方法和测试写作模板等内容,读者完全可以将它们直接应用到实际的测试工作中。附赠光盘内容丰富。《软件测试实用技术与常用模板》附赠光盘中的内容包括:被测软件的源码和安装程序、开源自动化测试工具安装包、国家测试标准、实际测试工作中产生的文档、《软件测试实用技术与常用模板》实训部分的测试用例和测试脚本等内容。
读者对象广泛。《软件测试实用技术与常用模板》可作为工程类硕士、项目管理类硕士和软件及软件测试本科生的教材,也可作为软件测试理论与实践工作者进行研究、培训与应用实践的参考资料,还可供那些从事软件测试和项目决策的中高级管理人员阅读使用。
内容简介
《软件测试实用技术与常用模板》从软件测试实用理论和测试实训技术的角度出发,以“手机信息管理系统模型”作为被测软件,以通俗易懂的语言讲述软件测试所需要的实用知识和高级技能,突出软件测试的先进理论和特点,全面详细的讲解了软件测试的测试理论、写作模板(文档)、测试用例、测试方法,帮助读者在较短的时间内领会测试的博大精深,并能够很快掌握测试的要点,进而能够从事实际测试工作。
内页插图
目录
前言
第一部分 软件测试的基本知识
第1章 软件测试概述
1.1 软件的相关知识概述
1.1.1 软件的定义及分类方法
1.1.2 软件工程的主要内容
1.1.3 软件的生存期
1.2 软件测试的相关知识概述
1.2.1 软件测试的概念
1.2.2 软件测试的方法
1.2.3 软件测试的任务
1.3 软件测试的目的和原则
1.3.1 软件测试的目的
1.3.2 软件测试的原则
1.4 软件测试的流程
1.4.1 软件测试工作总体流程图
1.4.2 软件测试活动分布图
1.4.3 软件测试流程关系图
1.5 软件测试对组织结构和人员的要求
1.5.1 对组织结构的要求
1.5.2 对人员的要求
1.6 自动化测试概述
1.6.1 自动化测试的特点
1.6.2 自动化测试的过程
1.6.3 自动化测试工具选择的原则
1.6.4 自动化测试技术
1.6.5 自动化测试技术的比较
1.6.6 自动化测试的级别
1.6.7 自动化测试方案选择需要考虑的方面
1.6.8 自动化测试要点
1.6.9 自动化测试适用的测试阶段及其执行的先决条件
1.6.10 自动化测试工作中的重点
1.6.11 自动化测试执行需要解决的问题
1.6.12 自动化测试工具简介
1.7 软件测试的前景
习题
第二部分 软件测试的核心技术
第2章 白盒测试的实用技术
2.1 白盒测试概述
2.1.1 白盒测试的基本知识
2.1.2 白盒测试的原则
2.1.3 白盒测试的类别、依据和流程
2.2 白盒测试的方法
2.2.1 代码检查
2.2.2 代码检查的方式
2.2.3 代码检查项目
2.2.4 静态结构分析
2.2.5 sql语句测试
2.2.6 代码检查的分析与评价
2.3 白盒测试的常用技术
2.3.1 逻辑覆盖法
2.3.2 插桩技术
2.3.3 基本路径测试法
2.3.4 域测试法
2.3.5 符号测试
2.3.6 z路径覆盖法
2.3.7 程序变异测试法
习题
第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.2.6 功能图法
3.2.7 错误推测法
3.2.8 正交试验设计法
3.3 黑盒测试的原则和策略
3.3.1 黑盒测试的原则
3.3.2 黑盒测试的策略
3.4 黑盒测试的步骤
3.4.1 测试计划
3.4.2 测试设计
3.4.3 测试执行的步骤
3.4.4 测试评估
习题
第4章 测试用例设计方法
4.1 测试用例编写概述
4.1.1 什么是测试用例
4.1.2 为什么要编写测试用例
4.1.3 测试用例主要包括哪些内容
4.1.4 设计测试用例所需的文档资料
4.2 测试用例的作用
4.2.1 实施测试指导的作用
4.2.2 指导测试数据规划的作用
4.2.3 指导脚本编写的作用
4.2.4 作为评判基准的作用
4.2.5 作为分析缺陷的基准的作用
4.3 测试用例的设计
4.3.1 白盒测试用例的设计
4.3.2 黑盒测试用例的设计
4.3.3 综合设计方法
4.3.4 测试用例设计的原则和注意事项
4.3.5 测试用例的管理
4.4 测试用例主要内容的编写
4.4.1 测试目标的描述
4.4.2 测试环境的描述
4.4.3 输入数据/动作的编写
4.4.4 测试的步骤
4.4.5 测试预期的结果
4.4.6 测试脚本的编写
习题
第三部分 软件测试的实用技术
第5章 对本书测试模型的介绍
5.1 引言
5.1.1 编写目的
5.1.2 背景
5.1.3 定义
5.1.4 参考资料
5.2 程序系统的结构
5.3 对密码修改模块的设计说明
5.3.1 程序描述
5.3.2 功能
5.3.3 输入项
5.3.4 输出项
5.3.5 算法
5.3.6 流程逻辑
5.3.7 接口
5.4 对详细查询功能模块的设计说明
5.4.1 程序描述
5.4.2 功能
5.4.3 输入项
5.4.4 输出项
5.4.5 算法
5.4.6 流程逻辑
5.4.7 接口
习题
第6章 单元测试的实用技术
6.1 单元测试概述
6.1.1 单元测试的目的
6.1.2 单元测试所需文档资料
6.2 单元测试的主要任务
6.2.1 程序语法检查
6.2.2 程序逻辑检查
6.2.3 模块接口测试
6.2.4 局部数据结构测试
6.2.5 路径测试
6.2.6 边界条件测试
6.2.7 错误处理测试
6.2.8 代码书写规范检查
6.3 单元测试的步骤
6.4 单元测试需要填写的表格
6.5 单元测试提交的软件bug清单
6.6 单元测试的测试用例
6.7 单元测试的人工测试实训和操作方法
6.8 单元测试的自动化测试实训和操作方法
6.8.1 选择适用的单元测试工具
6.8.2 自动化单元测试中需要注意的问题
6.8.3 自动化单元测试工作重点
6.8.4 自动化单元测试案例
习题
第7章 功能测试的实用技术
7.1 功能测试概述
7.1.1 功能测试的基本概念
7.1.2 功能测试的基本要求
7.1.3 功能测试需要的参考文档
7.2 功能测试的重点
7.3 功能测试的常见方法
7.3.1 安装测试
7.3.2 卸载测试
7.3.3 运行与关闭测试
7.3.4 菜单功能测试
7.3.5 浏览功能测试
7.3.6 选择功能测试
7.3.7 搜查功能测试
7.3.8 统计功能测试
7.3.9 web功能测试
7.3.1 0翻页功能测试
7.4 功能测试的常见流程
7.5 功能测试的人工测试实训和操作方法
7.5.1 安装卸载测试
7.5.2 手机信息管理系统模型的登录测试
7.6 功能测试的自动化测试实训和操作方法
7.6.1 自动化功能测试应该何时开始
7.6.2 自动化功能测试实例
习题
第8章 集成测试的实用技术
8.1 集成测试概述
8.1.1 集成测试基本情况
8.1.2 集成测试重点考虑的内容
8.1.3 集成测试过程
8.2 集成测试的方法
8.2.1 自底向上集成测试
8.2.2 自顶向下集成测试
8.2.3 核心系统先行集成测试
8.2.4 高频集成测试
8.2.5 桩驱动测试
8.3 集成测试阶段的工作
8.3.1 计划阶段
8.3.2 设计阶段
8.3.3 实现阶段
8.3.4 执行阶段
8.4 集成测试的步骤和测试用例
8.5 集成测试中的注意事项
8.6 集成测试完成的标志
8.7 集成测试的人工测试实训和操作方法
习题
第9章 性能测试的实用技术
9.1 性能测试概述
9.1.1 性能测试的目的
9.1.2 性能测试的先决条件
9.1.3 性能测试的准备工作
9.2 性能测试的基本要求
9.2.1 性能测试所需相关文档
9.2.2 对性能测试相关文档的要求
9.2.3 对进行性能测试的人员的要求
9.3 性能测试的内容
9.3.1 性能测试的分类
9.3.2 性能测试的方法
9.3.3 性能测试的调优
9.4 检查测试环境
9.5 性能测试的执行流程
9.6 性能测试常用的测试用例
9.7 性能测试的自动化测试实训和操作方法
9.7.1 待测测试模型介绍
9.7.2 使用loadrunner进行负载/压力测试
习题
第10章 系统测试的实用技术
10.1 系统测试概述
10.1.1 系统测试的目的
10.1.2 系统测试的意义
10.1.3 系统测试的主要内容
10.1.4 系统测试的目标
10.1.5 系统测试的测试类型
10.1.6 系统测试过程
10.1.7 系统测试策略
10.1.8 系统测试环境
10.2 系统测试的方法
10.2.1 人工系统测试
10.2.2 自动化工具系统测试
10.2.3 多任务测试
10.2.4 临界测试
10.2.5 中断测试
10.2.6 系统测试策略
10.3 系统测试的过程
10.4 系统测试的结果分析
10.5 系统测试的文档资料
10.6 系统测试的人工测试实训和操作方法
10.6.1 对登录界面的测试
10.6.2 对修改用户名和密码模块的测试
10.6.3 手机信息管理系统界面测试
10.6.4 易用性测试
习题
……
第11章 验收测试的实用技术
第12章 回归测试的实用技术
第13章 配置测试的实用技术
第14章 软件的其他测试技术
第四部分 软件测试文档写作模板
第15章 软件测试所需的常用模板
习题
参考文献
精彩书摘
1.1.2 软件工程的主要内容
软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。在软件开发技术中,主要研究软件工程方法、软件工程过程、软件开发工具和环境。
1)软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法的设计、编码、测试以及维护等。软件工程方法常采用某种特殊的语言或图形的表达方法,以及一套质量保证标准。
2)软件工程过程是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。软件工程过程定义了软件工程方法使用的顺序、要求交付的文档资料,以及为保证质量和协调变更所需要的管理。
3)软件开发工具和环境为软件工程方法提供了自动的或半自动的软件支撑环境。目前,人们已经开发出了许多软件工具来支持上述的软件工程方法。而且已经有人把诸多软件工具集成起来,使得一种工具产生的信息可以被其他的工具所使用,从而建立起一种称为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
1.1.3 软件的生存期
软件生存期概念的出现可以帮助我们较为全面地认识软件开发。在1988年制定和公布的国家标准GB8566-88《计算机软件开发规范》中,将软件生存期划分为八个阶段,即:可行性研究和计划、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用和维护。该标准为每个阶段规定了任务、实施步骤、实施要求以及完成的标志。将软件生存期划分为这八个阶段大致符合并满足瀑布模型。
20世纪90年代初提出了软件工程过程的概念。软件工程过程规定了获取、供应、开发、操作和维护软件时所要实施的过程、活动和任务。其目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流。这个框架由几个重要的过程组成,这些主要过程含有用来获取、供应、开发、操作和维护软件所用的基本的、一致的要求。该框架还可以用来控制和管理软件过程,各种组织和开发机构可以根据具体情况进行选择和剪裁,可在一个机构的内部或外部实施。
……
前言/序言
软件测试与测试技术在目前已引起业界的重视。国内有关这方面的教材和参考书至少有三十多个版本,纵观各个版本的测试书籍的内容,本人认为李龙等编著的《软件测试实用技术与常用模板》一书具有以下特点:
1)内容通俗实用,详细、全面地叙述了人工测试技术和自动化测试技术。本书讲的是实用技术,读者读后就能依据本书所讲的测试技术进行测试工作。
2)抓住了测试主题,重点突出,内容全面。重点抓住了软件测试的基本知识、常用技术、测试用例、文档写作模板、数值计算等典型程序的测试要点以及静态测试的要点。书中以“手机信息管理系统模型”为主线,对人工测试(包括:静态测试、单元测试、功能测试、系统测试、验收测试、回归测试、配置测试等)进行了详细的介绍,并给出了具体的操作过程和测试用例。此外,还利用免费的测试工具给出了自动化测试(包括:单元测试、功能测试、性能测试、回归测试等)的具体操作。本书摒弃了一般书籍理论篇幅较大、具体操作较少的写法,本书写的就是测试,写的就是测试技术,写的就是测试操作,实用性很强。
3)测试文档写作模板可以说是本书的另一大亮点。书中给出了20个常用的模板写作内容,不仅为测试人员编写文档提供了参考依据,同时也可供未来修订测试规范、标准作参考。
4)本书可操作性强,依据测试原理和手机信息管理系统模型,编写了大量的测试用例,其中有大部分测试用例可供各种类型的应用系统参考使用。
5)提供的资料全面。在光盘中提供了测试所需的各种资料,正如编著者在前言中所说的:这是一本非常好的、实用的参考书。
6)作为一名研究者、实践者和老师,我认为在目前已出版的软件测试方面的书籍中,它是一本比较好的书籍,详细给出了各种测试用例、可操作性的测试方法(人工测试和自动化测试)、各种完整的测试写作模板。读者认真研读完本书后,就能从事测试工作。本书对需要学习软件测试和软件开发的人员会有很大的帮助。
最后,愿本书在软件测试的百花园中,绽放出艳丽夺目的光彩。
《精益软件开发:敏捷实践与流程优化》 内容简介 在当今快速迭代、用户需求瞬息万变的软件开发领域,效率与质量的双重挑战日益严峻。本书《精益软件开发:敏捷实践与流程优化》应运而生,旨在为软件开发团队提供一套系统、可行的指导,帮助他们拥抱敏捷理念,优化开发流程,从而实现更快速、更高质量的软件交付。我们摒弃了传统瀑布式开发模式的僵化与低效,深入探讨了精益思想在软件开发中的应用,并将其与敏捷方法论相结合,形成一套以价值为导向、持续改进为核心的开发体系。 第一部分:精益思想的基石与敏捷的融合 本书的开篇,我们将带领读者回顾精益生产的起源,理解其“消除浪费”、“持续改进”、“尊重人性”等核心原则。我们将深入剖析精益思想如何与软件开发紧密契合,例如,将“浪费”定义为不必要的文档、等待时间、功能冗余、过度设计等,并将它们在软件开发流程中一一识别和消除。 随后,我们将详细阐述敏捷开发的核心价值观与十二项原则,并探讨为何敏捷是实现精益软件开发的天然载体。我们将深入解析Scrum、Kanban等主流敏捷框架的运作机制,包括迭代开发、用户故事、每日站会、冲刺评审、回顾会议等关键实践。我们会重点分析如何在实际项目中落地这些敏捷实践,以及如何根据团队的特点和项目需求进行调整和优化。 第二部分:敏捷开发的核心实践深度解析 本部分将聚焦于敏捷开发过程中一系列至关重要的实践,并提供详细的操作指南和案例分析。 用户故事与需求管理: 我们将详细讲解如何撰写高质量的用户故事,使其具备“独立性”、“可协商性”、“有价值性”、“可估算性”、“小巧性”和“可测试性”的INVEST原则。读者将学会如何有效地进行用户故事的梳理、优先级排序、拆分以及验收标准的定义。我们将介绍不同的用户故事地图绘制方法,以及如何利用这些地图来可视化产品待办事项和规划迭代。 迭代规划与执行: 本部分将详述迭代(Sprint)的规划会议,包括如何估算用户故事的工作量(例如,使用扑克牌估算、故事点等方法),如何根据团队能力规划迭代范围,以及如何建立清晰的迭代目标。我们将深入探讨迭代执行过程中的挑战,例如如何管理任务优先级、如何应对需求变更、如何确保团队协作顺畅。 持续集成与持续交付(CI/CD): CI/CD是实现敏捷开发高效运转的基石。本书将详细讲解CI/CD的核心概念,包括自动化构建、自动化测试、自动化部署等。我们将介绍Jenkins、GitLab CI/CD、GitHub Actions等主流CI/CD工具的使用,并提供详细的配置步骤和最佳实践。读者将学习如何构建稳定可靠的CI/CD流水线,从而实现代码的频繁、安全、可靠发布。 自动化测试策略与实践: 质量是敏捷开发永恒的主题。本书将详细介绍不同层次的自动化测试,包括单元测试、集成测试、端到端测试、性能测试等,以及它们在敏捷开发流程中的作用。我们将讲解测试驱动开发(TDD)和行为驱动开发(BDD)的理念和实践方法,帮助读者构建强大的自动化测试套件,从而在开发早期发现并修复缺陷,减少回归测试的负担。 代码评审与结对编程: 代码质量的提升离不开团队成员之间的协作与知识共享。本书将深入探讨代码评审的价值与技巧,包括如何进行建设性的评审、如何有效地反馈意见、以及如何从评审中学习。同时,我们将介绍结对编程的模式,阐述其如何提高代码质量、促进知识传递、减少知识孤岛。 第三部分:流程优化与团队效能提升 精益软件开发不仅仅是技术的堆砌,更关乎流程的持续改进和团队效能的提升。 看板(Kanban)方法的应用: 除了Scrum,看板方法也是一种高效的敏捷流程管理工具。本书将详细介绍看板的基本原则与实践,包括可视化工作流、限制在制品(WIP)、管理流程、明确策略、实施反馈循环、协同进化等。读者将学习如何使用看板来管理工作流、识别瓶颈、优化吞吐量,并能根据团队情况选择Scrum与看板的混合模式。 度量与洞察: “凡是可度量的,皆可改进”。本书将介绍一系列关键的敏捷开发指标,如吞吐量、周期时间、交付频率、缺陷密度、客户满意度等。我们将讲解如何收集和分析这些数据,从中获得有价值的洞察,识别流程中的问题,并指导改进方向。 持续改进的回顾会议: 回顾会议是敏捷开发中最重要的持续改进机制。本书将指导读者如何有效地组织和主持回顾会议,如何引导团队讨论,如何识别成功之处、需要改进的地方以及具体的行动项。我们将分享不同类型的回顾会议形式,以保持会议的新鲜感和有效性。 构建高绩效敏捷团队: 敏捷开发的成功离不开一支协同、自组织、高绩效的团队。本书将探讨如何培养团队成员的责任感、主人翁意识,如何建立信任与开放的沟通氛围,如何有效地解决冲突,以及如何通过持续学习和知识分享来提升团队整体能力。 第四部分:面向未来的精益敏捷实践 随着技术的发展和业务的变化,精益敏捷实践也在不断演进。 DevOps文化的推广与落地: DevOps强调开发(Dev)与运维(Ops)之间的紧密协作与自动化,是实现精益敏捷的有力助推器。本书将深入探讨DevOps的核心理念、文化、自动化实践以及工具链。我们将讲解如何打破开发与运维之间的壁垒,实现端到端的交付流程自动化。 精益创业(Lean Startup)与敏捷开发的结合: 精益创业强调“构建-测量-学习”的循环,旨在快速验证产品概念并降低失败风险。本书将探讨如何将精益创业的思想融入敏捷开发流程,例如通过最小可行产品(MVP)的快速迭代来收集用户反馈,并根据反馈进行调整。 规模化敏捷(Scaling Agile): 对于大型组织和复杂项目,如何实现规模化的敏捷转型是一个巨大的挑战。本书将简要介绍SAFe(Scaled Agile Framework)、LeSS(Large-Scale Scrum)等规模化敏捷框架,并探讨其核心思想和适用场景。 《精益软件开发:敏捷实践与流程优化》并非一本枯燥的技术手册,而是一本充满实践智慧的指南。通过本书,读者将不仅掌握敏捷开发的核心技术和方法,更能深刻理解精益思想的精髓,并将其内化为团队的DNA。本书旨在赋能读者,让他们能够 confidently 地拥抱敏捷,持续优化流程,最终交付更高价值的软件产品,在竞争激烈的市场中脱颖而出。