2 软件测试:缺陷与软件质量
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名词术语
从产品外部看,软件缺陷是系统所需要实现的某种功能 的失效或违背。
(说明:此定义通常为教科书上的软件缺陷的定义)
从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. 一个系统或部件不能完成需求指定内的功能或性能要求。 从对内、对外来看,区分成不同的概念。失效的概念被正式提出。
软件缺陷的定义:维基wiki
程序错误(英语:Bug),或称漏洞,是程序设计中的术语, 是指在软件运行中因为程序本身有错误而造成的功能不正常、 死机、数据丢失、非正常中断等现象。
Bug, 缺陷, 错误,问题,漏洞,异常等都指一个意思。
软件缺陷的定义:IEEE729-1983
从产品内部看,软件缺陷是软件产品开发或维护过程中 所存在的错误、毛病等各种问题;
业界趋势
个体和互动 胜于 流程和工具 可以工作的软件 胜于 面面俱到的文档 客户合作 胜于 合同谈判 响应变化 胜于 遵循计划
融合是趋势:软件测试与QA(质量保证)融合、开发与测试融合
本章小结
软件缺陷、故障、失效的定义及相互关系 软件BUG的识别 软件质量的定义,从不同方面对质量的理解 软件质量模型、不同软件质量属性BUG的识别 软件质量保证体系:产品质量与过程质量
质量是一种感觉?
不同软件企业对质量观点
微软:软件质量只要好到能将大量产品卖到顾客----商业观点 美国国家宇航运局:生命攸关必须接近零缺陷 ----产品观点 软件外包公司:满足合同的要求和规格。 摩托罗拉:达到六西格到管理标准 华为:为客户服务是华为唯一存在的理由。 不同的质量观点有无冲突之处? ----制造观点 ----度量观念 ----客户观念
名词术语
比如:某个系统用户登录功能无法使用,会屏蔽登录功能内部 的一些细节问题,比如:用户名长度范围不正确
怎么判定是一个BUG?
预期结果O
≠
输入数据I
IPO模型
处理P
输出结果O
BUG 预期结果从哪里来?
预期结果
常识 领域专业知识 产品需求规格 协议规范 历史版本的做法 相似产品的做法 用户使用习惯 质量标准 客户的价值取向
……
软件缺陷的产生
复杂逻辑 复杂架构
智者千虑,必有一失
复杂环境 来源 《暴走漫画》 来源 《西乔漫画》
多样化输入
软件缺陷产生的原因
技术问题
逻辑过于复杂;接口参数太多;系统结构设计不合理;技术限制;新技术; 对第三方接口依赖;系统配置;硬件系统老化;电磁波干扰;时间同步问题; 时间/进度/资源;不完善开发流程;团队成员沟通不足;对客户需求理解不一致; 疏忽;技能不足;
Bug创始人Grace Hopper: 计算机软件之母;臭虫BUG;千年虫 1947年,一只小飞蛾钻进了计算机电路里,导致系统无法工作,格蕾丝·赫 柏把飞蛾拍死在工作日志上,写道:就是这个 bug(虫子),害我们今天的工 作无法完成。现在华盛顿美国国家历史博物馆中可以看到这个遗稿。 于是,bug一词成了计算机专业术语,形容那些系统中的缺陷或问题。
质量的不同层面
符合性质量:能够满足国家或行业标准、产品规范的要求,
最初的质量观念
适用性质量:让客户满意,不仅满足标准、规范的要求,而
且满足客户的其他要求
广义质量:不仅要让客户满意,还要让客户愉快,也就是,
想在客户的前面,超出客户的希望
用户需求
我想要(要求)
棉
目的(需求)
吸汗
内在欲望(需要)
干爽
毛
丝绸 汽车
暖和
轻柔 交通运输
御寒
高雅 社会地位、方便
牙膏
低脂牛奶
清洁牙齿
不会发胖
个人魅力(洁)
同时获得营养
要求≠需求≠需要,落脚点都会回到人的需要
Kano模型:用户需求与用户满意度关系
有吸引力 用 户 满 意 度
超出期望的
最好有的
中立
必须有的 不满意 缺少 用户需求 充足
软件质量属性(特性)的定义
三种基本软件质量保证(SQA)角色
过程改进型 (专职SQA)
针对过程质量,保证过程被正确执行;是过程质量审计者 针对产品的质量,保证产品符合客户的需求;是产品质量检查者。 记录软件的演化过程,保证软件开发者在软件生命周期中各个阶段 都能得到精确的产品配置。 配置项:源代码、文档、数据,从而构成一个版本 狭义的SQA往往指的是第一类过程改进型的SQA
练习:以下说法是否正确
开发文档是测试依据、测试结果评估的对错标准。 所有的bug必定存在于某个源程序中。
所有的程序正确都只是在特定环境特定条件下的正确。
系统无响应一定是软件出了BUG。 对于某些系统来说(比如银行系统),即使硬件出了故障,也可能会产生bug。 质量即为满足用户需求。是否为缺陷也取决于用户。用户说是bug就是bug 过程质量是将高质量内建于开发过程,从而有效地预防了缺陷。而缺陷产生后却只能 通过测试发现。 软件质量代表了满足用户所规定需求的能力。
缺陷与软件质量
本章教学要点
教学目标
理解测试、缺陷与质量三者之间的关系,能形成对质量保证体系的 完整视图。
教学重点与难点
缺陷、软件质量的相关概念
对软件质量属性的各类缺陷的判别、敏感性 软年质量保证体系的构建
目录
1 2
缺陷相关概念
软件质量相关概念 软件质量保证体系
3
BUG的来历
目录
1 2
缺陷相关概念
软件质量相关概念 软件质量保证体系
3
测试/缺陷/质量的关系
需求规格 测试 发现 缺陷 保证 质量 满足 用户满意度
用户
满足用户需求
是不是缺陷只能通过测试发现? 是不是软件质量保证只能通过测试达成?
软件质量如何保证?
产品质量:工作成果产生时(马上)进行质量检查,及时找出
并消除工作成果中的缺陷
故障 失效
(XX)实体-(XX)状态 (XX)业务-(XX)状态
缺陷屏蔽的概念
缺陷屏蔽Defect masking: 一个缺陷阻碍另一个缺陷 的发现。 [IEEE 610]
由于二个或多个缺陷(软件的内部错误)的组合或同时作用后 使得这些内部错误无法反应出来,但一旦更正了一个屏蔽的错 误后可能就会出现。
软件系统的需求、文档、程序、数据的都可能存在bug
目录
1 2
缺陷相关概念
软件质量相关概念 软件质量保证体系
3
什么是质量?
wiki百科:质量=品质,指物品的特征、品性、本质,也可指 商品或服务的水准、质量。
审美:用来判断艺术类作品是否有其内在优点、价值或其他卓越性 罗伯特·梅纳德·波西格:质量是“用心的结果”(The result of care) 菲利浦·克劳士比:质量就是“符合需求” 。 约瑟夫·朱兰:质量就是“适合使用”(Fitness for use)。是否适合 由客户来定义。
可维护性 效率
可用性
完整的质量模型区分:内部质量、外部质量、使用质量
(书上P17页图2-3的三层模型)
软件质量模型ISO25010-2011
来源:《ISO/IEC 25010质量模型标准现状》孙洋、袁玉宇
练习:以下属于哪一类软件质量属性问题
需要重复点击3次下载操作后才可以下载文件 飞毛腿导弹防御系统在运行14个小时后出现异常 汶川地震发生后通信系统瘫痪 空调故障后12306订票系统无法使用 迪斯尼游戏光盘只能在少数PC机上运行 中国工商银行DB2升级后CPU占用过高,导致业务中断 CSDN的上百万用户数据被窃取。 加拿大治疗仪由于放射量过量导致人员死亡 系统支撑1000万同时在线用户数
wk.baidu.com
名词术语
它使软件开发过程对于管理人员来说是可见的。 它通过对软件产品和活动进行评审来验证软件是合乎标准的。
目标 1: 软件质量保证工作是有计划进行的。 目标 2: 客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。 目标 3: 将软件质量保证工作及结果通知给相关组别和个人。 目标 4: 高级管理层接触到在项目内部不能解决的不符合类问题。 目标 5: 软件质量需要全面的测试工作来保证。
环境问题
管理问题
人的问题:
软件正确的相对性
来源 《西乔漫画》
软件缺陷的分布
其他, 6% 代码, 15%
规格说明 书, 54% 设计, 25%
50%缺陷来源于需求
70%缺陷可以在早期发现
缺陷成本
发现缺陷 定位缺陷 修正缺陷 重新部署
为什么缺陷成本愈往后愈高?
练习:下列哪些属于BUG
软件需求规格说明书中表达前后矛盾 设计文档中对于某接口返回值的定义没有明确取值范围。
游戏只能用键盘玩不能用鼠标玩。 规定的功能、特性没有实现或部分实现 数据结果不正确、精度不够。例:商品单价只显示到元。 界面文字显示不对齐 微信中输入生日快乐有时能掉蛋糕图片下来、有时不能。 默认配置错误,导致系统无法运行 操作系统资源不足,程序运行缓慢
定义:软件产品、过程或与质量要求有关的固有属性
名词术语
软件质量是许多质量属性的综合体现,各种质量属性反映 了软件质量的方方面面 质量要求只有转化为有指标的质量特性,质量才可以度量。
通过改善软件的各种质量属性,从而提高软件的整体质量。
软件质量如何度量?
ISO-9126软件质量模型
可移植性
功能 可靠性
质量的定义
ISO 9000 :质量是一组固有特性符合需求的程度。 IEEE的定义:
系统、部件或过程满足明确需求的程度 系统、部件或过程满足客户或用户需要或期望的程度
六标准差(6σ):106次测试中的错误次数。
RUP 的定义:满足或超出认定的一组需求,并使用经过认可的评测
方法和标准来评估,还使用认定的流程来生产
区分:缺陷、故障、失效
缺陷 (人为) 错误
引入 激活
(人为) 错误
引入 缺乏 …… 容错
缺陷
故障
引入
故障
缺乏 容错
失效
(第三方) 故障
是不是缺陷一定会导致业务失效? 是不是业务失效都是由缺陷引起的? 是不是缺陷激活后一定会出现故障?
区分:缺陷、故障、失效
术语 缺陷 特征 (XX)对象-(XX)状态 说明 示例 从特定(程序)对象角度阐述, 体现为静态存在 指针未释放 从系统角度阐述,体现为运行 状态。故障-旦激活后则可以 进程退出、 反复传递 死机 从用户角度阐述,体现为所用 户体验的业务状态 打不通电话
Quality is value to some person.
——Weinberg
软件质量的定义
ISO 14598-1999定义:软件特性的总和,
软件满足规定或潜在用户需求的能力
名词术语
ISO 9126-2001定义:软件满足用户规定或
潜在用户需求的能力,要从软件在内部,外部和 使用过程中的表现来衡量,包含内部质量、外部 质量、和使用质量。
测试验证型 (测试工程师)
配置管理型 (配置管理员)
软件测试 vs. SQA
分类 工作性质 对象 软件测试(产品质量) 技术 产品 SQA(过程质量) 管理 过程
焦点
结果 范围
事后
需求满足度 R&D
预防
过程符合度 跨所有部门
好的过程将产生好的产品,而差的过程将产生差的产品 符合既定规范并不代表着质量OK
技术评审 软件测试
过程质量:开发过程中有效地预防工作成果产生缺陷,将高
质量内建于开发过程。
过程规范建立 过程检查 软件过程改进
(郎中看病的故事)
软件质量保证模型
来源:林锐《全面软件质量管理》
软件质量保证SQA 的定义
建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、 步骤、实践和方法能够正确地被所有项目所采用(IEEE)