软件测试策略与过程

上传人:仙*** 文档编号:163626324 上传时间:2022-10-22 格式:PPTX 页数:65 大小:1.15MB
收藏 版权申诉 举报 下载
软件测试策略与过程_第1页
第1页 / 共65页
软件测试策略与过程_第2页
第2页 / 共65页
软件测试策略与过程_第3页
第3页 / 共65页
资源描述:

《软件测试策略与过程》由会员分享,可在线阅读,更多相关《软件测试策略与过程(65页珍藏版)》请在装配图网上搜索。

1、 第第2 2章章 软件测试方法与过程软件测试方法与过程 第第2 2章章 软件测试策略与过程软件测试策略与过程 软件测试的复杂性与经济性软件测试的复杂性与经济性1软件测试方法软件测试方法2软件测试阶段软件测试阶段3其它测试类型其它测试类型4主主要要内内容容软件测试流程软件测试流程 第第2 2章章 软件测试策略与过程软件测试策略与过程 软件质量 质量特性 质量子特性 度量 功能性 适合性 准确性 互操作性 依从性 安全性 可靠性 成熟性 容错性 易恢复性 可使用性 易理解性 易学习性 易操作性 效率 时间特性 资源特性 可维护性 易分析性 稳定性 易变更性 易测试性 可移植性 适应性 易安装性 遵

2、循性 易替换性 度 量 由 使 用 单 位 自 行 决 定 ISO软软件件质质量量度度量量模模型型 2.1 软件测试的复杂性与经济性软件测试的复杂性与经济性 测试测试 无法对程序进行完全的测试无法对程序进行完全的测试缺陷缺陷 测试无法保证被测程序中无测试无法保证被测程序中无遗留错误遗留错误修复修复 不能修复所有的软件故障不能修复所有的软件故障软件测试复杂性软件测试复杂性 n对待缺陷的基本原则对待缺陷的基本原则 p缺陷的群集现象缺陷的群集现象 p缺陷有免疫力缺陷有免疫力 p缺陷关联和依赖缺陷关联和依赖 n测试结果的处理原则测试结果的处理原则p对缺陷进行复查和确认对缺陷进行复查和确认p测试结果的全

3、面检查测试结果的全面检查 p出错统计和分析出错统计和分析 p妥善保存测试过程文档妥善保存测试过程文档 软件缺陷构成软件缺陷构成 2.1 软件测试的复杂性与经济性软件测试的复杂性与经济性 测试发现缺陷需测试发现缺陷需要投入(时间和要投入(时间和成本)成本)经济性经济性遗留缺陷有风险遗留缺陷有风险最佳的测试量最佳的测试量2.1 软件测试的复杂性与经济性软件测试的复杂性与经济性n软件测试应追溯到用户需求软件测试应追溯到用户需求 n应尽早和不断地测试应尽早和不断地测试 n穷尽测试是不可能的穷尽测试是不可能的 n具有良好的测试态度具有良好的测试态度p避免测试自己的程序避免测试自己的程序 p增量测试增量测

4、试p测试分级测试分级p测试有重点测试有重点p避免测试的随意性避免测试的随意性 测试原则测试原则2.1 软件测试的复杂性与经济性软件测试的复杂性与经济性 2.2 2.2 软件测试方法软件测试方法 软件测试技术分类软件测试技术分类核心:核心:在每种测试方法、测试阶段和测试业务中,一般包括在每种测试方法、测试阶段和测试业务中,一般包括 1 1、功能测试、功能测试 (黑盒、白盒)(黑盒、白盒)2 2、性能测试(黑盒、白盒)、性能测试(黑盒、白盒)方法方法目标目标/特性特性单元测试单元测试系统测试系统测试验收测试验收测试性能测试性能测试强壮性测试强壮性测试功能测试功能测试白盒测试白盒测试黑盒测试黑盒测试

5、测试阶段或层次测试阶段或层次适用性测试适用性测试可靠性测试可靠性测试集成测试集成测试安全性测试安全性测试软件测试业务分类软件测试业务分类2.2 2.2 软件测试方法软件测试方法 静态测试和动态测试静态测试和动态测试主持人主持人作者记录员列席人员内审员内审员技术专业人员用户代表不正式正式互审 走读 审查会议运行程序运行程序不运行程序,仅通过不运行程序,仅通过分析或检查等其他手分析或检查等其他手段达到检测的目的。段达到检测的目的。通过运行被测程序,检通过运行被测程序,检查运行结果与预期结果的查运行结果与预期结果的差异,并分析运行效率和差异,并分析运行效率和健壮性等性能健壮性等性能2.2 2.2 软

