软件测试教程(第3版)第2章
02软件测试方法1

4
第2章 软件测试方法 章
2.1软件测试与软件开发的关系 2.1软件测试与软件开发的关系
2.1.2迭代模型 迭代模型
5
第2章 软件测试方法 章
2.1软件测试与软件开发的关系 2.1软件测试与软件开发的关系
优点( 电通智能电网门户项目例子 电通智能电网门户项目例子) 优点(E电通智能电网门户项目例子):
18系 2.1软件测试与软件开发的关系
2.1.4RUP
优点:
提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系 结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所 有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导, 并确保全体成员共享相同的知识基础。
20
第2章 软件测试方法 章
2.2软件测试与质量的关系 2.2软件测试与质量的关系
软件测试(第2版 慕课版)课后习题答案

第一章软件测试基础课后习题答案1.什么是软件测试?软件测试发现一个应用从开始到结束时的错误,测试是一个过程。
(Glenford J.Myers 提出对软件测试的定义)测试是发现错误而执行的一个程序或系统的过程测试以发现故障为目的,是为了发现故障而执行程序过程2.软件测试涉及哪几个关键问题?软件测试的经济性原则谁来测试(who)测试什么(what)什么时候测试(when)怎样进行测试(how)测试的停止标准是什么(which)3.为什么说软件需求说明是软件故障的最大来源?软件需求是描述了系统有哪些功能,功能操作,性能如何等问题,是开发阶段的重要文档,也是后期软件开发的重要依据。
如果软件需求一开始就错了,在后面处理过程则会把错误放大,这样使得修复起来成本就是提升。
4.简述软件测试的复杂性和经济性。
复杂性1.完全测试是不现实的2.软件测试是有风险的3.杀虫剂现象4.缺陷的不确定性经济性软件测试是软件生命期中费用消耗最大的环节。
测试费用除了测试的直接消耗外,还包括其他的相关费用5.分析最近发生的软件质量事故,并简要分析产生的原因。
具体案例具体分子6.启动Windows计算器,输入“6,000-6=”(逗号不能少),观察计算结果,这是软件故障吗?为什么?这是软件故障中的界面缺陷。
由于无法输入逗号,无法进行输入,当做一个界面缺陷,因为不符合需求,原本是小数点变成了逗号。
7.软件测试应遵循哪些重要的原则或方针?1.完全测试程序是不可能的2.软件测试是有风险的3.测试无法找到隐藏的软件故障4.存在的故障数量与发现的故障数量成正比5.杀虫剂现象6.并非所有软件故障都能修复7.一般不要丢弃测试用例8.应避免测试自己编写的程序9.软件测试是一项复杂且具有创造性的和需要高度智慧的挑战性任务8.假定无法完全测试某一程序,那么在决定是否应该停止测试时应考虑哪些问题?在工作中,常用的停止测试标准有五类:测试超过了预定时间,停止测试执行了所有测试用例但没有发现故障,停止测试使用特定的测试用例方法作为判断测试停止的基础正面指出测试完成要求,如发现并修改70个软件故障根据单位是见查出故障数量决定是否停止测试9 . 假如星期一测试软件的某一功能时,每小时能发现一个新的软件故障,那么星期二会以什么频率发现软件故障?第一感觉就是与第一天(星期一)的一样,既然前一天发现的频率以每小时都有新的故障,说明软件的缺陷很高,所以第二天也可能有同样的频率。
软件测试(宫云战版)第2章

