软件开发过程中,参考实现(英语:Reference implementation,台湾作参考实作)是实现对应规范中所有要求的一种计算机程序,也偶尔被称作参照实装示例实现(sample implementation)或模型实现(model implementation)。参考实现通常伴随技术标准,演示了其他任何实现应做到的被视为“正确”的行为。

特征和例子

算法的参考实现(例如密码算法)通常来自标准化流程。在密码学领域,通常会将源代码作为公有领域软件发布。例如CERN httpd[1]Serpent密码、base64变种[2]、以及SHA-3[3]Openwall项目英语Openwall Project维护了一个包含多种算法的在公有领域下发布的参考实现源代码名单。[4]

参考实现可能达到或者未达到生产级质量。例如,弗劳恩霍夫协会MP3标准的参考实现通常无法与其他常见的实现(如LAME)在音质测试中相媲美[来源请求]。与之相反,Python编程语言的参考实现CPython则在生产中使用最为广泛[5]

测试

对参考实现进行软件测试可以提高规范的生产效率:

参考实现通常作为最终解释一个规范的实现(此定义有些大胆,但一般如此)。在一致性测试套件的开发中,每个接口需要至少一个相对受信任的实现,以做到:(1) 发现规范中的错误和歧义,以及(2) 验证测试套件的功能正确。[6]

参考实现的特征有:

  1. 与规范和测试套件一同开发;
  2. 验证规范是可实现的;
  3. 确认测试套件正常工作;
  4. 作为衡量其他实现的金标准;
  5. 一致性测试英语Conformance testing不充分时,有助于阐明规范的意图[7]

参考文献

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.