软件测试基础.ppt_第1页
软件测试基础.ppt_第2页
软件测试基础.ppt_第3页
软件测试基础.ppt_第4页
软件测试基础.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、logo 软件测试基础软件测试基础 主要内容 软件测试基本概念 软件测试模型 软件测试基本概念 什么是软件测试?什么是软件测试? 1.1. 测试就是为了发现程序错误而运行程序的过程。测试就是为了发现程序错误而运行程序的过程。 2. 2. 测试是以评价一个程序或者系统的属性为目标的测试是以评价一个程序或者系统的属性为目标的 任何一种活动。测试是对软件质量的度量。任何一种活动。测试是对软件质量的度量。 3. 3. 使用人工或自动的手段来运行或测定某个软件系使用人工或自动的手段来运行或测定某个软件系 统的过程,其目的在于检验它是否满足规定的需统的过程,其目的在于检验它是否满足规定的需 求或弄清预期结

2、果与实际结果之间的差别。求或弄清预期结果与实际结果之间的差别。 4. 4. 测试是为了度量和提高被测试的软件的质量,对测试是为了度量和提高被测试的软件的质量,对 测试件进行工程设计、使用和维护的并发生命周测试件进行工程设计、使用和维护的并发生命周 期活动。期活动。 5. 5. 在规定的条件下操作系统或部件、观察或记录结在规定的条件下操作系统或部件、观察或记录结 果和对系统或部件的某些方面做评价的过程以及果和对系统或部件的某些方面做评价的过程以及 分析软件项以检测在存在的和要求的软件之间的分析软件项以检测在存在的和要求的软件之间的 区别以评价软件项的特性。区别以评价软件项的特性。 6. 6. 一

