1、 软件测试方法和技术软件测试方法和技术第第2章章 软件测试软件测试的的基本概念基本概念第2章 软件测试的基本概念2.1 软件缺陷软件缺陷2.2 软件测试的分类软件测试的分类2.3 静态测试与动态测试静态测试与动态测试2.4 主动测试与被动测试主动测试与被动测试2.5 黑盒测试与白盒测试黑盒测试与白盒测试2.6 软件测试级别软件测试级别2.7 软件测试计划与用例软件测试计划与用例2.8 专业测试人员的责任和要求专业测试人员的责任和要求缺陷是质量的对立面2.1 软件缺陷2.1.1 软件质量的内涵软件质量的内涵2.1.2 软件缺陷的定义软件缺陷的定义2.1.3 软件缺陷的产生软件缺陷的产生2.1.4
2、 软件缺陷的构成软件缺陷的构成2.1.5 修复软件缺陷的代价修复软件缺陷的代价软件质量的内涵p软件质量软件质量:软件产品满足软件产品满足规定规定的和隐含的与需求能力有的和隐含的与需求能力有关的全部特征和特性。包括:关的全部特征和特性。包括:软件产品满足使用软件产品满足使用要求的要求的程度程度软件各种属性的组合程度软件各种属性的组合程度用户对软件产品的综合反映程度用户对软件产品的综合反映程度软件在使用过程中满足用户要求的程度软件在使用过程中满足用户要求的程度 软件质量模型 从测量的角度看,影响软件质量的因素可以分为两大从测量的角度看,影响软件质量的因素可以分为两大类:可直接测量(如每个功能点的错
3、误);间接度量(如类:可直接测量(如每个功能点的错误);间接度量(如可用性、可维护性)可用性、可维护性)1 1、McCallMcCall模型模型McCallMcCall软件质量模型软件质量模型 产品转换产品转换产品修改产品修改产品运行产品运行正确性正确性 可靠性可靠性 效率效率 完整性完整性 可用性可用性可移植性可移植性重复性重复性互用性互用性可维护性可维护性可测试性可测试性灵活性灵活性ISO 9126软件质量三层模型软件产品质量属性根据根据ISO 9126ISO 9126,软件产品质量可以归纳为以下属性:,软件产品质量可以归纳为以下属性:(1 1)功能性功能性(functionlityfun
4、ctionlity):在指定条件下,软件产品):在指定条件下,软件产品满足明确和隐含要求功能的能力满足明确和隐含要求功能的能力 匹配性:软件为指定的任务和用户目标提供一组合适匹配性:软件为指定的任务和用户目标提供一组合适功能的能力功能的能力 精确性:软件提供所需精确度的正确或相符结果及效精确性:软件提供所需精确度的正确或相符结果及效果的能力果的能力 互用性:软件产品与一个或更多规定系统进行交互的互用性:软件产品与一个或更多规定系统进行交互的能力能力 安全性:软件产品保护信息和数据的能力安全性:软件产品保护信息和数据的能力(2 2)可靠性可靠性(reliabilityreliability):在
5、指定条件使用时,软件产):在指定条件使用时,软件产品维持规定的性能级别的能力品维持规定的性能级别的能力 成熟性:软件产品为避免由软件中错误而导致失效的成熟性:软件产品为避免由软件中错误而导致失效的能力能力 容错能力:在软件失效或者违反规定的接口的情况下,容错能力:在软件失效或者违反规定的接口的情况下,软件产品维持规定的性能级别的能力软件产品维持规定的性能级别的能力 可恢复性:在发生故障的情况下,软件重建规定的性可恢复性:在发生故障的情况下,软件重建规定的性能级别并恢复受直接影响的数据的能力能级别并恢复受直接影响的数据的能力软件产品质量属性(3 3)可用性可用性(usabilityusabili
6、ty):在指定条件使用时,软件产品):在指定条件使用时,软件产品被理解、学习、使用和吸引用户的能力被理解、学习、使用和吸引用户的能力 可理解性:完成特定任务的功能明显性和适用性可理解性:完成特定任务的功能明显性和适用性 可学习性:软件产品使用户能学习它的应用的能力可学习性:软件产品使用户能学习它的应用的能力 可操作性:软件产品使用户能操作和控制它的能力可操作性:软件产品使用户能操作和控制它的能力 * *吸引性:软件产品吸引用户的能力吸引性:软件产品吸引用户的能力软件产品质量属性(4 4)效率效率(efficiencyefficiency):在规定条件下,相对于所用资):在规定条件下,相对于所用
7、资源数量,软件产品提供适当性能的能力源数量,软件产品提供适当性能的能力 时间表现:在规定条件下,软件产品执行其功能时,时间表现:在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐量的能力提供适当的响应和处理时间以及吞吐量的能力 资源表现:在规定条件下,软件产品执行其功能时,资源表现:在规定条件下,软件产品执行其功能时,使用合适的数量和类型的资源的能力使用合适的数量和类型的资源的能力软件产品质量属性(5 5)可维护性可维护性( maintainability maintainability):软件产品可被修改的):软件产品可被修改的能力,包括修正、改进或软件适应环境、需求和功能
8、规格说能力,包括修正、改进或软件适应环境、需求和功能规格说明中的变化明中的变化 可分析性:软件诊断缺陷或失效原因以及判定修改部分可分析性:软件诊断缺陷或失效原因以及判定修改部分的能力的能力 可变化性:软件产品使指定的修改可以被实现的能力可变化性:软件产品使指定的修改可以被实现的能力 稳定性:软件产品避免由于软件修改而造成意外结果的稳定性:软件产品避免由于软件修改而造成意外结果的能力能力 可测试性:软件产品使已修改软件能被确认的能力可测试性:软件产品使已修改软件能被确认的能力软件产品质量属性(6 6)可移植性可移植性(portabilityportability):软件产品从一种环境迁移到):软
9、件产品从一种环境迁移到另外一种环境的能力另外一种环境的能力 适应性:软件产品无需采用手段就可能适应不同的指定适应性:软件产品无需采用手段就可能适应不同的指定环境的能力环境的能力 易安装性:软件产品在指定环境中被安装的能力易安装性:软件产品在指定环境中被安装的能力 一致性:软件在公共环境中分享资源与其它独立软件共一致性:软件在公共环境中分享资源与其它独立软件共存的能力存的能力 可替换性:在环境、目的相同的情况下替代另一个指定可替换性:在环境、目的相同的情况下替代另一个指定软件的能力软件的能力软件产品质量属性14根据根据ISO/IEC TR 9126ISO/IEC TR 9126(20032003
10、)或)或ISO/IEC 25000ISO/IEC 25000(20102010)系)系列标准,软件质量可以分为:内部质量、外部质量、使用质列标准,软件质量可以分为:内部质量、外部质量、使用质量,三者关系如图:量,三者关系如图:软件质量模型内部和外部质量模型使用质量模型16使用质量使用质量有效性有效性生产率生产率安全安全满意度满意度软件质量的度量17 软件质量的度量主要是根据软件生存周期中对软件质量软件质量的度量主要是根据软件生存周期中对软件质量的要求所进行的一项活动。它主要分为三方面:外部度量、的要求所进行的一项活动。它主要分为三方面:外部度量、内部度量和使用度量。内部度量和使用度量。 外部度
11、量外部度量测试和使用软件产品过程中进行测试和使用软件产品过程中进行 内部度量内部度量软件设计和编码过程中进行软件设计和编码过程中进行 使用质量的度量使用质量的度量在用户使用过程中完成的在用户使用过程中完成的2.1.2 软件缺陷的定义IEEE (1983) 729 IEEE (1983) 729 软件缺陷一个标准的定义:软件缺陷一个标准的定义:p 从产品内部看,软件缺陷是软件产品开发或维护过程从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;中所存在的错误、毛病等各种问题;p 从外部看,软件缺陷是系统所需要实现的某种功能的从外部看,软件缺陷是系统所需要实现的某种功能的
12、失效或违背。失效或违背。 软件缺陷的现象p功能功能、特性没有实现或部分实现、特性没有实现或部分实现p设计设计不合理,存在缺陷不合理,存在缺陷p实际实际结果和预期结果不一致结果和预期结果不一致p运行运行出错,包括运行中断、系统出错,包括运行中断、系统崩溃、界面混乱崩溃、界面混乱p数据数据结果不正确、精度不够结果不正确、精度不够p用户用户不能接受的其他问题,如存不能接受的其他问题,如存取时间过长、界面不美观取时间过长、界面不美观 软件缺陷的产生 技术问题技术问题p算法算法错误,语法错误,计算和精度问题,接口参数传错误,语法错误,计算和精度问题,接口参数传递不递不匹配匹配 团队工作团队工作p沟通沟通
13、不不充分,误解充分,误解 软件本身软件本身p文档错误、用户使用场合文档错误、用户使用场合(user scenario)(user scenario),p时间上不协调、或不一致性所带来的问题时间上不协调、或不一致性所带来的问题p系统的自我恢复或数据的异地备份、灾难性恢复等问系统的自我恢复或数据的异地备份、灾难性恢复等问题题软件缺陷构成 需求41%初步设计12%设计24%代码23%缺陷成本2.2 软件测试的分类(1 1)按照是否运行程序划分为:)按照是否运行程序划分为:p静态测试、动态测试静态测试、动态测试(2 2)按照测试的方法划分为:)按照测试的方法划分为:p主动测试、被动测试主动测试、被动测
14、试(3 3)按照测试用例设计方法划分为:)按照测试用例设计方法划分为: p白盒测试、黑盒测试、灰盒测试白盒测试、黑盒测试、灰盒测试(4 4)按照开发阶段划分为:)按照开发阶段划分为:p单元测试、集成测试、系统测试、验收测试、单元测试、集成测试、系统测试、验收测试、测试、测试、测试测试(5 5)按照测试中是否使用工具划分)按照测试中是否使用工具划分p手工测试、自动化测试手工测试、自动化测试(6 6)按照实施测试的组织划分为:)按照实施测试的组织划分为:p开发方测试、用户测试、第三方测试开发方测试、用户测试、第三方测试2.3 静态测试和动态测试静态测试和动态测试产品评审产品评审静态分析静态分析验证
15、和确认验证和确认静态测试2.3.1 产品评审通过通过软件评审,可以更早地发现需求工程、软件软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。质量成本从昂贵的后期返工转化为前期的缺陷发现。评审评审是对软件元素或者项目状态的一种评估手段是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改,以确定其是否与计划的结果保持一致,并使其得到改进。检验工作产品是否正确地满足了以往工作产品中建进。检验工作产品是否正确地满足了以往工作产品中建立的规范
16、。立的规范。2.3.2 静态分析两种手段:两种手段:p人工检测:人工检测偏重于编码风人工检测:人工检测偏重于编码风格、质量的检验格、质量的检验,对对设计、代码进行分析,设计、代码进行分析,有效地发现逻辑设计和编码错误有效地发现逻辑设计和编码错误。p计算机辅助静态分析:利用静态分析工具对被测程序进计算机辅助静态分析:利用静态分析工具对被测程序进行特性分析,从程序中提取一些信息,以便检查程序逻行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造辑的各种缺陷和可疑的程序构造。2.3.3 验证和确认(V & V) pVerificationVerification:是否是否正确
17、地构造了软件?即是否正确地正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性品满足规格设计说明书的一致性pValidationValidation:是否是否构造了正是用户所需要的软件?即是构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用否正在做正确的事。验证产品所实现的功能是否满足用户的需求户的需求2.4 主动测试和被动测试2.5 白盒测试和黑盒测试功能测试功能测试数据驱动测试数据驱动测试 结构测试结构测试逻辑驱动测试逻辑驱动测试 客户需求事件驱动输入输出白盒
18、测试黑盒测试被测软件系统被测软件系统白盒测试和黑盒测试2.6 软件测试级别软件测试级别调试调试组件组件功能功能健壮性健壮性效率效率组件之间的接口组件之间的接口系统系统功能功能 安全性安全性 健壮性健壮性效率效率 功能功能及用户界面及用户界面安全性安全性 效率效率用户的可接受性用户的可接受性组件测试组件测试集成测试集成测试系统测试系统测试实现(编码)实现(编码)验收测试验收测试单元测试单元测试单元测试p单元测试:单元测试:针对针对程序系统中的最小单元程序系统中的最小单元-模块或组件进行模块或组件进行测试,一般和编码同步进行。主要采用白盒测试方法,从测试,一般和编码同步进行。主要采用白盒测试方法,
19、从程序的内部结构出发设计测试用例,检查程序模块或组件程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。存在错误。通常要编写驱动模块和桩模块。通常要编写驱动模块和桩模块。p单元测试一般由编程人员和测试人员共同完成,而以开发单元测试一般由编程人员和测试人员共同完成,而以开发人员人员为主。为主。p单元测试包括代码评审,代码评审可以发现程序单元测试包括代码评审,代码评审可以发现程序50%70%代码的缺陷。代码的缺陷。集成测试集成测试:集成测试:也也称组装测试、联合测试,在单元测试的基础上,称组
20、装测试、联合测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。两种集成方式:一次性集成现与接口有关的模块之间问题。两种集成方式:一次性集成方式和增殖式集成方式方式和增殖式集成方式。系统测试系统功能测试:系统功能测试:一般一般须在完成集成测试后进行,而且是针须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验是在已知产品所应具有的功能,从用户角度来进行功能验证,
21、以确认每个功能是否都能正常使用证,以确认每个功能是否都能正常使用 系统非功能性测试:系统非功能性测试:是将软件放在整个计算机环境下,包是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括:行环境下进行一系列的测试,包括:p负载测试负载测试p灾难恢复性测试灾难恢复性测试p 可靠性测试可靠性测试p性能测试性能测试p安全测试安全测试p验收测试 &安装测试p验收测试:验收测试:目的目的是向未来的用户表明系统能够像预定是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合
22、要求那样工作,验证软件的功能和性能如同用户所合理期待的那样理期待的那样p安装安装测试:测试:指指按照软件产品安装手册或相应的文档,按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试用户使用环境中,进行一步一步的安装操作性的测试 、测试p测试:测试:指软件开发公司组织内部人员开始使用新产品(指软件开发公司组织内部人员开始使用新产品(称为称为版本),在实际运行环境和真实应用过程中发现测版本),在实际运行环境和真实应用过程中发现测试阶段所没有发现的缺陷。试阶段所没有发现的缺陷。p
23、经过经过测试调整的软件产品称为测试调整的软件产品称为版本。版本。p测试测试 :指公司外部的典型用户试用,并要求用户报告指公司外部的典型用户试用,并要求用户报告异常情况、提出批评意见,然后再对异常情况、提出批评意见,然后再对版本进行修正和完版本进行修正和完善,最终得到正式发布的版本。(常见的试用版本)善,最终得到正式发布的版本。(常见的试用版本)2.7 软件测试计划和测试用例软件测试工作范畴分两个层次:软件测试工作范畴分两个层次:p软件测试软件测试工作的组织与管理:工作的组织与管理:制定测试策略、测试计划,制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试确认所采用的测试
24、方法与规范,控制测试进度,管理测试资源。资源。p测试工作的实施:测试工作的实施:编制符合标准的测试文档,搭建测试环编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活境,开发测试脚本、与开发组织协作实现各阶段的测试活动动 测试工作流程测试计划内容测试计划内容p目标和范围目标和范围p项目估算项目估算p风险计划风险计划p进度安排进度安排p资源配置资源配置p跟踪和跟踪和控制控制机制机制 P30测试用例测试用例p测试用例是测试人员在测试过测试用例是测试人员在测试过程程中的重要参考依据中的重要参考依据p测试测试用例将有助于节约测试时间,提高测试效率。用例将有助于节约测试时
25、间,提高测试效率。p良好的测试用例不断地被重复使用,使得测试过程事良好的测试用例不断地被重复使用,使得测试过程事半功半功倍倍p测试用例是一个知识积测试用例是一个知识积累的累的过程过程 P30 2.8 专业专业测试人员的责任与要求测试人员的责任与要求pQA/测试经理:测试经理:人员管理,资源调配、测试方法改进等;人员管理,资源调配、测试方法改进等;p实验室管理人员实验室管理人员:设置、配置和维护实验室的测试环境设置、配置和维护实验室的测试环境p内审员内审员:审查流程,建立测试模板,跟踪缺陷测试报告的质审查流程,建立测试模板,跟踪缺陷测试报告的质量等;量等;p测试组长测试组长:负责项目的管理、测试
26、计划、测试用例、任务安负责项目的管理、测试计划、测试用例、任务安排等;排等;p测试设计人员测试设计人员/资深测试资深测试工程师:工程师:产品产品设计规格说明书的审查、设计规格说明书的审查、测试用例的设计、技术难题的解决、培训和指导、实际测试测试用例的设计、技术难题的解决、培训和指导、实际测试任务的执行;任务的执行;p一般一般(初级)测试(初级)测试工程师:工程师:执行执行测试用例和相关的测试任务。测试用例和相关的测试任务。 对测试人员的要求对测试人员的要求p 技术,编程技术,编程能力能力p 责任感、耐力责任感、耐力p 沟通沟通能力、理解能力能力、理解能力p 分析问题能力(批判性思维)分析问题能
27、力(批判性思维)p 项目管理项目管理能力能力p 组织组织能力能力p P32示例示例优秀测试工程师的素质优秀测试工程师的素质p 高度的责任感高度的责任感p 非常好的沟通能力、幽默感非常好的沟通能力、幽默感p 技术能力、自信心、耐心技术能力、自信心、耐心p 怀疑怀疑一切的精神、勤奋精神一切的精神、勤奋精神p 洞察力洞察力、适度的好奇心、适度的好奇心p 反向思维和发散思维反向思维和发散思维能力、记忆力能力、记忆力p 自我学习能力、创新能力等自我学习能力、创新能力等作业451.1. 判断一个问题是否是缺陷的唯一标准是什么?判断一个问题是否是缺陷的唯一标准是什么?2.2. 哪个阶段引入的缺陷最多,修复成本又最低?哪个阶段引入的缺陷最多,修复成本又最低?3.3. “软件测试能够保障软件的质量软件测试能够保障软件的质量”,这句话对吗?,这句话对吗?4.4. 简述软件测试工作流程。简述软件测试工作流程。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。