版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Version 3.0软件质量保证软件质量保证 定义软件质量和软件质量保证定义软件质量和软件质量保证 解释软件开发各个阶段解释软件开发各个阶段 SQA 的目标的目标 实现软件质量保证实现软件质量保证 建立质量管理体系建立质量管理体系 建立质量计划建立质量计划 质量保证质量保证 质量控制的输入质量控制的输入 质量控制的手段和技巧质量控制的手段和技巧 世界上不存在没有缺陷的软件。世界上不存在没有缺陷的软件。 可以通过两种途径开发出没有错误的软件:可以通过两种途径开发出没有错误的软件: 在一开始就防止引入错误。在一开始就防止引入错误。 识别潜藏在代码中的错误,找到并消灭它们。识别潜藏在代码中的错误,
2、找到并消灭它们。 软件质量是软件产品满足使用要求的程软件质量是软件产品满足使用要求的程度。对于软件质量的衡量,就是高质量度。对于软件质量的衡量,就是高质量的软件系统能够准时地交付给用户,所的软件系统能够准时地交付给用户,所耗费的成本不超出预算,并且最重要的耗费的成本不超出预算,并且最重要的是,能够正常地运行。是,能够正常地运行。“正常地运行正常地运行”意味着该软件必须尽可能没有缺陷意味着该软件必须尽可能没有缺陷(bug)。 理解:理解: 软件需求是质量度量的基础,与需求不符就软件需求是质量度量的基础,与需求不符就是质量不高是质量不高 完成的成本和完成的时间都应该在计划范围完成的成本和完成的时间
3、都应该在计划范围内内 开发出的软件产品应该是可靠的和可维护的开发出的软件产品应该是可靠的和可维护的 质量保证是一个活动,它向所有有关的人提质量保证是一个活动,它向所有有关的人提供证据以确立质量功能正在按需求运行的信供证据以确立质量功能正在按需求运行的信心。心。 软件质量保证是一系列系统性的活动,它提软件质量保证是一系列系统性的活动,它提供开发出满足使用要求产品的软件过程的能供开发出满足使用要求产品的软件过程的能力证据。力证据。 需求分析:需求分析: 确保客户所要求的系统是可行的。确保客户所要求的系统是可行的。 确保客户指定的需求确实能够满足他的真正确保客户指定的需求确实能够满足他的真正要求。要
4、求。 避免开发者和客户之间的误解。避免开发者和客户之间的误解。 向用户提供为满足他所提出的需求而实际构建向用户提供为满足他所提出的需求而实际构建的适当软件系统。的适当软件系统。 软件规格说明软件规格说明: 通过建立需求跟踪文档,确保规格说明书与通过建立需求跟踪文档,确保规格说明书与系统需求保持一致。系统需求保持一致。 确保规格说明书能适当地改进系统的灵活性、确保规格说明书能适当地改进系统的灵活性、可维护性以及性能。可维护性以及性能。 确保已建立了测试策略。确保已建立了测试策略。 确保已建立了现实的开发进度表,包括确保已建立了现实的开发进度表,包括预定的评审。预定的评审。 确保已为系统设计了正式
5、的变更规程。确保已为系统设计了正式的变更规程。 设计:设计: 确保已建立用于描述设计的标准,并且确保遵确保已建立用于描述设计的标准,并且确保遵循这些标准。循这些标准。 确保适当地控制并用文档记录对设计进行的变确保适当地控制并用文档记录对设计进行的变更。更。 确保在系统设计组件已按照商定的准则得到批确保在系统设计组件已按照商定的准则得到批准之后才开始编码。准之后才开始编码。 确保对设计的评审按照进度进行确保对设计的评审按照进度进行。 编码:编码: 确保代码遵循已建立的风格、结构和文档标准。确保代码遵循已建立的风格、结构和文档标准。 确保代码经过适当测试和集成,同时对编码模确保代码经过适当测试和集
6、成,同时对编码模块的修改得到适当的标识。块的修改得到适当的标识。 查看代码编写是否遵循既定的进度。查看代码编写是否遵循既定的进度。 确保代码评审按照进度进行。确保代码评审按照进度进行。 测试:测试: 确保测试计划的建立和遵循。确保测试计划的建立和遵循。 确保创建的测试计划能够满足所有系统规格说确保创建的测试计划能够满足所有系统规格说明书的要求。明书的要求。 确保经过测试和返工后软件与规格说明书保持确保经过测试和返工后软件与规格说明书保持一致一致。 维护:维护: 确保代码和文档的一致性。确保代码和文档的一致性。 确保对已建立的变更控制过程进行监测,包括确保对已建立的变更控制过程进行监测,包括将变
7、更集成到软件的产品版本中的过程。将变更集成到软件的产品版本中的过程。 确保对代码的修改遵循编码标准,并且要对其确保对代码的修改遵循编码标准,并且要对其进行评审,不要破坏整个代码结构。进行评审,不要破坏整个代码结构。 质量管理的发展和趋势质量管理的发展和趋势 质量管理体系质量管理体系 建立质量计划建立质量计划 质量保证质量保证 质量控制的输入质量控制的输入 质量控制的手段和技巧质量控制的输出质量控制的手段和技巧质量控制的输出 质量管理发展五个阶段质量管理发展五个阶段1900手工操作者手工操作者专职检验员专职检验员1920过程统计技术过程统计技术1931全面质量管理全面质量管理19602000以顾
8、客为中心以顾客为中心阶段时间 质量管理发展趋势质量管理发展趋势由针对以产品生产制造由针对以产品生产制造服务质量管理服务质量管理到行政部门工作质量。到行政部门工作质量。由面向以产品生存周期的由面向以产品生存周期的服务质量管理转向服务质量管理转向质量管理质量管理。软件产业要经历三个不同时代软件产业要经历三个不同时代 结构化生产时代结构化生产时代(70年代中期至年代中期至90年代中期年代中期):结构:结构化分析;结构化设计;结构化程序设计;结构化化分析;结构化设计;结构化程序设计;结构化测试;结构化审查与走查。测试;结构化审查与走查。 以过程为中心的时代以过程为中心的时代(从从80年代中期至年代中期
9、至2010年前后年前后):寓质量和效率于生产过程之中;关于软件过程的寓质量和效率于生产过程之中;关于软件过程的主要流派主要流派(ISO 9000,CMM)。 软件工业化生产时代软件工业化生产时代(1995年开始年开始):基础技术:基础技术(软软件过程技术,面向对象技术,基于构件的开发技件过程技术,面向对象技术,基于构件的开发技术术);主要问题;主要问题(标准化,产业文化,政策法规标准化,产业文化,政策法规);对前途的估计对前途的估计(我国我国2005年可以进入软件工业化生年可以进入软件工业化生产时代产时代)。 项目质量管理项目质量管理 质量管理需要保证整个项目都要满足设计时的质量管理需要保证整
10、个项目都要满足设计时的需要需要 项目质量管理包括了所有的活动,这些活动决项目质量管理包括了所有的活动,这些活动决定了质量策略、质量目标和责任。而这些都需定了质量策略、质量目标和责任。而这些都需要被质量计划、质量控制、质量保证和质量改要被质量计划、质量控制、质量保证和质量改进等活动完成。进等活动完成。 三个核心过程三个核心过程: 质量管理质量管理确认质量标准是关于项目目的、项目确认质量标准是关于项目目的、项目管理者、项目使用者这方面决定的管理者、项目使用者这方面决定的 质量保证质量保证评估整个项目满足相关的质量要求评估整个项目满足相关的质量要求 质量控制质量控制 监控记过符合相应质量标准,可以监
11、控记过符合相应质量标准,可以进行检查,满足项目管理者以及整个项目组的进行检查,满足项目管理者以及整个项目组的要求要求 质量计划质量计划 描述相关质量标准并且说明如何满足相应标准描述相关质量标准并且说明如何满足相应标准 输入质量计划输入质量计划 质量策略质量策略 一个组织中有关管理层对于质量的一个组织中有关管理层对于质量的定义和方向定义和方向 范围描述范围描述 产品说明产品说明 标准和规则标准和规则 其他过程输出其他过程输出 其他领域的相关知识其他领域的相关知识 质量计划的工具和技巧质量计划的工具和技巧 效益成本分析效益成本分析 考虑市场,就意味着减少返工考虑市场,就意味着减少返工; ;成本是与
12、质量管理活动有关的费用成本是与质量管理活动有关的费用 基本水平标准基本水平标准 比较实际或者计划中其他项目比较实际或者计划中其他项目实施中的情况实施中的情况 流程图流程图 因果图因果图系统或程序流程图系统或程序流程图 试验设计试验设计 一种分析技巧,有助于鉴定哪些变一种分析技巧,有助于鉴定哪些变量对整个项目的成果产生最大的影响量对整个项目的成果产生最大的影响 质量计划的输出质量计划的输出 质量管理计划质量管理计划 说明项目管理小组如何具体执说明项目管理小组如何具体执行它的质量策略行它的质量策略; ; 操作性定义操作性定义 用非常专业化的术语描述各项操用非常专业化的术语描述各项操作规程的含义,以
13、及如何通过质量控制程序对作规程的含义,以及如何通过质量控制程序对它们进行检测。它们进行检测。 审验单审验单 用以证明一系列步骤是否已经得到贯用以证明一系列步骤是否已经得到贯彻实施彻实施 对其他程序的输入对其他程序的输入 可以在其他领域提出更长可以在其他领域提出更长远的要求远的要求 质量保证质量保证 为了提供信用,证明项目将会达到有关质量标为了提供信用,证明项目将会达到有关质量标准,而在质量体系中开展的有计划、有组织的准,而在质量体系中开展的有计划、有组织的工作活动工作活动 质量保证的输入质量保证的输入 质量管理计划质量管理计划 质量控制结果质量控制结果 操作性定义操作性定义 质量保证的手段和技
14、巧质量保证的手段和技巧 质量计划的手段和技巧质量计划的手段和技巧 质量审查质量审查 质量审查是对其他质量管理活动的质量审查是对其他质量管理活动的结构性复查结构性复查 质量保证的输出质量保证的输出 质量改进质量改进 质量提高包括采取措施提高项目的质量提高包括采取措施提高项目的效益和效率,为项目相关人员提供更多的利益效益和效率,为项目相关人员提供更多的利益 质量控制质量控制 包括监控特定的项目成果,以包括监控特定的项目成果,以判定它们是否符合有关的质量标准,并找判定它们是否符合有关的质量标准,并找出方法消除造成项目成果不令人满意的原出方法消除造成项目成果不令人满意的原因。因。 预防(不让错误进入项
15、目程序)和检验(不让错误进入预防(不让错误进入项目程序)和检验(不让错误进入客户手中)客户手中) 静态调查(其结果要么一致,要么不一致)和动态调查静态调查(其结果要么一致,要么不一致)和动态调查(其结果依据衡量一致性程度的一种持续性标准而评估)(其结果依据衡量一致性程度的一种持续性标准而评估) 确定因素(非常事件)和随机因素(正态过程分布)确定因素(非常事件)和随机因素(正态过程分布) 误差范围(如果其结果落入误差范围所界定的范围内,误差范围(如果其结果落入误差范围所界定的范围内,那么这个结果就是可接受的)和控制界限(如果其成果那么这个结果就是可接受的)和控制界限(如果其成果落入控制界限内。那
16、么该项目也在控制之中。)落入控制界限内。那么该项目也在控制之中。) 质量控制的输入质量控制的输入 项目成果项目成果 包括程序运行结果和生产结果包括程序运行结果和生产结果 质量管理计划质量管理计划 操作性定义操作性定义 审查单审查单 检验包括测量、检查和测试等活动,目的是确检验包括测量、检查和测试等活动,目的是确定项目成果是否与要求相一致定项目成果是否与要求相一致 控制表控制表是根据时间推移对程序运行结果控制表控制表是根据时间推移对程序运行结果的一种图表展示。的一种图表展示。 排列图是一种直方图,由事件发生的频率组织排列图是一种直方图,由事件发生的频率组织而成,用以显示多少成果是产生于已确定的各
17、种而成,用以显示多少成果是产生于已确定的各种类型的原因的。如下图。类型的原因的。如下图。 抽样调查统计抽样调查统计 流程图流程图 趋势分析趋势分析 质量控制输出质量控制输出 质量提高质量提高 可接受的决定(接受可接受的决定(接受/ /拒绝)拒绝) 返工返工 返工是有缺陷的、不符合要求的产品变返工是有缺陷的、不符合要求的产品变为符合要求和设计规格的产品的行为。为符合要求和设计规格的产品的行为。 完成后的审验单完成后的审验单 程序的调整程序的调整指作为质量检测结果程序的调整程序的调整指作为质量检测结果而随时进行的纠错和预防行为。而随时进行的纠错和预防行为。 软件质量的衡量标准是可以准时地交付给用软
18、件质量的衡量标准是可以准时地交付给用户,所耗费的成本不超出预算,并且最重要户,所耗费的成本不超出预算,并且最重要的是,能够正常地运行。的是,能够正常地运行。 SQA 的目标是通过在开发周期的早期阶段发的目标是通过在开发周期的早期阶段发现错误来降低解决问题的成本。现错误来降低解决问题的成本。 SQA 应用于软件开发的每个阶段,每个阶段应用于软件开发的每个阶段,每个阶段都有其自己的质量标准。都有其自己的质量标准。 实施质量管理中,要注意构建自己的管理体实施质量管理中,要注意构建自己的管理体系,包括:构建质量计划、建立质量保证、系,包括:构建质量计划、建立质量保证、建立质量控制等建立质量控制等Ver
19、sion 3.0测试技术测试技术 软件质量的衡量标准是可以准时地交付给用户,软件质量的衡量标准是可以准时地交付给用户,所耗费的成本不超出预算,并且最重要的是,能所耗费的成本不超出预算,并且最重要的是,能够正常地运行。够正常地运行。 SQA 的目标是通过在开发周期的早期阶段发现错的目标是通过在开发周期的早期阶段发现错误来降低解决问题的成本。误来降低解决问题的成本。 SQA 应用于软件开发的每个阶段,每个阶段都有应用于软件开发的每个阶段,每个阶段都有其自己的质量标准。其自己的质量标准。 实施质量管理中,要注意构建自己的管理体系,实施质量管理中,要注意构建自己的管理体系,包括:构建质量计划、建立质量
20、保证、建立质量包括:构建质量计划、建立质量保证、建立质量控制等控制等 定义软件测试定义软件测试 明确软件测试的准则明确软件测试的准则 明确测试的方法明确测试的方法 描述软件测试的各个阶段描述软件测试的各个阶段 描述各种测试阶段的测试内容描述各种测试阶段的测试内容 软件测试是软件工程过程中的关键组件。软件测试是软件工程过程中的关键组件。 软件测试是软件质量保证的要素,可以将其软件测试是软件质量保证的要素,可以将其描述为一个运行程序以检测错误(如果有)描述为一个运行程序以检测错误(如果有)的过程。的过程。 编程大师说:没有错误的程序世间难求。编程大师说:没有错误的程序世间难求。 (编程之道)(编程
21、之道) 你在学校里学过测试吗?(读到博士可能你在学校里学过测试吗?(读到博士可能也不懂测试)也不懂测试) 你所在的企业重视测试吗?你所在的企业重视测试吗? (小公司程序(小公司程序员的技能更加全面)员的技能更加全面) 临时抱佛脚行吗?临时抱佛脚行吗?你以为有文档模板就会你以为有文档模板就会测试了吗测试了吗? 如果不懂得有效地进行测试,你不仅得不如果不懂得有效地进行测试,你不仅得不到功劳,也没人欣赏你的苦劳,你拥有最到功劳,也没人欣赏你的苦劳,你拥有最多的将只是疲劳。多的将只是疲劳。 职业软件工程师应当掌握需求开发、系统职业软件工程师应当掌握需求开发、系统设计、编程、测试、维护设计、编程、测试、
22、维护 所有技能。所有技能。 测试的目的是为了发现尽可能多的缺陷测试的目的是为了发现尽可能多的缺陷,不是不是为了说明软件中没有缺陷。为了说明软件中没有缺陷。 推论:成功的测试在于发现了迄今尚未发推论:成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软样的测试用例,它能有效地揭示潜伏在软件里的缺陷件里的缺陷。 千万不要将千万不要将“测试测试”与与“演示演示”混为一谈。混为一谈。例如科研鉴定会。例如科研鉴定会。如果产品通过了严格的测试,大家不要不吭如果产品通过了严格的测试,大家不要不吭气,应当好好地宣传一把气,应
23、当好好地宣传一把 。 完全测试程序是不可能的完全测试程序是不可能的 输入量太大输入量太大 输出结果太多输出结果太多 软件实现途径太多软件实现途径太多 软件说明书没有客观标准。从不同角度看,软软件说明书没有客观标准。从不同角度看,软件缺陷的标准不同。件缺陷的标准不同。 软件测试是有风险的行为软件测试是有风险的行为 测试无法显示潜伏的软件缺陷测试无法显示潜伏的软件缺陷 找到的软件缺陷越多,就说明软件缺陷越找到的软件缺陷越多,就说明软件缺陷越多多 并非所有软件缺陷都能修复并非所有软件缺陷都能修复 软件测试一项讲究条理的技术专业软件测试一项讲究条理的技术专业 白盒测试中(有时候称为开盒测试),软白盒测
24、试中(有时候称为开盒测试),软件测试员可以访问程序员的代码,并通过件测试员可以访问程序员的代码,并通过检查代码来协助测试可以看到盒子里面。检查代码来协助测试可以看到盒子里面。一般在单元测试中采用白盒测试,用于测一般在单元测试中采用白盒测试,用于测试模块中所有可能的路径、执行所有循环试模块中所有可能的路径、执行所有循环并测试所有逻辑表达式。并测试所有逻辑表达式。 黑盒测试则侧重于软件的整体功能。黑盒测试则侧重于软件的整体功能。 它不它不基于程序的内部结构而基于系统功能。犹基于程序的内部结构而基于系统功能。犹如一个人站在黑盒子外面,只知道系统输如一个人站在黑盒子外面,只知道系统输入一定数据,得到一
25、定的输出,而不必清入一定数据,得到一定的输出,而不必清楚这个黑盒子中进行了哪些操作和运算。楚这个黑盒子中进行了哪些操作和运算。 静态检查静态检查 确保系统按照组织的标准和过程运行,主要依确保系统按照组织的标准和过程运行,主要依赖于评审和非运行的手段来检查。通常包括需赖于评审和非运行的手段来检查。通常包括需求评审、设计评审、代码走查和代码检查。求评审、设计评审、代码走查和代码检查。 动态检查动态检查 在生命周期中进行测试(运行)。通常包括单在生命周期中进行测试(运行)。通常包括单元测试、集成测试、系统测试、用户的验收测元测试、集成测试、系统测试、用户的验收测试。试。 审查审查 (Inspecti
26、on) 软件的一种基本测试方法,它以一系列典型问软件的一种基本测试方法,它以一系列典型问题为依据进行检测。题为依据进行检测。 走查走查 (Walkthrough) 一对一的审查,比审查更加仔细。一对一的审查,比审查更加仔细。 回顾回顾(Review) 以发现软件中存在的错误和缺陷为目的的一以发现软件中存在的错误和缺陷为目的的一种软件测试方法,它是在软件证实执行之前完成。种软件测试方法,它是在软件证实执行之前完成。测试阶段执行人静态校验动态校验可行性评审可行性评审开发人员,用户开发人员,用户需求评审需求评审开发人员,用户开发人员,用户设计评审设计评审开发人员开发人员单元测试单元测试开发人员开发人
27、员集成测试集成测试开发人员,用户开发人员,用户系统测试系统测试开发人员在用户开发人员在用户的协助下完成的协助下完成验收测试验收测试用户用户 对于产品说明书的制定是个很重要的设计对于产品说明书的制定是个很重要的设计阶段,产品说明书的质量会直接影响到整阶段,产品说明书的质量会直接影响到整个产品开发。个产品开发。 测试产品说明书属于静态黑盒子测试。测试产品说明书属于静态黑盒子测试。 测试用例:测试用例:编写用于输入输入的实际数制和编写用于输入输入的实际数制和预期结果。测试用例还明确指出使用具体测预期结果。测试用例还明确指出使用具体测试用例产生的测试程序的任何限制试用例产生的测试程序的任何限制 。 使
28、用目的:使用目的: 测试用例应该设计为能够快速容易地发现尽测试用例应该设计为能够快速容易地发现尽可能多的错误。可能多的错误。 应该通过使用和产生正确和错误的输入和输应该通过使用和产生正确和错误的输入和输出来出来“检验检验”程序。程序。 其目标是要使用合理范围内的条件,尽可能其目标是要使用合理范围内的条件,尽可能全面地测试所有模块乃至整个系统。全面地测试所有模块乃至整个系统。 缺陷:最终产品同用户的期望不一致缺陷:最终产品同用户的期望不一致 缺陷的分类缺陷的分类 错误错误 遗漏遗漏 超出需求的部分超出需求的部分 缺陷(未触发)缺陷(未触发)VS.错误(应首先解决)错误(应首先解决) 调试的方法:
29、归纳法、演绎法和回溯法。调试的方法:归纳法、演绎法和回溯法。 常用调试技术使用诊断输出语句常用调试技术使用诊断输出语句 (diagnostic output statement)、快照转储、快照转储 (snapshot dump) 以及跟踪指令的断点以及跟踪指令的断点 (instruction-dependent breakpoint)。 开发与测试的开发与测试的 V V 型关系型关系 如果软件开发过程采用严格的瀑布模型,那么开如果软件开发过程采用严格的瀑布模型,那么开发与测试有发与测试有“V V”型的对应关系型的对应关系 。需求需求开发开发 高层高层设计设计详细详细设计设计编程编程单元单元测
30、试测试集成集成测试测试系统系统测试测试验收验收测试测试 单元测试、集成测试、单元测试、集成测试、系统测试、系统测试、验收测验收测试。是试。是“从小到大从小到大”、“由内至外由内至外”、“循序渐进循序渐进”的测试过程,体现了的测试过程,体现了“分而分而治之治之”的思想。的思想。 单元测试的粒度最小,一般由开发小组采单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符用白盒方式来测试,主要测试单元是否符合合“设计设计”。 集成测试界于单元测试和系统测试之间,集成测试界于单元测试和系统测试之间,起到起到“桥梁作用桥梁作用”,一般由开发小组采用,一般由开发小组采用白盒加黑盒的方式来
31、测试,既要验证白盒加黑盒的方式来测试,既要验证“设设计计”又要验证又要验证“需求需求”。 系统测试的粒度最大,一般由独立测试小系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是组采用黑盒方式来测试,主要测试系统是否符合否符合“需求规格说明书需求规格说明书”。 验收测试与系统测试非常相似,主要区别验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。是测试人员不同,验收测试由用户执行。 测试内容一般包含测试内容一般包含 接口与路径测试。接口与路径测试。 功能测试、健壮性测试、性能测试、用户界面测功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力
32、测试、可靠性测试、安装试、安全性测试、压力测试、可靠性测试、安装/ /反安装测试反安装测试 测试阶段测试阶段 主要依据主要依据 测试人员、测试方式测试人员、测试方式 主要测试内容主要测试内容 单元测试单元测试系统设计系统设计文档文档由开发小组执行白盒由开发小组执行白盒测试测试 接口测试、路径测试接口测试、路径测试 集成测试集成测试系统设计系统设计文档文档需求文档需求文档由开发小组执行白盒由开发小组执行白盒测试和黑盒测试测试和黑盒测试 接口测试、路径测试接口测试、路径测试功能测试、性能测试功能测试、性能测试 系统测试系统测试需求文档需求文档由独立测试小组执行由独立测试小组执行黑盒测试黑盒测试 功
33、能测试、健壮性测试、功能测试、健壮性测试、性能测试、用户界面测性能测试、用户界面测试、安全性测试、压力试、安全性测试、压力测试、可靠性测试、安测试、可靠性测试、安装装/反安装测试反安装测试 验收测试验收测试需求文档需求文档由用户执行黑盒测试由用户执行黑盒测试 接口测试:数据一般通过接口输入和输出,接口测试:数据一般通过接口输入和输出,接口测试一般是白盒测试的第一步。接口测试一般是白盒测试的第一步。 输入参数有输入参数有“典型值典型值”、“边界值边界值”、“异常异常值值” 输出包括函数的返回值和输出参数。输出包括函数的返回值和输出参数。 实际输出与期望的输出不一致,那么说明程序实际输出与期望的输
34、出不一致,那么说明程序有错误。有错误。 一个函数体内的语句可能只有十几条,但一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。所以应该根逻辑路径可能有成千上万条。所以应该根据经验选择关键的路径测试。据经验选择关键的路径测试。 路径测试的检查表路径测试的检查表数据类型、变量值、逻辑判断、循环、内存管数据类型、变量值、逻辑判断、循环、内存管理、文件理、文件I/OI/O、错误处理错误处理 预防一些重要的路径没有被测试的措施有:预防一些重要的路径没有被测试的措施有:观察是否有程序语句从来没有被执行过。观察是否有程序语句从来没有被执行过。要特别留意函数体内的错误处理程序块。要特别留意函数体内
35、的错误处理程序块。 接口与路径测试用例的参考模板接口与路径测试用例的参考模板 功能测试的基本方法是构造一些合理输入功能测试的基本方法是构造一些合理输入(在需求范围之内),检查输出是否与期(在需求范围之内),检查输出是否与期望的相同。如果两者不一致,即表明功能望的相同。如果两者不一致,即表明功能有误。有误。 难点在于如何构造有效的输入。难点在于如何构造有效的输入。 功能测试的测试方法:等价划分法和边界功能测试的测试方法:等价划分法和边界值分析法。值分析法。 等价划分是指把输入空间划分为几个等价划分是指把输入空间划分为几个“等价区等价区间间”,在每个,在每个“等价区间等价区间”中只需要测试一中只需
36、要测试一个典型值就可以了。等价划分法来源于人们个典型值就可以了。等价划分法来源于人们的直觉与经验,可令测试事半功倍。的直觉与经验,可令测试事半功倍。 “缺陷遗漏在角落里,聚集在边界上缺陷遗漏在角落里,聚集在边界上”。边界。边界值测试法是对等价划分法的补充。如果值测试法是对等价划分法的补充。如果A A和和B B是输入空间的边界值,那么除了典型值外还是输入空间的边界值,那么除了典型值外还要用要用A A和和B B作为测试用例。作为测试用例。 功能测试功能测试用例的参考模板用例的参考模板 性能测试即测试软件处理事务的速度,一性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了是为了
37、检验性能是否符合需求,二是为了得到某些性能数据供人们参考。得到某些性能数据供人们参考。 绝对值考虑:如数据送输速率是每秒多少绝对值考虑:如数据送输速率是每秒多少比特。比特。 “ “相对值相对值”考虑:如某个软件比另考虑:如某个软件比另一个软件快多少倍。一个软件快多少倍。 性能测试中考虑运行环境的影响:例如网性能测试中考虑运行环境的影响:例如网络环境、计算机主频,总线结构和外部设络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。备都可能影响软件的运行速度。 性能测试的一些注意事项:性能测试的一些注意事项:应当编写一段程序用于计算时间以及相关数据。应当编写一段程序用于计算时间以及相关
38、数据。 应当测试软件在标准配置和最低配置下的性能。应当测试软件在标准配置和最低配置下的性能。 应当关闭那些消耗内存、占用应当关闭那些消耗内存、占用CPUCPU的其它应用的其它应用软件(如杀毒软件)。软件(如杀毒软件)。 应当分档记录。例如传输文件的容量从应当分档记录。例如传输文件的容量从100100K K到到1 1M M可以分成若干等级。可以分成若干等级。 同一种输入情况在不同的时间可能得到不同的同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。性能数据,可以取其平均值。 性能测试性能测试用例的参考模板用例的参考模板 压力测试也叫负荷测试,即获取系统能正压力测试也叫负荷测试,即
39、获取系统能正常运行的极限状态。常运行的极限状态。 压力测试的主要任务是:构造正确的输入,压力测试的主要任务是:构造正确的输入,使劲折腾系统却让它刚好不瘫痪。使劲折腾系统却让它刚好不瘫痪。 压力测试的一个变种是敏感测试。在某种压力测试的一个变种是敏感测试。在某种情况下,微小的输入变动会导致系统的表情况下,微小的输入变动会导致系统的表现(如性能)发生急剧的变化。现(如性能)发生急剧的变化。 压力测试用例的参考模板压力测试用例的参考模板 健壮性测试健壮性测试 用户界面测试用户界面测试 信息安全测试信息安全测试 可靠性测试可靠性测试 安装和反安装测试安装和反安装测试 问题问题1:有了:有了“黑盒黑盒”
40、测试为什么还要测试为什么还要“白白盒盒”测试?测试? 问题问题2:由于单元测试要写测试驱动程序,:由于单元测试要写测试驱动程序,非常麻烦,能否等到整个系统全部开发完后,非常麻烦,能否等到整个系统全部开发完后,再集中精力进行一次性地单元测试呢?再集中精力进行一次性地单元测试呢? 问题问题3:如果每个单元都通过了测试,把它:如果每个单元都通过了测试,把它们集成一起难道会有什么不妥吗?集成测试们集成一起难道会有什么不妥吗?集成测试是否多此一举?是否多此一举? 问题问题4:在集成测试的时候,已经对一些子:在集成测试的时候,已经对一些子系统进行了功能测试、性能测试等等,那系统进行了功能测试、性能测试等等
41、,那么在系统测试时能否跳过相同内容的测试么在系统测试时能否跳过相同内容的测试? 问题问题5:既然系统测试与验收测试的内容几:既然系统测试与验收测试的内容几乎是相同的,为什么还要验收测试?乎是相同的,为什么还要验收测试? 问题问题6:能否将系统测试和验收测试:能否将系统测试和验收测试“合二合二为一为一”? 测试可以将测试描述为一个运行程序以发现测试可以将测试描述为一个运行程序以发现错误的过程。错误的过程。 软件测试的准则软件测试的准则:不完全测试、风险测试、不完全测试、风险测试、无法显示潜伏错误、发现错误成线性增长、无法显示潜伏错误、发现错误成线性增长、缺陷不能完全修复、测试有条理规程缺陷不能完
42、全修复、测试有条理规程 测试的方法测试的方法:黑盒黑盒/白盒、静态白盒、静态/动态动态 软件测试的各个阶段:单元测试、集成测试、软件测试的各个阶段:单元测试、集成测试、系统测试、验收测试系统测试、验收测试 测试的内容包括:接口测试的内容包括:接口/路径测试、功能测试、路径测试、功能测试、性能测试、压力测试、可靠性测试、安全性性能测试、压力测试、可靠性测试、安全性测试、用户界面测试、安装测试、用户界面测试、安装/反安装测试反安装测试Version 3.0测试工具测试工具 测试可以将测试描述为一个运行程序以发现测试可以将测试描述为一个运行程序以发现错误的过程。错误的过程。 软件测试的准则软件测试的
43、准则:不完全测试、风险测试、不完全测试、风险测试、无法显示潜伏错误、发现错误成线性增长、无法显示潜伏错误、发现错误成线性增长、缺陷不能完全修复、测试有条理规程缺陷不能完全修复、测试有条理规程 测试的方法测试的方法:黑盒黑盒/白盒、静态白盒、静态/动态动态 软件测试的各个阶段:单元测试、集成测试、软件测试的各个阶段:单元测试、集成测试、系统测试、验收测试系统测试、验收测试 测试的内容包括:接口测试的内容包括:接口/路径测试、功能测试、路径测试、功能测试、性能测试、压力测试、可靠性测试、安全性性能测试、压力测试、可靠性测试、安全性测试、用户界面测试、安装测试、用户界面测试、安装/反安装测试反安装测
44、试 讨论测试工具的好处讨论测试工具的好处 介绍测试工具的种类及实质介绍测试工具的种类及实质 讨论测试工具的局限讨论测试工具的局限 介绍市场上比较流行的测试工具介绍市场上比较流行的测试工具: Rational系列和系列和 Panorama工具工具 定义:辅助测试整个过程的工具软件定义:辅助测试整个过程的工具软件 单元测试可以有两种方式单元测试可以有两种方式自己编写代码自己编写代码使用单元测试工具使用单元测试工具 整个过程包括:整个过程包括:静态分析,测试计划,测试设计,测试执行,静态分析,测试计划,测试设计,测试执行,测试缺陷跟踪,测试报告和质量度量等测试缺陷跟踪,测试报告和质量度量等 单元测试
45、工具的种类单元测试工具的种类 静态分析工具静态分析工具 代码规范审核工具代码规范审核工具 内存和资源检查工具内存和资源检查工具 测试数据生成工具测试数据生成工具 测试框架工具测试框架工具 测试结果比较工具测试结果比较工具 测试度量工具测试度量工具 测试文档生成和管理工具测试文档生成和管理工具 自动测试工具自动测试工具 好处好处速度和效率速度和效率准确度和精确度准确度和精确度耐性、不休息、可重复耐性、不休息、可重复 局限局限对软件变更,尤其是代码变更比较敏感对软件变更,尤其是代码变更比较敏感先期的测试开发比较费时先期的测试开发比较费时有些测试结果无法用工具比较和分析有些测试结果无法用工具比较和分
46、析有些工具的脚本有些工具的脚本/ /代码会使程序运行环境不纯代码会使程序运行环境不纯净净 测试工具提高测试效率,节省测试成本测试工具提高测试效率,节省测试成本 测试设计提高测试效果,同时也可以提高测试测试设计提高测试效果,同时也可以提高测试效率,节省测试成本效率,节省测试成本 有些测试单靠手工很难完成有些测试单靠手工很难完成 压力测试,模拟并发测试等压力测试,模拟并发测试等 多数的单元测试多数的单元测试 有些测试使用测试工具更合适有些测试使用测试工具更合适 回归测试回归测试 大量测试数据的生成、部分测试结果的比较大量测试数据的生成、部分测试结果的比较 缺陷管理和测试用例管理缺陷管理和测试用例管
47、理 质量度量质量度量 选择自动测试工具是一个重要的步骤,所选择自动测试工具是一个重要的步骤,所以一定要谨慎以一定要谨慎 因为测试工作经常会涉及到管理流程和开发流因为测试工作经常会涉及到管理流程和开发流程的改变、涉及到人员的考评标准,所以它有程的改变、涉及到人员的考评标准,所以它有时会对整个企业产生影响。时会对整个企业产生影响。 测试工具应该能够管理测试过程和测试文测试工具应该能够管理测试过程和测试文档,并生成各种测试报告。档,并生成各种测试报告。 自动测试工具应该允许用户把自动测试数自动测试工具应该允许用户把自动测试数据和流程与手工的测试数据和流程结合到据和流程与手工的测试数据和流程结合到一起
48、。一起。 自动测试工具应该能够将业务需求与测试自动测试工具应该能够将业务需求与测试计划、测试设计和测试结果相关联,允许计划、测试设计和测试结果相关联,允许最终用户根据测试结果来评估应用程序的最终用户根据测试结果来评估应用程序的完成情况。完成情况。 自动测试工具中的各功能模块应该紧密集自动测试工具中的各功能模块应该紧密集成到一起,共享和重用测试数据,支持回成到一起,共享和重用测试数据,支持回归测试。归测试。 工具应该可以很容易地利用过去的或者其他人工具应该可以很容易地利用过去的或者其他人员的测试资料。员的测试资料。 工具内部应该使用一致的脚本语言和数据格式。工具内部应该使用一致的脚本语言和数据格
49、式。 自动测试工具的体系结构和文件格式应该自动测试工具的体系结构和文件格式应该是开放的,可以很容易地与其他技术或工是开放的,可以很容易地与其他技术或工具进行交互和集成。具进行交互和集成。 自动测试工具厂商应该有比较完善的科室自动测试工具厂商应该有比较完善的科室培训和技术支持机制,能够为自动测试工培训和技术支持机制,能够为自动测试工具的实施提供咨询和支持。具的实施提供咨询和支持。 产品背景及功能产品背景及功能 产品术语基础产品术语基础 应用原理及环境应用原理及环境 工具介绍工具介绍 OO-Test 其它工具请按照上机安排操作其它工具请按照上机安排操作 Panorama-2 C/C+ 是一个软件测
50、试工具是一个软件测试工具。 它也用来它也用来 QA 维护环境维护环境 它运行在它运行在 Sun OS/Solaris 和和 Windows NT/95 上,上,支持支持 Sun C、C+。 产品背景产品背景 集成了集成了8 8个产品个产品/32/32个工具的软件个工具的软件包,一般用于:包,一般用于:1 1、新系统开发、新系统开发过程中的质量保过程中的质量保证和单元测试;证和单元测试;2 2、旧系统维护、旧系统维护过程中质量保证过程中质量保证与测试与测试3 3、再工程中的、再工程中的系统分析系统分析OO-Test:测试用例生成和管理:1、记录和生成测试用例2、最小化测试用例集3、测试覆盖分析O
51、O-Browser:系统结构分析:1、生成系统中类和函数的继承/调用关系图2、实现代码与关系图的双向对应和跳转3、显示系统结构测试覆盖结果OO-Diagrammer:流程结构分析:1、生成控制流程图、逻辑流程图、代码流程图2、实现代码与流程图的双向对应和跳转3、显示流程结构测试覆盖结果OO-SQA:质量度量分析:1、设定质量度量标准和指标2、生成质量度量数据3、显示质量度量结果OO-Analyzer:系统文档生成:1、生成100多种设计文档和质量文档OO-Playback:GUI测试过程回放:1、捕获并记录测试过程2、回放测试过程3、比较回放结果OO-MemoryChecker:内存泄漏和非法
52、使用检测:1、检测内存泄漏和非法使用2、记录错误发生的语句位置3、生成检测报告OO-DefectTracer:缺陷定位和追溯:1、检测并记录缺陷(包括死机)发生的路径和语句位置2、生成缺陷定位报告 产品功能应用:产品功能应用: 新系统开发支持新系统开发支持 旧系统维护支持旧系统维护支持 系统再工程支持系统再工程支持 其他其他1、设计支持-系统结构/流程结构自动生成与维护-多重复杂性度量及分析-生成复杂性度量报告2、编码及调试支持-确定编码顺序-保证编码和设计的双向对应-生成代码逻辑结构-显示测试路径和频率-显示错误(尤其是意外中止)的语句位置和执行路径3、测试支持-确定单元测试顺序-生成并管理
53、测试用例-执行测试用例并显示结果-测试分析和度量-支持回归测试-生成质量报告1、复杂性度量支持-多重复杂性度量及分析-生成复杂性度量报告2、代码修改支持-系统结构/流程结构自动生成与维护、编码和设计的双向对应、错误定位和追溯-加强代码理解、避免修改的副作用-帮助代码静态分析技术的实施3、测试支持-确定单元测试顺序-生成并管理测试用例-执行测试用例并显示结果-测试分析和度量-支持回归测试-生成质量报告1、系统设计分析-系统结构/流程结构自动生成与维护,加强设计理解-编码和设计的双向对应,加强代码理解2、系统复杂性分析-多重复杂性度量及分析-生成复杂性度量报告3、系统性能分析-分析模块执行性能和执
54、行瓶颈4、文档报告生成-生成多种系统分析报告和质量报告1、支持工程管理和进度估算-代码文件和设计文档的一致性维护-多种度量分析方法2、训练项目组新进人员-理解系统结构和流程结构-方便阅读和理解代码3、支持验收评估-自动生成设计和编码文档-自动生成测试分析报告-自动生成质量度量报告 基本概念基本概念 1、块,也叫基本段、可视段、块,也叫基本段、可视段 2、不可视段、不可视段基本不可视段:基本不可视段:if,switch高端循环边界高端循环边界(执行执行0次循环体次循环体) 低端循环边界低端循环边界(执行执行1次循环体次循环体) 3、段,也叫标准段、段,也叫标准段包括可视段与基本不可视段包括可视段
55、与基本不可视段 4、增强段、增强段包括可视段和不可视段包括可视段和不可视段 质量保证度量规范质量保证度量规范 1 1、代码可读性度量、代码可读性度量 2 2、复杂性度量、复杂性度量 3 3、测试覆盖度量、测试覆盖度量 IEEEIEEE度量标准度量标准 1 1、环形复杂性、环形复杂性 2 2、测试覆盖度量、测试覆盖度量1、程序行数2、代码行百分比3、注释行百分比4、空格间隔行百分比1、环形复杂性2、块测试复杂性JC03、段测试复杂性JC14、增强段测试复杂性JC1+5、条件段测试复杂性JC26、继承树深度DIT7、子类数目NOC8、类耦合数目CBO9、类中方法数目10、类中响应方法数目RFC 1
56、1、使用类中方法的函数数目12、类中重用基类代码行数13、类中重用基类代码百分比1、块测试覆盖SC02、段测试覆盖SC13、增强段测试覆盖SC1+4、J-覆盖5、条件真覆盖6、条件假覆盖7、总条件覆盖8、分支覆盖1、定义:-环形复杂性C-区域数目RG-边数目E-节点数目N-分支节点数目SN2、计算公式:-C=RG-C=E-N+2-C=SN+11、原语-程序-功能-数据-需求-测试用例2、测试覆盖TC计算公式:-TC=(测试的需求原语数目) /(需求原语总数) * (测试的程序原语数目) /(程序原语总数) 使用流程使用流程.mak文件是C/C+编译文件.hsi文件是Panorama内部使用的输
57、入缓冲区文件,用于记载C/C+文件结构信息.dbs文件是Panorama内部使用的数据库文件,用于记载C/C+文件分析和测试结果信息,一般与his文件配合使用 应用原理应用原理 局限性局限性 1、中文显示问题中文显示问题 2、使用自己的脚本技术,但这种脚本技、使用自己的脚本技术,但这种脚本技术与其他的测试工具不兼容术与其他的测试工具不兼容 3、需要执行、需要执行 .mak 文件,而不是编译文件,而不是编译 C 程程序后生成的序后生成的 .obj 文件文件 4、仅能处理、仅能处理 C / C+ 程序程序 5、界面不够友好、界面不够友好 输出结果输出结果 测试用例最小集合测试用例最小集合 测试结果
58、分析数据测试结果分析数据 作用:作用: 生成并管理测试用例生成并管理测试用例 最小化测试用例集最小化测试用例集 测试结果记录和分析测试结果记录和分析 生成并保存测试用例生成并保存测试用例 加载测试用例加载测试用例 执行测试用例执行测试用例 测试结果分析测试结果分析 测试覆盖结果测试覆盖结果 测试用例效率测试用例效率 最小化测试用例集最小化测试用例集 测试工具是辅助测试整个过程的工具软件。测试工具是辅助测试整个过程的工具软件。 单元测试工具的种类和优势、缺陷。单元测试工具的种类和优势、缺陷。 健壮的测试工具的引入应该具有一定的设计健壮的测试工具的引入应该具有一定的设计原则。原则。 介绍介绍Pan
59、orama产品内容和运行环境、使用原产品内容和运行环境、使用原理、各个工具的简单运用以及缺陷。理、各个工具的简单运用以及缺陷。Version 3.0测试计划和单元测试测试计划和单元测试 测试工具是辅助测试整个过程的工具软件。测试工具是辅助测试整个过程的工具软件。 单元测试工具的种类和优势、缺陷。单元测试工具的种类和优势、缺陷。 健壮的测试工具的引入应该具有一定的设计健壮的测试工具的引入应该具有一定的设计原则。原则。 介绍介绍Panorama产品内容和运行环境、使用原产品内容和运行环境、使用原理、各个工具的简单运用以及缺陷。理、各个工具的简单运用以及缺陷。 计划测试过程计划测试过程 制定单元测试
60、说明书制定单元测试说明书 明确测试用例设计技术明确测试用例设计技术 单元测试的测试手段单元测试的测试手段 基本测试过程原则:尽早测试、经常测试、基本测试过程原则:尽早测试、经常测试、充分测试。充分测试。 开发过程与测试过程:分析、测试、设计、开发过程与测试过程:分析、测试、设计、测试、编码、测试测试、编码、测试 。 测试计划应该是按照开发者的要求并用具测试计划应该是按照开发者的要求并用具体例子来描述一个测试计划的层次结构以体例子来描述一个测试计划的层次结构以及各个测试计划相联系的标准模版。及各个测试计划相联系的标准模版。 谁执行了测试?谁执行了测试? 测试什么?测试什么? 什么时候测试?什么时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度虚拟现实内容制作合作股权协议书3篇
- 二零二五年度农村土地互换与农村能源建设合作协议2篇
- 二零二五年度企业内部停车场车辆停放服务责任协议3篇
- 2025年度职业教育办学许可证转让及就业安置协议3篇
- 二零二五年度典当物品鉴定与评估服务合同3篇
- 2025年度互联网医疗加盟合作协议书3篇
- 二零二五年度互联网公司员工离职保密与商业秘密保护更新协议2篇
- 2025年度内河渔船出售转让与船舶交易资金监管服务合同3篇
- 2025年度金融科技公司股东合伙人合作协议书3篇
- 二零二五年度房产转让背景下的环保责任协议3篇
- JavaScript教案课程设计
- 新改版教科版四年级下册科学教学计划
- 捷豹路虎发动机规格-v6sc3.0升汽油机
- 肺炎试题及答案
- 中外教育简史知识点汇总
- T∕ZZB 2665-2022 免洗手消毒凝胶
- 化粪池计算表格Excel(自动版)
- 2022年人美版美术六年级上册教案全一册
- 超外差调幅收音机课设报告——内蒙古工业大学
- 3.2熔化和凝固-人教版八年级上册课件(21张PPT)pptx
- 2017衢州新城吾悦广场开业安保方案
评论
0/150
提交评论