3、种作为主体的人对客体软件的某种固有属性通一种作为主体的人对客体软件的某种固有属性通 过各种手段进行的一种以认知和改造为目的的活过各种手段进行的一种以认知和改造为目的的活 动。动。 1.1. glen myers glen myers 软件测试的艺术软件测试的艺术-1979-1979 2.2. bill hetzelbill hetzel complete guide of software testingcomplete guide of software testing 3.3. ieee ieee 软件工程术语(软件工程术语(19831983) 4.4. rick d.crick d.c

4、systematic software testingsystematic software testing 20022002 5.5. 国军标国军标 gjb/z 141gjb/z 141军用软件测试指南军用软件测试指南 2004 2004 6.6. 王轶辰王轶辰 博士论文博士论文 20062006 u 软件测试定义的演变反映了人们对软件认识的软件测试定义的演变反映了人们对软件认识的 不断深入;不断深入; u 软件测试与若干领域相交联。软件测试与若干领域相交联。 软件质量 质量的概念 产品或服务满足明示或暗示需求能力的特性和特征的 集合。 iso8492(1986) 软件质量的概念 与软件产品

5、满足规定的和隐含的需求规定的和隐含的需求的能力有关的特 性或特征的全体。 ansi/ieee std 729(1983) 功能性可靠性 易使用性 效率可维护性可移植性 iso 9126 软件确认 确认通过检查和提供客观证据,证实特定预期用途的 需求是否得到满足。 在设计和开发中,确认关系到检查产品是否符合用户要求的过 程; 确认一般是在规定的操作条件下对最终产品进行的。在早期阶 段,这样做可能也是必要的; “已确认的”一词用来表示相应的状态; 如果有几种不同的预期用途,可进行多种确认。 特定预期用途的需求通常是指需求规格说明或合同中规定的需 求。 软件验证 l 通过检查并提供客观证据来确定规定

6、的需求已被满足。 注 1:在设计和开发中,验证是指对某项指定活动的结果进行 检查的过程,以确定该活动是否符合该 活动声明的需求。 注2:“已验证的”一词用来表示相应的状态。 软件测试模型 如何做软件测试?如何做软件测试? 软件测试的思维导图 一段需求 某单位计划开发一个室内温度控制系统软件,该系统能根 据用户的设定实时地调节室内温度。要求在3秒内响应温 度的变化,并在1分钟内将温度调节在设定温度的1度范 围内。 给出这个软件的测试方案 软件测试模型 软件测试目标 l 测试目标是进行一次测试活动的目的所在,只有确定了测 试的目标之后才可能进行后续的一系列测试活动; l 从测试的定义可以看出软件测

7、试活动总体的目标是对被测 软件的某种属性的认知和改造; l 在实际测试中测试目标可以具体化为发现软件的缺陷、验 证软件的功能、评测软件的性能以及提高软件的可靠性等 等。 在软件测试模型中,软件测试目标是核心要素! 明确了“为什么要测” 实例 验证性测试 功能验证+性能验证 查错性测试 猜错 基于需求的测试 基于需求的测试方法包括基于需求的硬件/软件综合测试,基于需求 的软件综合测试和基于需求的低层测试。 23 基于需求的测试 三类测试的目标是: 硬件/软件综合测试:验证软件在目标机环境中 的正确运行。 软件综合测试:验证软件需求和部件之间的内 部关系,验证软件需求和软件部件在软件体系 结构中的

8、实现。 低层测试:验证软件低层需求的实现。 24 基于需求的测试 为了满足软件测试目标: va. 测试用例应主要以软件需求为基础。 vb. 测试用例应开发成能验证正确的功能和建立能暴 露潜在错误的条件。 vc. 软件需求覆盖分析应确定哪些软件需求未被测试 。 vd. 结构覆盖分析应确定哪些软件结构未被运行。 25 基于需求的测试 基于需求的硬件/软件综合测试:这种测试方法应把重点放在与目标 机环境中运行的软件有关的错误源和高层功能上。基于需求的硬件/ 软件综合测试的目标是确保目标机中的软件满足高层需求。 通过这种测试方法揭示的典型错误有: 不正确的中断处理。 不能满足执行时间需求。 对软件瞬变

9、或硬件失效的不正确的软件响应,如启动顺序、瞬变 输入负载和输入电压瞬变。 26 数据总线和其它资源争用问题,如存储映象。 机内自测试不能检测到失效。 硬件/软件接口错误。 反馈回路的不正确行为。 对存储器管理硬件或其它硬件设备的不正确的软件控制。 堆栈溢出。 用于确认外场可加载软件的正确性和兼容性的机制的不正 确运行。 软件划分的越界。 27 基于需求的软件综合测试:这种测试方法应把重点放在软件需求之间 的内部关系,以及软件体系结构对需求的实现。 基于需求的软件综合测试的目标是确保软件部件之间正确地相互作用 并满足软件需求和软件体系结构。 这种方法的实施途径可以是通过逐步地综合软件部件和相应地

10、扩大测 试用例的作用域来扩展需求的作用域。 28 用这种测试方法揭示的典型错误是: 变量和常量的不正确的初始化。 参数传递错误。 数据失效,特别是全局数据。 不适当的端点间分辨率。 不正确的事件和操作顺序。 29 基于需求的低层测试:这种测试方法应把重点放在演示每个软件部件 符合其低层需求。基于需求的低层测试的目标是确保软件部件满足其 低层需求。 30 用这种测试方法揭示的典型错误是: 一个算法不能满足软件需求。 不正确的循环操作。 不正确的逻辑判定。 不能正确地处理输入状态的合法组合。 不能正确地响应丢失的或失效的输入数据。 不能正确地处理异常,如算术故障或数组越界。 不正确的计算顺序。 不

11、适当地算法精度,准确度或性能。 31 软件测试对象 l 测试对象指具有被测属性的软件实体。测试对象是对测试 客体以及客体的信息场的具体化。测试对象具有 “被测 属性”和“软件实体”两个重要属性。 l “被测属性”和“测试实体”是确定一个测试对象不可或 缺的两个重要因素。只有对要测试的软件实体以及对测试 实体的测试属性进行指定后,才算确定了一次测试的测试 对象,也只有这样测试才有其存在的意义。 在软件测试模型中,软件测试对象的确定回答: “要测什么” 实例 测试阶段 单元测试+集成测试+系统测试 质量属性 功能、性能、安全性、易用性等 软件测试依据 l 测试依据是指根据测试目标制定的能够对测试对

12、象做出明 确判断并得到测试结果的标准。在这个定义中,测试依据 要具备两个条件: 合法性 唯一性 在软件测试模型中,软件测试依据要求规定 “凭什么测试” 实例 实例性文件 软件需求、软件设计、软件用户手册。 标准性文件 国军标。 缺陷定义 通常人们一般性的将测试对象与测试依据之间的不匹配称 之为缺陷,但是在软件测试活动中有多个术语用来表示软 件与相关依据之间的不一致情况,下面首先来明确几个概 念关于错误的术语: 失效(failure):当使用者感觉到程序不再按照期望的方式运行 时,即认为发生了失效。 故障(faults):是导致失效的原因,或者是指程序内部的一个 错误(internal erro

13、r)。 缺陷(defect):在程序中存在的,有可能诱发软件故障或导致 软件实效的潜在因素。 缺缺 陷陷 故故 障障 失失 效效 物理物理 环境环境 使用者使用者 其他其他 设备设备 软件环境软件环境 激活激活 特殊的输入特殊的输入 导致软件的特殊路径导致软件的特殊路径 演变演变 缺少对特殊路缺少对特殊路 径的防范措施径的防范措施 容错容错 机制机制 自检测自检测 冗余冗余 机制机制 软件系统软件系统 功能、性能的的丧失、任务功能、性能的的丧失、任务 的失败、对环境的不利影响的失败、对环境的不利影响 缺陷的演化过程缺陷的演化过程 实例 缺陷类型 代码错误、文档错误。 缺陷等级 关键、重要、一般

14、。 知识问题知识问题 关注度问题关注度问题 策略问题策略问题 人的认识问题人的认识问题 人实施的动作人实施的动作 理解、创造、修改理解、创造、修改 需求分析需求分析 概要设计概要设计 详细设计详细设计 编码调试编码调试 理解、创造、修改理解、创造、修改 理解、创造、修改理解、创造、修改 修改、重用、实现修改、重用、实现 开发阶段开发阶段 文档规约文档规约 思维模型思维模型 环境制品环境制品 库库 人工产品人工产品 算法算法 数据结构数据结构 语言结构语言结构 设计缺陷设计缺陷 需求缺陷需求缺陷编码缺陷编码缺陷 缺陷产生的原因缺陷产生的原因 测试解决方案 测试解决方案是对软件测试手段的具体化,它

15、包括测试方 法和测试工具两部分内容。 以测试对象为基础 解决方案的制定要以测试对象为 前提,测试对象的特征和测试属性在很大程度上决定 了测试方案。 以测试依据为参照 测试方案的制定不能偏离测试依 据所制定的标准,而且测试依据的形式也是制定测试 策略的限制条件之一,例如采用形式化的需求规格和 采用一套覆盖率指标作为测试依据它们所采用的测试 策略是完全不同。 包含多种活动 测试解决方案中主要包括方法和支 持方法的测试工具。其中测试方法中制定的是一系 列的活动,包括如何生成测试用例、如何执行测试 用例、测试执行的过程以及测试何时停止等等。 在软件测试模型中,软件测试方案表明: “怎么测软件” 软件测

16、试过程 测试过程测试过程 需求需求计划计划设计设计执行执行总结总结 软件测试的技术 静态测试方法静态测试方法 动态测试方法动态测试方法 白盒测试方法白盒测试方法 黑盒测试方法黑盒测试方法 47 测试工具 48 测试工具测试工具 通用通用 专用专用 全数字全数字 半实物半实物 全实物全实物 实例 确定测试方法 测试过程、测试策略、测试人员。 明确测试工具 软件测试结果 测试结果是将测试方案施加于测试对象之后得到的结果。 测试结果是软件测试的最终产品的集合,其中包括: 测试的缺陷数据 这是最重要的成果形式,它是度量 软件其他属性以及提高软件质量等一系列测试目标能 够实现的基础。有人甚至认为发现缺陷

17、的数量是衡量 一次测试的唯一标准。 测试的评价 前面已经分析过软件测试的不充分性, 那么对于一次测试进行合理的评价就是十分必要的, 这也是根据测试做出其他决策的重要依据。 测试过程的记录 这个记录通常由一组文档来完成, 记录了从测试对象的定义、测试依据的制定到测试策 略的设计以及执行等等一系列活动,是测试的档案。 在软件测试模型中,软件测试结果说明: “软件怎么样” 以及 “测的怎么样” 实例 软件质量属性的对量 测试过程、测试策略、测试人员。 软件测试的质量 软件测试质量的构成 软件测试质量的构成是指影响软件测试质量的主要因素,它们是:软件测试质量的构成是指影响软件测试质量的主要因素,它们是

18、: 1) 开发文档的质量、 2) 测试需求的质量、 3) 测试人员的素质、 4) 测试用例的充分性、 5) 测试环境的有效性、 6) 测试流程的合理性及其过程监控、 7) 测试结果的分析与评价, 8) 测试文档的质量. 软件开发文档 软件开发文档是软件测试最重要的依据之一,软件开发文档,尤其是 软件的需求规格说明、设计文档、接口控制文件(软件的需求规格说明、设计文档、接口控制文件(icdicd)的质量对确 定软件测试需求和生成测试用例有决定性的影响。要求软件的需求规 格说明,应遵循软件需求的正确性、无二义性、完整性、一致性、详 细性、可验证性、可追踪性等要求来编写 . . 测试用例 测试用例的

19、数量与质量对软件测试质量有重大影响,测试用例设计的 原则是:应当设计尽可能多地发现软件缺陷,尤其是高发生概率缺陷应当设计尽可能多地发现软件缺陷,尤其是高发生概率缺陷 的用例,而不是设计证明软件功能正确的用例的用例,而不是设计证明软件功能正确的用例。因此测试用例中不能 只包含正常的功能、性能、接口、界面功能、性能、接口、界面的用例,还必须包括边界边界、异异 常、强度、安全性常、强度、安全性等方面的用例等方面的用例 . . 软件输入空间软件输入空间: 是指软件所有输入状态的集合,其中包括软件的合法 输入空间与非法输入空间。 软件的错误空间软件的错误空间: 是软件中存在的所有错误(缺陷)的集合。 软

20、件的测试空间软件的测试空间: 是指所有软件测试用例所包含的输入状态的集 合。 软件测试空间对软件输入空间的覆盖程度:测试的软件测试空间对软件输入空间的覆盖程度:测试的充分充分性性 软件测试空间对软件错误空间的覆盖程度:测试的软件测试空间对软件错误空间的覆盖程度:测试的有效有效性性 不同测试空间对错误空间的覆盖 测试用例的充分性 1) 1) 测试用例必须测试用例必须100100地覆盖软件的需求,地覆盖软件的需求, 2) 2) 测试用例中必须包括非法的输入,如边界、异常、强度等用例,测试用例中必须包括非法的输入,如边界、异常、强度等用例, 3) 3) 作为经验数据参考,要求每作为经验数据参考,要求

