第2章 软件测试策略与过程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Return
2.2.1 静态测试与动态测试
1、静态测试
静态测试不实际运行软件,主要是对软件的编程格式、结构 等方面进行评估。 静态测试包括代码检查 、静态结构分析 、代码 质量度量 等。它可以由人工进行,也可以借助软件工 具自动进行。 静态测试方法也可利用计算机作为对被测程序进行特性分析 的工具,但与人工测试方式有着根本区别。另一方面,因它 并不真正运行被测程序,只进行特性分析,这又与动态方法 不同。所以,静态方法常常称为“分析”,静态测试是对被 测程序进行特性分析方法的总称。
2、测试无法显示潜在的软件缺陷和故障
——通过软件测试只能报告软件已被发现的缺陷和故障, 无法报告隐藏的软件故障。
3、存在的故障现象与发现的故障数量成正比
——结论:应当对故障集中的程序段进行重点测试
Return
2.2 软件测试方法与策略
2.2.1 静态测试与动态测试 2.2.2 黑盒测试与白盒测试 2.2.3 软件测试过程
若测试规划基于产品的内部结构进行测试,检查内部操作 是否按规定执行,软件各个部分功能是否得到充分使用, 则这种测试方法称为白盒测试(White-box Testing)方法。 —— 白盒测试又称为结构测试、逻辑驱动测试或基于程序 的测试,一般用来分析程序的内部结构。
黑盒测试和白盒测试(续)
白盒测试
静态测试与动态测试(续)
2、动态测试
动态方法的主要特征是: ——计算机必须真正运行被测试的程序,通过输入测试用 例,对其运行情况即输入与输出的对应关系进行分析,以 达到检测的目的。 动态测试包括: (1)功能确认与接口测试 (2)覆盖率分析 (3)性能分析 (4)内存分析
2.2.2 黑盒测试和白盒测试
静态测试与动态测试(续)
静态测试可以完成以下工作: ( 1 )发现下列程序的错误:错用局部变量和全局变量;未 定义的变量、不匹配的参数;不适当的循环嵌套或分支嵌 套、死循环、不允许的递归;调用不存在的子程序,遗漏 标号或代码。
( 2 )找出以下问题的根源:从未使用过的变量;不会执行 到的代码、从未使用过的标号;潜在的死循环。 (3)选择测试用例。
黑盒测试和白盒测试(续)
输入
输出
黑盒测试是在程序接口进行测试,它只是检查程 序功能是否按照规格说明书的规定正常使用。也 被称为用户测试。
黑盒测试和白盒测试(续)
黑盒测试主要是为了发现以下几类错误: – 是否有不正确或遗漏了的功能? – 在接口上,输入能否正确地接受?能否输出正确的结果? – 是否有数据结构错误或外部信息访问错误? – 性能上是否能够满足要求? – 是否有初始化或终止性错误?
未知等式与已知等式
X=2
?
黑盒
Y=4
X=2
y=2x
白盒
Y=4
黑盒测试和白盒测试(续)
项目 黑盒测试法 功能的测试 能确保从用户的角度 出发进行测试 无法测试程序内部特 定部位;当规格说明有 误,则不能发现问题 白盒测试法 结构的测试 能对程序内部的特定部位进 行覆盖测试 无法检查程序的外部特性; 无法对未实现规格说明的程 序内部欠缺部分进行测试 语句覆盖,判定覆盖, 条件覆盖,判定/条件覆盖, 路径覆盖,循环覆盖, 模块接口测试
静态测试与动态测试(续)
静态测试阶段的任务: (1)检查算法的逻辑正确性。 (2)检查模块接口的正确性。 (3)检查输入参数是否有合法性检查。 (4)检查调用其他模块的接口是否正确。 (5)检查是否设置了适当的出错处理。 (6)检查表达式、语句是否正确,是否含有二义性。 (7)检查常量或全局变量使用是否正确。 (8)检查标识符的使用是否规范、一致。 (9)检查程序风格的一致性、规范性。 (10)检查代码是否可以优化,算法效率是否最高。 (11)检查代码注释是否完整,是否正确反映了代码的功能。
若测试规划是基于产品的功能,目的是检查程序各个功能 是否能够实现,并检查其中的功能错误,则这种测试方法 称为黑盒测试(Black-box Testing)方法。
——黑盒测试又称为功能测试、数据驱动测试和基于规格
说明的测试。它是一种从用户观点出发的测试,一般被用 来确认软件功能的正确性和可操作性。
黑盒测试的难点:在哪个层次上进行测试? 黑盒测试的具体技术方法 :
边界值分析法 因果图法 等价类划分法 决策表法
黑盒测试和白盒测试(续)
2、白盒测试
白盒测试将被测程序看作一个打开的盒子,测试者能够 看到被测源程序,可以分析被测程序的内部结构,此时 测试的焦点集中在根据其内部结构设计测试用例。 白盒测试要求是对某些程序的结构特性做到一定程度的 覆盖,或者说这种测试是“基于覆盖率的测试”。
通常的程序结构覆盖有: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 路径覆盖
黑盒测试和白盒测试(续)
应用程序
白盒测试需要完全了解程序结构和处理过程, 它按照程序内部逻辑测试程序,检验程序中 每条通路是否按ห้องสมุดไป่ตู้定要求正确工作。也被称 为程序员测试。
黑盒测试和白盒测试(续)
3、黑盒测试法和白盒测试法的比较
黑盒测试
两种测试方法从完全不同的角度出发, 反映了测试思路的两方面情况,适用于 不同的测试阶段。
黑盒测试和白盒测试(续)
1、黑盒测试
黑盒测试的基本观点是:任何程序都可以看作是从输入 定义域映射到输出值域的函数过程,被测程序被认为是 一个打不开的黑盒子,黑盒中的内容(实现过程)完全 不知道,只明确要做到什么。 黑盒测试主要根据规格说明书设计测试用例,并不涉及 程序内部构造和内部特性,只依靠被测程序输入和输出 之间的关系或程序的功能设计测试用例。 黑盒测试的特点:(1)黑盒测试与软件的具体实现过程 无关,在软件实现的过程发生变化时,测试用例仍然可 以使用。(2)黑盒测试用例的设计可以和软件实现同时 进行,这样能够压缩总的开发时间。
第2章 软件测试策略与过程
2.1 软件测试的复杂性分析
2.2 软件测试方法与策略
2.3 单元测试 2.4 集成测试 2.5 确认测试 2.6 系统测试
2.7 验收测试
2.8 测试后的调试 2.9 面向对象的软件测试
2.1 软件测试的复杂性分析
1、无法对程序进行完全测试
(1)测试所需要的输入量太大 (2)测试的输出结果太多 (3)软件实现的途径太多 (4)软件规格说明没有一个客观标准