性能测试工具应用实践
性能测试场景设计
根据实际需求设计性能测试场景,包括并发用户数、数据 量、网络带宽等参数设置。
性能测试脚本编写
使用性能测试工具编写性能测试脚本,包括模拟用户操作、 数据生成、性能指标监控等步骤。
性能测试执行和结果分析
通过性能测试工具执行性能测试脚本,收集并分析性能指 标数据,如响应时间、吞吐量、资源利用率等,评估系统 性能表现。
条件覆盖法
设计测试用例使得每个判定中 的每个条件都至少满足一次。
路径覆盖法
设计测试用例覆盖程序中所有 可能的路径。
灰盒测试方法
01
02
03
基于接口的测试
关注系统组件之间的接口, 通过测试接口来验证系统 的功能和性能。
基于状态的测试
关注系统的状态变化,通 过测试不同状态下的系统 行为来验证系统的正确性。
验收测试
在软件发布前进行的最后一次测试,确保软件符合用户需求和合同要求。
软件测试发展历程
早期阶段
自动化阶段
软件测试主要依赖于人工操作和经验判断 ,缺乏系统性的方法和工具支持。
随着计算机技术的发展,出现了自动化测 试工具和框架,提高了测试效率和准确性 。
敏捷测试阶段
持续测试阶段
敏捷开发方法的普及推动了敏捷测试的发 展,强调测试与开发的紧密协作和快速反 馈。
已修复的缺陷数量与总缺陷数 量的比例,用于评估开发团队 的修复能力。
平均修复时间
从发现缺陷到修复完成所需的 平均时间,用于评估开发团队 的响应速度和修复效率。
05
软件测试工具与实践
常用软件测试工具介绍
JUnit
Java语言的单元测试框架,提供注解和断言库,方便开发者编写和执 行测试用例。
电子教案软件测试技术第二版课件

2.2.2 集成测试
• 集成测试也叫做组装测试,通常在单元测试的基 础上,通过适当的集成策略,将程序模块有序、 递增地组装起来进行测试。
1.4 软件测试的分类
• 按照软件测试用例的设计方法而论,软件测试可 以分为白盒测试和黑盒测试
• 白盒测试:按照程序内部的结构测试程序,检验 程序中的每条通路是否都有能按预定要求正确工 作 ,主要方法有逻辑驱动、基路测试等,主要用 于软件验证 。
• 黑盒测试:在已知产品所应具有的功能,通过测 试来检测每个功能是否都能正常使用 ,黑盒测试 方法主要有等价类划分、边值分析、因—果图、 错误推测等 。
2.2 软件测试阶段
• 单元测试 • 集成测试 • 系统测试 • 验收测试 • 回归测试
2.2.1 单元测试
• 单元测试又称为模块测试,它是在软件开发过程 中进行的最低级别的测试活动,其测试的对象是 软件设计的最小单位——程序模块。
• 单元测试的目的是:检查每个模块能否正确实现 详细设计说明书中的模块功能、性能、接口和设 计约束等要求,发现模块内部可能存在的各种错 误。
2.1 软件生命周期
• 原型模型 先建立一个能够反映用户需求的原型系统, 使得用户和开发者可以对目标系统的概貌 进行评价和判断,然后对原型系统进行反 复的扩充、改进、求精,最终建立符合用 户需求的目标系统。
2.1 软件生命周期
• 螺旋模型 将瀑布模型和原型模型结合起来,它把软件 开发过程组织成为一个逐步细化的螺旋周 期,每经历一个周期,系统就得到进一步 的细化和完善;整个模型紧密围绕开发中 的风险分析,推动软件设计向深层扩展和 求精。该模型要求开发人员与用户能经常 直接进行交流,通常用来指导内部发行的 大型软件项目的开发。
习题参考答案-软件测试技术(第2版)-谭凤-清华大学出版社

