当前位置:
文档之家› 2 软件测试:缺陷与软件质量
2 软件测试:缺陷与软件质量
可维护性 效率
可用性
完整的质量模型区分:内部质量、外部质量、使用质量
(书上P17页图2-3的三层模型)
软件质量模型ISO25010-2011
来源:《ISO/IEC 25010质量模型标准现状》孙洋、袁玉宇
练习:以下属于哪一类软件质量属性问题
需要重复点击3次下载操作后才可以下载文件 飞毛腿导弹防御系统在运行14个小时后出现异常 汶川地震发生后通信系统瘫痪 空调故障后12306订票系统无法使用 迪斯尼游戏光盘只能在少数PC机上运行 中国工商银行DB2升级后CPU占用过高,导致业务中断 CSDN的上百万用户数据被窃取。 加拿大治疗仪由于放射量过量导致人员死亡 系统支撑1000万同时在线用户数
Bug创始人Grace Hopper: 计算机软件之母;臭虫BUG;千年虫 1947年,一只小飞蛾钻进了计算机电路里,导致系统无法工作,格蕾丝·赫 柏把飞蛾拍死在工作日志上,写道:就是这个 bug(虫子),害我们今天的工 作无法完成。现在华盛顿美国国家历史博物馆中可以看到这个遗稿。 于是,bug一词成了计算机专业术语,形容那些系统中的缺陷或问题。
软件系统的需求、文档、程序、数据的都可能存在bug
目录
1 2
缺陷相关概念
软件质量相关概念 软件质量保证体系
3
什么是质量?
wiki百科:质量=品质,指物品的特征、品性、本质,也可指 商品或服务的水准、质量。
审美:用来判断艺术类作品是否有其内在优点、价值或其他卓越性 罗伯特·梅纳德·波西格:质量是“用心的结果”(The result of care) 菲利浦·克劳士比:质量就是“符合需求” 。 约瑟夫·朱兰:质量就是“适合使用”(Fitness for use)。是否适合 由客户来定义。
环境问题
管理问题
人的问题:
软件正确的相对性
来源 《西乔漫画》
软件缺陷的分布
其他, 6% 代码, 15%
规格说明 书, 54% 设计, 25%
50%缺陷来源于需求
70%缺陷可以在早期发现
缺陷成本
发现缺陷 定位缺陷 修正缺陷 重新部署
为什么缺陷成本愈往后愈高?
练习:下列哪些属于BUG
缺陷与软件质量
本章教学要点
教学目标
理解测试、缺陷与质量三者之间的关系,能形成对质量保证体系的 完整视图。
教学重点与难点
缺陷、软件质量的相关概念
对软件质量属性的各类缺陷的判别、敏感性 软年质量保证体系的构建
目录
1 2
缺陷相关概念
软件质量相关概念 软件质量保证体系
3
BUG的来历
区分:缺陷、故障、失效
缺陷 (人为) 错误
引入 激活
(人为) 错误
引入 缺乏 …… 容错
缺陷
故障
引入
故障
缺乏 容错
失效
(第三方) 故障
是不是缺陷一定会导致业务失效? 是不是业务失效都是由缺陷引起的? 是不是缺陷激活后一定会出现故障?
区分:缺陷、故障、失效
术语 缺陷 特征 (XX)对象-(XX)状态 说明 示例 从特定(程序)对象角度阐述, 体现为静态存在 指针未释放 从系统角度阐述,体现为运行 状态。故障-旦激活后则可以 进程退出、 反复传递 死机 从用户角度阐述,体现为所用 户体验的业务状态 打不通电话
Quality is value to some person.
——Weinberg
软件质量的定义
ISO 14598-1999定义:软件特性的总和,
软件满足规定或潜在用户需求的能力
名词术语
ISO 9126-2001定义:软件满足用户规定或
潜在用户需求的能力,要从软件在内部,外部和 使用过程中的表现来衡量,包含内部质量、外部 质量、和使用质量。
质量的定义
ISO 9000 :质量是一组固有特性符合需求的程度。 IEEE的定义:
系统、部件或过程满足明确需求的程度 系统、部件或过程满足客户或用户需要或期望的程度
六标准差(6σ):106次测试中的错误次数。
RUP 的定义:满足或超出认定的一组需求,并使用经过认可的评测
方法和标准来评估,还使用认定的流程来生产
软件缺陷的定义:维基wiki
程序错误(英语:Bug),或称漏洞,是程序设计中的术语, 是指在软件运行中因为程序本身有错误而造成的功能不正常、 死机、数据丢失、非正常中断等现象。
Bug, 缺陷, 错误,问题,漏洞,异常等都指一个意思。
软件缺陷的定义:IEEE729-1983
从产品内部看,软件缺陷是软件产品开发或维护过程中 所存在的错误、毛病等各种问题;
技术评审 软件测试
过程质量:开发过程中有效地预防工作成果产生缺陷,将高
质量内建于开发过程。
过程规范建立 过程检查 软件过程改进
(郎中看病的故事)
软件质量保证模型
来源:林锐《全面软件质量管理》
软件质量保证SQA 的定义
建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、 步骤、实践和方法能够正确地被所有项目所采用(IEEE)
定义:软件产品、过程或与质量要求有关的固有属性
名词术语
软件质量是许多质量属性的综合体现,各种质量属性反映 了软件质量的方方面面 质量要求只有转化为有指标的质量特性,质量才可以度量。
通过改善软件的各种质量属性,从而提高软件的整体质量。
软件质量如何度量?
ISO-9126软件质量模型
可移植性
功能 可靠性
名词术语
从产品外部看,软件缺陷是系统所需要实现的某种功能 的失效或违背。
(说明:此定义通常为教科书上的软件缺陷的定义)
从2方面来看,开发或维护过程中存在的问题也属于软件缺陷。
软件缺陷的定义:IEEE 610.12-1990
Fault : An incorrect step, process, or data definition in a computer program. Note: This definition is used primarily by the fault tolerance discipline. in common usage, the terms "error" and "bug" are used to express this meaning. 一个不确的步骤、过程或数据定义, 与术语error,bug同一个意思。 Failure:the inability of a system or component to perform its required functions within specified performance requirements. 一个系统或部件不能完成需求指定内的功能或性能要求。 从对内、对外来看,区分成不同的概念。失效的概念被正式提出。
练习:以下说法是否正确
开发文档是测试依据、测试结果评估的对错标准。 所有的bug必定存在于某个源程序中。
所有的程序正确都只是在特定环境特定条件下的正确。
系统无响应一定是软件出了BUG。 对于某些系统来说(比如银行系统),即使硬件出了故障,也可能会产生bug。 质量即为满足用户需求。是否为缺陷也取决于用户。用户说是bug就是bug 过程质量是将高质量内建于开发过程,从而有效地预防了缺陷。而缺陷产生后却只能 通过测试发现。 软件质量代表了满足用户所规定需求的能力。
……
软件缺陷的产生
复杂逻辑 复杂架构
智者千虑,必有一失
复杂环境 来源 《暴走漫画》 来源 《西乔漫画》
多样化输入
软件缺陷产生的原因
技术问题
逻辑过于复杂;接口参数太多;系统结构设计不合理;技术限制;新技术; 对第三方接口依赖;系统配置;硬件系统老化;电磁波干扰;时间同步问题; 时间/进度/资源;不完善开发流程;团队成员沟通不足;对客户需求理解不一致; 疏忽;技能不足;
软件需求规格说明书中表达前后矛盾 设计文档中对于某接口返回值的定义没有明确取值范围。
游戏只能用键盘玩不能用鼠标玩。 规定的功能、特性没有实现或部分实现 数据结果不正确、精度不够。例:商品单价只显示到元。 界面文字显示不对齐 微信中输入生日快乐有时能掉蛋糕图片下来、有时不能。 默认配置错误,导致系统无法运行 操作系统资源不足,程序运行缓慢
业界趋势
个体和互动 胜于 流程和工具 可以工作的软件 胜于 面面俱到的文档 客户合作 胜于 合同谈判 响应变化 胜于 遵循计划
融合是趋势:软件测试与QA(质量保证)融合、开发与测试融合
本章小结
软件缺陷、故障、失效的定义及相互关系 软件BUG的识别 软件质量的定义,从不同方面对质量的理解 软件质量模型、不同软件质量属性BUG的识别 软件质量保证体系:产品质量与过程质量
干爽
毛
丝绸 汽车
暖和
轻柔 交通运输
御寒
高雅 社会地位、方便
牙膏
低脂牛奶
清洁牙齿
不会发胖
个人魅力(洁)
同时获得营养
要求≠需求≠需要,落脚点都会回到人的需要
Kano模型:用户需求与用户满意度关系
有吸引力 用 户 满 意 度
超出期望的
最好有的
中立
必须有的 不满意 缺少 用户需求 充足
软件质量属性(特性)的定义
质量是一种感觉?