21、每50-10050-100行代码应有一个测试用例。行代码应有一个测试用例。 4) 4) 测试用例中,正常(合法输入)的测试用例数量与非正常(包括异常、测试用例中,正常(合法输入)的测试用例数量与非正常(包括异常、 边界、强度等)测试用例数量之比,一般应为边界、强度等)测试用例数量之比,一般应为 1 1:1 1。 测试覆盖 测试覆盖分析分两种,即基于需求的覆盖分析和结构覆盖分析。 第一种分析与软件需求有关的测试用例,以证实所选的测试用例 满足指定的准则。 第二种证实基于需求的测试规程测试了代码结构。 62 基于需求的测试覆盖分析基于需求的测试覆盖分析 这种分析的目标是确定基于需求的测试对软件需求

22、的实现的验证情况 。这种分析可能要求增加基于需求的测试用例。 基于需求的测试覆盖分析应表明: a. 每一项需求都有测试用例。 b. 测试用例满足正常和鲁棒测试准则。 63 结构覆盖分析结构覆盖分析 这种分析的目标是确定基于需求的测试规程未测试到的代码结构。基 于需求的测试用例可能没有测试到所有代码结构,所以要执行结构覆 盖分析,并进行额外的验证以达到结构覆盖。 64 指导原则包括: a. 分析应证实结构覆盖的程度适应所定的软件等级。 b. 除软件等级是 a 级并且编译器产生的目标码不能直接追踪到 源代码语句外, 可以对源代码直接进行结构覆盖分析。然后,对目 标码进行附加验证以确定所产生的代码序

