有一种东西, 如果它太小, 需要 付出的努力就太 大; 如果它太大,就很难测试。 没错 ! 它是 单元 。 但是什么才是一个好的 单元 定义呢 ? 为什么它如此重要 ? 单元的定义对测试过程有很大的影响,但同时 单元的定义 也 是 不精确 的。 如果以一种不 恰当 的方式定义单位,这可能意味着大量的努力甚至麻烦。术语 “ 单 元” 的定义 可 见于 ISO 26262 、 ISTQB 、 ASPICE 和许多其他文件。 我们的结论是 : 单元是一个小的可测试的软件组件。不幸的是, 这种定义 非常模糊。 这样的定义 不是用于工具,而是用于评估和审计。因此,在大多数组织中,这个术语是单独指定的。 定义术语 “ 单元 ” 有两种方法 : 通用描述和体系结构描述。 在通用描述中,单元将被定义为一个文件或一个函数。从特定的、体系结构的角度来看,单元是软件体系结构中的一个元素。基于体系结构的特定定义可以减少单元测试中测试对象的数量。以这种方式定义的单元可以包含多个文件中的多个函数。 这种方法不违反 ISO 26262 或 A SPICE 的要求。此外,如果体系结构是自 上 向下开发的,您可以将体系结构的更高级别指定为纯集成测试,从而也将 减少单元测试级别的 测试对象。在单元级别省略的测试 会 在 之后的 软件集成测试 (SWE.5) 中执行。 一些组织通过调整单元的定义 来缩小 他们自己的需求 之间的 差距。典型的补充包括 : --更精确地定义单元,例如,在编程语言 C 中,将单元定义为函数级别的数据和指令的封装,或者 --为 单元构造过程 提出 要求,例如指定最大 圈复杂 度。 专业建议 : 对于具体项目来说,如果需求是 好的 ,但太过笼统或太过严格,可以与客户讨论和协商,以定义一个一致的解决方案作为替代措施。这可以大大减少工作量。从风险的角度来看,定义 单元 的时间应该越早越好。 TPT 可以测试所有类型的单元定义。从工具的角度来看,这并不 是最 重要 的 。为了将测试过程中产生的总工作量减少到最小,我们建议不要笼统地定义单元。这 会为 重构活动 提供便利 并减少额外的工作。