评价通过所有单元测试用例课件.ppt

上传人(卖家):晟晟文业 文档编号:4625394 上传时间:2022-12-26 格式:PPT 页数:212 大小:2.27MB
下载 相关 举报
评价通过所有单元测试用例课件.ppt_第1页
第1页 / 共212页
评价通过所有单元测试用例课件.ppt_第2页
第2页 / 共212页
评价通过所有单元测试用例课件.ppt_第3页
第3页 / 共212页
评价通过所有单元测试用例课件.ppt_第4页
第4页 / 共212页
评价通过所有单元测试用例课件.ppt_第5页
第5页 / 共212页
点击查看更多>>
资源描述

1、1.1 什么是软件什么是软件1、软件的定义、软件的定义 与硬件相互依存的另一部分,它是包括程序、与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。数据及其相关文档的完整集合。2、软件的分类、软件的分类按照功能分:系统软件和应用软件按照功能分:系统软件和应用软件按照技术架构分:单机版软件、按照技术架构分:单机版软件、C/S结构软件、结构软件、B/S结构软件结构软件按照用户分:产品软件和项目软件按照用户分:产品软件和项目软件按照开发的规模分:大、中、小按照开发的规模分:大、中、小1.3 为什么要进行软件测试为什么要进行软件测试 软件总存在缺陷。只有通过测试,才可以发现软软件总存在

2、缺陷。只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。从软件产品或软件系统中清理出去。软件中存在的缺陷给我们带来的损失是巨大的,软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性这也说明了软件测试的必要性和重要性 测试是所有工程学科的基本组成单元,自然也是测试是所有工程学科的基本组成单元,自然也是软件开发的重要组成部分。软件开发的重要组成部分。测试人员水平越高,找到软件问题的时间就越早,测试人员水平越高,找到软件问题的时间就越早,软件就越容易更正,产品发布之后越稳定,公司软件

3、就越容易更正,产品发布之后越稳定,公司赚的钱也越多,微软就是一个典型的例子赚的钱也越多,微软就是一个典型的例子1.4 什么是软件测试什么是软件测试1、软件测试的定义软件测试的定义 软件测试就是在软件投入运行前,对软件需软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:的定义有两种描述:定义定义1:软件测试是为了发现错误而执行程序的软件测试是为了发现错误而执行程序的过程。过程。定义定义2:在在IEEE提出的软件工程标准术语中