《软件测试技术》习题参考答案第1章软件测试基础一、判断题1、验证意味着确保软件正确无误地实现软件的需求,开发过程是沿着正确的方向进行。
(T )2、调试的目的是发现bug。
(F )3、软件缺陷主要来自产品说明书的编写和产品方案设计。
(T )4、在实际的软件测试工作中,不论采用什么方法,由于软件测试情况数量极其巨大,都不可能进行完全彻底的测试。
(T )5、测试人员可以不懂编程。
( F )二、选择题1、软件是程序和(B )的集合。
A、代码B、文档C、测试用例D、测试2、严重的软件缺陷的产生主要源自(A)。
A、需求B、设计C、编码D、测试3、Fixed的意思是指:( C )A、该BUG没有被修复,并且得到了测试人员的确认B、该BUG被拒绝了,并且得到了测试人员的确认C、该BUG被修复了,并且得到了测试人员的确认D、该BUG被关闭了,并且得到了测试人员的确认4、降低缺陷费用最有效的方法是(B )。
A、测试尽可能全面B、尽可能早的开始测试C、测试尽可能深入D、让用户进行测试5、以下不属于应用系统中的缺陷类型的是:( B )。
A、不恰当的需求解释B、用户指定的错误需求C、设计人员的习惯不好D、不正确的程序规格说明三、简答题1、请简述一条软件缺陷(或者叫Bug)记录都包含了哪些内容?2、请简述软件测试的定义?第2章软件测试类型一、判断题1、软件测试的目的是尽可能多的找出软件的缺陷。
( T )2、好的测试方案是极可能发现迄今为止尚未发现的错误。
(T )3、测试人员要坚持原则,缺陷未修复完坚决不予通过。
( F )4、负载测试是验证要检验的系统的能力最高能达到什么程度。
( F )5、V模型不能适应较大的需求变化。
( T )二、选择题1、测试环境中不包括的内容是( A )A、测试所需文档资料B、测试所需硬件环境C、测试所需软件环境D、测试所需网络环境2、某软件公司在招聘软件测试工程师时,应聘者甲向公司做如下保证:(1)经过自己测试的软件今后不会再出现问题(2)在工作中对所有程序员一视同仁,不会因为某个程序编写的程序发现的问题多,就重点审查该程序,以免不利于团结(3)承诺不需要其他人员,自己就可以独立进行测试工作(4)发扬咬定青山不放松的精神,不把所有问题都找出来,绝不罢休根据自己所学的软件测试知识,应聘者甲的保证( D )A、(1)(4)是正确的B、(2)是正确的C、都是正确的D、都是错误的3、用不同的方法可将软件测试分为白盒法和黑盒法,或者(C)和静态测试。
软件工程(第3版)第2章 人民邮电出版社PPT课件

6条“最佳实践” 10个“流程要素”
可重用方法内容及流程构建块的框架
可以在定义自己的开发方法和过程
底层方法及流程定义语言
统一方法架构元模型 UML
RUP最佳实践
迭代式开发 需求管理 使用基于组件的架构 可视化建模 验证软件质量 控制软件变更
问题定义 可行性研究 需求分析 概要设计 详细设计 编码和单元测试 集成测试(综合测试) 软件维护
瀑布模型
收集需求 分析 设计 编码 测试 维护
瀑布模型 - 加入迭代过程
收集需求 分析 设计 编码 测试 维护
快速原型法
快速建立一个反映用户 主要需求的原型系统
可视化编程工具的广泛 使用
架构和组件
软件架构(Software Architecture)
构成系统的组件 组件之间的关联和交互
架构刻画了系统的整体设计
去掉了细节部分 突出了系统的重要特征
可视化建模
由于应用领域不同,模型可以有文字、图形或数学 表达式等多种形式,一般说来,使用可视化的图形 更容易令人理解。
验证软件质量
用户故事 需求
测试用例 新用户故事
差错
隐喻 架构试探
制定交付 交付计划 计划
不确定的估计
确定的估计
最新版本
用户认可
迭代开发
验收测试
下一次迭代
小交付
难点试探
XP(极限编程Extreme Programming)的整体开发过程
极限编程
未完成的任务 用户故事 交付计划 项目速率
新用户故事 新项目速率
共享的信息
能力成熟度模型的结构
能力成熟度等级
初始级 可重复级 已定义级 已管理级 优化级
第2章 黑盒测试等价类划分解析

★ 测试修订历史;
★ 测试准备;
★ 测试描述;
★ 测试环境;
★ 输入数据/动作;
★ 测试执行;
★ 测试预期的结果。
★ 测试的实际结果;
2020/11/25
9
测试用例的设计方法
测试用例是整个测试工作中的重中之重,测试的 一般流程包括制定测试计划、编写测试用例、 执行测试、跟踪测试缺陷、编写测试报告等。 测试计划、大纲制定后就需要进行测试用例的 设计,之后所有的工作全都是在测试用例的基 础上展开的。
23
2.等价类划分法
2.1 概述
等价类划分方法是一种最为典型的黑 盒测试方法。
测试用例是将整个测试的执行过程作一个科学 有效的合理组织规划。主要目的是将软件测试 的执行过程形成那个一个可管理的模式;同时 测试用例也是将测试详细具体化的有效手段之 一。
2020/11/25
6
测试用例的作用
(1)指导测试的实施 (2)规划测试数据的准备 (3)编写测试脚本“规格说明书” (4)评估测试结果的度量基准 (5)分析缺陷标准
(1)黑盒测试用例设计技术如下: ★ 等价类划分; ★ 边界值分析; ★ 错误推测; ★ 因果图。
(2)采用黑盒测试技术设计用例的主要目的是: ★ 检查功能是否实现或遗漏; ★ 检查人机交互界面是否出错; ★ 数据库读取、更新操作出错; ★ 性能特设计方法
2020/11/25
7
设计测试用例所需的文档资料
设计测试用例所需要的文档资料包括: ★ 软件需求说明书; ★ 软件设计说明书; ★ 软件测试需求说明书; ★ 成熟的测试用例
2020/11/25
8
测试用例主要包括哪些内容
完整的测试用例通常包括:
软件测试白盒黑盒测试第2章(3)解答

