本文最后更新于 1 年前 ,文中信息可能已经过时。如有问题请在评论区留言。

一 章节知识架构图

e6eabfa400727331d4953be7db076663

二 软件测试

2.1 静态测试

指被测试程序不在机器上运行,而采用人工检测计算机辅助静态分析的手段对程序进行监测。静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查代码审查代码走查。 在静态测试中,主要是对程序代码进行静态分析,包括控制流分析、数据流分析、接口分析和表达式分析。

2.2 动态测试

2.2.1 白盒测试

白盒测试也称为结构测试,主要用于软件单元测试阶段。包括控制流测试(各类覆盖测试)、数据流测试、程序变异测试。

b9ff8ee87cbb5fbe739b465fc07ade85

2.2.1.1 语句覆盖

语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。很显然,语句覆盖是一种很弱的覆盖标准。

13b8c8a7e7141be5e30e4ad6f8ecae7c

2.2.1.2 判定(分支)覆盖

判定覆盖也称为分支覆盖,它是指不仅每个语句至少执行一次,而且每个判定的每种可能得结果(分支)都至少执行一次。判定覆盖比语句覆盖强,但对程序逻辑的覆盖程序仍然不高。

dcaa20e5c73660bb95caf9fb814890e8

2.2.1.3 条件覆盖

条件覆盖是指不仅每个语句至少执行一次,而且判定式中的每个条件都取得各种可能得结果。条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。判定覆盖只关心判定表达式的值(真/假),而条件覆盖涉及到判定表达式的每个条件的值(真/假)

2.2.1.4 路径覆盖

路径覆盖是指选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路路径至少经过一次)。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。

真题示例 - 2.1

下图是用白盒测试方法进行测试,图中有()条路径。采用 McCabe 度量计算该程序图的环路复杂性为()。

0c9a9125a67b9eef28211560a4b8ef9a

A. 3   B. 4   C. 5   D. 6
A. 3   B. 4   C. 5   D. 6

McCabe 计算公式:圈数 + 1

真题示例 - 2.2

系统交付用户使用了一段时间后发现,系统的某个功能响应非常慢。修改了某模块的一个算法,使其运行速度得到了提升。则该行为属于()维护。

A. 改正性   B. 适应性   C. 改善型   D. 预防性

2.2.2 黑盒测试

黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试阶段。黑盒测试根据 SRS 所规定的功能来设计测试用例,一般包括功能分解、等价类划分、边界值分析、判定表、因果图、状态图、随机测试、错误推测和正交实验法等。

真题答案

题号答案
2.1B、B
2.2C