- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 软件质量地概念
软件测试与质量保证
本课程为3学分
48课时 32+16
专业课
软件测试概念
基础
应用
技术
测试自动化
介绍
从计算机诞生至今,计算机无疑成为当代发展最为迅猛的科学技术。
计算机已渗透到人们生活的各个方面。
计算机的发展(硬件)
ENIAC 为代表
晶体管数字机1958—1964年
集成电路数字机
大规模集成电路机
计算机的发展(软件)
简单的机器语言开发
汇编语言开发
高级语言
目前发展非常迅速,运用了各种先进的思想。
现状
计算机系统的规模和复杂性急剧增加
其软件开发成本以及由于软件故障而造成的经济损失也正在增加
软件质量问题已成为人们共同关注的焦点。
一些关键应用,如
民航订票系统、
银行结算系统、
证券交易系统、
自动飞行控制软件、
军事防御、
核电站安全控制系统
使用质量欠佳的软件,还可能造成灾难性的后果。
2003年,软件问题造成美国东北部及加拿大停电,导致5000万人受影响,3人丧生,各种损失估计约为60亿美元
2004年,北美银行由于一个新安装的软件的缺陷,使得数以百万计的客户受到影响,该缺陷的修复花费了整整两个星期的时间,造成的损失以亿元计
2000年美国海军飞机坠落,导致4人丧生(控制软件问题)
1997年韩国空难,导致225人丧生(雷达控制软件问题)
2003年4月,美国一个专门为学生提供贷款的公司由于软件出错,错误计算80万宗学生贷款利率,导致了800万美元的利率损失
千年虫问题
Intel芯片浮点除法软件故障等。
因此,许多科学家在展望21世纪计算机科学发展方向和策略时,
把软件质量放在优先于提高软件功能和性能的地位。
软件开发商为了占有市场,
把软件质量作为企业的重要目标之一,
以免在激烈的竞争中被淘汰出局。
用户为了保证自己业务的顺利完成,
当然也希望选用优质的软件。
软件质量是软件测试工作好坏的反映。
广义质量概念:产品(服务)满足明示或暗示需求能力的特征和特性的集合。
质量概念分多个层面
先验证观点:质量是产品的一种可以认识但不可以定义的性质。
用户观点:质量是产品满足使用目的的程度。
制造者观点:质量是产品性能符合规格要求的程度。
产品观点:质量是联结产品固有性质的纽带。
基于价值观点:质量依赖于顾客愿意付给产品报酬的数量。
本书对软件质量的定义是:软件质量是软件产品满足要求使用的程度。
McCall质量模型
分段循环
Boehm质量模型
ISO/IEC9126
BUG
软件缺陷
大家习惯用bug来描述问题,它包含一些误差、谬误、错误。更多地表现在功能上的失败和实际需求的不一致,即矛盾。
对软件缺陷的认识,是测试项目成功的基础。
本书对软件缺陷的定义
软件缺陷是软件在生命周期各个阶段存在的一种不满足给定需求属性的问题。
软件缺陷
功能、属性没有实现或部分实现。
设计不合理,存在潜在缺陷。
实际结果和预期结果不一致。
运行出错,包括运行中断、系统崩溃、界面混乱
用户不能接受的其他问题,包括存取时间过长、界面不美观。
软件缺陷产生原因
软件缺陷是不可避免。
缺陷产生分析
规格说明最高、设计次之。
原因分析
规格说明书是软件缺陷最多的地方。
用户非软件专业人士。
想象和实际的差距。
需求变化的不一致性。
规格说明书普遍不够重视。
注意
概念上需要一点修正!
软件测试并不只是找程序中的错误。
统计数据
Boehm在《Software Engineering Economics》中写道:平均而言,如果在需求阶段修正一个错误的代价是1,那么设计阶段就是它的3~6倍,编码阶段是它的10倍,内部测试阶段是20~40倍,外部测试是30~70倍,产品发布出去以后是40~1000倍。所以,修正缺陷的代价不是随时间线性增长,而是指数倍增长。
缺陷分类
致命的(fatal)
严重的(critical)
一般的(major)
微小的(minor)
按级别分类
输入输出
逻辑
计算
接口
数据
按技术类型分类
小结
软件质量是软件测试存在的需要。
软件质量是使产品更加满足用户的要求。
尽可能的降低软件缺陷。
软件测试是提高软件质量的重要手段。
文档评论(0)