23、列的正确性。由编译器 生成的数组边界检查的目标码是不能直接追踪到源代码的一个例 子。 c. 分析应证实代码部件之间的数据耦合和控制耦合。 65 测试环境 对软件进行系统测试,其测试环境可以分为对软件进行系统测试,其测试环境可以分为半实物仿半实物仿 真测试环境和全实物测试环境真测试环境和全实物测试环境。全实物测试环境是指被测。全实物测试环境是指被测 试软件、被测试软件的支撑硬件以及被测试软件的交联设试软件、被测试软件的支撑硬件以及被测试软件的交联设 备及外部环境全是真实的,其备及外部环境全是真实的,其优点是测试环境的真实性优点是测试环境的真实性, 但其但其缺点缺点也是明显的:也是明显的: 构建这

24、样一个全实物测试环境构建这样一个全实物测试环境费用昂贵费用昂贵,而且当一个被测软,而且当一个被测软 件在进行测试时,它的所有交联设备都要与它一起工作,试件在进行测试时,它的所有交联设备都要与它一起工作,试 验件的实物损耗很大,验件的实物损耗很大,测试代价高昂测试代价高昂。 测试环境 由于所有的交联系统全是实物,所以在进行异常情况测试,强度由于所有的交联系统全是实物,所以在进行异常情况测试,强度 测试等需要施加高负载和超负载的测试时,会对系统产生破坏,测试等需要施加高负载和超负载的测试时,会对系统产生破坏, 甚至发生危险。若为了避免这种情况发生,则甚至发生危险。若为了避免这种情况发生,则不少测试

