软件概述(ppt)

上传人:子 文档编号:53712829 上传时间:2018-09-04 格式:PPT 页数:32 大小:120.50KB
返回 下载 相关 举报
软件概述(ppt)_第1页
第1页 / 共32页
软件概述(ppt)_第2页
第2页 / 共32页
软件概述(ppt)_第3页
第3页 / 共32页
软件概述(ppt)_第4页
第4页 / 共32页
软件概述(ppt)_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《软件概述(ppt)》由会员分享,可在线阅读,更多相关《软件概述(ppt)(32页珍藏版)》请在金锄头文库上搜索。

1、软件测试概述,由安博测试空间技术中心http:/ 计算机硬件发展迅速,功能和质量提高,价格降低 软件开发速度慢、质量差、维护难 软件工程 用工程化的原则和方法组织软件开发,即用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法 目标:解决软件危机,开发高质量的软件(测试要与该目标一致),软件的生命期,导致错误的根源,缺乏有效的沟通 软件复杂度 编程错误 不断变更的需求 时间的压力 人员的自大 软件开发工具 缺乏文档的代码,软件项目成员,项目经理 需求人员 体系架构师/系统工程师 程序员、开发人员 测试员或质量保证员(QA) 手册编写者 配置管理员,软件产品的构成,帮助文档 用

2、户手册 样品和示例 标签和不干胶 产品支持信息 图标和标志 错误信息 广告和宣传材料 安装 说明文件,软件测试的重要性,软件测试在软件生存期非常重要,工作量和开销要占将近一半,是保证软件质量的主要手段,对于查找软件缺陷、保证产品质量,提高企业效益具有不可替代的作用。下面我们以具体的案例来说明。,著名的软件错误案例(1),迪斯尼的狮子王:19941995 94年秋,迪斯尼公司发布了面向儿童的游戏“Lion King Animated Storybook”,进行了大量的宣传和促销,销售额可观。12月26日,开始收到大量投诉:游戏无法正常运行,舆论哗然。 原因:没有对市场上的各种PC机型进行测试,该

3、软件只能在少数系统中正常工作,但在大众常用的系统中不行。,著名的软件错误案例(2),Intel奔腾浮点除法:1994 (4195835/3145727)*3145727-4195835算式的结果如果为0,则计算机没有问题;如果结果不为0,则使用的是带有浮点除法软件缺陷的老式Intel奔腾CPU,该软件缺陷被刻录在一个芯片中,并反复生产制造。 在发布芯片之前的内部测试已经发现了这个问题,不过因为只有在精度要求很高的计算中才导致错误,Intel管理层认为不严重,未修正 更换芯片的费用:4亿美元,著名的软件错误案例(3),千年虫:约1974 当时计算机存储的空间小,为节省字节,将四位的年份用两位表示

4、 只有到数十年后的2000年1月1日才会出现问题,这期间肯定会升级或更改系统。但是,这也许被忘记了。 各种系统中这类问题的解决费用估计超过数亿美元,著名的软件错误案例(4),美国爱国者导弹防御系统:1991 该系统应用于海湾战争中对抗伊拉克飞毛腿导弹的防御战,有几次在对抗导弹战役中失利,其中一枚在沙特阿拉伯的多哈击毙了28名美军士兵。 原因:软件缺陷。一个很小的系统时钟错误累积起来就可能延迟14小时,造成跟踪系统失去准确度。在多哈袭击战中,系统被延迟100多个小时。,著名的软件错误案例(5),美国航天局火星基地登陆:1999 1999年12月3日,美国航天局的火星基地登陆飞船在试图登陆火星表面

5、时失踪。 原因:控制登陆推进器的某个数据位在未着地时就意外更改,导致推进器在未着陆时就被关闭,飞船坠毁。,软件失败,描述软件问题的术语: 错误(error, mistake, bug ) 缺陷(fault, defect) 过错缺陷和遗漏缺陷 失效(failure) 事故(incident),软件缺陷的定义,产品说明书:是软件开发小组的一个协定。它对开发的产品进行定义,给出产品的细节、如何做、做什么、不能做什么。 至少满足以下5个规则之一才称为软件缺陷: 软件未实现产品说明书要求的功能。 软件出现了产品说明书指明不应出现的错误。 软件实现了产品说明书未提到的功能。 软件未实现产品说明书虽未明确

6、提及但应该实现的目标。 软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好。,软件错误的分类,软件需求错误(需求不正确,不完全,文档有误等) 功能和性能错误(遗漏功能、规定了一些冗余的功能、异常处理有误等) 软件系统结构错误(系统整体构架有误) 软件结构错误(程序控制顺序有误,处理过程有误) 数据错误(数据定义或者数据结构有错,数据存取或者操作有误,例如:动态数据和静态数据混淆) 软件实现和编码错误(违背编码标准,例如:局部变量和全局变量混淆) 软件集成错误(接口有误) 测试定义与测试执行错误(例如:测试计划不完整,测试用例不充分),以上案例都说明了软件测试在软件整个生命周