6、件测试方法软件测试方法 测试分类测试分类 n按是否需查看代码分类按是否需查看代码分类p黑盒测试黑盒测试p白盒测试白盒测试功能测试功能测试数据测试数据测试 结构测试结构测试逻辑测试逻辑测试 客户需求客户需求事件驱动事件驱动输入输入输出输出2.2 2.2 软件测试方法软件测试方法 测试分类测试分类 黑盒测试和白盒测试黑盒测试和白盒测试功能测试功能测试结构测试结构测试客户需求事件驱动输入输出白盒测试白盒测试黑盒测试黑盒测试测试依据测试依据程序内部结构程序内部结构软件规格说明软件规格说明优点优点能对程序内部的特定部位能对程序内部的特定部位进行覆盖进行覆盖能站在用户立场上进行测试能站在用户立场上进行测试

7、缺点缺点(1)无法检测程序本身逻)无法检测程序本身逻辑错误辑错误(2)无法对未实现规格说)无法对未实现规格说明的程序部分进行测试明的程序部分进行测试(1)不能测试程序内部特定部)不能测试程序内部特定部位位(2)发现不了规格说明错误或)发现不了规格说明错误或程序超出规格说明的行为程序超出规格说明的行为2.2 2.2 软件测试方法软件测试方法 测试分类测试分类 人工测试和自动化测试人工测试和自动化测试n人工测试是人为测试和手工测试的统称。人工测试是人为测试和手工测试的统称。p人为测试的主要方法有桌前检查人为测试的主要方法有桌前检查(desk checking),代码,代码审查(审查(code re

8、view)和走查()和走查(walkthrough)。经验表)。经验表明,使用这种方法能够有效地发现明,使用这种方法能够有效地发现 30%到到 70%的逻辑设的逻辑设计和编码错误。计和编码错误。p手工测试指的是在测试过程中,按测试计划一步一步执行程手工测试指的是在测试过程中,按测试计划一步一步执行程序,得出测试结果并进行分析的测试行为。序,得出测试结果并进行分析的测试行为。n自动化测试指的是利用测试工具来执行测试,并进行自动化测试指的是利用测试工具来执行测试,并进行测试结果分析的测试行为。测试结果分析的测试行为。2.2 2.2 软件测试方法软件测试方法 测试分类测试分类 n按测试执行时是否需人

9、工干预分类按测试执行时是否需人工干预分类p手工测试手工测试p自动测试自动测试n人工测试是人为测试和手工测试的统称。人工测试是人为测试和手工测试的统称。p人为测试的主要方法有桌前检查人为测试的主要方法有桌前检查 (desk checking)(desk checking),代码,代码审查(审查(code review code review)和走查()和走查(walkthrough walkthrough)。经验)。经验表明,使用这种方法能够有效地发现表明,使用这种方法能够有效地发现 30%30%到到 70%70%的逻辑设的逻辑设计和编码错误。计和编码错误。p手工测试指的是在测试过程中,按测试计

10、划一步一步执行程手工测试指的是在测试过程中,按测试计划一步一步执行程序,得出测试结果并进行分析的测试行为。序,得出测试结果并进行分析的测试行为。n自动化测试指的是利用测试工具来执行测试,并进行自动化测试指的是利用测试工具来执行测试,并进行测试结果分析的测试行为。测试结果分析的测试行为。2.2 2.2 软件测试方法软件测试方法 测试分类测试分类 自动测试和手工测试自动测试和手工测试手工模拟用户操作手工模拟用户操作2.2 2.2 软件测试方法软件测试方法 测试分类测试分类 2.3 软件测试的阶段软件测试的阶段一一 单元测试单元测试n什么是单元测试什么是单元测试u单元测试是对软件基本组成单元进行测试

