第一章 软件测试概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的意义 软件测试的必要性:软件缺陷难以避免! 2 1999年美国航天局火星登陆事故(Mars Polar Lander)
系统测试 衔接问题
Nancy G. Leveson, The Role of Software in Spacecraft Accidents
编码阶段 正确编码 需求缺陷 设计缺陷 编码缺陷
测试阶段 已发现缺陷 需求缺陷 设计缺陷 编码缺陷 未发现缺陷
缺陷如何是软件开发成本增加
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件危机
危机解决:软件工程(1968年) 软件工程(IEEE定义): 将系统化的、严格约束的、可量化的方法应用于软件的开发、 运行和维护,即将工程化应用于软件.
软件测试背景
软件测试的意义 软件缺陷难以避免! 4 爱国者导弹防御系统 炸死自家人
系统时钟误差积累
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的意义 软件缺陷难以避免! 5 Intel奔腾处理芯片缺陷(Pentium FDIV bug)
以破坏性为为导向,测试是为了找到软件中的错误(逆 向思维)
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
Myers的三个重要观点: 1. 测试是为了证明程序有错,而不是证 明程序无错误; 2.一个好的测试用例是在于它能发现至今 未发现的错误; 3.一个成功的测试是发现了至今未发现的 错误的测试; 《The Art of Software Testing》
Turing Award Citation: For landmark contributions to computer architecture, operating systems, and software engineering.
IBM System/360贡献:
阿波罗11号登月,跨行交易系统,最大的航空票务系统、......
软件工程各阶段工作量 阶段 工作量 需求分析
(Requirement Analysis)
设计
(Design)
编码
(Coding)
测试
(Testing)
运行和维护
(Run and Maintenance)
20%
15%
20%
45%
2013年7月10日
南京师范大学 计算机学院
软件测试
Software Testing
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
早期:
测试等同于“调试”;由开发人员完成;投入少, 介入晚……
1950S:
测试被视为一种发现软件缺陷的活动; 开始与调试区别开;测试始终后于开发; 缺乏有效的测试方法
IBM360机操作系统 1963-1966,Brooks,《人月神话》 南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件危机
危机原因:缺乏规范化工程约束缺陷的不断积累与放大效应
需求阶段 正确需求 需求缺陷 设计阶段 正确设计 需求缺陷 设计缺陷
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的意义 软件缺陷难以避免! 6
北京奥运订票网站瘫痪
事故过程:订票系统半小时即瘫痪
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的意义 软件测试的必要性:软件缺陷难以避免! 1 迪斯尼并不总是带来笑声
1994年圣诞节前夕,迪斯尼公 司发布了第一个面向儿童的多媒 体光盘游戏“狮子王童话” 圣诞节后的第一天,迪斯尼客 户支持部电话开始响个不停,不 断有人咨询、抱怨为什么游戏总 是安装不成功,或没法正常使用 这个游戏软件只能在少数系统 中正常运行
Nanjing Normal University
软件测试背景
软件测试的意义 软件缺陷难以避免!
上述几个实例中的软件问题在软件 工程或软件测试中都被称为软件缺 陷或软件故障。
其他 10%
编写代码 7%
设 计 27%
软件产品说 明书(需求 ) 56%
南京师范大学 计算机学院
2013年7月10日
软件测试
-商业化软件测试工具和开源软件测试工具。
-Web测试,面向对象测试,……
以缺陷预防为导向,测试是为了展示软件符合设计要求,发现缺陷、 预防缺陷。
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的意义 软件缺陷难以避免! 3 千年虫问题(Y2K)
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
危机表现:
项目延期、经费超支、产品无法维护……
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件危机
Frederick Phillips Brooks (April 19, 1931-)
第三十四位图灵奖获得者(1999年)
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的意义
软件测试是保证软件质量的重要手段。软件测 试深入软件开发过程的每个阶段,在有限的开发条 件下,最大程度地保证最终软件产品符合用户需要。
软件测试
Software Testing
Nanjing Normal University
软件测试
Software Testing
第1讲 软件测试概述
南京师范大学 计算机学院
பைடு நூலகம்
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
本讲内容
软件测试背景 软件测试 软件测试 基本概念 基本概念
Grace Murray Hopper(1906-1992) 计算机科学家 美国海军将军 Nanjing Normal University 编译器的发明者 COBOL语言的开发负责人
ACM Grace Murray Hopper Award
First Computer Bug (1947)
南京师范大学 计算机学院
核心思想:测试是试图验证软件是工作的
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
1970S:
Glenford J. Myers: 测试是尽可能多地发现软件错误 Myers的软件测试定义: 测试是为发现错误而执行一个程序或系 统的过程
Thomas Nicely
(4195835/3145727)*3145727-4195835
4195835.0/3145727.0 = 1.333 820 449 136 241 002 (Correct value) 4195835.0/3145727.0 = 1.333 739 068 902 037 589 (Returned by flawed Pentium) 4195835*3145727/3145727 = 4195835 (Correct value) 4195835*3145727/3145727 = 4195579 (The flawed Pentium)
Software Testing
Nanjing Normal University
软件测试背景
软件测试的意义 为什么要进行软件测试:软件缺陷难以避免!
软件总存在缺陷。只有通过测试,才可以发现软件缺陷。 也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系 统中清理出去。 软件中存在的缺陷给我们带来的损失是巨大的,这也说 明了软件测试的必要性和重要性 测试是所有工程学科的基本组成单元,自然也是软件开 发的重要组成部分。 测试人员水平越高,找到软件问题的时间就越早,软件 就越容易更正,产品发布之后越稳定,公司赚的钱也越多。
更好的阶段划分
初级阶段(1957~1971)
测试通常被认为是对产品进行事后检验 ,缺乏 有效的测试方法 发展阶段(1972~1982) 1972年第一次关于软件测试的正式会议,促进 了软件测试的发展
成熟阶段(1983到现在)
国际标准Std 829-1983 ,形成一门独立的学 科和专业,成为软件工程学科中的一个重要组成部分
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
早期:
测试等同于“调试”;由开发人员完成;投入少, 介入晚……
1950S:
测试被视为一种发现软件缺陷的活动; 开始与调试区别开;测试始终后于开发; 缺乏有效的测试方法
Nanjing Normal University
软件测试背景
软件测试的意义 软件缺陷难以避免!
7
Michael Jackson逝世消息
事故过程:百万网友同时在线疯狂 查询修改美国流行天王迈克尔杰克 逊的信息……
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
工程背景 发展历程
定义,目的 原理,类型,测试过程
1
2
现状和趋势
现状,趋势,挑战 测试职业
3
南京师范大学 计算机学院
2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件危机 危机背景:
落后的软件生产方式无法满足日趋复杂大型软件系 统的开发需求(20世纪60年代)
以功能验证为导向,测试是证明软件是正确的(正向思维)
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
1970S:
软件工程思想开始深入人心; -1972,Bill Hetzel组织了第一次软件测试会议 -1973, Bill Hetzel给出软件测试第一个定义: “测试就是建立一种信心,认为程序能够按预期设想运行”
以质量评估为导向,测试是提供产品的评估和质量度量
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
1990S-至今:
-测试理论和技术进一步完善 -测试工具发展迅速,大大提高测试的自动化程度
南京师范大学 计算机学院 2013年7月10日
软件测试
Software Testing
Nanjing Normal University
软件测试背景
软件测试的发展
1980S:
-软件趋向大型化、高复杂化,软件质量越来越重要 -开发从混乱无序过渡到结构化开发
-测试基础理论和实用技术开始形成
-测试被作为软件质量保证的重要手段 -1983年,IEEE给出软件测试的定义