软件工程课件测试工程_第1页
软件工程课件测试工程_第2页
软件工程课件测试工程_第3页
软件工程课件测试工程_第4页
软件工程课件测试工程_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程软件工程第七章第七章 测试技术测试技术测试的基本概念测试的基本概念1静态分析方法静态分析方法4小结小结5黑盒测试方法黑盒测试方法3白盒测试方法白盒测试方法2本章学习目标本章学习目标掌握基本的掌握基本的白盒测试和白盒测试和黑盒测试方黑盒测试方法。法。了解软件测试了解软件测试的目标、评估的目标、评估准则、软件静准则、软件静态分析的通用态分析的通用评审过程等及评审过程等及主要类型。主要类型。理解软件测理解软件测试的定义、试的定义、常用术语、常用术语、基本原则和基本原则和代码审查代码审查。软件测试的重要性软件测试的重要性v据推测,由于软件缺陷而引起的损失额每年高达据推测,由于软件缺陷而引起的损

2、失额每年高达595 亿美元。这一数字相当于美国国内生产总值亿美元。这一数字相当于美国国内生产总值的的0.6%。v软件测试是软件开发过程中包装软件质量、提高软件测试是软件开发过程中包装软件质量、提高软件可靠性的最主要的手段之一,它是在软件产软件可靠性的最主要的手段之一,它是在软件产品在交付之前,对分析、设计、编码等开发工作品在交付之前,对分析、设计、编码等开发工作的最后检查和复审。的最后检查和复审。v在整个软件系统的开发过程中,软件测试占了其在整个软件系统的开发过程中,软件测试占了其中中4050%的工作量。的工作量。软件测试的定义软件测试的定义软件测试在软件测试在IEEE Standard.61

3、0.12中定义如下:中定义如下:在某种指定的条件下对操作系统或组件,观在某种指定的条件下对操作系统或组件,观察或记录结果,对系统或组件的某些方面进察或记录结果,对系统或组件的某些方面进行评估的过程。行评估的过程。软件测试在软件测试在IEEE Standard.829中定义如下:中定义如下:分析软件各项目以检测现有的结果和应有结分析软件各项目以检测现有的结果和应有结果之间的差异(即软件缺陷),并评估软件果之间的差异(即软件缺陷),并评估软件各项目的特征的过程。各项目的特征的过程。软件投入运行前软件投入运行前,对软件需求分对软件需求分析、设计规格说明和编码的最终复审,是软件析、设计规格说明和编码的

4、最终复审,是软件质量保证的关键步骤质量保证的关键步骤 。软件测试的对象软件测试的对象v软件测试的对象:软件测试的对象:u 软件测试不等于程序测试。软件测试不等于程序测试。u 软件测试贯穿于软件定义和开发的整个过程。软件测试贯穿于软件定义和开发的整个过程。u 软件开发过程中所产生的需求规格说明、概要软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。是软件测试的对象。软件测试的常用术语软件测试的常用术语1.软件缺陷软件缺陷v至少满足下列一个条件才称发生了一个软件缺陷:至少满足下列一个条件才称发生了一个软件缺

5、陷: 软件未实现产品说明书要求的功能。软件未实现产品说明书要求的功能。 软件出现了产品说明书指明不能出现的错误。软件出现了产品说明书指明不能出现的错误。 软件实现了产品说明书未提到的功能。软件实现了产品说明书未提到的功能。 软件未实现产品说明书虽未明确提及但应该实现软件未实现产品说明书虽未明确提及但应该实现的目标。的目标。 软件难以理解、不易使用、运行缓慢或者软件难以理解、不易使用、运行缓慢或者从从测试员的角度看测试员的角度看最终用户会认为不好。最终用户会认为不好。软件缺陷的定义软件缺陷的定义在在IEEE729-1983对缺陷有一个标准的对缺陷有一个标准的定义:从产品内部看,缺陷是软件产定义:

