软件工程第七章软件测试PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21
(2) 计算机辅助静态分析: 指利用静态分析工具 对被测试程序进行特性分析,从程序中提取一些信息, 以便检查程序逻辑的各种缺陷和可疑的程序构造。如 用错的局部量和全程量、不匹配参数、不适当的循环 嵌套和分支嵌套、 潜在的死循环及不会执行到的代码 等。还可能提供一些间接涉及程序欠缺的信息、 各种 类型的语句出现的次数、变量和常量的引用表、标识 符的使用方式、过程的调用层次及违背编码规则等。 静态分析中还可以用符号代替数值求得程序结果, 以 便对程序进行运算规律的检验。
7.1.1软件测试的目的
统计资料表明,测试的工作量约占整个项目开发 工作量的40%左右,对于关系到人的生命安全的软 件(如飞机飞行自动控制系统),测试的工作量还要 成倍增加。
那么,为什么要花这么多代价进行测试? 其目的何 在? 它是“说明程序能正确地执行它应有的功能”, 还是“表明程序没有错误”。如果是这样一个目的, 就要朝着“证明程序正确”这个目标靠拢,无意识地 选择一些不易暴露错误的例子。因此G.J.Myers对软 件测试的目的提出了以下观点:
❖排错(调试):对已经发现的错误进行 错误定位和确定出错性质,并改正这 些错误,同时修改相关的文档。
❖修正后的文档再测试:直到通过测试 为止。
16
❖通过收集和分析测试结果数据,对软件 建立可靠性模型
❖利用可靠性分析,评价软Biblioteka Baidu质量:
▪ 软件的质量和可靠性达到可以接 受的程度;
▪ 所做的测试不足以发现严重的错 误;
22
2.
动态测试指通过运行程序发现错误。一般意义上 的测试大多是指动态测试。为使测试发现更多的错误, 需要运用一些有效的方法。 测试任何产品,一般有 两种方法:一是测试产品的功能,二是测试产品内部 结构及处理过程。对软件产品进行动态测试时, 也 用这两种方法,分别称为黑盒测试法和白盒测试法。
23
7.2.2
软件工程第七章
软件测试
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
Contents
7.1 软件测试概述 7.2 软件软测件试危方机法(1与.2技) 术 7.3 软件测试过程
3
Contents
7.1 软件测试概述
4
7.1软件测试概述
❖如果测试发现不了错误,可以肯定,测 试配置考虑得不够细致充分,错误仍然 潜伏在软件中。
17
测试与软件开发各阶段的关系
❖软件开发过程是一个自顶向下,逐步细 化的过程
❖软件计划阶段定义软件作用域 ❖软件需求分析建立软件信息域、功能和
性能需求、约束等 ❖软件设计 ❖把设计用某种程序设计语言转换成程序
代码
5
(1) 软件测试是为了发现错误而执行程序的过程。 (2) 好的测试用例能够发现至今尚未发现的错误。 (3) 成 功的测试是发现至今尚未发现的错误的测试。
因此,测试阶段的基本任务应该是根据软件开发 各阶段的文档资料和程序的内部结构,精心设计一组 “高产”的测试用例,利用这些用例执行程序,找出 软件中潜在的各种错误和缺陷。
6
软件测试的目的
❖基于不同的立场,存在着两种完全不同 的测试目的。
❖从用户的角度出发,普遍希望通过软件 测试暴露软件中隐藏的错误和缺陷,以 考虑是否可接受该产品。
❖从软件开发者的角度出发,则希望测试 成为表明软件产品中不存在错误的过程, 验证该软件已正确地实现了用户的要求, 确立人们对软件质量的信心。
1.
该方法把被测试对象看成一个黑盒子,测试人员 完全不考虑程序的内部结构和处理过程,只在软件的 接口处进行测试, 依据需求说明书,检查程序是否 满足功能要求。因此, 黑盒测试又称为功能测试或 数据驱动测试。
18
❖测试过程是依相反顺序安排的自底向上, 逐步集成的过程。
19
Contents
7.2 软件软测件试危方机法(1与.2技) 术
20
7.2.1
1. 静态测试
静态测试是指被测试程序不在机器上运行,而是 采用人工检测和计算机辅助静态分析的手段对程序进 行检测,
(1) 人工测试:是指不依靠计算机而靠人工审查程 序或评审软件。人工审查程序偏重于编码质量的检验, 而软件审查除了审查编码还要对各阶段的软件产品进 行检验。
6. 严格执行测试计划,排除测试的随意性。 7. 应当对每一个测试结果做全面检查。 8. 妥善保存测试计划,测试用例,出错统
计和最终分析报告,为维护提供方便。
10
软件测试的对象
❖软件测试并不等于程序测试。软件测试 应贯穿于软件定义与开发的整个期间。
❖需求分析、概要设计、详细设计以及程 序编码等各阶段所得到的文档,包括需 求规格说明、概要设计规格说明、详细 设计规格说明以及源程序,都应成为软 件测试的对象。
8
软件测试的原则
1. 应当把“尽早地和不断地进行软件测 试”作为软件开发者的座右铭。
2. 测试用例应由测试输入数据和对应的 预期输出结果这两部分组成。
3. 程序员应避免检查自己的程序。 4. 在设计测试用例时,应包括合理的输
入条件和不合理的输入条件。
9
5. 充分注意测试中的群集现象。 经验表明,测试后程序中残存的错误数 目与该程序中已发现的错误数目成正比。
11
❖为把握软件开发各个环节的正确性,需 要进行各种确认和验证工作。
❖确认(Validation),是一系列的活动和过 程,目的是想证实在一个给定的外部环 境中软件的逻辑正确性。
▪ 需求规格说明确认 ▪ 程序确认 (静态确认、动态确认)
❖验证(Verification),试图证明在软件生 存期各个阶段,以及阶段间的逻辑协调 性、完备性和正确性。
7
❖ 换言之,测试的目的是
▪ 想以最少的时间和人力,系统地找 出软件中潜在的各种错误和缺陷。 如果我们成功地实施了测试,我们 就能够发现软件中的错误。
▪ 测试的附带收获是,它能够证明软 件的功能和性能与需求说明相符合。
▪ 实施测试收集到的测试结果数据为 可靠性分析提供了依据。
▪ 测试不能表明软件中不存在错误, 它只能说明软件中存在错误。
12
13
测试信息流
14
测试信息流
❖软件配置:软件需求规格说明、软件 设计规格说明、源代码等;
❖测试配置:测试计划、测试用例、测 试程序等;
❖测试工具:测试数据自动生成程序、 静态分析程序、动态分析程序、测试 结果分析程序、以及驱动测试的测试 数据库等等。
15
❖测试结果分析:比较实测结果与预期 结果,评价错误是否发生。
(2) 计算机辅助静态分析: 指利用静态分析工具 对被测试程序进行特性分析,从程序中提取一些信息, 以便检查程序逻辑的各种缺陷和可疑的程序构造。如 用错的局部量和全程量、不匹配参数、不适当的循环 嵌套和分支嵌套、 潜在的死循环及不会执行到的代码 等。还可能提供一些间接涉及程序欠缺的信息、 各种 类型的语句出现的次数、变量和常量的引用表、标识 符的使用方式、过程的调用层次及违背编码规则等。 静态分析中还可以用符号代替数值求得程序结果, 以 便对程序进行运算规律的检验。
7.1.1软件测试的目的
统计资料表明,测试的工作量约占整个项目开发 工作量的40%左右,对于关系到人的生命安全的软 件(如飞机飞行自动控制系统),测试的工作量还要 成倍增加。
那么,为什么要花这么多代价进行测试? 其目的何 在? 它是“说明程序能正确地执行它应有的功能”, 还是“表明程序没有错误”。如果是这样一个目的, 就要朝着“证明程序正确”这个目标靠拢,无意识地 选择一些不易暴露错误的例子。因此G.J.Myers对软 件测试的目的提出了以下观点:
❖排错(调试):对已经发现的错误进行 错误定位和确定出错性质,并改正这 些错误,同时修改相关的文档。
❖修正后的文档再测试:直到通过测试 为止。
16
❖通过收集和分析测试结果数据,对软件 建立可靠性模型
❖利用可靠性分析,评价软Biblioteka Baidu质量:
▪ 软件的质量和可靠性达到可以接 受的程度;
▪ 所做的测试不足以发现严重的错 误;
22
2.
动态测试指通过运行程序发现错误。一般意义上 的测试大多是指动态测试。为使测试发现更多的错误, 需要运用一些有效的方法。 测试任何产品,一般有 两种方法:一是测试产品的功能,二是测试产品内部 结构及处理过程。对软件产品进行动态测试时, 也 用这两种方法,分别称为黑盒测试法和白盒测试法。
23
7.2.2
软件工程第七章
软件测试
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
Contents
7.1 软件测试概述 7.2 软件软测件试危方机法(1与.2技) 术 7.3 软件测试过程
3
Contents
7.1 软件测试概述
4
7.1软件测试概述
❖如果测试发现不了错误,可以肯定,测 试配置考虑得不够细致充分,错误仍然 潜伏在软件中。
17
测试与软件开发各阶段的关系
❖软件开发过程是一个自顶向下,逐步细 化的过程
❖软件计划阶段定义软件作用域 ❖软件需求分析建立软件信息域、功能和
性能需求、约束等 ❖软件设计 ❖把设计用某种程序设计语言转换成程序
代码
5
(1) 软件测试是为了发现错误而执行程序的过程。 (2) 好的测试用例能够发现至今尚未发现的错误。 (3) 成 功的测试是发现至今尚未发现的错误的测试。
因此,测试阶段的基本任务应该是根据软件开发 各阶段的文档资料和程序的内部结构,精心设计一组 “高产”的测试用例,利用这些用例执行程序,找出 软件中潜在的各种错误和缺陷。
6
软件测试的目的
❖基于不同的立场,存在着两种完全不同 的测试目的。
❖从用户的角度出发,普遍希望通过软件 测试暴露软件中隐藏的错误和缺陷,以 考虑是否可接受该产品。
❖从软件开发者的角度出发,则希望测试 成为表明软件产品中不存在错误的过程, 验证该软件已正确地实现了用户的要求, 确立人们对软件质量的信心。
1.
该方法把被测试对象看成一个黑盒子,测试人员 完全不考虑程序的内部结构和处理过程,只在软件的 接口处进行测试, 依据需求说明书,检查程序是否 满足功能要求。因此, 黑盒测试又称为功能测试或 数据驱动测试。
18
❖测试过程是依相反顺序安排的自底向上, 逐步集成的过程。
19
Contents
7.2 软件软测件试危方机法(1与.2技) 术
20
7.2.1
1. 静态测试
静态测试是指被测试程序不在机器上运行,而是 采用人工检测和计算机辅助静态分析的手段对程序进 行检测,
(1) 人工测试:是指不依靠计算机而靠人工审查程 序或评审软件。人工审查程序偏重于编码质量的检验, 而软件审查除了审查编码还要对各阶段的软件产品进 行检验。
6. 严格执行测试计划,排除测试的随意性。 7. 应当对每一个测试结果做全面检查。 8. 妥善保存测试计划,测试用例,出错统
计和最终分析报告,为维护提供方便。
10
软件测试的对象
❖软件测试并不等于程序测试。软件测试 应贯穿于软件定义与开发的整个期间。
❖需求分析、概要设计、详细设计以及程 序编码等各阶段所得到的文档,包括需 求规格说明、概要设计规格说明、详细 设计规格说明以及源程序,都应成为软 件测试的对象。
8
软件测试的原则
1. 应当把“尽早地和不断地进行软件测 试”作为软件开发者的座右铭。
2. 测试用例应由测试输入数据和对应的 预期输出结果这两部分组成。
3. 程序员应避免检查自己的程序。 4. 在设计测试用例时,应包括合理的输
入条件和不合理的输入条件。
9
5. 充分注意测试中的群集现象。 经验表明,测试后程序中残存的错误数 目与该程序中已发现的错误数目成正比。
11
❖为把握软件开发各个环节的正确性,需 要进行各种确认和验证工作。
❖确认(Validation),是一系列的活动和过 程,目的是想证实在一个给定的外部环 境中软件的逻辑正确性。
▪ 需求规格说明确认 ▪ 程序确认 (静态确认、动态确认)
❖验证(Verification),试图证明在软件生 存期各个阶段,以及阶段间的逻辑协调 性、完备性和正确性。
7
❖ 换言之,测试的目的是
▪ 想以最少的时间和人力,系统地找 出软件中潜在的各种错误和缺陷。 如果我们成功地实施了测试,我们 就能够发现软件中的错误。
▪ 测试的附带收获是,它能够证明软 件的功能和性能与需求说明相符合。
▪ 实施测试收集到的测试结果数据为 可靠性分析提供了依据。
▪ 测试不能表明软件中不存在错误, 它只能说明软件中存在错误。
12
13
测试信息流
14
测试信息流
❖软件配置:软件需求规格说明、软件 设计规格说明、源代码等;
❖测试配置:测试计划、测试用例、测 试程序等;
❖测试工具:测试数据自动生成程序、 静态分析程序、动态分析程序、测试 结果分析程序、以及驱动测试的测试 数据库等等。
15
❖测试结果分析:比较实测结果与预期 结果,评价错误是否发生。