软件测试背景
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件缺陷产生的原因
2.团队工作 1)系统需求分析时对客户的需求理解不清楚,或者和用户的沟通存 在一些困难。 2)不同阶段的开发人员相互理解不一致。例如,软件设计人员对需 求分析的理解有偏差,编程人员对系统设计规格说明书某些内容重 视不够,或存在误解。 3)对于设计或编程上的一些假定或依赖性,相关人员没有充分沟通。
(6)控制与顺序错误:这类错误包括:忽视了时间因素而破坏了 事件的顺序;猜测事件出现在指定的序列中;等待一个不可能发 生的条件;漏掉先决条件;规定错误的优先级或程序状态;漏掉 处理步骤;存在不正确的处理步骤或多余的处理步骤等。
但结果却出人意料,12月 26日,圣诞节后的第一天,迪斯 尼公司的客户支持部电话开始响个不停,不断有人咨询、 抱怨为什么游戏总是安装不成功,或没法正常使用。很 快,电话支持部门就淹没在愤怒家长的责问声和玩不成 游戏孩子们的哭诉之中,报纸和电视开始不断报道此事
软件错误和软件失效的案例
后来证实,迪斯尼公司没有对当时市场上的各种PC机 型进行完整的系统兼容性测试,只是在几种PC机型上 进行了相关测试。所以,这个游戏软件只能在少数系 统中正常运行,但在大众使用的其他常见系统中却不 能正常安装和运行。
本地化人员 源自文库10
培训人员 115
文档人员 100
市场人员 100
内部IT
50
合计
5345
Web Matrix Team
程序经理
2
开发组长/架构师: 1
开发人员:
7
测试组长
1
测试人员
13
合计
24
软件错误和软件失效的案例
文本文件保存错误: 在WindowsXP桌面上 新建一个文本文档,输 入“联通”两个字,并 保存退出。 退出后再次打开这个文 本文件时,刚才输入的
软件错误和软件失效的案例
在 80 年代初期,Microsoft 公司的许多软件产品出现 了“Bug”。
Microsoft 公司的经理们发觉很有必要引进更好的内部 测试与质量控制方法。但是遭到很多程序设计师甚至 一些高级经理的坚决反对。
1986 年7月发行的 Mac 机的 Word 3.0,千呼万唤方 于 1987 年 2月问世。这套软件竟然有 700 多处错误, 有的错误可以破坏数据甚至摧毁程序。一下子就使 Microsoft 名声扫地。公司不得不为用户免费提供升级 版本,费用超过了 100 万美元。
1 软件测试背景
软件测试职业发展前景 软件错误和软件失效的案例 软件可靠性问题 软件缺陷是什么 软件缺陷的产生的原因 软件缺陷分类 软件缺陷修复的代价
软件测试职业发展前景
1580 Positions are waiting for …
Only in one web site - 51job.cob
课程目的
了解软件测试基本过程 了解软件测试的管理方法 掌握软件测试用例设计方法 掌握junit、selenium等测试工具的使用 掌握bugfree测试管理工具的使用
推荐书目
软件测试,paul C.Jorgensen机械工业出版社 (2003-07) 软件测试的艺术,梅尔斯,机械工业出版社 (2006-01) 软件测试基础,(美)paul ammann,郁莲 译,机械工业出版社 (2010-10出版) 软件测试案例与实践教程 古乐,史九林等清华大学出版社 (2007-02出版) 软件测试技术大全,陈能技,人民邮电出版社 (2008-06出版) 软件性能测试与LoadRunner实战,于涌,人民邮电出版社 (2008-06出版)
软件可靠性问题
因软件设计故障与因计算机硬件设计故障而引发的系统 失效的比例大约是:10:1
运行软件的驻留故障密度(每千行代码的故障数目): ——要求很高的关键财务或财产软件为:每千行代码 1~10个故障 ——关键的生命软件为:每千行代码0.01~1个故障
IEEE将软件可靠性定义为:系统在特定环境下,在给定 的时间内无故障运行的概率。
(2)内部接口错误:内部接口指程序之间的联系。它所发生的错 误与程序内实现的细节有关。例如,设计协议错、输入/输出格 式错、数据保护不可靠、子程序访问错等。
(3)硬件结构错误 :这类错误在于不能正确地理解硬件如何工作 。 例如,忽视或错误地理解分页机构、地址生成、通道容量、I/O 指令、中断处理、设备初始化和启动等而导致的出错。
软件可靠性是对软件在设计、开发以及所预定的环境下 具有能力的置信度的一个度量,是衡量软件质量的主要 参数之一。而软件测试则是保证软件质量、提高软件可 靠性的最重要手段。
软件缺陷定义(Defect)
IEEE729-1983对缺陷有一个标准的定义: 从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛
(3) 模块接口错误 :模块结构不合理 ;模块与外部数据 库的界面不一致,模块之间的界面不一致。
(4) 控制逻辑错误 :控制流程与规格说明不一致 ;控制 结构不合理。
(5) 数据结构错误:数据设计不合理;与算法不匹配;数 据结构不满足规格说明要求。
软件缺陷分类-软件开发阶段
3.编码错误
编码过程中的错误是多种多样的 ,大体可归 为以下几种 :数据说明错、数据使用错、计算错、 比较错、控制流错、界面错、输入/输出错,及其 它的错误。
(4)操作系统错误:这类错误主要是由于不了解操作系统的工作 机制而导致出错。当然,操作系统本身也有错误,但是一般用户 很难发现这种错误。
软件缺陷分类-按性质和范围分类
(5)软件结构错误:由于软件结构不合理或不清晰而引起的错误。 这种错误通常与系统的负载有关,而且往往在系统满载时才出现。 这是最难发现的一类错误。例如,错误地设置局部参数或全局参 数;错误地假定寄存器与存储器单元初始化了;错误地假定不会 发生中断而导致不能封锁或开中断;错误地假定程序可以绕过数 据的内部锁而导致不能关闭或打开内部锁;错误地假定被调用子 程序常驻内存或非常驻内存等等,都将导致软件出错。
(4)不可行错误:规格说明中有些功能要求是不可行的。 (5)不可测试错误:有些功能的测试要求是不现实的。
软件缺陷分类-软件开发阶段
2.设计错误
这是在设计阶段产生的错误,它使系统的设计与需求规格说 明中的功能说明不相符。它们又可以细分为:
(1)设计不完全错误:某些功能没有被设计,或设计得不 完全。
(2) 算法错误:算法选择不合适。主要表现为算法的基本 功能不满足功能要求、算法不可行或者算法的效率不符合 要求。
软件缺陷构成
其他 10% 编写代码 7%
设计 27%
软件产品说明 书(需求)
56%
软件缺陷产生的原因分布
软件缺陷产生的原因
1、用户需求和说明书没有被很好的理解
分析人员不能100%理解用户需求,写作水平不高
2、软件设计的不合理
设计人员不能100%理解需求文档,设计水平不高
3、代码(算法,流程) 存在错误
(3)测试错误:软件测试的设计与实施发生错误。软 件测试自身也可能发生错误。
(4)测试标准引起的错误:对软件测试的标准要选择 适当,若测试标准太复杂,则导致测试过程出错的可 能就大。
软件缺陷分类-按性质和范围分类
2.系统错误
(1)外部接口错误:外部接口指如终端、打印机、通信线路等系 统与外部环境通信的手段。所有外部接口之间,人与机器之间的 通信都使用形式的或非形式的专门协议。如果协议有错,或太复 杂,难以理解,致使在使用中出错。此外还包括对输入/输出格 式错误理解,对输入数据不合理的容错等等。
软件缺陷分类-软件开发阶段
按开发阶段不同阶段分为3类。
1.规格说明错误
这类错误是指规格说明与问题定义不一致所产生的错误。 它们又可以细分成:
(1)不一致性错误:规格说明中功能说明与问题定义发 生矛盾。
(2)冗余性错误:规格说明中某些功能说明与问题定义 相比是多余的。
(3)不完整性错误:规格说明中缺少某些必要的功能说 明。
2007年中国软件企业对软件测试的投入
1%以下:24% 1%-5%:34% 5%-10%:22% 10%-30%:16% 30%以上:4%
微软的项目人员比例
Windows2000 Team
程序经理 450
开发人员 900
测试人员 1800
技术支持人员 600
技术传播人员 1120
软件错误和软件失效的案例
美迪斯尼公司的狮子王游戏软件bug
1994年圣诞节前夕,迪斯尼公司发布了第一个面向儿童的 多媒体光盘游戏“狮子王童话”。尽管在此之前,已经 有不少公司在儿童计算机游戏市场上运作多年,但对迪 斯尼公司而言,还是第一次进军这个市场。由于迪斯尼 公司的著名品牌和事先的大力宣传及良好的促销活动, 结果,市场销售情况非常不错,该游戏成为父母为自己 孩子过圣诞节的必买礼物。
病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能 的失效或违背。
软件缺陷是什么
软件出错机理可描述为:软件错误,软件缺陷,软件故 障,软件失效。
软件错误:是指在软件生存期内的不希望或不可接受的 人为错误,其结果是导致软件缺陷的产生。
软件缺陷:是存在于软件(文档、数据、程序)之中的 那些不希望或不可接受的偏差。其结果是软件运行于某 一特定条件时出现软件故障,这时称软件缺陷被激活。
软件故障:是指软件运行过程中出现的一种不希望或不 可接受的内部状态。此时若无适当措施(容错)加以及 时处理,便产生软件失效。
软件失效:是指软件运行时产生的一种不希望或不可接 受的外部行为结果。
软件缺陷激活条件
符合下列五种情况之一的就可以认为是软件缺陷: (1)软件未达到软件产品需求说明书指明的要求。 (2)软件出现了软件产品需求说明书指明不会出现的错误。 (3)软件功能超出软件产品需求说明书指明的范围。 (4)软件未达到软件产品需求说明书虽未指明但应达到的 要求。 (5)软件测试人员认为难以理解、不易使用、运行速度缓 慢、或者最终用户认为不好的问题。
在不同的开发阶段,错误的类型和表现形式 是不同的,故应当采用不同的方法和策略来进行检 测。
软件缺陷分类-按性质和范围分类
B.Beizer从软件测试观点出发,把软件错误分为5类。
1.功能错误
(1)规格说明错误:规格说明可能不完全,有二义性 或自身矛盾。
(2)功能错误:程序实现的功能与用户要求的不一致。 这常常是由于规格说明中包含错误的功能、多余的功 能或遗漏的功能所致。
3.技术问题 1)算法错误:在给定条件下没能给出正确或准确的结果。 2)语法错误:对于编译性语言程序,编译器可以发现这类问题;但 对于解释性语言程序,只能在测试运行时发现。 3)计算和精度问题:计算的结果没有满足所需要的精度。 4)系统结构不合理、算法选择不科学,造成系统性能低下。 5)接口参数传递不匹配,导致模块集成出现问题。
些边界条件,造成容量或边界错误。 4)对一些实时应用,要进行精心设计和技术处理,保证精确
的时间同步,否则容易引起时间上不协调,不一致性带来的 问题。 5)没有考虑系统崩溃后的自我恢复或数据的异地备份、灾难 性恢复等问题,从而存在系统安全性、可靠性的隐患。 6)硬件或系统软件上存在的错误。 7)软件开发标准或过程上的错误。
编码人员不能100%理解设计文档,编码水平不高
80 64 51.2
假设:用户需求为100,每个阶段只能理解上一 阶段的80%
软件缺陷产生的原因-详细划分
1.软件本身
1)文档错误、内容不正确或拼写错误。 2)没有考虑大量数据使用场合,从而可能会引起强度或负载
问题。 3)对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某
内容变成了乱码。
软件错误和软件失效的案例
替换字符串长度未 作限定: Word2000中, 如果替换字符串长 度过长,则会引起 程序崩溃。
软件错误和软件失效的案例
爱国者导弹防御系统, 1991
美国爱国者导弹防御系统首次被用在第一次海湾战争对抗 伊拉克飞毛腿导弹的防御作战中,总体上看效果不错, 赢得各界的赞誉。但它还是有几次失利,没有成功拦截 伊拉克飞毛腿导弹,其中一枚在沙特阿拉伯的多哈爆炸 的飞毛腿导弹造成28名美国士兵死亡。分析专家发现, 拦截失败的症结在于一个软件缺陷,当爱国者导弹防御 系统的时钟累计运行超过14小时后,系统的跟踪系统就 不准确。在多哈袭击战中,爱国者导弹防御系统运行时 间已经累计超过100多个小时,显然那时系统的跟踪系 统已经很不准确,从而造成这种结果。