25、用例无法不少测试用例无法 执行执行。 据我国的经验,在这种环境下的系统测试,将有将有20-3020-30 左右,甚至更高比例的测试用例不能执行。左右,甚至更高比例的测试用例不能执行。 试验人员在测试f-35 an/apg-81 雷达的软件系统 测试 f-35 的软件系统 截至2007.03,anapg一81雷达已经完成了大量的地面 试验和总计85小时的空中飞行试验,其空中测试是在一架 bacl1 1试验机上完成的,试验证明雷达硬件部分的性硬件部分的性 能完全达到了设计要求能完全达到了设计要求。按照布兰安的说法,未来一段时 期内的主要任务就是提高主要任务就是提高ananapg-81apg-81雷

26、达雷达软件水平软件水平。 布兰安透露,根据试验时间表安排,任务系统任务系统的 全部测试大约为600小时,除了验证机载传感器本身的性 能之外,更重要的是验证任务软件的可靠性并对其进行完善更重要的是验证任务软件的可靠性并对其进行完善。 半实物仿真测试环境 对嵌入式软件的系统测试最好在半实物仿真测试环境半实物仿真测试环境下下 进行,进行,这种半实物仿真是指嵌入式软件运行采用真实硬 件环境,而对于被测软件与外界环境及其它设备之间的 输入/输出则通过软件方式进行仿真。 半实物仿真测试具有较高的逼真度,因为嵌入式软件的嵌入式软件的 运行环境和接口都采用真实的硬件设备,所以对于测试运行环境和接口都采用真实的

27、硬件设备,所以对于测试 中系统的输入中系统的输入/ /输出信号保持了其原有的物理特性输出信号保持了其原有的物理特性,这一 点比全数字仿真更接近真实情况。比全数字仿真更接近真实情况。同时采用软件方式模 拟系统输入信号的逻辑特性,而这一点使得半实物仿真半实物仿真 比全实物仿真具有更加灵活的测试可控性,而且减少了比全实物仿真具有更加灵活的测试可控性,而且减少了 采用硬件仿真造成的浪费。采用硬件仿真造成的浪费。 srstp总体结构 目标系统目标系统 测试环境的有效性评价 测试用例总数 能执行的测试用例数 cit 为满足软件测试的目标,可能需要多个测试环境。 一个优秀的测试环境应能把软件加载到目标机中,

28、并在目标机环境的高 保真仿真环境中对其进行测试 用目标机仿真器或宿主机模拟机进行测试可给出取证置信度。这类测试 环境的指导原则是: 应在综合的目标机环境中运行选定的测试,因为某些错误只能在这种 环境中被发现。 73 在许多情况下,只有在一个全综合环境中通过比一般情况更为精确的 控制和监视测试输入和代码执行才能达到必要的基于需求的覆盖和结 构覆盖。可能需要对一个与其他软件部件功能隔离的小的软件部件进 行这种测试。 74 测试人员素质 与硬件测试不同,软件测试人员必须对被测软件的专业背景有较深入与硬件测试不同,软件测试人员必须对被测软件的专业背景有较深入 的了解,在此基础上,才能设计出能高效发现软

29、件缺陷的测试用例并的了解,在此基础上,才能设计出能高效发现软件缺陷的测试用例并 构建合适的测试环境。素质不同的两个软件测试组即使使用完全相同构建合适的测试环境。素质不同的两个软件测试组即使使用完全相同 的测试工具和测试环境来测试同一个软件,其发现软件的缺陷会有很的测试工具和测试环境来测试同一个软件,其发现软件的缺陷会有很 大的不同大的不同 。 人员素质对软件质量的影响 是否经过psp培训及psp等级的影响: 缺陷密度dkloc psp0 psp1 psp2 psp3 个人能力与培训的影响 个人能力分:高级、中级、低级高级、中级、低级。 未经培训时,高级水平人员的未经培训时,高级水平人员的dklocdkloc显著显著 低于后两者;低于后两者; 经培训后,低级水平人员的能力提高极显经培训后,低级水平人员的能力提高极显 著。著。 软件测试质量的度量和评价 软件测试质量的度量软件测试质量的度量有: 1)1)测试发现的软件缺陷数软件缺陷数 n n 2)2)测试发现的软件关键缺陷数软件关键缺陷数 nc nc 3)3)测试发现的软件致命性缺陷数软件致命性缺陷数 ns ns 4)4)测试发现的软件缺陷率软件缺陷率 n/kloc n/kloc 5)5)测试发现的软件关键缺陷率软件关键缺陷率

温馨提示

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

评论

0/150

提交评论