本节书摘来自华章计算机《 测试反模式:有效规避常见的92种测试陷阱》一书中的第1章,第1.3节,作者:(美) Donald G. Firesmith 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 什么是缺陷
系统缺陷(defect,非正式地称为bug)是系统或组件的瑕疵或弱点,可能会导致它以意想不到的、不想要的方式来表现或展现出意外的、不必要的特性。缺陷与以下内容相关但有所不同:
- 错误 人为引起缺陷的错误(例如,编程错误或输入不正确的数据)
- 故障 是在系统内部而不是从系统边界之外直接可见的不正确的条件(例如,系统存储不正确数据或者是处在不正确的模式或状态)
- 失效 使系统明显不正确的表现或具有不正确的特性的事件或条件(即它的一个或多个表现或特性不同于利益相关者所合理预期的)
常见缺陷的例子包括以下瑕疵或弱点:
- 缺陷可能会导致SUT违反明确的(或不明确)需求,包括:
-- 功能性需求 -
- 数据需求
-
- 接口需求
-
- 质量需求
-
- 架构、设计、实施和配置约束
- 当SUT符合不正确或不必要的需求时也可导致缺陷。
- 缺陷可导致SUT:
-
- 不能表现应该的行为
-
- 遗漏应该具有的特性
-
- 表现它不应该有的行为
-
- 具有不该有的特性
- 缺陷会导致SUT与架构或设计不一致。
- 不正确或不恰当的架构、设计、实施、配置决策会导致缺陷。
- 缺陷可以违反设计准则或编码标准。
- 缺陷可以是安全或安保漏洞(例如,使用固有不安全的语言功能或未能验证输入数据)。