软件测试综述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编写代码 15%
其他 6%
设 计 25%
软件产品说明 书(需求) 54%
图1-1 软件缺陷产生的பைடு நூலகம்因分布
1.1.5为什么要进行软件测试?
软件总存在缺陷。只有通过测试,才可以发现
软件缺陷。也只有发现了缺陷,才可以将软件 缺陷从软件产品或软件系统中清理出去。 软件中存在的缺陷给我们带来的损失是巨大的, 这也说明了软件测试的必要性和重要性 测试是所有工程学科的基本组成单元,自然也 是软件开发的重要组成部分。 测试人员水平越高,找到软件问题的时间就越 早,软件就越容易更正,产品发布之后越稳定, 公司赚的钱也越多,微软就是一个典型的例子
1.1.1 软件可靠性问题
1.1.2软件测试的必要性
• • • • 迪斯尼并不总是带来笑声 一个缺陷造成了数亿美元损失 火星探测飞船坠毁 更多的悲剧
迪斯尼并不总是带来笑声
• 1994年圣诞节前夕,迪斯尼公司发布了第一个面向儿 童的多媒体光盘游戏“狮子王童话” • 圣诞节后的第一天,迪斯尼客户支持部电话开始响个 不停,不断有人咨询、抱怨为什么游戏总是安装不成 功,或没法正常使用 • 这个游戏软件只能在少数系统中正常运行
2、软件缺陷的定义
(1)软件未达到产品说明书中已经标明的功能; (2)软件出现了产品说明书中指明不会出现的错误;
(3)软件未达到产品说明书中虽未指出但应当达到的目标;
(4)软件功能超出了产品说明书中指明的范围; (5)软件测试人员认为软件难以理解、不易使用, 或者最终用户认为该软件使用效果不良。
计算器的例子
• • • • • 按下+号,没有任何反应或出现错误答案 按任何键 都没有反应 多出了求平方根的功能 电池没电导致计算错误 测试人员或最终用户认为不好用
缺陷 – Defect, Bug
缺点(defect) 谬误(fault) 偏差 (variance) 失败 (failure)
问题(problem)
1.2 软件测试基础理论
Return
1.2.1 什么是软件测试?
软件测试的发展
软件调试
独立的软 件测试
首次被定 义
成为专门 学科
与软件开 发融合
几个主要的关键词
• 测试:所谓测试的含义,首先是一项活动,在这项 活动中某个系统或组成的部分将在特定的条件下运 行,结果将被观察和记录,并对系统或组成部分进 行评价。测试活动有两种结果:找出缺陷和故障, 或显示软件执行正确。测试是一个或多个测试用例 的集合。 • 测试用例:所谓测试用例是为特定的目的而设计的 一组测试输入、执行条件和预期的结果;测试用例 是执行测试的最小实体。 • 测试步骤:测试步骤详细规定了如何设置、执行、 评估特定的测试用例。
WORD中的几个小BUG体验
• 1,输入此致,回车看看 • 2,输入=rand(9,200) 看看结果 • 3,“胡”字中有字
12/35
1.1.3 软件缺陷与故障
上述所有实例中的软件问题在软件 工程或软件测试中都被称为软件缺 陷或软件故障。
缺陷是质量的对立面
要了解什么是缺陷(defect),就必须清楚 “质量(Quality)”概念,因为缺陷是相对质 量而存在的,违背了质量、违背了客户的 意愿,不能满足客户的要求,就会引起缺 陷或产生缺陷
一个缺陷造成了数亿美元损失
(4195835/3145727)×31457274195835 = ?
最后 Intel公司付出很大代价,回收CPU,造成4亿美元损失
火星探测飞船坠毁
• 机械震动在大多数情况下也 会触发着地开关,设置错误 的数据位。设想飞船开始着 陆时,计算机极有可能关闭 推进器,而火星登陆飞船下 坠1800米之后没有反推进器 的帮助,冲向地面,必然会 撞成碎片 • 两个小组本身的工作都没什 么问题,就是没有合在一起 测试,其接口没有被测,而 问题就在这里
更多的悲剧
• 放射性治疗仪Therac-25中的软件存在缺陷 ,导致几个癌症病人受到非常严重的过量 放射性治疗,其中4个人因此死亡 • 当爱国者导弹防御系统的时钟累计运行超 过14小时后,系统的跟踪系统就不准确。 从而导致拦截伊拉克飞毛腿导弹的几次失 败,其中一枚在沙特阿拉伯的多哈爆炸的 飞毛腿导弹造成28名美国士兵死亡
错误(error ) 异常(anomy)
矛盾(inconsistency)
毛病 (incident )
3、软件缺陷的特征
• “看不到” ——软件的特殊性决定了缺陷不易看到 • “看到但是抓不到” ——发现了缺陷,但不易找到问题发生的原因 所在
1.1.4 软件缺陷产生的原因
① 技术问题 算法错误,语法错误,计算和精度问题,接口参数传递不 匹配 ② 团队工作 误解、沟通不充分 ③ 软件本身 文档错误、用户使用场合(user scenario), 时间上不协调、或不一致性所带来的问题 系统的自我恢复或数据的异地备份、灾难性恢复等问题
21世纪什么最贵——软件测试工程师
软件测试工程师,目前IT行业极端短缺的金贵人才,未来5年IT行业最炙 手可热的高薪职位。中国软件业每年新增约20万测试岗位就业机会,而 企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与 供给间的差距仍在拉大。
软件测试——产品质量的保证 软件测试——控制成本的关键 软件测试——软件可靠性确认 软件测试——让企业具备国际竞争的实力
软件 测试 技术
Te s t i n g
AND Developing
软件测试技术
广东岭南职业技术学院 软件技术教研室 李文彪
机遇和挑战并存
目前国内软件业的弱点正是发展的前沿
Test Engineer
QA/Supervisor Senior Engineer
Project/Quality Manager
软件测试综述
• 正确理解软件测试的背景、软件缺陷和故障 的概念 • 正确理解软件测试的意义 • 正确理解软件质量的概念及质量保证体系 • 了解软件测试职业与素质的要求
1.1 软件测试背景
• 因软件设计故障与因计算机硬件设计故障而引发的系统 失效的比例大约是:10:1 • 运行软件的驻留故障密度(每千行代码的故障数目): ——要求很高的关键财务或财产软件为:每千行代码 1~10个故障 ——关键的生命软件为:每千行代码0.01~1个故障 • IEEE将软件可靠性定义为:系统在特定环境下,在给定 的时间内无故障运行的概率。 • 软件可靠性是对软件在设计、开发以及所预定的环境下具 有能力的置信度的一个度量,是衡量软件质量的主要参数 之一。而软件测试则是保证软件质量、提高软件可靠性的 最重要手段。