4、,软提出的软件工程标准术语中,软件测试被定义为:件测试被定义为:“使用人工和自动手段来运行使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之满足规定的需求或弄清楚预期结果与实际结果之间的差别。间的差别。”1.4 什么是软件测试什么是软件测试1、软件测试的定义、软件测试的定义u软件测试的正确定义软件测试的正确定义 软件测试是由软件测试是由“验证(验证(Verification)”和和“有有效性确认(效性确认(Validation)”活动构成的整体。活动构成的整体。验证验证”是检验软件是否已正确地实

5、现了产品规是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性格书所定义的系统功能和特性“有效性确认有效性确认”是确认所开发的软件是否满足是确认所开发的软件是否满足用户真正需求的活动。用户真正需求的活动。1.4 什么是软件测试什么是软件测试2、软件测试的对象软件测试的对象 软件测试不等于程序测试。软件测试不等于程序测试。软件测试贯串于软件定义和开发的整个过程。软件测试贯串于软件定义和开发的整个过程。软件开发过程中所产生的需求规格说明、概要软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。都是软件测

6、试的对象。3、软件测试的原则软件测试的原则 尽早地和及时地测试;尽早地和及时地测试;测试用例应当由测试数据和与之对应的预期结测试用例应当由测试数据和与之对应的预期结果这两部分组成;果这两部分组成;在程序提交测试后,应当由专门的测试人员进在程序提交测试后,应当由专门的测试人员进行测试;行测试;测试用例应包括合理的输入条件和不合理的输测试用例应包括合理的输入条件和不合理的输入条件;入条件;严格执行测试计划,排除测试的随意性;严格执行测试计划,排除测试的随意性;充分注意测试当中的群体现象;充分注意测试当中的群体现象;应对每一个测试结果做全面的检查;应对每一个测试结果做全面的检查;保存测试计划、测试用

7、例、出错统计和最终分保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。析报告,为维护工作提供充分的资料。第二章第二章 软件测试的基本概念软件测试的基本概念主要内容:主要内容:2.1 软件缺陷软件缺陷2.2 验证和确认验证和确认2.3 软件测试分类软件测试分类2.4 软件测试阶段软件测试阶段2.5 软件测试工作范畴软件测试工作范畴缺陷是质量的对立面缺陷是质量的对立面 要了解什么是缺陷要了解什么是缺陷(defect),就必须清楚,就必须清楚“质质量量(Quality)”概念,因为缺陷是相对质量而存在概念,因为缺陷是相对质量而存在的,违背了质量、违背了客户的意愿,不能满足的,

8、违背了质量、违背了客户的意愿,不能满足客户的要求,就会引起缺陷或产生缺陷客户的要求,就会引起缺陷或产生缺陷2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵1、质量、质量 质量质量是是“产品或服务所满足产品或服务所满足明示明示或或暗示暗示需求能需求能力的力的固有特性固有特性和特征的集合和特征的集合”。2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵2、软件质量、软件质量 软件质量软件质量是软件产品满足规定的和隐含的与需是软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。包括:求能力有关的全部特征和特性。包括:(1)软件产品质量满足用户要求的程度;)软件产品质量满足

9、用户要求的程度;(2)软件各种属性的组合程度;)软件各种属性的组合程度;(3)用户对软件产品的综合反映程度;)用户对软件产品的综合反映程度;(4)软件在使用过程中满足用户要求的程度。)软件在使用过程中满足用户要求的程度。2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵3、软件质量模型、软件质量模型 McCallMcCall软件质量模型软件质量模型 2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵3、软件质量模型、软件质量模型 ISO 9126ISO 9126软件质量三层模型软件质量三层模型2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵4、软件质量特性、软件

10、质量特性 功能性、易用性、可靠性、性能、容量功能性、易用性、可靠性、性能、容量 可测量性、可维护性、可移植性、可扩展性可测量性、可维护性、可移植性、可扩展性2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵5、软件质量的分类、软件质量的分类(1)软件质量的功能需求)软件质量的功能需求 软件质量的功能需求一般会在需求规格说明书软件质量的功能需求一般会在需求规格说明书等文档中给相应的描述。等文档中给相应的描述。(2)软件质量的非功能需求)软件质量的非功能需求 软件质量的非功能需求一般用下列特性描述:软件质量的非功能需求一般用下列特性描述:性能、性能、有效性、有效性、可靠性、可靠性、可维护

11、性、兼容可维护性、兼容性、性、可扩展性、可扩展性、可移植性可移植性2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵5、软件质量的分类、软件质量的分类(3)软件质量的用户需求)软件质量的用户需求能正常使用全部所需的功能,符合需求规格;能正常使用全部所需的功能,符合需求规格;功能强大,而且界面美观,易用;功能强大,而且界面美观,易用;内容健康、有益于生活和工作。内容健康、有益于生活和工作。用户数据的安全、受保护和兼容;用户数据的安全、受保护和兼容;能及时得到新的产品或更完美的软件服务;能及时得到新的产品或更完美的软件服务;软件可靠性很高,使用软件服务没有时间障碍软件可靠性很高,使用软件

12、服务没有时间障碍2.1 软件缺陷软件缺陷一、软件质量的内涵一、软件质量的内涵5、软件质量的分类、软件质量的分类(4)软件质量的企业需求)软件质量的企业需求 开发成本开发成本 可维护性可维护性 可扩展性可扩展性 可移植性可移植性 兼容性兼容性2.1 软件缺陷软件缺陷二、软件缺陷二、软件缺陷1、软件缺陷的定义、软件缺陷的定义 从产品内部看,软件缺陷是软件产品开发或维护从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。能的失效或违背。2.