6、从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效是系统所需要实现的某种功能的失效或违背。或违背。软件测试的常用术语软件测试的常用术语2.验证和确认验证和确认v验证(验证(Verification):): 保证软件特定开发阶段的输出已经正确完整地保证软件特定开发阶段的输出已经正确完整地实现了规格说明实现了规格说明v确认(确认(Validation): 根据原始需求检查开发结果的过程称为确认根据原始需求检查开发结果的过程称为确认v举例举例 验证:我们是否正确地完

7、成了产品?验证:我们是否正确地完成了产品? 确认:我们是否完成了正确的产品?确认:我们是否完成了正确的产品?软件测试的常用术语软件测试的常用术语3.测试与质量保证测试与质量保证 软件测试人员的目标是尽早找出软件缺陷,并软件测试人员的目标是尽早找出软件缺陷,并确保缺陷得以修复确保缺陷得以修复 软件质量保证人员的主要职责是创建和执行改软件质量保证人员的主要职责是创建和执行改进软件开发过程并防止软件缺陷发生的标准和进软件开发过程并防止软件缺陷发生的标准和方法方法 人员职责上有交叉人员职责上有交叉软件测试的常用术语软件测试的常用术语4.质量与可靠性质量与可靠性 功能性(功能性(functionalit

8、y):系统所需具备的能力的所有):系统所需具备的能力的所有特征。特征。 可靠性(可靠性(reliability):软件产品在具体使用中持续地提):软件产品在具体使用中持续地提供其功能的能力。供其功能的能力。 可用性(可用性(usability):软件着眼于用户使用方面的特性):软件着眼于用户使用方面的特性 效率(效率(efficiency):软件为完成任务所消耗的资源和所):软件为完成任务所消耗的资源和所需要的时间。需要的时间。 可维护性(可维护性(maintainability):软件着眼于可进行指定):软件着眼于可进行指定的修改的特性。的修改的特性。 可移植性(可移植性(portabili

9、ty):软件着眼于可从一种使用环):软件着眼于可从一种使用环境迁移到另一种使用环境的特性。境迁移到另一种使用环境的特性。软件测试的常用术语软件测试的常用术语5.软件测试与调试软件测试与调试 两者都包含有处理软件缺陷和查看代码的过程两者都包含有处理软件缺陷和查看代码的过程 二者的区别在于,测试的目标是发现软件缺陷二者的区别在于,测试的目标是发现软件缺陷的存在,调试的目标是定位与修复缺陷。的存在,调试的目标是定位与修复缺陷。软件测试的常用术语软件测试的常用术语6.测试用例测试用例 测试用例(测试用例(test case)是测试输入、执行条件)是测试输入、执行条件以及预期结果的集合,是为特定的目的开

10、发的以及预期结果的集合,是为特定的目的开发的,例如执行特定的程序路径或验证与指定的需,例如执行特定的程序路径或验证与指定的需求相符合求相符合。软件测试的目标(软件测试的目标(IEEE 1983)l 确认系统满足其预期的使用和用户的需要。确认系统满足其预期的使用和用户的需要。l 确认解决了所需解决的问题(如实现商业规则和使用合确认解决了所需解决的问题(如实现商业规则和使用合适的系统假定)。适的系统假定)。l 为测试的过程建立责任和可解释性。为测试的过程建立责任和可解释性。l 便于及早发现软件和系统的异常。便于及早发现软件和系统的异常。l 及早提供软件和系统的性能的评估。及早提供软件和系统的性能的

11、评估。l 为管理提供真实信息,以决定在当前状态下发布产品在为管理提供真实信息,以决定在当前状态下发布产品在商业上的风险商业上的风险l 鉴别出程序在功能等方面的异常集聚之处。鉴别出程序在功能等方面的异常集聚之处。注意:测试用例的设计应尽力发现系统中的错误,而不是注意:测试用例的设计应尽力发现系统中的错误,而不是“说说明程序能正确地执行它应有的功能明程序能正确地执行它应有的功能”,也不是,也不是“表明程序没有表明程序没有错误错误”。 软件测试的基本原则软件测试的基本原则v穷尽测试是不可能的穷尽测试是不可能的v测试无法显示潜伏的软件缺陷测试无法显示潜伏的软件缺陷v测试活动应尽早进行测试活动应尽早进行

12、v软件缺陷具有群聚性软件缺陷具有群聚性v注意杀虫剂现象注意杀虫剂现象v应尽量由独立的测试团队进行测试应尽量由独立的测试团队进行测试软件测试方法软件测试方法软件测试方法软件测试方法动态测试动态测试静态测试静态测试黑盒测试黑盒测试白盒测试在不知道程序在不知道程序内部结构,只内部结构,只知道程序规格知道程序规格的情况下采用的情况下采用的测试技术或的测试技术或策略。策略。在知道程序内在知道程序内部结构的情况部结构的情况下采用的测试下采用的测试技术或策略。技术或策略。黑盒测试方黑盒测试方法和白盒测法和白盒测试方法综合试方法综合的策略。的策略。不实际运行程序,而是不实际运行程序,而是通过检查和阅读等手段通

13、过检查和阅读等手段来发现错误并评估代码来发现错误并评估代码质量的软件测试技术。质量的软件测试技术。也称为静态分析技术。也称为静态分析技术。实际运行程序,实际运行程序,并通过观察程序并通过观察程序运行的实际结果运行的实际结果来发现错误的软来发现错误的软件测试技术。件测试技术。白盒测试白盒测试灰盒测试灰盒测试 静态测试与动态测试静态测试与动态测试 1.静态测试静态测试 静态测试是采用人工检测和计算机辅助静态分析静态测试是采用人工检测和计算机辅助静态分析的手段对程序进行检测,方法如下:的手段对程序进行检测,方法如下: 人工测试:是指不依靠计算机运行程序,而靠人工审人工测试:是指不依靠计算机运行程序,

14、而靠人工审查程序或评审软件。查程序或评审软件。 计算机辅助静态分析:指利用静态分析软件工具对被计算机辅助静态分析:指利用静态分析软件工具对被测试程序进行特性分析,从程序中提取一些信息。测试程序进行特性分析,从程序中提取一些信息。 2.动态测试动态测试 动态测试与静态测试相反,主要是设计一组输入动态测试与静态测试相反,主要是设计一组输入数据,然后通过运行程序来发现错误。数据,然后通过运行程序来发现错误。 软件测试的主要方法软件测试的主要方法v黑盒测试黑盒测试 黑盒测试指忽略系统或组件的内部机制,仅关注于那黑盒测试指忽略系统或组件的内部机制,仅关注于那些响应所选择的输入及相应执行条件的输出的测试形

15、些响应所选择的输入及相应执行条件的输出的测试形式,也称功能性测试。式,也称功能性测试。v白盒测试白盒测试 白盒测试指考虑系统或组件的内部机制的测试形式(白盒测试指考虑系统或组件的内部机制的测试形式(如分支测试、路径测试、语句测试等),也称结构性如分支测试、路径测试、语句测试等),也称结构性测试。测试。v灰盒测试灰盒测试 测试方法兼具备黑盒测试和白盒测试的特性。测试方法兼具备黑盒测试和白盒测试的特性。软件测试的评估准则软件测试的评估准则v覆盖率覆盖率v故障插入故障插入v变异分值变异分值覆盖率覆盖率v给定一个测试需求集合给定一个测试需求集合TR 和一个测试集合和一个测试集合T,覆,覆盖率可以定义为

16、盖率可以定义为T 满足的测试需求占满足的测试需求占TR 总数的总数的比例。比例。v100%覆盖率在实际中是不现实的覆盖率在实际中是不现实的v商用自动化测试工具商用自动化测试工具故障插入故障插入v故障插入(故障插入(fault seeding)是一种统计方法,)是一种统计方法,用于评价遗留在一个程序中的故障的数量和种类用于评价遗留在一个程序中的故障的数量和种类。具体而言,在测试前被有意地插入一些故障到。具体而言,在测试前被有意地插入一些故障到程序中,在测试执行中,有一部分插入的故障会程序中,在测试执行中,有一部分插入的故障会因测试而显露出来,但可能一些故障在测试中没因测试而显露出来,但可能一些故

17、障在测试中没有暴露出来,仍存在于程序中。有暴露出来,仍存在于程序中。变异分值变异分值v该指标和变异测试密切相关。所谓变异测试是一该指标和变异测试密切相关。所谓变异测试是一种特殊的测试方法,在这种测试方法中,程序进种特殊的测试方法,在这种测试方法中,程序进行两个或更多个变异,然后用同样的测试用例执行两个或更多个变异,然后用同样的测试用例执行测试,可以评估这些测试用例探测程序变异间行测试,可以评估这些测试用例探测程序变异间的差异的能力。的差异的能力。也叫也叫玻璃盒测试玻璃盒测试、结构结构测试或测试或逻辑驱动逻辑驱动测试测试, ,对软件的对软件的过程性细节做细致的检查。这一方法是把测试对象看作过程性

18、细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,来设计或选择测试用例,结构及有关信息,来设计或选择测试用例,对程序所有对程序所有逻辑路径逻辑路径进行测试。进行测试。 白盒测试白盒测试是在是在程序内部程序内部进行,主要用于完成软件内进行,主要用于完成软件内部操作的验证。部操作的验证。 白盒测试白盒测试白盒测试技术白盒测试技术基于代码的测试基于代码的测试白盒测试的局限性白盒测试的局限性白盒测试技术分类白盒测试技术分类l基于逻辑结构的测试基于逻辑结构的测试l基于控制流图的测试基于控制流图的测试逻

19、辑覆盖测试逻辑覆盖测试 逻辑覆盖是以逻辑覆盖是以程序内部的逻辑结构为基础程序内部的逻辑结构为基础的设计的设计 测试用例的技术。它属白盒测试。测试用例的技术。它属白盒测试。n 语句覆盖语句覆盖n 分支覆盖分支覆盖n 条件覆盖条件覆盖n 条件组织覆盖条件组织覆盖问题:若问题:若AND错写错写为为OR,或,或X1错写错写为为X1错错写为写为X1, B=0; A=2, X1A=1, B=1, X=1(满足满足A 1, B 0; A 2, X 1)条件覆盖条件覆盖 条件覆盖条件覆盖(Condition coverage):在的基础上,使:在的基础上,使每个判定表达式的每个条件都取到各种可能的结果。每个判

20、定表达式的每个条件都取到各种可能的结果。Test cases:A=2 , B=0 , X=4(满足(满足A1, B=0; A=2, X1)A=1, B=1, X=1(满足满足A 1, B 0; A 2, X 1)答答: 不一定。不一定。 反例反例: A=2, B=0, X=1 A=1, B=1, X=2 条件覆盖条件覆盖(4) 条件组合覆盖:每个判定表达式中条件的各种可条件组合覆盖:每个判定表达式中条件的各种可能组合都至少出现一次。能组合都至少出现一次。问题:没有测试到(问题:没有测试到(T F)的情形)的情形,没有覆盖所有的路径。没有覆盖所有的路径。条件组合覆盖条件组合覆盖4种覆盖对比种覆盖对比4种覆盖标准的对比种覆盖标准的对比v 发发 弱弱现现错错误误能能力力 强强语句覆盖语句覆盖每条语句至少执行一次每条语句至少执行一次判定覆盖判定覆盖每个判定的每个分支至少执行一次每

温馨提示

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

评论

0/150

提交评论