11、,主要是为了发现单单元测试是对软件基本组成单元进行测试,主要是为了发现单元内部可能存在的各种错误和不足元内部可能存在的各种错误和不足u主要工作分为两个步骤:人工静态检查和动态执行跟踪主要工作分为两个步骤:人工静态检查和动态执行跟踪u一般由开发组在开发组组长监督下进行一般由开发组在开发组组长监督下进行n什么是什么是单元单元u一个函数一个函数u类或类内成员函数类或类内成员函数u几个函数的集合几个函数的集合2.3 软件测试的阶段软件测试的阶段n 单元测试误区单元测试误区 1 1、单元测试是一种浪费时间的工作、单元测试是一种浪费时间的工作 2 2、我是个很棒的程序员,、我是个很棒的程序员,我是不是可以

12、不进行单元测试?我是不是可以不进行单元测试?3 3、集成测试能捕捉到所有的、集成测试能捕捉到所有的BugBug 4 4、单元测试的成本效率不高、单元测试的成本效率不高n单元测试环境单元测试环境 1、详细设计说明书、详细设计说明书 2、源程序清单、源程序清单 3、驱动模块、驱动模块 4、桩模块、桩模块一一 、单元测试、单元测试2.3 软件测试的阶段软件测试的阶段n单元测试的主要任务单元测试的主要任务p在在单元测试单元测试时,测试者需要依据详细设计说明书和源程序清时,测试者需要依据详细设计说明书和源程序清单,了解该模块的单,了解该模块的I/OI/O条件和模块的逻辑结构,主要采用白条件和模块的逻辑结

13、构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。何合理的输入和不合理的输入,都能鉴别和响应。一、单元测试一、单元测试2.3 软件测试的阶段软件测试的阶段n单元测试用例设计思路单元测试用例设计思路p为系统运行设计测试用例为系统运行设计测试用例u证明单元至少在某种正常情况下能够运行了证明单元至少在某种正常情况下能够运行了。p为正向测试设计用例为正向测试设计用例u验证设计说明书所对应的功能或性能指标是否实现。验证设计说明书所对应的功能或性能指标是否实现。p为逆向测试设计用例为逆向测试设计

14、用例u验证被测软件单元有没有做它不应该做的事情。验证被测软件单元有没有做它不应该做的事情。p为满足特殊需求设计测试用例为满足特殊需求设计测试用例u验证系统性能、安全性、保密性等。验证系统性能、安全性、保密性等。p为代码覆盖设计用例为代码覆盖设计用例u满足特定覆盖标准满足特定覆盖标准一、单元测试一、单元测试2.3 软件测试的阶段软件测试的阶段二、集成测试二、集成测试n什么是集成测试什么是集成测试p集成测试是在单元测试的基础上,将所有模块按集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统所进行的照概要设计要求组装成为子系统或系统所进行的测试测试n集成测试关注的重点集成测

15、试关注的重点p模块接口的数据交换模块接口的数据交换p各子功能组合起来能否达到预期要求的父功能各子功能组合起来能否达到预期要求的父功能p模块间是否有不利影响模块间是否有不利影响p全局数据结构全局数据结构p单个模块的误差是否会累积放大单个模块的误差是否会累积放大2.3 软件测试的阶段软件测试的阶段n单元测试与集成测试区别单元测试与集成测试区别测试对象:单元测试对象是实现具体功能的单元,一般测试对象:单元测试对象是实现具体功能的单元,一般对应详细设计中所描述的设计单元。集成测试是针对概要对应详细设计中所描述的设计单元。集成测试是针对概要设计所包含的模块以及模块组合进行的测试。设计所包含的模块以及模块

16、组合进行的测试。测试方法:单元测试所使用的主要测试方法是基于代码测试方法:单元测试所使用的主要测试方法是基于代码的白盒测试。而集成测试所使用的主要测试方法是基于功的白盒测试。而集成测试所使用的主要测试方法是基于功能的黑盒测试。能的黑盒测试。测试时间:集成测试要晚于单元测试,所以单元测试的测试时间:集成测试要晚于单元测试,所以单元测试的好坏直接影响着集成测试。好坏直接影响着集成测试。测试内容:单元测试主要包括模块内程序的逻辑等方面,测试内容:单元测试主要包括模块内程序的逻辑等方面,集成测试主要是验证各个接口、接口之间的数据传递关系、集成测试主要是验证各个接口、接口之间的数据传递关系、模块组合后能