13、1 软件缺陷软件缺陷二、软件缺陷二、软件缺陷2、软件缺陷的表现、软件缺陷的表现 功能、特性没有实现或部分实现功能、特性没有实现或部分实现 设计不合理,存在缺陷设计不合理,存在缺陷 实际结果和预期结果不一致实际结果和预期结果不一致 运行出错,包括运行中断、系统崩溃、界面混乱运行出错,包括运行中断、系统崩溃、界面混乱 数据结果不正确、精度不够数据结果不正确、精度不够 用户不能接受的其他问题,如存取时间过长、界用户不能接受的其他问题,如存取时间过长、界面不美观面不美观2.1 软件缺陷软件缺陷二、软件缺陷二、软件缺陷3、软件缺陷产生的原因、软件缺陷产生的原因 微软开发者成功之路(之一)微软开发者成功之

14、路(之一)概括了以下概括了以下7项项主要原因:主要原因:(1)项目期限的压力;)项目期限的压力;(2)产品的复杂度;)产品的复杂度;(3)沟通不良;)沟通不良;(4)开发人员疲劳,压力过大或受到干扰;)开发人员疲劳,压力过大或受到干扰;(5)缺乏足够的知识、技能和经验;)缺乏足够的知识、技能和经验;(6)不了解客户的需求;)不了解客户的需求;(7)缺乏动力。)缺乏动力。2.1 软件缺陷软件缺陷二、软件缺陷二、软件缺陷4、软件缺陷的构成、软件缺陷的构成其他其他6%软件产品说明软件产品说明书(需求)书(需求)54%编写代码编写代码15%设计设计25%2.1 软件缺陷软件缺陷二、软件缺陷二、软件缺陷

15、5、修复软件缺陷的代价、修复软件缺陷的代价0 02020404060608080100100编制说明书编制说明书设计阶段设计阶段编写代码编写代码测试测试发布发布软件缺陷随时间的推移带来的成本越来越大软件缺陷随时间的推移带来的成本越来越大2.2 验证和确认验证和确认一、验证和确认一、验证和确认VerificationVerification:Are we building the product right?是否正确地构造了软件?即是否正确地做事,验证开发是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。过程是否遵守已定义好的内容。验证产品满足规格设验证产品满足规格设计

16、说明书的一致性计说明书的一致性ValidationValidation:Are we building the right product?是是否构造了正是用户所需要的软件?即是否正在做正确否构造了正是用户所需要的软件?即是否正在做正确的事。的事。验证产品所实现的功能是否满足用户的需求验证产品所实现的功能是否满足用户的需求2.2 验证和确认验证和确认二、评审二、评审 通过软件评审,可以更早地发现需求工程、软通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期返工,将质量成本从昂贵的

17、后期返工转化为前期的缺陷发现。的缺陷发现。1 1、评审、评审 评审评审是对软件元素或者项目状态的一种评估手段,是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得以确定其是否与计划的结果保持一致,并使其得到改进到改进。检验工作产品是否正确地满足了以往工检验工作产品是否正确地满足了以往工作产品中建立的规范作产品中建立的规范。2.2 验证和确认验证和确认二、评审二、评审2 2、评审分类、评审分类 管理评审管理评审 技术评审技术评审 文档评审文档评审 流程评审流程评审2.2 验证和确认验证和确认三、质量保证和测试的关系三、质量保证和测试的关系1 1、软件质量保证:、软件

18、质量保证:是通过对软件产品有计划的进行评审是通过对软件产品有计划的进行评审和审计来验证软件是否合乎标准的系统工程。和审计来验证软件是否合乎标准的系统工程。2 2、SQASQA的活动:的活动:提出软件质量要求;提出软件质量要求;确定开发方案;确定开发方案;阶段评审;阶段评审;测试管理测试管理 文档化管理文档化管理 验证产品与相应文档和标准的一致性验证产品与相应文档和标准的一致性 建立测量机制建立测量机制 记录并生成报告记录并生成报告2.2 验证和确认验证和确认三、质量保证和测试的关系三、质量保证和测试的关系3 3、SQA与软件测试的关系与软件测试的关系 SQA 是是管理管理工作、审查对象是工作、

