您的位置: 首页 > 软件测试技术 > 其他相关 > 正文

关于软件测试七个核心问题

发表于:2021-11-18 作者:中科天齐软件安全中心 来源:掘金

无论是要理解测试,还是做好软件测试,都要抓住这7个核心问题:

1. 测试选择标准与测试充分性 (终止原则)

测试选择标准是选择测试集或确定?个测试集是否满足指定目标的方法。测试充分性标准可以用来决定何时测试充分或者是否完成。

2. 测试有效性与测试目标

通过一系列程序的执行对测试的效率进行分析。对将要执行的测试用例的选择因其目标而异, 即测试集的效率评价基于具体想要实现的目标。

3. 以寻找缺陷为目标的测试

在以寻找缺陷为目标的测试活动中, 是否能够导致系统失效,这是测试是否成功的标准。这与测试软件是否满足设计规约或其它属性有很大的不同, 后者的成功取决于软件在现实的测试用例和测试环境中不出现失效。

4. Oracle问题

Oracle是决定在给定的测试条件下程序运?是否正确的判断依据,以 相应地给出测试“通过”或“失效”的裁决。有许多不同种类的Oracle, 如明确的需求规约、行为模型以及代码注释。机器Oracle的自动化较为困难和昂贵。

5. 理论和实际的测试限制

测试理论反对给一系列成功的测试赋予不正当的信任。不幸的是, 大多数建立的理论是消极的, 即它们将测试难以达到的功能确立为可以达到功能的对立面。一个关于此的名言为 Dijkstra所说的“程序的测试可以表明bug的存在, 却永远无法确定bug彻底消失”。最显而易见的原因是完整的测试在现实的软件中是不可能的, 正因为如此, 测试必须由?险驱动并被视为一种风险管理策略。

6. 不可行路径的问题

不可行路径即为不可以由输?数据执行的控制流路径。这是基于路径测试的一个显著问题, 在由测试输?实行控制流路径的自动衍生中表现尤为明 显。

7. 可测性

“软件可测性”有两个相关但不同的含义: 一方面,它指满足一个给定测试,覆盖标准的难易程度;另一方面表示,当一个软件存在缺陷时,一个测试集可以暴露出缺陷的可能性。这两个含义都很重要。