17、否达到预期效果。模块组合后能否达到预期效果。二、二、集成测试集成测试2.3 软件测试的阶段软件测试的阶段n集成方法集成方法p大爆炸集成大爆炸集成Big bang integration(all module together)p自顶向下集成自顶向下集成Top down integration(from higher levels no test drivers are needed)p自底向上集成自底向上集成Bottom up integration(from lower levels No test stubs necessary)p三明治集成三明治集成Sandwich testing(co

18、mbination of bottom-up and top-down)2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试n大爆炸集成大爆炸集成 1.1.目的目的 尽可能缩短测试时间,使用最少的测试用例验证系统。尽可能缩短测试时间,使用最少的测试用例验证系统。2.2.定义定义 大爆炸集成也称为一次性组装或整体拼装,这种集成大爆炸集成也称为一次性组装或整体拼装,这种集成测试策略的做法就是把所有通过单元测试的模块一次性测试策略的做法就是把所有通过单元测试的模块一次性集成到一起进行测试,不考虑组件之间的互相依赖性及集成到一起进行测试,不考虑组件之间的互相依赖性及可能存在的风险。可能存在的风

19、险。2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试3.具体方法具体方法 举例来说,假设要对某个系统的部分功能(包括举例来说,假设要对某个系统的部分功能(包括4个模块)进行测试,其功能分解如图:个模块)进行测试,其功能分解如图:ABDC2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试Unit Test D Unit Test C Unit Test B Unit Test A System Test(A,B,C,D)测试过程Test(A;B;C;D)Test ATest BTest CTest DTests Test A(with stubs for B and C)T

20、est B(with driver for A and stub for D)Test C(with driver for A)Test D(with driver for B)Test(A;B;C;D)ABDC2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试4.4.优点优点 (1 1)可以并行测试所有模块。)可以并行测试所有模块。(2 2)需要的测试用例数目少。)需要的测试用例数目少。(3 3)测试方法简单、易行。)测试方法简单、易行。5.5.缺点缺点 (1 1)由于不可避免存在模块间接口、全局数据结构等)由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一次运行成功的可

21、能性不大。方面的问题,所以一次运行成功的可能性不大。(2 2)如果一次集成的模块数量多,集成测试后可能会)如果一次集成的模块数量多,集成测试后可能会出现大量的错误。另外,修改了一处错误之后,很出现大量的错误。另外,修改了一处错误之后,很可能新增更多的新错误,新旧错误混杂,给程序的可能新增更多的新错误,新旧错误混杂,给程序的错误定位与修改带来很大的麻烦。错误定位与修改带来很大的麻烦。(3 3)即使集成测试通过,也会遗漏很多错误。)即使集成测试通过,也会遗漏很多错误。2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试6.6.适用范围适用范围 (1 1)只需要修改或增加少数几个模块的前期产

22、品稳定的)只需要修改或增加少数几个模块的前期产品稳定的项目;项目;(2 2)功能少,模块数量不多,程序逻辑简单,并且每个)功能少,模块数量不多,程序逻辑简单,并且每个组件都已经过充分单元测试的小型项目;组件都已经过充分单元测试的小型项目;(3 3)基于严格的净室软件工程(由)基于严格的净室软件工程(由IBMIBM公司开创的开发接公司开创的开发接近零缺陷的软件的成功做法)开发的产品,并且在每近零缺陷的软件的成功做法)开发的产品,并且在每个开发阶段,产品质量和单元测试质量都相当高的产个开发阶段,产品质量和单元测试质量都相当高的产品。品。2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试n

23、自顶向下集成自顶向下集成 自顶向下的集成测试就是按照系统层次结构图,以自顶向下的集成测试就是按照系统层次结构图,以主程序模块为中心,从顶层控制(主控模块)开始,自主程序模块为中心,从顶层控制(主控模块)开始,自上而下按照深度优先或者广度优先策略,对各个模块一上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。边组装一边进行测试。采用同设计顺序一样的思路对被测系统进行测试,采用同设计顺序一样的思路对被测系统进行测试,来验证系统的稳定性。来验证系统的稳定性。2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试Top-down Integration TestingABCDG

