软件测试第一章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.3 软件测试基本概念
• 软件测试的定义
• 软件测试(testing)是一种有计划的和系统性 的必要采取的措施,就是在软件投入运行 前对软件需求分析、设计规格说明和编码 的最终复审理。 • 在此过程中能对该产品是否实现了用户所 期望的要求进行足够了解并建立信任。 • 软件测试是软件质量保证的关键步骤。
功能、 性能、 稳定性、 可用性、 安全性、 安装、 配置、 兼容性、 可维护 性、用 户手册
1.6 软件测试技术
• 静态测试技术
• 特点
• 不必运行程序 • 发挥人的逻辑思维优势 • 无需条件,易展开
• 方法
• 代码审查(与设计的一致性、标准、可读性,表达式逻辑、 结构合理性) • 代码检查(与审查类似,但不如审查检查范围广) • 桌面检查(阅读自己程序,效率低) • 静态分析(借助于测试工具)
• 数据流、控制流、接口分析、表达式分析
1.6 软件测试技术
• 动态测试技术
• 特点
• 要求在代码实现的前提下进行 • 运行被测试的程序 • 要进行测试数据准备
• 方法
• 白盒测试 • 黑盒测试 • 灰盒测试
1.7 软件测试层次
• 单元测试 • 集成测试 • 系统测试
1.8 软件测试准则
• 测试准则
1.5 软件开发与测试的关系
• 如何消除软件缺陷
• 评审、测试 • 美标准局VV&T(Verification Validation & Test)
1.5 软件开发与测试的关系
用户 需求获取
评审
软件产品
需求分析
可交付软件
系统测试
评审
需求定义 需求分析
软件开发与测试V模型
评审
已确认软件 确认测试
评审
• 是否完成用例执行(用例的完整性尤 其重要) • 是否完成设计功能(需求分析、设计 报告) • 是否查出某一具体数目的BUG(统计经 验值)
1.9 软件测试人员应具备的素质
• 技术能力 • 沟通能力 • 怀疑精神 • 自信心 •耐 心 • 较强的分析能力 • 团队精神
详细设计 设计走查 需求评审 需求分析 概要设计 „ „ „ 各子模块 概要设计评审 确认测试 编码 单元测试
软件开发与测试并行性
系统测试 集成测试
测试计划
测试过程
测试评审
项目阶段任务的里程碑
1.5 软件开发与测试的关系
• 开发各阶段测试工作
阶段
测试
需求 分析
概要 设计
详细 设计
实现/ 单元 测试
课程性质
• 专业课 • 必修课
成绩考核
• 平时 10% • 实验 10% • 期末考试 80%
第一章 软件测试概述
• 主要内容
• • • • • • • • • 1.1 引言 1.2 软件测试发展历程 1.3 测试相关基本概念 1.4 软件缺陷产生的原因 1.5 软件测试与开发的关系 1.6 软件测试基本技术 1.7 软件测试的层次 1.8 软件测试通过准则 1.9 软件测试人员应具备的素质
1.3 软件测试基本概念
• 缺陷举例:
• • • • • • • • 缺点:运行速度慢。 毛病:意外退出。 故障:将中文显示成方块。 误差或错误:返回意外的编译错误。 功能失效:复制图形失败。 程序崩溃或挂起:死机。 不一致性:Ctrl+S不能保存所有程序。 用户界面设计的缺陷:按钮上应5个字,却只显示3个字, 排列不整齐。
• 软件错误案例三
• 在美国的一次飞往火星的火箭发射中,因控制程序中的一个 循环语句“DO5I=1,3”被误认为是赋值语句“DO5I=1.3”, 一点之差,使火箭发生爆炸,损失一千万美元
1.1 引言:为什么要测试
• 各种产品合格率
• 飞机制造业合格率
• 世界著名的宇航工业公司生产的“飞吧747-400” 大型宽体客机由100万个零部件组装而成,其中 每个零部件的合格率都能达到99.9999%,请问 这种客机的合格率是多少?
1.3 软件测试基本概念
• 软件缺陷的定义
• • • • • 很广的概念,不符合用户期望值或期望行为的表现。 在软件中存在,影响软件功能正确实现的问题。 Defact of Software=Bug。 指软件中各种问题的总称。 缺点、毛病、故障、误差或错误、功能失效 程序崩溃或挂起、不一致性、界面设计缺陷等。
1.1 引言:为什么要测试
1.1 引言:为什么要测试
1.1 引言:为什么要测试
• 软件测试的背景
• 软件错误案例一
• 1994年迪斯尼公司发布的第一个面向儿童的多媒体光盘游戏, 未测试,只在开发环境可以正常运行
• 软件错误案例二
• 爱国者导弹防御系统,存在软件缺陷,时钟错误积累起来拖 延100多个小时,导致一枚导弹在多哈击毙28名美国士兵
需求分析书
概要设计
评审 评审
概要设计书 详细设计
评审
已集成软件
集成测试 已测试模块 单元测试 程序
评审
详细设计书
编码
1.5 软件开发与测试的关系
需求分析 需求测试
交付 系统测试
概要设计
功能测试
确认
确认测试
软件开发与测试W模型
详细设计 设计测试
集成 集成测试
编码
单元测试
1.5 软件开发与测试的关系
软件测试技术
东北大学软件学院 吴辰铌
课程内容介绍
• • • • • • • • • 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 软件测试概述 黑盒测试 白盒测试 单元测试 集成测试 系统测试 软件自动化测试 特定环境及应用测试 软件测试管理
教
材
• 《软件测试(原书第2版) Software Testing A Crafts man‘s Approach(Second E dition)》
1.3 软件测试基本概念
• 软件测试的目的
• 软件测试的目的是发现软件存在的错误、 减小软件不工作的风险。
1.4 软件缺陷产生的原因
1.4 软件缺陷产生的原因
• 缺陷产生原因总结如下:
• 偏离用户的需求 • 需求报告多变 • 功能额外实现 • 功能遗漏
1.5 软件开发与测试的关系
用户要求 用户:我要什么 相符吗? 5 运行结果 计算机:程序运行 得到的结果 运行正确性 输入正确性 4 源程序 程序员:我要让 计算机怎么做
• 不可能无限期测试
1.8 软件测试准则
•测试准则
•Good-enough •80-20法则
1.8 软件测试准则
• 测试原则
• 用例全面(有效数据、无效数据) • 用例有预期结果 • 测试工作独立 • 超出规格说明书的问题不容忽视 • 回归测试 • 避免即性测试
1.8 软件测试准则
• 测试通过准则
集成 测试
确认 测试
系统 测试
系统 测试
确认 测试
计划
计划 计划
设计 设计 设计
计划/设计
执行 执行 执行
集成 测试
单元 测试
执行
1.6 软件测试技术
单元、 集成、 系统、 验收
软件测试分类 动态、 软件单元、部 件、配置项 静态
按 实 施 步 骤 按 测 试 对 象 按 测 试 技 术 按 测 试 内 容
1.3 软件测试基本概念
• 与测试相关的几个概念
• 程序正确
• 无语法错误 • 运行过程中未发现明显错误 • 程序中无不适当语句 • 有效输入-正确输出 • 无效输入-正确处理 • 任何可能输入-正确输出
1.3 软件测试基本概念
• 与测试相关的几个概念
• 测试与调试
• 测试条件已知,规程可定义,结果可预知 • 测试可以计划,过程可控;调试不可控 • 测试是检验,调试是推理过程 • 测试除了表明程序正确还要验证程序如何处理失 败,调试表明正确 • 测试可不了解设计细节,调试必须了解设计细节 • 测试可自动化,调试无法自动化
• 测试市场方兴未艾
500 450 400 350 300 250 200 150 100 50 0 479.1 399.58
软件额(亿) 测试额(亿)
45.18 2003年
50.3 2004年 19.90%43% 同比增长率
1.2 软件测试发展历程
• 60年代(软件工程建立前),为了表明程序正确而进行 测试。
1.3 软件测试基本概念
• 与测试相关的几个概念
• 错误(error)-- 同义词是过错(mistake),人们 在编写代码时会出现过错,这种过错叫做bug。 • 缺陷(fault)-- 缺陷是错误的结果。分为过错缺 陷和遗漏缺陷。 • 失效(failure)-- 当缺陷执行时会发生失效。 • 事故(incident)-- 当出现失效时,可能会也可能 不会呈现给用户(或客户或测试人员)。
1.2 软件测试发展历程
• 1979年,Glenford Myers《The Art of Software Testing》是软 件测试方面的圣经。Myers定义及诠释的测试方法论已成为软 件测试的基本模块。提出测试的目的是证伪。 • 70年代后期至80年代中期QA部门。 • 1996年提出的测试能力成熟度TCMM(Testing Capability Mat urity Model将测试分为五级:初始级、阶段定义级、集成级、 管理和度量级、优化级)。
(99.9999%)1000000 = 36.79%
1.1 引言:为什么要测试
• 各种产品合格率
• 软件合格率
• 假设一个优秀的程序员写出的“代码行”合格率 可以达到99%,如果这个程序员开发的软件有1 万行代码,那此软件的合格率是多少?
(99%)
10000
= 2.25 × 10
-44
1.1 引言:为什么要测试
• • • • [美]Paul C· Jorgensen著 韩柯等译 机械工业出版社 2003-7
参考书
• 1.贺平著,《软件测试教程》,电子工业出版社,2005-6。 • 2.张克东 庄燕滨编著,《软件工程与软件测试自动化教 程》,电子工业出版社,2002-2。 • 3.[美]Elfriede Dustin Jeff Rashka John Paul著,于秀山、胡 兢玉等译,《软件自动化测试:引入、管理与实施》,电 子工业出版社,2003-7。 • 4.(美)Ron Patton ,《Software Testing》,机械工业出 版社,2002-3 • 5.John D.McGregor David A.Syles著,杨文宏 李新辉 杨洁 等译,《面向对象的软件测试 A Practical Guide to Testing Object-Oriented Software》,机械工业出版社,2002-8。
• 1972年6月,Bill Hetzel(代表论著《The Complete Guide to Software Testing》)在美国的北卡罗来纳(North Carolina) 大学组织了首次以软件测试为主题的会议。 • 1973年,Bill Hetzel给软件测试一个这样的定义:“就是建 立一种信心,认为程序能够按预期的设想运行(Establish c onfidence that a program does what it is supposed to do)”。
理解正确性 表达正确性
需求说明书
1
分析员:我可 以提供什么
理解正确性 设计正确性 表达正确性
2
设计说明书
3
பைடு நூலகம்
设计员:我要 让软件怎么做
理解正确性 编码正确性
1.5 软件开发与测试的关系
• 缺陷在软件开发周期中的任何一个环节都可能 被引入,而且存在放大趋势:
1.5 软件开发与测试的关系
• 缺陷发现不同时期的成本