软件测试理论与质量保证

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 为了保证各个环节的正确性,需要对各个开发阶段的产品(里程碑) 进行各种验证和确认工作: • 对阶段1(需求分析)有:系统需求文档=RD1,需求规格说明 =RS1; • 对阶段2(概要设计)有:概要设计需求文档=RD2,概要设计需 求规格说明=RS2; • ……
• 显然,RD1是对整个软件系统的需求,RS1是与该软件系统对应的源程序 及其相关文档,而且对任一i,i=1,…, 都有RDi+1 = RSi,即对本阶段的需 求就是上一阶段的需求规格说明。
• 第四天
• 质量管理 • 同行评审及软件测试工具的介绍
4
软件测试基础
5
软件测试基础
• 软件测试的基本概念
1. 软件测试的定义 2. 软件测试的目标 3. 软件测试的原则 4. 验证、确认和测试
6
软件测试基础
• 软件测试的基本概念
• 软件测试的定义
• 使用手工或自动手段来运行或测试某个系统的过程, 其目的在于检验它是否满足规定的需求 或判定预期结果与实际结果之间的差别(IEEE 1983)
的实时性,能做到吗? 8 你知道的测试工具有哪些类型? 9 测试案例应该在什么时候编写? 10 你如何管理缺陷变更? 11 缺陷的生命周期? 12 请列出5种以上的测试类型?
3
课程计划
• 第一天
• 软件测试理论基础及测试概念
• 第二天
• 软件测试方法论
• 第三天
• 软件测试方法论 • 软件测试管理
19
软件测试基础
• 软件可测性的特征
• 可分解性: “通过控制测试范围,能够更快地分解问题,执行更灵 巧的再测试。”
• 软件系统由独立模块构成。 • 能够独立测试各软件模块。
• 简单性: “需要测试的内容越少,测试的速度越快。” • 功能简单性(例如:特性集是满足需求所需的最小集合)。 • 结构简单性(例如:将体系结构模块化以限制错误的繁殖)。 • 代码简单性(例如:采用代码标准为检查和维护提供方便)。
18
软件测试基础
• 软件可测性的特征
• 可控制性: “对软件的控制越好,测试越能够被自动执 行与优化。”
• 所有可能的输出都产生于某种输入组合。 • 通过某种输入组合,所有的代码都可能被执行。 • 测试工程师可直接控制软件和硬件的状态及变量。 • 输入和输出格式保持一致且有结构。 • 能够便利地对测试进行说明、自动化和再生。
- 市场压力 - 质量目标 - 客户要求 - 费用约束
错误发现率
错误被发现的频率可以显示出系统的测试级别是否接近 完成
12
软件测试基础
• 软件测试的基本概念
• 验证、确认和测试
• 在软件生存期各个阶段,验证是指检测各个阶段结束时的需求规格说明RSi是否满足对该阶 段的需求文档RDi中所提出的各项条款的过程。
需求
设计
来自百度文库编码
测试
13
软件测试基础
• 软件测试的基本概念
• 验证、确认和测试
• 在软件生存周期各个阶段,确认是指检测各个阶段结束时的需求规格说明RSi是否满足在软 件生存周期初期在需求文档RD1中对该软件系统提出的各项条款的过程。
需求
设计
编码
测试
14
软件测试基础
• 软件测试的基本概念
• 验证、确认和测试
QA的必要性)
9
软件测试基础
• 软件测试的基本概念
• 软件测试的原则
4. 在设计测试案例时,测试案例应由输入数据和与之对应的期望输出结果这两部分组 成,在输入数据中,应当包括合理的输入条件和不合理的输入条件
5. 不可能对所有的功能项都执行穷举测试 6. 在文档和代码的修改过程中,防止因为修改而带来新的错误(修改验证与回归测试)
15
软件测试基础
• 软件的可测试性
• 定义
• 软件可测试性就是一个计算机程序能够被测试的容易程度。因为测试是如此的困难,因此, 需要知道做些什么才能理顺测试过程。有时,程序员愿意去做对测试过程有帮助的事,而 一个包括可能的设计点、特性等等的检查表是很有用的。
16
软件测试基础
• 软件可测性的特征
• 可操作性:“运行得越好,被测试的效率越高。” • 系统的错误很少(错误加上测试过程中的分析和报告开销)。 • 没有阻碍测试执行的错误。 • 产品在功能阶段的演化(允许同时的开发和测试)。
• 软件测试是为了发现错误而执行程序的过程(Myers),发现不了错误不能说明错误不存在 • 分别从开发方和用户的角度考虑会得到不同的侧重点
7
软件测试基础
• 软件测试的基本概念
• 软件测试的目标 – 发现尽可能多的错误
• 测试是一个为了寻找错误而运行程序的过程。 • 一个好的测试案例是指很可能找到迄今为止尚未发现的错误的用例。 • 一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
10
软件测试基础
• 软件测试的基本概念
• 软件测试的原则
7. 程序中的大部分错误往往是在一小部分模块中发现的,遵循帕雷托定律(八二原则 或者80/20原则)
8. 对每一个测试结果分析并进行记录,防止以后发生类似的错误
11
软件测试基础
什么时候停止测试
发现所有的漏洞时才停止测试是不可能的,关 键在于是否经济
17
软件测试基础
• 软件可测性的特征
• 可观察性: “你所看见的就是你所测试的。” • 每个输入有唯一的输出。 • 系统状态和变量可见,或在运行中可查询。 • 过去的系统状态和变量可见,或在运行中可查询(例如:事务日
志)。 • 所有影响输出的因素都可见。 • 容易识别错误输出。 • 通过自测机制自动侦测内部错误。 • 自动报告内部错误。 • 可获取源代码。
8
软件测试基础
• 软件测试的基本概念
• 软件测试的原则
1. 测试应追溯到需求,用户在大部分情况下了解自己的需求但不了解所对应的系统,所 以检验的标准应该是用户的需求
2. 软件开发过程中应在早期就开展各种质量保证活动(Mind Test) 3. 软件开发实践表明,让别人来检查自己的工作会发现更多的错误(交叉检查与独立的
软件测试理论与质量保证
自我介绍
• 你的名字? • 你来自哪个部门? • 是否有测试经验?具有哪些测试经验?
2
热身问题
1 质量管理与软件测试的关系? 2 验证与确认的关系? 3 如何考虑测试的频率? 4 测试何时结束? 5 什么是alpha测试,什么是beta测试?如何处理测试
结果? 6 如何理解测试和调试的关系? 7 如果让你设计性能测试,测试基于windows的系统
相关文档
最新文档