•
•
•
什么是数据流分析?
数据流分析最初是随着编译系统要生成有效的 目标码而出现的,这类方法主要用于代码优化。 数据流分析方法在确认系统中也得到成功的运 用,用以查找如引用未定义变量等程序错误,以 及用来查找对未曾使用的变量再次赋值等数据流 异常的情况。
数据流分析重要性:
• 在程序测试中,找出这 些错误是很重要的。因为这 常常是常见程序错误的表现 形式,如错拼名字、名字混 淆或是丢失了语句。
• 第 3 个问题,需要考虑如何设置最少探测点方 案。 • 第 4 个问题,是如何在程序中特定部位插入断 言语句。在应用程序插桩技术时,可在程序中 特定部位插入某些用以判断变量特性的语句, 使得程序执行中这些语句得以证实。
•
实践表明,程序插装方法是应用很广 的技术,特别是在完成程序的测试和调 试时非常有效。调试时常用程序段截半 法寻找错误位置。
跳过整个循环;
只循环一次;
只循环两次; 循环 m 次,其中m<n; 分别循环 n-1、n 和 n+1 次。
循环测试方法
(2)测试嵌套循环。如果将简单循环的测试方法用 于嵌套循环,可能的测试次数会随嵌套层数成几何 级数增加。 此时可采用以下办法减少测试次数: 测试从最内层循环开始,所有外层循环次数设置为 最小值; 对最内层循环按照简单循环的测试方法进行; 由内向外进行下一个循环的测试,本层循环的所有 外层循环仍取最小值,而由本层循环嵌套的循环取 某些“典型”值; 重复上一步的过程,直到测试完所有循环。
N X>8 AND Y>5 Y
N 引用语句1
X>0 OR Y>0
Y
N
X>16 OR Y>10
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为测试情况分析检测,找出程序缺陷与错误。但通常输入所有可能测试用例将会
受时间、成本等客观条件限制,实际上无法实现完全穷举。
软件测试教程(第3版) 第2章 软件生命周期的测试
12
2.2 软件测试技术分析
2.2.3 基于结构的测试技术
基于结构(Structure-based)的测试,主要分析程序 内部结构,测试依赖于对程序细节的严格检验,其实
2.2.2基于规格说明的测试技术
黑盒测试主要针对软件各种功能、界面、性能、外部系统条件和数据 的访问,及软件初始化等方面测试。 (1)检查程序功能能否按需求规格说明书规定正常体现,测试程序功能是否遗漏、 程序性能等特性要求是否得到满足。 (2)检查人机交互是否存在错误,检测数据结构或外部数据访问是否异常,程序能 否正确接收输入数据而产生正确输出结果,并保持外部信息完整。 (3)检测程序初始化和终止运行方面的错误等。 黑盒测试可喻为中医诊病过程,通过“望、闻、问、切”的方法来判 断程序是否存在“病症”。 黑盒测试属有限“穷举”测试用例的测试方法,把所有可能输入都作
根据对应开发级别不同区分测试级别
V模型右边测试应为对应的测试执行级别而非完 全顺序
测试准备(测试计划和控制、测试分析和设计) 在初始阶段进入并与开发过程并行
软件测试教程(第3版) 第2章 软件生命周期的测试
4
2.1 软件生命周期中的测试
2.1.1 软件生命周期
1. 通用V模型定义的软件开发级别 定义开发系统的目的和需要实现的特性和功能,是从客户或将来的系统用户中 收集要求和需求,进行详细描述并最终得到批准。 (2)系统功能设计 将需求映射到新系统的功能和框图上。 (3)系统技术设计 设计系统的具体方式。定义系统环境接口、分解系统为更小易理解的子系统, 对每个子系统进行独立开发。 (4)组件规格说明 定义每个子系统任务、行为、内部结构以及与其他子系统的接口。 (5)程序编制(编码) 通过编程实现所有已定义的组件(模块、单元、类) (1)需求规格说明
2
版权所有 侵权追究
第 2 章 软件生命周期的测试
目 录 2.1 软件生命周期中的测试
2.2 软件测试技术分析 2.3 组件测试 2.4 集成测试 2.5 系统测试 2.6 确认测试 2.7 验收测试
2.8 软件新版本测试
软件测试教程(第3版) 第2章 软件生命周期的测试
2
第 2 章
学习目标
软件生命周期的测试
软件测试教程(第3版) 第2章 软件生命周期的测试
5
2.1 软件生命周期中的测试
2.1.1 软件生命周期
2.通用V模型定义的测试级别
随着软件系统的描述逐步详细,在某级构建中引入的错误,一般较易在本级中发现。
对每个构建级别,V模型右边定义了相应测试级别。
(1)组件测试 - 验证软件组件是否按照规格说明正确进行 (2)集成测试 - 检查多个组件是否按照系统技术设计描述方向协同工作 (3)系统测试 - 验证整个系统是否满足软件需求规格说明
白盒测试要求对程序结构特性做到一定程度覆盖,或说测试“基于覆盖率的测试”。 可严格定义测试确切内容,明确要达到的测试覆盖率,以减少测试过度和盲目,有效 找出可能已被忽视的程序错误。 通常程序结构覆盖有5种: 语句覆盖:最常见且最弱的逻辑覆盖准则,通过测试用例使被测程序每个语句都至少
被执行一次。
判断覆盖:判定覆盖或分支覆盖要求设计若干测试用例使被测程序每个判定的真、假 分支都至少被执行一次。 条件覆盖:当判定含有多条件时,要求设计若干个测试用例使被测程序每个条件的真、 假分支都至少被执行一次。在对程序路径进行全面检验时可使用条件覆盖。 判断/条件覆盖:根据判定覆盖与条件覆盖的混合原则设计测试用例进行覆盖。 路径覆盖:对程序所有路径各种覆盖。虽结构测试提供评价测试的逻辑覆盖准则,但 结构测试是不完全的。如程序结构本身存在问题,程序逻辑错误或遗漏了规格说明书中 已规定的功能,那么无论哪种结构测试,即使其覆盖率达到百分之百,也检查不出问题。
软件测试教程(第3版) 第2章 软件生命周期的测试
10
2.2 软件测试技术分析
2.2.2基于规格说明的测试技术
若测试规划及用例设计基于软件各项功能(Specification-based),则测试目的就是检
查软件各功能是否能按预期目标和期望实现。
基于软件规格说明的测试主要有黑盒测试(Black-box Testing)。从用户观点(依需求 而定出发,以确认软件功能正确性和可操作性,可用于生命周期各阶段。 基本思想:任何程序都可看作是从输入定义域映射到输出值域的函数过程,被测程序 被视为黑盒,测试只知输入和输出间的关系或软件功能,只依靠能反映这一关系和功 能需求规格的说明书来确定测试用例和推断测试结果的正确性。黑盒测试不探究软件 内部结构,因此也称功能测试、数据驱动的测试和基于规格说明的测试。 常用技术: -等价类划分/边界值分析(Equivalence Partitioning/Boundary Value Analysis)
-因果图/决策表测试(Decision table testing)
-状态转换测试(status transform testing) -用例测试(Use case testing) -配对测试(Pairwise testing)
- ……
软件测试教程(第3版) 第2章 软件生命周期的测试
11
2.2 软件测试技术分析
软件测试教程(第3版) 第2章 软件测试概述
16
2.2 软件测试技术分析
2.2.4 基于经验的测试技术
2.探索性测试的过程管理与度量
探索性测试不是严谨测试方法,缺乏严格的可管理性和度量性,但提出基于任务的测
试管理方法。探索性测试管理也叫“基于Session的测试管理”,这种管理把测试过程 划分成多个Session,或称“探索任务”,每个Session都是由目的驱动的,都由一测试 者负责执行。在一个Session结束后,提交Session报告,附上关于测试过程重要信息。
内容提要
以V模型为参考阐述软件 生命周期中的测试
深入认识软件开发遵循的生命周期V模型 认识软件生命周期中的测试流程及内容 明确单元测试的主要任务、方法和过程 明确集成测试的主要任务、方法和过程 明确系统测试的主要内容、方法和过程 明确验收测试的主要内容、方法和过程
软件开发中的测试级别与
测试方法 单元/集成/系统/验收测 试各阶段的内容及要点 软件测试方法的基本理论 软件测试技术的工程运用
软件测试教程(第3版) 第2章 软件生命周期的测试
3
2.1 软件生命周期中的测试
2.1.1 软件生命周期
V 模型在软件生命周期模型(IEEE/IEC12207) 中定义
思想:软件开发和测试是相互对等的活动并同等 重要
模型左侧代表开发过程右侧代表集成与测试过程 不断组合单元形成更大系统
整个系统以验收作为集成与测试活动的结束 V模型表明测试的验证和确认思想
强调测试过程发散性思维(非盲目发散),由测试经验者进行并坚持缺陷聚集原则,
实施对软件连续地“提问”。 探索性测试核心思想:测试设计与测试执行同时实施
软件测试教程(第3版) 第2章 软件生命周期的测试
15
2.2 软件测试技术分析
2.2.4 基于经验的测试技术
探索性测试的提问范围包括软件产品、测试、问题3个方面 产品 (1)该软件是做什么的? (2)能控制和观测到软件的哪些方面? (3)应该测试什么? 测试 (1)应该采用不一样的测试策略吗? (2)怎样提高对产品好坏的理解程度? (3)如果系统存在严重问题,应该如何发现它? (4)应该加载什么文档?按哪个按钮?输入什么值? (5)这次的测试是否有效? (6)从测试中学到什么东西可以应用到下一次测试? (7)刚才发生了什么问题?如何更好地检查它? 问题 (1)这个缺陷问题违背了什么软件质量标准? (2)在这个产品中可以发现什么类型的软件错误? (3)现在看到的是一个问题吗?如果是,为什么? (4)这个问题的严重程度如何?为什么需要修正?
(4)验收测试 - 从用户角度检查系统是否满足合同定义的需求
对每个测试级别都要检查开发活动的输出是否满足具体需求或特定相关需求 根据原始需求检查开发结构的过程称为确认(Validation) V模型还要求进行验证(Verification)测试但只针对开发过程的单个阶段
V模型定义测试级别的抽象过程
这些测试级别在技术上差别很大并有不同目标、使用不同方法和工具 对测试者的知识体系和能力要求不尽相同
探索性测试需测试领导者。领测者须亲自参加测试并指导测试,及时做正确调整。
软件测试教程(第3版) 第2章 软件生命周期的测试
6
2.1.2 软件生命周期中的测试策略
软件测试是一系列事先需计划、事中需管理
的活动及过程。测试从程序模块层始,然后 扩大延伸到整个计算机系统。
不同的测试技术适用于不同的测试进程及时
间点。测试工作由开发或独立测试组织策划
和管理。测试策略指测试将按什么样思路和
白盒测试是对程序逻辑路径进行遍历性和响应性的测
试,在程序内容的不同点去检验程序的状态,来判定 其实际情况是否和预期状态相一致。概括说,白盒测 试焦点集中在如何根据其内部结构去设计测试用例,
执行测试,分析结果。
软件测试教程(第3版) 第2章 软件生命周期的测试
13
2.2 软件测试技术分析
2.2.3 基于结构的测试技术
方式进行设计、制定,及实施。
测试技术(方法)是指在测试具体实施过程
中运用的具体技术。
测试策略内容:确定测试组织、进行测试策
划、执行测试过程(或部署)、实施测试管 理等。
软件测试教程(第3版) 第2章 软件生命周期的测试