1、第第1 1讲讲软件测试基本理论软件测试基本理论Topicsl软件开发阶段划分l软件测试阶段划分l软件测试模型l软件测试的分类本章内容本章内容3/47一、软件开发阶段划分一、软件开发阶段划分4/47软件开发阶段软件开发阶段l 需求分析需求分析l 概要设计概要设计l 详细设计详细设计l 编码编码5/47软件开发阶段软件开发阶段需求分析需求分析l 需求分析需求分析u根据客户的要求,清楚了解客户需求中的产品功能、性能根据客户的要求,清楚了解客户需求中的产品功能、性能、界面和具体规格等,然后进行分析,确定软件产品所要、界面和具体规格等,然后进行分析,确定软件产品所要达到的目标。达到的目标。u需求规格说明
2、书需求规格说明书6/47软件开发阶段软件开发阶段概要设计概要设计l 概要设计概要设计u系统分析员审查软件计划、软件需求分析提供的文档,提出候系统分析员审查软件计划、软件需求分析提供的文档,提出候选的最佳推荐方案,确定模块结构,划分功能模块,将软件功选的最佳推荐方案,确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式等。定数据结构、文件结构、数据库模式等。u概要设计说明书概要设计说明书7/47软件开发阶段软件开发阶段详细设计详细设计l 详细设计详细设计u为每一个模块确定使
3、用的算法,并用适当的工具(如流程图)表为每一个模块确定使用的算法,并用适当的工具(如流程图)表达算法的过程,写出模块的详细过程性描述;确定每个模块使用达算法的过程,写出模块的详细过程性描述;确定每个模块使用的数据结构;确定模块接口的细节,包括用户界面、数据输入输的数据结构;确定模块接口的细节,包括用户界面、数据输入输出等全部细节。出等全部细节。u详细设计说明书详细设计说明书8/47软件开发阶段软件开发阶段编码编码l 编码编码u通过某种编程语言编写程序通过某种编程语言编写程序9/47二、软件测试阶段划分二、软件测试阶段划分10/47软件测试阶段软件测试阶段l 单元测试单元测试l 集成测试集成测试
4、l 系统测试系统测试l 验收测试验收测试11/47软件测试流程软件测试流程12/47单元测试单元测试l 单元测试又称模块测试,是针对软件设计的最小单位单元测试又称模块测试,是针对软件设计的最小单位程序模块进程序模块进 行正确性检验的测试工作行正确性检验的测试工作l 类、文件、窗口、函数、菜单、报表或一个存储过程都可以作为一个类、文件、窗口、函数、菜单、报表或一个存储过程都可以作为一个 单元进行测试,其依据是详细设计单元进行测试,其依据是详细设计l 目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能 、性能、接口等要求,发现各
5、模块内部可能存在的各种错误、性能、接口等要求,发现各模块内部可能存在的各种错误l 单元测试单元测试以黑盒测试为主,重点模块可以结合白盒测试以黑盒测试为主,重点模块可以结合白盒测试l 多个模块可以平行地独立进行单元测试。多个模块可以平行地独立进行单元测试。13/47l 一个好的单元测试将会在产品开发的阶段发现大部分的缺陷,并一个好的单元测试将会在产品开发的阶段发现大部分的缺陷,并且修改它们的成本也很低且修改它们的成本也很低l 在软件开发的后期阶段,缺陷的修改将会变得更加困难,要消耗在软件开发的后期阶段,缺陷的修改将会变得更加困难,要消耗大量的时间和费用大量的时间和费用l 经过单元测试的系统,系统
6、集成过程将会大大地简化经过单元测试的系统,系统集成过程将会大大地简化14/47集成测试集成测试l 集成测试也叫做组装测试。通常在单元测试的基础上,将所有的集成测试也叫做组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。程序模块进行有序的、递增的测试。l 集成测试是检验程序单元或部件的接口关系,逐步集成为符合设集成测试是检验程序单元或部件的接口关系,逐步集成为符合设计要求的程序部件或整个系统。计要求的程序部件或整个系统。l 软件集成的过程是一个持续的过程,会形成很多个临时版本,在软件集成的过程是一个持续的过程,会形成很多个临时版本,在每个版本提交时,都需要进行冒烟测试,即
7、对程序主要功能进行每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。验证。l 冒烟测试也叫版本验证测试、提交测试。冒烟测试也叫版本验证测试、提交测试。15/47l 系统测试是在真实或模拟系统运行的环境下,检查完整的程序系系统测试是在真实或模拟系统运行的环境下,检查完整的程序系 统能否和系统统能否和系统(包括硬件、外设、网络和系统软件、支持平台等包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户需求。正确配置、连接,并满足用户需求。l 系统测试是为验证和确认系统是否达到其原始目标,而对集成的系统测试是为验证和确认系统是否达到其原始目标,而对集成的 硬件和软件系统进
8、行的测试。硬件和软件系统进行的测试。系统测试系统测试16/47验收测试验收测试l 按照项目任务书或合同、供需双方约定的验收依据文档进行的对按照项目任务书或合同、供需双方约定的验收依据文档进行的对 整个系统的测试与评审,决定是否接收或拒收系统整个系统的测试与评审,决定是否接收或拒收系统l 以用户为主的测试,软件开发和质量保证人员也参与以用户为主的测试,软件开发和质量保证人员也参与l 一般使用生产中的实际数据进行测试一般使用生产中的实际数据进行测试17/47l AlphaAlpha测试测试(测试测试)u通常也叫通常也叫“验证测试验证测试”u主要是指在软件开发完成以后,在软件开发环境下主要是指在软件
9、开发完成以后,在软件开发环境下,开发方对要提交开发方对要提交 的软件进行全面的自我检查与验证,可以和软件的的软件进行全面的自我检查与验证,可以和软件的“系统测试系统测试”一并一并 进行。进行。u开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。2022-12-1618/47l BetaBeta测试(测试(测试测试)u在用户的应用环境下,用户通过运行和使用软件,检测与核实软件在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。实现是否符合自己预期的要求。u通常情况用户测试指用户的使用性
10、测试,由用户找出软件的应用过通常情况用户测试指用户的使用性测试,由用户找出软件的应用过程中发现的软件的缺陷与问题,并对使用质量进行评价。程中发现的软件的缺陷与问题,并对使用质量进行评价。u测试通常被看成是一种用户测试。测试通常被看成是一种用户测试。测试主要是把软件产品有计划测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。通地免费分发到目标市场,让用户大量使用,并评价、检查软件。通过用户各种方式的大量使用,来发现软件存在的问题与错误,把信过用户各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修改。息反馈给开发者修改。测试中厂商获取的信息,可以有
11、助于软件产测试中厂商获取的信息,可以有助于软件产品的成功发布。品的成功发布。2022-12-1619/47软件开发与软件测试的关系软件开发与软件测试的关系l 软件测试流程图软件测试流程图(需求阶段)(需求阶段)需求工作培训编写需求文档需求变更进入下一阶段需求评审需求说明书系统测试方案20/47软件测试流程软件测试流程l 软件测试流程图软件测试流程图(设计编码阶段)(设计编码阶段)上 一 阶 段概 要 设 计详 细 设 计评 审评 审单 元 测 试编 码单 元 测 试 总 结进 入 下 一 阶 段概 要 设 计 文 档集 成 测 试 方 案详 细 设 计 文 档单 元 测 试 方 案单 元 测
12、试 总 结 报 告21/47软件测试流程软件测试流程l 软件测试流程图软件测试流程图(集成、系统、验收)(集成、系统、验收)上一阶段集成测试系统测试测试部评估验收测试产品综合测试评价集成测试方案系统测试方案测试工作总结测试总结文档22/47三、软件测试模型三、软件测试模型23/47软件测试模型软件测试模型l 软件测试模型软件测试模型u概念概念l 软件测试模型主要反映测试活动与软件开发过程的关系软件测试模型主要反映测试活动与软件开发过程的关系 u模型类型模型类型l V模型模型l W模型模型24/472022-12-16V V模型模型25/472022-12-16V V模型模型l V模型是最具代表
13、意义的测试模型模型是最具代表意义的测试模型l V模型最早由模型最早由Paul Rook在在20世纪世纪80年代后期提出年代后期提出26/472022-12-16V V模型的优点模型的优点l 明确标明了测试过程中存在的不同级别明确标明了测试过程中存在的不同级别l 清楚地描述了测试阶段与开发过程各阶段的对应关系清楚地描述了测试阶段与开发过程各阶段的对应关系l V模型的测试策略既包括了低层测试(代码级的测试),又包括模型的测试策略既包括了低层测试(代码级的测试),又包括 了高层测试(需求级的测试)了高层测试(需求级的测试)27/472022-12-16V V模型的缺点模型的缺点l 它仅仅把测试过程作
14、为需求分析,概要设计,详细设计、编码它仅仅把测试过程作为需求分析,概要设计,详细设计、编码 之后的一个阶段,容易让人理解为测试是软件开发的最后一个之后的一个阶段,容易让人理解为测试是软件开发的最后一个 阶段。阶段。l 没有明确说明早期的测试,不符合越早测试和不断地进行测试没有明确说明早期的测试,不符合越早测试和不断地进行测试 的原则。的原则。28/472022-12-16W W模型模型l V模型中缺乏对软件开发早期测试活动的说明,在模型中缺乏对软件开发早期测试活动的说明,在V模型中添加软模型中添加软 件开发阶段同步的测试活动,演化出件开发阶段同步的测试活动,演化出W模型。模型。29/47W W
15、模型模型30/472022-12-16W W模型模型l W模型强调:测试伴随着整个软件开发周期,测试的对象不仅模型强调:测试伴随着整个软件开发周期,测试的对象不仅 仅是程序,需求,功能和设计同样需要测试。测试与开发是同仅是程序,需求,功能和设计同样需要测试。测试与开发是同 步进行的。步进行的。31/472022-12-16W W模型的优点模型的优点l 符合尽早测试和不断测试的原则符合尽早测试和不断测试的原则l 符合实际工作中的测试活动符合实际工作中的测试活动32/47四、软件测试的分类四、软件测试的分类33/47按照测试技术划分按照测试技术划分l 黑盒测试黑盒测试l 白盒测试白盒测试l 灰盒测
16、试灰盒测试34/47黑盒测试黑盒测试l 黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序 内部结构和处理过程内部结构和处理过程,通过软件的外部表现来发现其缺陷通过软件的外部表现来发现其缺陷 和错误。和错误。l 黑盒测试是在程序界面处进行测试,它只是检查程序是否黑盒测试是在程序界面处进行测试,它只是检查程序是否 按照需求规格说明书的规定正常实现。按照需求规格说明书的规定正常实现。l 黑盒测试一般也称功能测试黑盒测试一般也称功能测试35/47白盒测试白盒测试l 白盒测试可以把程序看成装在一个透明的白盒子里,也就白盒测试可以把程序看成装在一个透明的
17、白盒子里,也就 是清楚了解程序结构和处理过程,检查是否所有的结构及是清楚了解程序结构和处理过程,检查是否所有的结构及 路径都是正确的,检查软件内部动作是否按照设计说明的路径都是正确的,检查软件内部动作是否按照设计说明的 规定正常进行。规定正常进行。l 白盒测试又称结构测试。白盒测试又称结构测试。36/47黑盒测试白盒测试规划方面针对功能的测试针对结构的测试优势方面能确保从用户使用角度出发进行测试能够对程序内部的特定部位进行覆盖测试应用举例等价类划分边界值分析法因果图法状态图测试法语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、基本路径覆盖、循环覆盖、模块接口测试37/47灰盒测试灰盒测试l 介于
18、白盒测试与黑盒测试之间的测试。介于白盒测试与黑盒测试之间的测试。l 灰盒测试结合了白盒测试和黑盒测试的要素。灰盒测试关灰盒测试结合了白盒测试和黑盒测试的要素。灰盒测试关 注输出对于输入的正确性;同时也关注内部表现,但这种注输出对于输入的正确性;同时也关注内部表现,但这种 关注不像白盒测试那样详细、完整,只是通过一些表征性关注不像白盒测试那样详细、完整,只是通过一些表征性 的现象、事件、标志来判断内部的运行状态。的现象、事件、标志来判断内部的运行状态。38/47按是否需要运行代码划分按是否需要运行代码划分l 静态测试静态测试l 动态测试动态测试39/47静态测试静态测试l 静态测试是指不实际运行
19、被测软件,而只是静态地检查程序代码、静态测试是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在错误的过程。界面或文档中可能存在错误的过程。l 静态测试技术又称为静态分析技术,实际上是对软件中的需求说静态测试技术又称为静态分析技术,实际上是对软件中的需求说 明书、设计说明书、程序源代码等进行非运行的检查明书、设计说明书、程序源代码等进行非运行的检查l 静态测试包括:代码测试静态测试包括:代码测试、界面测试、文档测试等界面测试、文档测试等u代码测试,主要测试代码是否符合相应的标准和规范。代码测试,主要测试代码是否符合相应的标准和规范。u界面测试,主要测试软件的实际界面与需求中的
20、说明是否相符。界面测试,主要测试软件的实际界面与需求中的说明是否相符。u文档测试,主要测试用户手册和需求说明是否真正符合用户的实文档测试,主要测试用户手册和需求说明是否真正符合用户的实 际需求。际需求。40/47动态测试动态测试l 动态测试是指通过人工或使用工具运行程序进行检查、动态测试是指通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现分析程序的执行状态和程序的外部表现l 实际运行被测程序,输入相应的测试数据,检查实际实际运行被测程序,输入相应的测试数据,检查实际 输出结果和预期结果是否相符输出结果和预期结果是否相符41/47按软件特性分类按软件特性分类l 功能测试功能
21、测试u根据产品特征、操作描述和用户方案,测试一个产品的特性和根据产品特征、操作描述和用户方案,测试一个产品的特性和 可操作行为以确定它们可操作行为以确定它们是否是否满足设计需求。满足设计需求。l 性能测试性能测试u评价一个产品或组评价一个产品或组件件与性能需求是否符合的测试。包括负载测与性能需求是否符合的测试。包括负载测 试、试、压力压力测试、数据库容量测试等。测试、数据库容量测试等。42/47返测返测l 针对程序员修改的错误进行测试,验证错误是否被修改针对程序员修改的错误进行测试,验证错误是否被修改43/47回归测试回归测试l 回归测试是指对软件的新版本测试时,重复执行上一个版本测回归测试是
22、指对软件的新版本测试时,重复执行上一个版本测 试时的用例试时的用例l 在发生修改之后重新测试在发生修改之后重新测试新版本新版本的的软件软件以保证修改的正确性,以保证修改的正确性,以及修改后没有引发新的错误以及修改后没有引发新的错误44/47冒烟测试冒烟测试l 冒烟测试是指在对一个新版本进行系统大规模的测试之前,先冒烟测试是指在对一个新版本进行系统大规模的测试之前,先 验证一下软件的基本功能是否实现,是否具备可测性验证一下软件的基本功能是否实现,是否具备可测性l 冒烟测试又称版本验证测试。冒烟测试的对象是每一个新编译冒烟测试又称版本验证测试。冒烟测试的对象是每一个新编译 的需要正式测试的软件版本
23、,目的是确认软件的基本功能正常,的需要正式测试的软件版本,目的是确认软件的基本功能正常,可以进行后续的正式测试工作。可以进行后续的正式测试工作。l 简单地说,冒烟测试就是用较少的人,在较短的时间内测试程简单地说,冒烟测试就是用较少的人,在较短的时间内测试程 序的主要功能,如果通过再进行正式的测试。序的主要功能,如果通过再进行正式的测试。45/47随机测试随机测试l 随机测试也称为猴子测试,是指测试中所有的输入数据随机测试也称为猴子测试,是指测试中所有的输入数据 都是随机产生成的,其目的是模拟用户的真实操作,都是随机产生成的,其目的是模拟用户的真实操作,随随 意向系统输入操作意向系统输入操作2022-12-1646/472022-12-162022-12-16l软件开发阶段划分软件开发阶段划分l软件测试阶段划分软件测试阶段划分l软件测试模型软件测试模型l软件测试的分类软件测试的分类本节内容本节内容47/472022-12-16
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。