24、FELayer ILayer IILayer IIITest ATest A,B,C,D,E,F,GTest A,B,C,DLayer ILayer I+IIAll Layers 2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试n自底向上集成自底向上集成 1.1.定义定义 自底向上集成是从系统层次结构图的最底层模块开始按自底向上集成是从系统层次结构图的最底层模块开始按照层次结构图,逐层向上进行组装和集成测试的方式。照层次结构图,逐层向上进行组装和集成测试的方式。2.2.方法方法 .从最底层的模块开始组装;从最底层的模块开始组装;.编制驱动程序,协调测试用例的输入与输出;编制驱动程序

25、,协调测试用例的输入与输出;.测试集成后的构件;测试集成后的构件;.使用实际模块代替驱动程序,按程序结构向上组装使用实际模块代替驱动程序,按程序结构向上组装测试后的构件;测试后的构件;.重复上面的第二步,直到系统的最顶层模块被加入重复上面的第二步,直到系统的最顶层模块被加入到系统中为止。到系统中为止。2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试Bottom-up IntegrationABCDGFELayer ILayer IILayer IIITest D,GTest FTest ETest GTest CTest A,B,C,D,E,F,GTest B,E,F2.3 软件测

26、试的阶段软件测试的阶段二、二、集成测试集成测试n三明治集成(混合集成)三明治集成(混合集成)1.目的目的 综合利用自顶向下和自底向上两种集成测试策略的优综合利用自顶向下和自底向上两种集成测试策略的优点点2.定义定义 三明治集成是一种混合增殖式测试策略,综合了自顶三明治集成是一种混合增殖式测试策略,综合了自顶向下和自底向上两种集成方法,把系统划分成三层,向下和自底向上两种集成方法,把系统划分成三层,中间一层为目标层,目标层上采用自顶向下集成,目中间一层为目标层,目标层上采用自顶向下集成,目标层下采用自底向上集成。标层下采用自底向上集成。2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试

27、Sandwich Testing StrategyABCDGFELayer ILayer IILayer IIITest D,GTest FTest ETest GTest ATest A,B,C,D,E,F,GTest B,E,FBottomLayerTestsTopLayerTestsTest BTest DTest CTest A,B,C,D2.3 软件测试的阶段软件测试的阶段二、二、集成测试集成测试三、三、系统测试系统测试n什么是系统测试什么是系统测试p系统测试是将集成好的软件系统,作为整个基于计算机系统测试是将集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支

28、持软件、数系统的一个元素,与计算机硬件、外设、支持软件、数据等其它系统元素结合在一起,在实际运行(使用)环据等其它系统元素结合在一起,在实际运行(使用)环境下所进行的一系列测试活动。境下所进行的一系列测试活动。n系统测试的目的系统测试的目的p通过与系统的需求定义比较,检查软件是否存在与系统通过与系统的需求定义比较,检查软件是否存在与系统定义不符合或与之矛盾的地方,以验证软件系统的定义不符合或与之矛盾的地方,以验证软件系统的功能功能和和性能性能等满足其规约所指定的要求。等满足其规约所指定的要求。2.3 软件测试的阶段软件测试的阶段n系统测试方法系统测试方法 p性能测试性能测试 p恢复测试恢复测试

29、 p安全测试安全测试p可靠性测试可靠性测试 p安装测试安装测试 p容量测试容量测试p文档测试文档测试 2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试安全性测试安全性测试安全性测试是要检验在系统中已经存在的系统安全性、安全性测试是要检验在系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞,以检查系统对保密性措施是否发挥作用,有无漏洞,以检查系统对非法侵入的防范能力。非法侵入的防范能力。n测试人员

30、扮演非法入侵者。测试人员扮演非法入侵者。n系统安全设计的准则是:使非法侵入的代价超过被保系统安全设计的准则是:使非法侵入的代价超过被保护信息的价值。护信息的价值。2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试可靠性测试可靠性测试是为了检验系统的可靠性是否达到预期目标而进行是为了检验系统的可靠性是否达到预期目标而进行的测试。的测试。平均失效间隔时间平均失效间隔时间 MTBF(Mean Time Between Failures)是否超过规定时限是否超过规定时限?因故障而停机的时间因故障而停机的时间 MTTR(Mean Time To Repairs)在一年中应不超过多少时间。在一年