7、期中起着至关重要的作用,那么什么是软件测试,我们如何定位软件测试呢?,问题:,IEEE的定义(1983) 使用人工或者自动手段来运行或测定整个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。 测试(test) 软件测试就是一个过程或一系列过程 ,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。 测试的目标是:发现错误,软件测试的定义与定位,把软件测试(包括其它任何测试)定位在证明软件的正确性上是不对的,软件测试的目标是:查找软件的错误.原因 : 证明软件正确性的目标不可达:测试是无法证明软件的正确性的,原因是我们无法对软件进行理想测试(在理想

8、情况下:对程序的所有可能执行情况进行测试),如完全的白盒测试(设计若干测试用例,使得软件中所有的执行路径都被执行到,见图1)或黑盒测试(设计若干测试用例,穷举所有软件可能的输入,见图2),这都要花费我们不能承受的成本(时间,人力),退一步讲,就算我们能对软件实施完全的白盒测试与黑盒测试,我们也无法保证软件在需求获取或是设计上没有失误,更何况我们还要考虑到非法和无效输入的问题。,软件测试的定义与定位(分析),软件测试的定义与定位(分析-CONT),如左边图示,是一个不超过100行的程序结构图,它有大概100,000,000,000,000 条可能的执行路径。以每秒执行1000个测试用例的速度计算

9、,完成所有可能路径的测试大概需要3170 年。,图1(白盒测试),软件测试的定义与定位(分析-CONT),x,y,z,在32位的计算机上运行,只考虑x,y是整数,不同的测试数据组合最大可能数目为:2的64方,以每秒执行1000个测试用例的速度计算,完成测试大概需要工作5亿年。,图2(黑盒测试),从心理学角度讲,与软件测试的最终目标不一致。我们进行软件测试的最终目标是想为软件增加一些价值,既提高了软件的可靠性和质量(与软件工程的目标一致),换句话说也就是找到了软件的错误并最终修复了它。从心理学的角度讲,测试人员将目标确立为证明程序中存在错误(而不是证明软件中不存在错误), 将更利于为软件增加更多

10、的价值。,软件测试的定义与定位(分析-CONT),软件测试的特点,完全测试程序是不可能的 软件测试是有风险的行为 测试很难显示潜伏的软件缺陷 找到的软件缺陷越多,就说明软件缺陷越多 杀虫剂现象:软件测试越多,免疫力越强 并非所有软件缺陷都能修复 没有足够的时间、修复的风险、不值得修复 难以说清的软件缺陷 产品说明书不断变化,没有最终版本 软件测试员在产品小组中不受欢迎 早点找出缺陷、控制情绪、不要总是报告坏消息 软件测试是一项讲究条理的技术工作,软件测试员的目标,软件测试员的目标是发现软件缺陷。 软件测试员的目标是尽可能早地找出软件缺陷。 随着时间的推移,修复软件缺陷的费用将迅速增长 软件测试

11、员的目标是尽可能早地找出软件缺陷,并确保其得以修复。,软件测试员应具备的素质,他们是群探索者 他们是故障排除员 他们不放过任何蛛丝马迹 他们具有创造性 他们是群追求完美者 他们判断准确 他们注重策略和外交 他们善于说服 在软件编程方面受过教育,测试工具和测试自动化,使用工具可以使测试工作更高效和轻松 速度和效率:自动化工具可以减少执行用例的时间,以考虑新的测试用例 准确度和精确度 坚持不懈,不会半途而废 软件测试工具不能代替软件测试员,它们只能帮助测试员更好地工作,测试工具,静态分析器:静态扫描代码,指出可能的错误 代码审查器:检查源代码是否满足基本代码标准 断言处理器:断言在执行中是否成立

12、数据流分析器 测试文件生成器:产生包含预定输入数据的文件 测试数据生成器:辅助生成特殊的测试用例 测试验证器:度量测试的可信度 输出比较器,流行的测试工具,MI(Mercury Interactive) 公司的系列软件 LoadRunner WinRunner TestDirector Rational Suite Enterprise 2002 Rational Robot Rational Administrator Rational ClearQuest Compuware公司的系列产品 Qload Qrun QDirector,软件测试,软件测试的四个步骤 单元测试:测试每个模块能否单

13、独工作,是否有编码问题和算法问题(主要依据:源代码与详细设计) 集成测试:进行多模块之间的接口测试(主要依据:概要设计) 确认测试:确认软件是否符合需求说明(主要依据:需求规格说明书) 系统测试:测试与支持系统的配合情况(主要依据:系统目标),测试生命周期,找出程序错误,软件测试的误区,调试和测试是一样的 测试组应当为保证质量负责 把测试作为新员工的一个过渡工作 把不合格的开发人员安排做测试 关注测试的执行而忽略测试的设计 测试自动化是万能的 测试是可以穷尽的 软件测试是证明软件不存在错误,能正确完成其预定功能的过程;没有发现错误的测试是成功的测试,发现了新错误的测试是不成功的测试 测试是枯燥乏味,缺乏创造力的工作,软件测试的术语和定义,精确(precision)和准确(accuracy) 确认(产品说明书)和验证(用户要求) 质量和可靠性 测试和质量保证(QA) 软件测试员的目标是尽可能早的找到软件缺陷,并确保缺陷得以修复 软件质量保证人员的主要职责是创建和执行改进软件开发过程并防止软件缺陷发生的标准和方法(要求有较高的总结、沟通与推广能力),小结,缺陷是什么 测试是什么 测试的目标是什么 测试在软件生命期中的地位 测试的特点 测试人员的目标和应具备的素质 测试工具的作用 测试的步骤,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号