19、审查对象是流程流程、强调以、强调以预防预防为主为主 测试是测试是技术技术工作、测试对象是工作、测试对象是产品产品、主要是以、主要是以事事后检查后检查 SQA指导测试、监控测试指导测试、监控测试 测试为测试为SQA提供依据提供依据2.3 软件测试的分类软件测试的分类方法方法目标目标/特性特性单元测试单元测试系统测试系统测试验收测试验收测试性能测试性能测试强壮性测试强壮性测试功能测试功能测试白盒测试白盒测试黑盒测试黑盒测试测试阶段或层次测试阶段或层次适用性测试适用性测试可靠性测试可靠性测试集成测试集成测试安全性测试安全性测试2.3 软件测试的分类软件测试的分类 按测试的对象或范围分类,如单元测试、

20、文档测按测试的对象或范围分类,如单元测试、文档测试、系统测试等)试、系统测试等)按测试目的分类,如功能测试、回归测试、性能按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等测试、可靠性测试、安全性测试和兼容性测试等 根据测试过程中被测软件是否被执行,分为静态根据测试过程中被测软件是否被执行,分为静态测试和动态测试测试和动态测试 根据是否针对系统的内部结构和具体实现算法来根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试完成测试,可分为白盒测试和黑盒测试2.4 软件测试阶段软件测试阶段需求和设计审查需求和设计审查 测试人员参与产品需求分

21、析和系统设计,认测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解客户的需求和技术上真阅读有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可测试性等一致性等,检查系统设计的合理性和可测试性等单元测试单元测试 单元测试的对象是程序系统中的最小单元单元测试的对象是程序系统中的最小单元-模块或组模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,过白盒测试方法,从程序的内部结构出发

22、设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块立地测试,通常要编写驱动模块和桩模块单元测试一般由编程人员和测试人员共同完成,而以开发单元测试一般由编程人员和测试人员共同完成,而以开发人员为主人员为主单元测试包括代码评审,代码评审可以发现程序单元测试包括代码评审,代码评审可以发现程序50%50%70%70%代码的缺陷。代码的缺陷。集成测试集成测试 集成测试,也称组装测试、联合测试、子系集成测试,

23、也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题接口有关的模块之间问题 两种集成方式:一次性集成方式和增殖式集成方两种集成方式:一次性集成方式和增殖式集成方式。式。功能测试功能测试 功能测试一般须在完成集成测试后进行,而功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,品功能说明书,是在已知产品所应具有的功能,从用

24、户角度来进行功能验证,以确认每个功能是从用户角度来进行功能验证,以确认每个功能是否都能正常使用否都能正常使用 系统测试系统测试 系统测试是将软件放在整个计算机环境下,系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等测试、安全测试、强度测试和性能测试等 验收测试验收测试&安装测试安装测试验收测试验收测试的目的是向未来的用户表明系统能够的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和

25、性能像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样如同用户所合理期待的那样安装测试安装测试是指按照软件产品安装手册或相应的是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步境中或相当于用户使用环境中,进行一步一步的安装操作性的测试的安装操作性的测试 2.5 软件测试的工作范畴软件测试的工作范畴 软件测试工作的组织与管理软件测试工作的组织与管理:制定测试策略、测:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试

