2 软件测试:缺陷与软件质量

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)
相关文档
最新文档