软件测试基本概念

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的。
1.软件质量的内涵
➢ IEEESTD729:软件产品满足规定的和隐含的与需求能力有关的全部 特征和特性。
− 主要包括: ① 软件产品满足使用要求的程度 ② 软件各种属性的组合程度 ③ 用户对软件产品的综合反映程度 ④ 软件在使用过程中满足用户要求的程度
1.软件质量的内涵
※ 高质量软件标准体系
1.软件质量的内涵
➢ ISO 9126(GB/T 16260)《信息技术 软件产品质量》
ISQ/IEC 9126-1:2001 ISO/IEC TR 9126-2:2003 ISO/IEC TR 9126-3:2003 ISO/IEC TR 9126-3:2003
《信息技术-产品质量》的第一部分《质量模型》 《IT-产品质量》的第二部分《外部质量》 《IT-产品质量》的第三部分《内部质量》 《IT-产品质量》的第四部分《使用质量》
➢ 软件质量评价方法
ISO/IEC 14598-1:1999 ISO/IEC 14598-2:2000 ISO/IEC 14598-3:2000 ISO/IEC 14598-4:1999 ISO/IEC 14598-5:1998 ISO/IEC 14598-6:2001
《IT--软件产品评估-- 第一部分:综述》 《IT--产品评估--第二部分:计划和管理》 《IT--产品评估--第三部分:开发者过程》 《IT--产品评估--第四部分:购买方过程》 《IT--软件产品评估--第五部分:评估方过程》 《IT--产品评估--第六部分:评估模型文档》
1.软件质量的内涵
※ 产品质量的标准
➢ 功能性 Functionality ➢ 可用性 Usability ➢ 可靠性 Reliability ➢ 性能 Performance ➢ 容量 Capacity ➢ 可伸缩性 Scalability ➢ 可维护性 Service manageability ➢ 兼容性 Compatibility ➢ 可扩展性 Extensibility
※ 静态测试包括对软件产品的需求和设计规格说明书的评审、 对程序代码的复审等
※ 动态测试是通过真正运行程序发现错误,通过观察代码运 行过程,来获取系统信息,对系统行为进行验证。
1.静态测试和动态测试
※ 静态测试的方法:
➢ 产品评审 ➢ 静态分析
2.产品评审
※ 评审的形式/方法
➢ 互为评审 (Peer review) ➢ 轮查 (Pass-round) ➢ 走查 (walk-through) ➢ 会议评审 (Inspection)
※ 从上述讨论可知,软件缺陷不仅存在于可执行程序中,而 且存在于需求定义和设计的文档中,所以软件测试不仅仅 是“为了发现错误而执行程序的过程”,而且还包括对产 品规格说明书、技术设计文档等的测试。软件测试贯穿于 整个软件开发过程,是软件验证和用户需求确认的统一, 和软件评审密不可分。
2
软件测试的分类
− 易用:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关 的一组属性。
− 效率:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组 属性。
− 可维护:与进行指定的修改所需的努力有关的一组属性。 − 可移植:与软件从一个环境转移到另一个环境的能力有关的一组属性。 − 其中每一个质量特征都分别与若干子特征相对应。
2.缺陷 – Defect, Bug
※ 软件缺陷被引入的时间
➢ 开发阶段
− 规格说明书 − 设计环节 − 编码
➢ 修复缺陷时也可能产生新的缺陷
− 修改代码后一定要进行回归测试!
2.缺陷 – Defect, Bug
※ 软件缺陷的产生的主要因素
➢ 技术问题
− 开发人员开发经验不足 − 对采用的新技术不熟悉 − 程序模块复杂度高 − 接口参数多 − 其他
※ 软件失效(failure) 软件运行时产生的一种不希望或不可接受的外
部行为结果。比如死机就是一种严重的软件失效。软件失效是软件用 户所能直接感受到的。当软件出现失效时,必然说明软件中存在缺陷。
2.缺陷 – Defect, Bug
※ IEEE (1983) 729 软件缺陷一个标准的定义:
➢ 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、 毛病等各种问题;
2.缺陷 – Defect, Bug
2.缺陷 – Defect, Bug
※ 软件缺陷的构成
➢ 规格说明书是缺陷最容易出现的地方
− 开发人员与用户的沟通问题 − 软件产品还没有设计、开发,完全靠想象描述系统的实现结果,有些特性还
不够清晰 − 需求的频繁变动,造成不一致性 − 对规格说明书不够重视,在设计和写作上投入的人力、时间不足 − 沟通不充分,只有设计师或项目经理知道的信息较多
软件系统独立性
机器独立性 通讯公开性 数据公开性
1.软件质量的内涵
➢ McCall软件质量模型
1.软件质量的内涵
➢ ISO 9126三层模型
功能性
可靠性
可用性 效率
可移植性
可维护性
匹配性 精确性 互用性 安全性 成熟性 容错能力 可恢复性 可理解性 可学习性 可操作性 时间表现 资源表现 可分析性 可变化性 稳定性 可测试性 适应性 易安装性 一致性 可替换性
600亿美金,约合0.6%的国民生产总值
2.缺陷 – Defect, Bug
➢ Boehm在其著作《软件工程经济学》中提到 − 如果需求阶段纠正一个错误的代价是1 − 设计阶段是它的3~6倍 − 编程阶段是它的10倍 − 内部测试阶段是它的20~40倍 − 外部测试阶段是它的30~70倍 − 产品发布时,这个数字是40~1000倍 ➢ 代价不是呈线性增长,而是呈指数级增长
1.软件质量的内涵
※ 软件质量模型
➢ Boehm质量模型 ➢ McCall质量模型 ➢ ISO质量模型
1.软件质量的内涵
➢ Boehm软件质量模型
正确性
产品 操作
可靠性 效率 完整性
可用性
产品 修改
可维护性 可测试性 灵活性
产品 维护
可移植性 重复性
互用性
阐述性 正确性 连贯性 容错性 执行效率/储存效率 存取控制/存取检查 可操作性 可训练 沟通良好 简单性 易操作的 工具 自我操作性 扩展性 一般性 模块性
2.缺陷 – Defect, Bug
※ 软件错误(error) 在软件生存期内的不希望或者不可接受的人为
错误。
※ 软件缺陷(defect) 任何程序、系统中的问题,和产品设计说明书
的不一致性,不能满足用户的需求。
※ 软件故障(fault) 软件运行过程中出现的一种不希望或不可接受的
内部状态。此时,如果没有适当的处理措施的话,软件故障就会导致 软件失效。
2.缺陷 – Defect, Bug
➢ 软件本身
− 不合理的软件开发流程 − 文档错误 − 没有考虑软件实际使用场景,导致出现负载问题 − 对程序的逻辑路径或数据范围的边界考虑不周全 − 与硬件、第三方系统软件之间存在接口或依赖性 − 其他
2.缺陷 – Defect, Bug
➢ 团队工作
− 对软件质量问题不重视 − 对客户需求未调研清楚或存在误解 − 不同阶段开发人员理解不一致 − 其他
第二章 软件测试基本概念
目录
1 软件缺陷 2 软件测试的分类 3 静态测试与动态测试 4 主动测试与被动测试 5 黑盒测试与白盒测试 6 软件测试级别 7 软件测试计划与用例 8 专业测试人员的责任和要求
1 软件缺陷
缺陷是质量的对立面
※ 要了解什么是缺陷(Defect),就必须清楚“质量(Quality)” 概念,因为缺陷是相对质量而存在的,违背了质量、违背 了客户的意愿,不能满足客户的要求,就会引起缺陷或产 生缺陷
(1)软件产品的质量
是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以 通过一些方法和人类活动,来改进质量
(2)软件开发过程中的质量
是指过程满足明确和隐含需要的能力的特性之总和
(3)应用领域或者业务上的质量
在商业过程中有关的质量内容: 培训、成品制作、宣传、发布日起、客户、风 险、成本、业务等
早期缺陷发现(70%-90%)测试前 在真正的程序测试之前,通过审 查、评审会可以发现更多的缺陷。
需求
设计
编码
测试
发布
时间
2.缺陷 – Defect, Bug
※ 修复软件缺陷的代价
➢ 缺陷的代价是非常高昂的
− 一项统计数据表明,大约62%的项目成本用于修复软件缺陷。 − 据美国NIST在2002年发布的一项研究估计,美国经济每年因软件Bug会损失
➢ 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
2.缺陷 – Defect, Bug
※ 软件缺陷的表现:
➢ 功能、特性没有实现或部分实现 ➢ 设计不合理,存在缺陷 ➢ 实际结果和预期结果不一致 ➢ 运行出错,包括运行中断、系统崩溃、界面混乱 ➢ 数据结果不正确、精度不够 ➢ 用户不能接受的其他问题,如存取时间过长、界面不美观
2.缺陷 – Defect, Bug ※ Rayleigh缺陷模型
➢ 在真正的程序测试之前,通过审查、评审会可以发现更多的缺陷。 ➢ 规格说明书的缺陷会在需求分析审查、设计、编码、测试等过程中会
逐步发现,而不能在需求分析一个阶段发现
2.缺陷 – Defect, Bug
缺陷数
※ 软件缺陷在不同阶段的分布
1.软件测试的分类
测试阶段或层次
验收测试
系统测试
集成测试
单百度文库测试
功能测试 强壮性测试 性能测试
适用性测试 安全性测试 可靠性测试
白盒测试
方法 黑盒测试
目标/特性
1.软件测试的分类
软件执行的角度
静态测试 动态测试
测试阶段的角度 测试方法的角度
白盒测试 黑盒测试 灰盒测试
单元测试 集成测试 系统测试 验收测试 回归测试
最不正式的
临时评审
轮查
最正式的
走查
互为评审 同行评审
评审
2.产品评审
※ 评审对象
➢ 管理评审 ➢ 技术评审 ➢ 文档评审 ➢ 流程评审
※ 软件测试评审对象
➢ 需求评审 ➢ 设计评审 ➢ 代码评审 ➢ 文档评审
2.产品评审
➢ 需求和设计审查 测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解 客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一 致性等,检查系统设计的合理性和可测试性等
1.软件质量的内涵
※ 质量的定义
➢ 质量管理专家朱兰对“质量”的定义:满足使用要求的基础是质量的 特征,产品的任何特征(性质、属性等)、材料或满足使用要求的过 程都是质量特征。
➢ 1986年ISO8492给出了质量的定义:质量是产品或服务所满足明示 或暗示需求能力的固有特性和特征的集合。
− 固有特性:某事物中本来就有的,尤其是那种永久性的特性 − 明示的特性:理解为规定的要求,用于描述或者客户明确提出的那些要求 − 暗示的特性:是由社会习俗约定、行为惯例所要求的一种潜规则、不言而喻
1.软件测试的分类
测试阶段的角度
单元测试 集成测试 系统测试 验收测试 回归测试
功能测试 性能测试 随机测试
1.软件测试的分类
白盒测试
测试方法的角度
黑盒测试 灰盒测试
逻辑驱动
基路测试 等价类划分 边界值分析
因果图 错误推测
1.软件测试的分类 ※ 测试过程
3
静态测试和动态测试
1.静态测试和动态测试
2.缺陷 – Defect, Bug ※ 缺陷成本
2.缺陷 – Defect, Bug
※ 缺陷的生命周期
软件缺陷从被测试人员发现一直到被修复,要经历一个特有的生命周 期,阶段包括:新建、打开、拒绝、修复、关闭、重新打开等。
2.缺陷 – Defect, Bug
2.缺陷 – Defect, Bug
1.软件质量的内涵
➢ ISO软件质量模型
1.软件质量的内涵
➢ ISO软件质量模型
2.缺陷 – Defect, Bug
※ 缺点(defect) ※ 谬误(fault) ※ 失败 (failure) ※ 矛盾(inconsistency) ※ 毛病 (incident )
※ 偏差 (variance) ※ 问题(problem) ※ 错误(error ) ※ 异常(anomy)
用户自定义软件产品度量标准
1.软件质量的内涵
➢ 内部质量、外部质量和使用质量的关系
1.软件质量的内涵
➢ 软件质量特征 ( ISO9126)
− 功能:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或 隐含的需求的那些功能。
− 可靠:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一 组属性。
相关文档
最新文档