无论是要理解测试,还是做好 软件测试,都要抓住这7个核心问题: 1. 测试选择标准与测试充分性 (终⽌原则) 测试选择标准是选择测试集或确定⼀个测试集是否满⾜指定目标的方法。测试充分性标准可以用来决定何时测试充分或者是否完成。 2. 测试有效性与测试目标 通过一系列程序的执⾏对测试的效率进⾏分析。对将要执行的测试用例的选择因其目标而异, 即测试集的效率评价基于具体想要实现的目标。 3. 以寻找缺陷为目标的测试 在以寻找缺陷为目标的测试活动中, 是否能够导致系统失效,这是测试是否成功的标准。这与测试软件是否满足设计规约或其它属性有很大的不同, 后者的成功取决于软件在现实的测试用例和测试环境中不出现失效。 4. Oracle问题 Oracle是决定在给定的测试条件下程序运⾏是否正确的判断依据,以 相应地给出测试“通过”或“失效”的裁决。有许多不同种类的Oracle, 如明确的需求规约、行为模型以及代码注释。机器Oracle的自动化较为困难和昂贵。 5. 理论和实际的测试限制 测试理论反对给⼀系列成功的测试赋予不正当的信任。不幸的是, ⼤大多数 建立的理论是消极的, 即它们将测试难以达到的功能确⽴为可以达到功能 的对⽴面。一个关于此的名⾔为 Dijkstra所说的“程序的测试可以表明bug的存在, 却永远无法确定bug彻底消失”。最显而易⻅的原因是完整的测 试在现实的软件中是不可能的, 正因为如此, 测试必须由⻛险驱动并被视 为一种风险管理策略。 6. 不可行路径的问题 不可行路径即为不可以由输⼊数据执⾏的控制流路径。这是基于路径测试 的一个显著问题, 在由测试输⼊实行控制流路径的⾃动衍生中表现尤为明 显。 7. 可测性 “软件可测性”有两个相关但不同的含义: ⼀方面,它指满⾜一个给定测试 覆盖标准的难易程度;另⼀方面表⽰,当一个软件存在缺陷时,⼀个测试集 可以暴露出缺陷的可能性。这两个含义都很重要。
|