31、中应不超过多少时间。2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试容量测试容量测试n容量测试是根据预先分析出的某项指标极限值,测试系容量测试是根据预先分析出的某项指标极限值,测试系统在其极限值状态下是否能保持正常运行。例如,统在其极限值状态下是否能保持正常运行。例如,p 对于编译程序,让它处理特别长的源程序;对于编译程序,让它处理特别长的源程序;p 对于操作系统,让它的作业队列对于操作系统,让它的作业队列“满员满员”;p 对于信息检索系统,让它使用频率达到最大。对于信息检索系统,让它使用频率达到最大。在使系统的全部资源达

32、到在使系统的全部资源达到“满负荷满负荷”的情形下,测试系的情形下,测试系统的承受能力。统的承受能力。n完成标准可定义为:所计划的测试已全部执行,而且达完成标准可定义为:所计划的测试已全部执行,而且达到或超出指定的系统限制没有出现任何软件故障。到或超出指定的系统限制没有出现任何软件故障。2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试n检查用户文档的清晰性和精确性。检查用户文档的清晰性和精确性。2.3 软件测试的阶段软件测试的阶段三、三、系统测试系统测试四、验收测试四、验收测试 n验收测试是以用户为主的测试,软件开发人员和验收测试是以用户为主的测试,软件开发人员和QAQA(质量保证)

33、(质量保证)人员也应参加。由用户参加设计测试用例,使用用户界面输入人员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。一般使用生产中的实际数测试数据,并分析测试的输出结果。一般使用生产中的实际数据进行测试。在测试过程中,除了考虑软件的功能和性能外,据进行测试。在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。等进行确认。p测试是指软件开发公司组织内部人员模拟各类用户行对即测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为将面市软件

34、产品(称为版本)进行测试,试图发现错误并版本)进行测试,试图发现错误并修正。修正。p测试是指软件开发公司组织各方面的典型用户在日常工作测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用中实际使用版本,并要求用户报告异常情况、提出批评意版本,并要求用户报告异常情况、提出批评意见。然后软件开发公司再对见。然后软件开发公司再对版本进行改错和完善。版本进行改错和完善。2.3 软件测试的阶段软件测试的阶段2.4 其它测试类型其它测试类型n回归测试回归测试p在软件生命周期中的任何一个阶段,只要软件发生了改变,在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来问题。每当软件发生

35、变化时,就必须进就可能给该软件带来问题。每当软件发生变化时,就必须进行回归测试,重新测试原有的功能,以便确定修改是否达到行回归测试,重新测试原有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。了预期的目的,检查修改是否损害了原有的正常功能。p回归测试需要反复进行回归测试需要反复进行 p常利用自动测试工具来实现重复的和一致的回归测试常利用自动测试工具来实现重复的和一致的回归测试 n面向对象的软件测试面向对象的软件测试p面向对象的单元测试面向对象的单元测试 :类测试:类测试p面向对象的集成测试面向对象的集成测试 :类簇测试:类簇测试p面向对象的系统测试面向对象的系统测试

36、2.5 面对对象软件测试面对对象软件测试n1.面向对象软件的单元测试面向对象软件的单元测试p最小的可测试单位是封装的类或对象,而不再是个体最小的可测试单位是封装的类或对象,而不再是个体的模块。的模块。p面向对象的单元测试通常也称为类测试。面向对象的单元测试通常也称为类测试。p主要考察封装在一个类中的方法和类的状态行为主要考察封装在一个类中的方法和类的状态行为。处处 理理处处 理理 输入数据输入数据 输出结果输出结果 传统单元测试模型传统单元测试模型 输入数据输入数据 输出结果输出结果 初始状态初始状态 结束状态结束状态 类测试模型类测试模型2.5 面对对象软件测试面对对象软件测试n2.面向对象

37、软件的集成测试面向对象软件的集成测试p面向对象的集成测试即类簇测试。面向对象的集成测试即类簇测试。p类簇是指一组相互有影响,联系比较紧密的类。类簇是指一组相互有影响,联系比较紧密的类。它是一个相对独立的实体,在整体上是可执行和它是一个相对独立的实体,在整体上是可执行和可测试的,并且实现了一个内聚的责任集合,但可测试的,并且实现了一个内聚的责任集合,但不提供被测试程序的全部功能,相当于一个子系不提供被测试程序的全部功能,相当于一个子系统。统。p类簇测试主要根据系统中相关类的层次关系,检类簇测试主要根据系统中相关类的层次关系,检查类之间的相互作用的正确性查类之间的相互作用的正确性,即检查各相关类即