26、资源。试进度,管理测试资源。测试工作的实施测试工作的实施:编制符合标准的测试文档,搭:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动现各阶段的测试活动测试工作流程测试工作流程3.1 白盒测试方法白盒测试方法3.1 白盒测试方法白盒测试方法3.1 白盒测试方法白盒测试方法一、逻辑覆盖法一、逻辑覆盖法例:实现一个简单的数学运算例:实现一个简单的数学运算1.Dim a,b As Integer2.Dim c As Double3.If(a0 And b0)Then4.c=c/a5.End if6.If(a1 or c1

27、)Then7.c=c+18.End if9.c=b+c一、逻辑覆盖法一、逻辑覆盖法路径:路径:P1(124)P2(125)P3(134)P4(135)测试用例测试用例:a=2,b=1,c=6一、逻辑覆盖法一、逻辑覆盖法【优点优点】:可以很直观地从源代码得到测试用:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。例,无须细分每条判定表达式。【缺点缺点】:语句覆盖是最弱的逻辑覆盖。不能:语句覆盖是最弱的逻辑覆盖。不能发现其中的逻辑错误。发现其中的逻辑错误。一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法 测试用例测试用例:a=2,b=1,c=6 a=-2,b=-1,c=-3 测试

28、用例测试用例:a=1,b=1,c=0 a=2,b=-1,c=6一、逻辑覆盖法一、逻辑覆盖法【优点优点】:判定覆盖具有比语句覆盖更强的测试判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。单性,无须细分每个判定就可以得到测试用例。【缺点缺点】:往往大部分的判定语句是由多个逻辑往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值忽略每个条件的取值情况,必然会遗漏部分测试情况,必然会遗漏部分测试路径。判定覆盖仍是

29、路径。判定覆盖仍是弱弱的逻辑覆盖。的逻辑覆盖。一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法 判断判断M表达式表达式:条件条件 a0 取真取真 记为记为 T1 假假 F1 条件条件 b0 取真取真 记为记为 T2 假假 F2 判断判断N表达式表达式:条件条件 a1 取真取真 记为记为 T3 假假 F3 条件条件 c1 取真取真 记为记为 T4 假假 F4一、逻辑覆盖法一、逻辑覆盖法测试用例测试用例覆盖覆盖条件条件具体取具体取值条件值条件a=2b=-1c=-2T1,F2,T3,F4a0b1c=1a=-1b=2c=3F1,T2,F3,T4a0a1它覆盖了判定它覆盖了判定M的的N分支和判断

30、分支和判断N N的的Y分支。分支。一、逻辑覆盖法一、逻辑覆盖法【优点优点】:增加了对条件判定情况的测试。:增加了对条件判定情况的测试。【缺点缺点】:条件覆盖不一定包含判定覆盖。例如,:条件覆盖不一定包含判定覆盖。例如,我们刚才设计的用例就没有覆盖判断我们刚才设计的用例就没有覆盖判断M的的Y分支分支和判断和判断N的的N分支。条件覆盖只能保证每个条件分支。条件覆盖只能保证每个条件至少有一次为真,而至少有一次为真,而不考虑所有的判定结果。不考虑所有的判定结果。一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法 按照判定条件覆盖按照判定条件覆盖的要求,我们设计的的要求,我们设计的测试用例要满足如

31、下测试用例要满足如下条件:条件:(1)所有条件可能至少)所有条件可能至少执行一次取值;执行一次取值;(2)所有判断的可能结)所有判断的可能结果至少执行一次。果至少执行一次。判断判断M判断判断N一、逻辑覆盖法一、逻辑覆盖法判断判断M判断判断N测试用例测试用例覆盖覆盖条件条件覆盖判断覆盖判断a=2b=1c=6T1,T2,T3,T4M的的Y分支分支N的的Y分支分支a=-1b=-2c=-3F1,F2,F3,F4M的的N分支分支N的的N分支分支一、逻辑覆盖法一、逻辑覆盖法【优点优点】:能同时满足判定、条件两种覆盖标准。能同时满足判定、条件两种覆盖标准。【缺点缺点】:判定:判定/条件覆盖准则的缺点是未考虑

