第6章 软件测试(1) pwq

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程
第6章 软件测试 (1)
2020/8/3
0
本章目录
一、测试概述 二、测试方法 三、测试级别 四、测试管理流程 五、测试自动化 六、测试过程 七、案例分析
2020/8/3
1
软件测试
---测试概述
2020/8/3
2
本节要点
一、测试概述 二、测试方法简述 三、测试级别简述 四、测试管理流程简述
2020/8/3
3
什么是测试?
定义:
✓为了发现软件系统的错误而运行或 测试某个系统的过程。
✓破坏的过程 ✓软件测试是质量控制的重要手段
2020/8/3
4
测试概述
软件测试是对软件需求分析、设计、 编码实现的审查。
软件测试是为了发现错误而执行程序 的过程。或者说,软件测试是根据软 件开发各阶段的规格说明和程序的内 部结构而精心设计一批测试用例(即 输入数据及其预期的输出结果),并 利用这些测试用例去运行程序,以发 现程序错误的过程。
2020/8/3
5
什么是测试?
软件错误典型案例:
✓( 4195835/ 3145727 )×3145727- 4195835
✓爱国者导弹防御系统 ✓千年虫
2020/8/3
6
什么是测试?
Myers软件测试目的
(1) 测试是程序的执行过程,目的在 于发现错误;
(2) 一个好的测试用例在于能发现至 今未发现的错误;
通常由一个或多个缺陷引起。
2020/8/3
11
基本术语(2/2)
• 验证(Verification) – 我们是否在正确地制造产品? – 软件验证试图证明在软件生存周期的各个阶段,软件产
品或中间产品是否能够满足客户需求,包括一致性、完 整性和正确性。 • 确认(Validation) – 我们是否在制造正确的产品? – 软件确认的目的是保证所开发的最终软件产品能够符合 用户的需求。
– 使用好的程序设计方法来减少复杂性 – 使用版本控制来防止系统的不一致 – 应用验证技术来防止算法错误
• 错误检测(当系统运行时实施)
– 测试:以事先规划的方式发现错误 – 调试:假设从意外故障着手可以找到错误 – 监控:发送状态信息,发现性能错误
• 错误恢复(一旦系统发布后出现错误时实施)
– 数据库系统:提供从故障中恢复的基本事务处理 – 模块冗余:将不止一个组件分配执行同一个操作 – 恢复程序:该程序处理错误信息,使系统从故障中恢复过来
速度缓慢、或者最终用户不满意。
• 有错是软件的属性,而且是无法改变的。因此, 关键在于如何避免错误的产生和消除已经产生 的错误,使程序中的错误密度达到尽可能低的 程度。
2020/8/3
13
验证与确认
2020/8/3
14
这是什么?
2020/8/3
15
错误的状态
2020/8/3
16
算法错误
2020/8/3
2020/8/3
24
本节要点
一、测试概述 二、测试方法简述 三、测试级别简述 四、测试管理流程简述
2020/8/3
25
测试方法
不实际运行程序,而是通过检查 和阅读等手段来发现错误并评估 代码质量的软件测试技术。也称 为静态分析技术。
软件测试方法
实际运行程序,并通 过观察程序运行的实 际结果来发现错误的 软件测试技术。
17
机械错误
2020/8/3
18
处理错误或缺陷:验证?
2020/8/3
19
处理错误或缺陷:冗余?
2020/8/3
20
处理错误或缺陷:特性?
2020/8/3
21
处理错误或缺陷:补丁?
2020/8/3
22
处理错误或缺陷:测试?
2020/8/3
23
另一种观点
• 错误预防(在系统发布之前实施)
• 说明:验证强调对于过程的检验,确认强调对于 结果的检验。
2020/8/3
12Байду номын сангаас
软件错误或缺陷
• 软件错误(或软件缺陷)的表现
– 软件未达到产品说明书标明的功能; – 软件出现了产品说明书指明不会出现的错误; – 软件功能超出了产品说明书指明的范围; – 软件未达到产品说明书虽未指出但应达到的目标; – 软件测试人员认为软件难以理解、不易使用、运行
静态测试
在知道程序内部 结构的情况下采 用的测试技术或 策略。
动态测试
在不知道程序内部结 构,只知道程序规格 的情况下采用的测试 技术或策略。
2020/8/3



黑盒测试
盒 测 试
盒 测 试
盒 测 试
方法和白 盒测试方 法综合的 策略。
26
本节要点
一、测试概述 二、测试方法简述 三、测试级别简述 四、测试管理流程简述
2020/8/3
27
测试的级别
需求分析
验收测试 系统测试
概要设计
2020/8/3
详细设计 编码
集成测试

单元测试
归 测

代码审查
28
本节要点
一、测试概述 二、测试方法简述 三、测试级别简述 四、测试管理流程简述
2020/8/3
29
根据测试计划,忠 实地记录测试执行 的过程和结果。
分析测试记录,如 果发现与预期结果 不同,确定并重现 缺陷。
9
什么是测试?
现状:
软件测试的实践性大于理论性 ✓软件测试理论体系尚不成熟 ✓软件测试工具尚不成熟 ✓软件测试效果对于个人的依赖性比
较大
2020/8/3
10
基本术语(1/2)
• 错误(Error) – 错误是指导致系统可能包含故障的人的行为,
如输入错误、需求错误、设计错误等。 • 缺陷(Defect,Bug) – 缺陷是错误的表现,包括过错缺陷和遗漏缺陷。 • 故障(Fault) – 故障是指系统的规格说明与其行为之间的偏差,
检查测试设计是否 全部2执020行/8/完3 毕,缺 陷是否全部关闭。
测试管理流程
针对测试目标,规定测试 任务、资源分配、人员角 色、进度安排等。
2020/8/3
8
5. 充分注意测试中的群集现象。 经验表明,测试后程序中残存的错误数目 与该程序中已发现的错误数目成正比。
6. 严格执行测试计划,排除测试的随意性。 7. 应当对每一个测试结果做全面检查。 8. 妥善保存测试计划,测试用例,出错统计
和最终分析报告,为维护提供方便。
2020/8/3
(3) 一个成功的测试是发现了至今未 发现的错误的测试。
2020/8/3
7
软件测试的原则
1. 应当把“尽早地和不断地进行软件测试” 作为软件开发者的座右铭。
2. 测试用例应由测试输入数据和对应的预 期输出结果这两部分组成。
3. 程序员应避免检查自己的程序。
4. 在设计测试用例时,应包括合理的输入 条件和不合理的输入条件。
相关文档
最新文档