38、检查各相关类之间消息连接的合法性、子类的继承性与父类的之间消息连接的合法性、子类的继承性与父类的一致性、动态绑定执行的正确性、类簇协同完成一致性、动态绑定执行的正确性、类簇协同完成系统功能的正确性等等。系统功能的正确性等等。2.5 面对对象软件测试面对对象软件测试n2.面向对象软件的集成测试面向对象软件的集成测试(1 1)基于类间协作关系的横向测试。由系统的一个输入事件)基于类间协作关系的横向测试。由系统的一个输入事件作为激励,对其触发的一组类进行测试,执行相应的操作作为激励,对其触发的一组类进行测试,执行相应的操作/消息处理路径,最后终止于某一输出事件。应用回归测试对消息处理路径,最后终止于

39、某一输出事件。应用回归测试对已测试过的类集再重新执行一次,以保证加入新类时不会产已测试过的类集再重新执行一次,以保证加入新类时不会产生意外的结果。生意外的结果。(2 2)基于类间继承关系的纵向测试。首先通过测试不使用或)基于类间继承关系的纵向测试。首先通过测试不使用或很少使用其他类服务的类,即独立类(是系统中已经测试正很少使用其他类服务的类,即独立类(是系统中已经测试正确的某类)来开始构造系统。在独立类测试完成后,下一层确的某类)来开始构造系统。在独立类测试完成后,下一层继承独立类的类(称为依赖类)被测试,这个依赖类层次的继承独立类的类(称为依赖类)被测试,这个依赖类层次的测试序列一直循环执行

40、到构造完整个系统。测试序列一直循环执行到构造完整个系统。2.5 面对对象软件测试面对对象软件测试n3.面向对象软件的系统测试面向对象软件的系统测试p系统测试是对所有程序和外部成员构成的整个系统系统测试是对所有程序和外部成员构成的整个系统进行整体测试,检验软件和其他系统成员配合工作进行整体测试,检验软件和其他系统成员配合工作是否正确,另外,还包括了确认测试内容,以验证是否正确,另外,还包括了确认测试内容,以验证软件系统的正确性和性能指标等是否满足需求规格软件系统的正确性和性能指标等是否满足需求规格说明书所制定的要求。说明书所制定的要求。p它一般不考虑内部结构和中间结果,因此与传统的它一般不考虑内

41、部结构和中间结果,因此与传统的系统测试差别不大,可沿用传统的系统测试方法。系统测试差别不大,可沿用传统的系统测试方法。2.6 2.6 软件测试的过程模型软件测试的过程模型nV模型模型 V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求试确定软件的实现是否满足用户需要或合同的要求。nW模型模型 W模型由两个模型由两个V字型模型组成,分别代表

42、测试与开发过程。字型模型组成,分别代表测试与开发过程。W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。2.6 软件测试的过程模型软件测试的过程模型nH模型模型 H模型将测试活动完全独立出来,形成了一个完全独立的流程,模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。将测试准备活动和测试执行活动清晰地体现出来。H模型揭示了软件测试是一个独立的流程,贯

43、穿产品整个生命周模型揭示了软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。期,与其他流程并发地进行。2.6 软件测试的过程模型软件测试的过程模型nX模型模型 X模型提出针对单独的程序片段进行相互分离的编码和测试,此模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最综合成为可执行的程序后通过频繁的交接,通过集成最综合成为可执行的程序。2.6 软件测试的过程模型软件测试的过程模型n测试成熟度模型测试成熟度模型p第第1 1级:测试和调试没有区别,除了支持调试外,测试级:测试和调试没有区别,除了支持调试外,测试没有其他目的;没有其他目的;p第第2

44、2级:测试的目的是为了表明软件能够工作;级:测试的目的是为了表明软件能够工作;p第第3 3级:测试的目的是为了表明软件不能正常工作;级:测试的目的是为了表明软件不能正常工作;p第第4 4级:测试的目的不是要证明什么,而是为了把软件级:测试的目的不是要证明什么,而是为了把软件不能正常工作的预知风险降低到能够接受的程度;不能正常工作的预知风险降低到能够接受的程度;p第第5 5级:测试不是行为,而是一种自觉的约束,不用将级:测试不是行为,而是一种自觉的约束,不用将太多的测试投入到产生低风险的软件上。太多的测试投入到产生低风险的软件上。2.6 软件测试的过程模型软件测试的过程模型n测试过程模型的使用策