32、条件覆盖准则的缺点是未考虑条件的组合条件的组合情况。情况。一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法一、逻辑覆盖法设计设计组合条件组合条件如表所示:如表所示:编号编号覆盖条件取值覆盖条件取值判定条件取值判定条件取值具体条件取值具体条件取值1T1,T2M取取Ya0,b02T1,F2M取取Na0,b=03F1,T2M取取Na04F1,F2M取取Na=0,b1,c16T3,F4N取取Ya1,c=17F3,T4N取取Ya18F3,F4N取取Na=1,c 0)5 6 If(iType=0)7x=y+2;8 else9 If(iType=1)10 x=y+10;11 else12 x=y+20;13 14

33、(1)画出控制流图)画出控制流图(2)计算环形复杂度)计算环形复杂度(3)导出独立路径(用语句)导出独立路径(用语句编号表示)编号表示)(4)设计测试用例)设计测试用例(1)画出控制流图:)画出控制流图:(2)计算环形复杂度:)计算环形复杂度:10(条边)(条边)-8(个节点)(个节点)+2=4(3)导出独立路径(用语句编号表示)导出独立路径(用语句编号表示)路径路径1:414 路径路径2:46714 路径路径3:4691013414 路径路径4:4691213414467910121314输入数据输入数据预期输出预期输出测试用例测试用例1irecordnum=0itype=0 x=0y=0测

34、试用例测试用例2irecordnum=1itype=0 x=0y=0测试用例测试用例3irecordnum=1itype=1x=10y=0测试用例测试用例4irecordnum=1itype=2x=0y=20(4)设计测试用例:)设计测试用例:例例 下面是选择排序的程序,其中下面是选择排序的程序,其中datalist是数据表,是数据表,它有两个数据成员:一是元素类型为它有两个数据成员:一是元素类型为Element的数组的数组V,另一个是数组大小另一个是数组大小n。算法中用到交换两数组元素内容。算法中用到交换两数组元素内容的操作的操作Swap():void SelectSort(datalist

35、 list)/对表对表list.V0到到list.Vn-1进行排序进行排序,n是表当前长度。是表当前长度。for(int i=0;i list.n-1;i+)int k=i;/在在list中找具有最小关键码的对象中找具有最小关键码的对象 for(int j=i+1;j list.n;j+)if(list.Vj list.Vk)k=j;/当前具最小关键码的对象当前具最小关键码的对象 if(k!=i)Swap(list.Vi,list.Vk);/交换交换 (1)路径)路径1,3(2)路径)路径1,2,4,6(3)路径)路径1,2,4,7(4)路径)路径1,2,5,8,3(5)路径)路径1,2,5,

36、9,3三、循环测试三、循环测试n目标目标:在循环内部及边界上执行测试在循环内部及边界上执行测试(1)简单循环简单循环(2)嵌套循环嵌套循环(3)串接循环串接循环(4)不规则循环不规则循环三、循环测试三、循环测试1.简单循环简单循环(迭代次数n)完全跳过循环完全跳过循环 只经过循环一次只经过循环一次 经过循环两次经过循环两次 经过循环经过循环m(m n)次)次 分别经过循环分别经过循环n-1,n,n+1 次次三、循环测试三、循环测试2.嵌套循环嵌套循环在最里面的循环完成前面所在最里面的循环完成前面所述的简单循环测试,同时设定述的简单循环测试,同时设定外部循环的最小迭代次数外部循环的最小迭代次数逐

37、步向外循环进行逐步向外循环进行直到所有循环被测试直到所有循环被测试三、循环测试三、循环测试2.嵌套循环嵌套循环测试项测试项最外层循环次数最外层循环次数中间层循环次数中间层循环次数最内层循环次数最内层循环次数最内层最内层最小值最小值最小值最小值不同值不同值中间层中间层最小值最小值不同值不同值典型值典型值最外层最外层不同值不同值典型值典型值典型值典型值嵌套循环测试时各层循环控制变量的取值嵌套循环测试时各层循环控制变量的取值三、循环测试三、循环测试3.串行连接循环串行连接循环独立循环独立循环 可以分别看作简单循环可以分别看作简单循环测试测试依赖性循环依赖性循环 可以看作是嵌套循环可以看作是嵌套循环4