45、略测试过程模型的使用策略p宏观上以宏观上以W W模型为基本框架,从软件开发工作一开始模型为基本框架,从软件开发工作一开始就展开测试工作,微观上在每个测试阶段以就展开测试工作,微观上在每个测试阶段以H H模型为模型为指导,进行独立测试,即只要准备工作就绪,就可以指导,进行独立测试,即只要准备工作就绪,就可以进行独立的测试,并反复迭代测试,直至达到预定目进行独立的测试,并反复迭代测试,直至达到预定目标。而对于软件企业而言,则应以标。而对于软件企业而言,则应以TMMTMM为指导,努力为指导,努力建立规范的软件测试过程。建立规范的软件测试过程。2.6 软件测试的过程模型软件测试的过程模型2.7 2.7

46、 软件测试的发展概况软件测试的发展概况n第一阶段:第一阶段:20世纪世纪70年代,软件测试主要以代码调试为主。年代,软件测试主要以代码调试为主。n第二阶段:第二阶段:20世纪世纪70年代,主要以演示软件系统的正确性为主。年代,主要以演示软件系统的正确性为主。n第三阶段:第三阶段:20世纪世纪80-90年代,软件测试主要以检查程序错误为主。年代,软件测试主要以检查程序错误为主。n第四阶段:第四阶段:20世纪世纪90年后,软件测试不断得到完善,更注重软件质年后,软件测试不断得到完善,更注重软件质量特性的整体评估。量特性的整体评估。1900手工操作者专职检验员1920过程统计技术1931全面质量管理

47、1960以顾客为中心阶段时间2.8 2.8 国内外软件测试的现状国内外软件测试的现状n国外现状:相当成熟,并已成为一个独立的产业。国外现状:相当成熟,并已成为一个独立的产业。p软件测试在公司中的地位非常重要软件测试在公司中的地位非常重要 p软件测试的理论研究蓬勃发展软件测试的理论研究蓬勃发展 p软件测试市场繁荣软件测试市场繁荣 n国内现状:市场已经起步国内现状:市场已经起步n国内软件测试行业的三种形式国内软件测试行业的三种形式p对外的第三方测试对外的第三方测试p对内的第三方测试对内的第三方测试 p软件公司内部的软件测试或质量保证部门软件公司内部的软件测试或质量保证部门 2.8 国内外软件测试的

48、现状国内外软件测试的现状n软件测试的地位并不高,发展仍然很不足,原因在于软件测试的地位并不高,发展仍然很不足,原因在于p国内软件产业本身不强大国内软件产业本身不强大p软件公司规模小、不正规软件公司规模小、不正规 p对软件测试的认识和重视程度不够对软件测试的认识和重视程度不够 p软件管理者与用户的质量意识不够强软件管理者与用户的质量意识不够强 p软件行业质量监督体系不够好软件行业质量监督体系不够好 p软件从业人员素质不高软件从业人员素质不高 p软件测试的经济效益短期内不明显软件测试的经济效益短期内不明显 2.8 国内外软件测试的现状国内外软件测试的现状2.9 2.9 软件测试职业的现状软件测试职

49、业的现状n人才需求大人才需求大 只能说越来越大只能说越来越大n职业具有明显优势职业具有明显优势p就业竞争压力小,工作更稳定就业竞争压力小,工作更稳定 p薪资步步高薪资步步高 p多元化发展多元化发展 p无性别歧视无性别歧视p越老越吃香越老越吃香 n也存在职业瓶颈也存在职业瓶颈2.10 2.10 软件测试工程师的素质要求软件测试工程师的素质要求 n两项意识:两项意识:服务和团队意识服务和团队意识n三颗三颗“心心”:耐心、细心和信心耐心、细心和信心n四种能力:四种能力:技术、沟通、逆向思维和理解技术、沟通、逆向思维和理解n五个特性:五个特性:幽默、记忆、怀疑、督促、周全幽默、记忆、怀疑、督促、周全管理人员管理人员开发人员开发人员项目人员项目人员维护人员维护人员用户代表用户代表

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!