38、.其它非循环结构其它非循环结构重新设计重新设计!四、程序插装四、程序插装 程序插装程序插装是指在程序中设置断点或打印语句,是指在程序中设置断点或打印语句,在执行中了解程序中的一些动态特性。在执行中了解程序中的一些动态特性。n程序插装技术的研究涉及的问题:程序插装技术的研究涉及的问题:探测哪些信息。探测哪些信息。程序的什么位置设置探测点程序的什么位置设置探测点需要多少探测点需要多少探测点第三章第三章 软件测试方法软件测试方法主要内容:主要内容:3.1 白盒测试方法白盒测试方法3.2 黑盒测试方法黑盒测试方法3.3 静态测试和动态测试静态测试和动态测试3.4 探查式测试探查式测试3.5 测试用例设

39、计测试用例设计3.2 黑盒测试方法黑盒测试方法功能测试功能测试数据驱动测试数据驱动测试 客户需求事件驱动输入输出3.2 黑盒测试方法黑盒测试方法3.2 黑盒测试方法黑盒测试方法等价类划分方法等价类划分方法 将程序可能的输入数据分成若干个子集,从每个子将程序可能的输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例集选取一个代表性的数据作为测试用例,等价类是等价类是某个输入域的子集,在该子集中每个输入数据的作某个输入域的子集,在该子集中每个输入数据的作用是等效的用是等效的 分为分为有效等价类有效等价类和和无效等价类无效等价类。在分析需求规格说明的基础上划分等价类,列出等在分析需求规

40、格说明的基础上划分等价类,列出等价类表价类表设计测试用例时,要同时考虑这两种等价类。设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反的测试才能确保软件受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。具有更高的可靠性。确定等价类的方法(确定等价类的方法(1)在输入条件规定了取值范围或值的个数的情况下,在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类则可以确立一个有效等价类和两个无效等价类in rangegreater than rangeless than

41、rangevaluegreater than valueless than value 在输入条件规定了输入值的集合或者规定了在输入条件规定了输入值的集合或者规定了“必必须如何须如何”的条件的情况下,可以确立一个有效等的条件的情况下,可以确立一个有效等价类和一个无效等价类。价类和一个无效等价类。确定等价类的方法(确定等价类的方法(2)not member of setmember of set 在输入条件是一个布尔量的情况下,可确定一个在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类有效等价类和一个无效等价类确定等价类的方法(确定等价类的方法(3)BooleanNon-Bo

42、olean确定等价类的方式确定等价类的方式(4)n 在规定了输入数据的一组值在规定了输入数据的一组值(假定假定n n个个),并且程,并且程序要对每一个输入值分别处理的情况下,可确立序要对每一个输入值分别处理的情况下,可确立n n个有效等价类和一个无效等价类。个有效等价类和一个无效等价类。个人月收入个人月收入-x 税率税率 x=1600 0%1600 x 2100 5%500 =x 3600 10%3600 =x 6600 15%6600 =x 21600 20%21600 =x 101600 45%确定等价类的方式确定等价类的方式(5)n 在规定了输入数据必须遵守的规则的情况下,可在规定了输入

43、数据必须遵守的规则的情况下,可确立一个有效等价类确立一个有效等价类(符合规则符合规则)和若干个无效等和若干个无效等价类价类(从不同角度违反规则从不同角度违反规则)。等价类测试用例-Example等价类等价类1:Integer等价类等价类2:Decimal fraction等价类等价类3:Negative等价类等价类4:Invalid input根据等价类创建测试用例的步骤根据等价类创建测试用例的步骤a)a)建立等价类表,列出所有划分出的等价类:建立等价类表,列出所有划分出的等价类:b)b)为每个等价类规定一个唯一的编号;为每个等价类规定一个唯一的编号;c)c)设计一个新的测试用例,使其尽可能多

44、地覆盖尚未覆盖的设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类有效等价类d)d)重复重复c)c),最后使得所有有效等价类均被测试用例所覆盖;,最后使得所有有效等价类均被测试用例所覆盖;e)e)设计一个新的测试用例,使其只覆盖一个无效等价类。设计一个新的测试用例,使其只覆盖一个无效等价类。f)f)重复重复e)e)使所有无效等价类均被覆盖。使所有无效等价类均被覆盖。输入条件输入条件有效等价类有效等价类无效等价类无效等价类边界值分析方法边界值分析方法 边界值分析也是一种黑盒测试方法,是对等价边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。类划分方法的补充。人们从长期的测试工作

45、经验得知,大量的错误人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。测试用例,可以查出更多的错误。设计方法:设计方法:确定边界情况(输入或输出等价类的边界)确定边界情况(输入或输出等价类的边界)选取正好等于、刚刚大于或刚刚小于边界值选取正好等于、刚刚大于或刚刚小于边界值作为测试数据作为测试数据确定边界值的方法确定边界值的方法n如果输入条件规定了值的范围,则应取如果输入条件规定了值的范围,则应取刚达到刚达到这个范这个

46、范围的边界的值,以及围的边界的值,以及刚刚超越刚刚超越这个范围边界的值作为这个范围边界的值作为测试输入数据。测试输入数据。n如果输入条件规定了值的个数,则用如果输入条件规定了值的个数,则用最大个数、最小最大个数、最小个数、比最小个数少一、比最大个数多一的数个数、比最小个数少一、比最大个数多一的数作为测作为测试数据。试数据。abab确定边界值的方法(确定边界值的方法(2)n如果程序的规格说明给出的输入域或输出域是有序集如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为合,则应选取集合的第一个元素和最后一个元素作为测试用例。测试用例。n如果程序中使用了一个

47、内部数据结构,则应当选择这如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。个内部数据结构的边界上的值作为测试用例。n Test cases for ABS(x):class x=0,arbitrary value x =100classes x=0,on boundary:x =0classes x=0,below and above:x =-1,x=1正常值(有效类)正常值(有效类):X1=123123边界值边界值:X2=12345边界值边界值:X3=1234567边界值边界值:X4=1边界值边界值:X5=0无效类的值无效类的值:X6=-123123无效

48、类的值无效类的值:X7=asdasd其它其它?示例示例2 测试测试 限制性用户输入:限制性用户输入:6位正整数位正整数 无效值无效值:X8=000123 X9=asd123 X10=Empty示例示例3Test cases:任意的正常值任意的正常值:随机选择几个选项随机选择几个选项 边界值边界值:选择所有选项选择所有选项 边界值边界值:一个都不选一个都不选边界值边界值:选择一个选项选择一个选项二进制二进制Term 取值范围取值范围BitNibbleByteWordKiloMegaGigaTera0 or 10-15 0-2550-65535 or 0-429496729510241048576

49、10737418241099511627776ASCII TableCharacterASCII ValueCharacter ASCII ValueNullSpace/0129;A0324748495057586465BYZabyz66899091969798121122123字符编辑域字符编辑域一些特殊的边界值一些特殊的边界值First-1/Last+1Min-1/max+1Start-1/Finish+1Less than empty/more than fulljust Over/Just Under3.2.3 判定表方法判定表方法 在实际应用中,许多输入是由多个因素构成,在实际应用中

50、,许多输入是由多个因素构成,而不是单一因素,这时就需要而不是单一因素,这时就需要多因素组合分析多因素组合分析。对于多因素,有时可以直接对输入条件进行组对于多因素,有时可以直接对输入条件进行组合设计,不需要进行因果分析,即合设计,不需要进行因果分析,即直接采用判直接采用判定表方法定表方法。一个判定表由一个判定表由“条件和活动条件和活动”两部分组成,也两部分组成,也就是列出了一个测试活动执行所需的条件组合,就是列出了一个测试活动执行所需的条件组合,所有可能的条件组合定义了一系列的选择,而所有可能的条件组合定义了一系列的选择,而测试活动需要考虑每一个选择。测试活动需要考虑每一个选择。判定表元素判定表

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(评价通过所有单元测试用例课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|