文章目录

  • 前言
  • 1. 简介
  • 2. 探究过程
    • 2.1 在百度学术上以“test oracle”为关键字进行搜索
    • 2.2 查找test oracle中文表述
  • 3. 总结
  • 参考文献

前言

在百度上查找test oracle,但是没有找到我想要的结果,于是我深入搜索并整理出test oracle的释义,在此记录。

1. 简介

一开始搜索test oracle,返回的最佳结果就是:参考知乎网页 https://www.zhihu.com/question/30250441 [1]

里面说到:

测试准则–CSTQB中的术语oracle是ISTQB中ETM(ISTQB专家级-测试管理)的内容oracle的中文术语为【结果参照物】test oracle是ISTQB中F-AT(ISTQB基础级扩展敏捷测试)的内容test oracle的中文术语为【测试结果参照物】意为:在测试时确定与实际结果进行比较的预期结果的源。它可能包括现有系统(作基准)、用户手册、或个人的专业知识等,但不是代码。[与Adrion 一致]

我感觉这个定义还是不够,也没有足够的证据支撑,所以决定自己探索一下。

2. 探究过程

2.1 在百度学术上以“test oracle”为关键字进行搜索

根据搜索结果及显示出来的文章摘要,我选择了两篇文章并下载:

1)Xie T. Augmenting Automatically Generated Unit-Test Suites with Regression Oracle Checking[J]. 2006, 4067:380-403.
这篇文章是软工领域(尤其是软件自动测试方向)著名学者谢涛教授的文章。很厉害

2)Tu D, Chen R, Du Z, et al. A Method of Log File Analysis for Test Oracle[C]// International Conference on Scalable Computing and Communications; Eighth International Conference on Embedded Computing, 2009. Scalcom-Embeddedcom. IEEE, 2009:351-354.
这个也讲的是test oracle相关的内容。

其中,文章1)给了一个很明确的定义

A test case consists of two parts: a test input to exercise the program under test and a test oracle to check the correctness of the test execution. A test oracle is often in the form of executable assertions such as in the JUnit testing framework. Manually generated test cases are valuable in exposing program faults in the current program version or regression faults in future program versions.

这里说的是:1个测试用例 = 1个测试输入(test input) + 1个test oracle。test input(测试输入)是用来执行程序的,测试oracle是用来检查测试执行的正确性的。且test oracle通常是以可执行的assertions语句(比如在JUnit test 框架中)的形式出现的。

看到这里我觉得test oracle的定义和形式就比较清楚了:
首先,test oracle是测试用例的一部分,而且是用来检查测试输入执行过后产生结果的正确性的;
其次,test oracle常常以可执行的assertions语句出现(比如JUnit测试中的assertEquals和assertTrue函数,其操作可参考[4])

此外,[5] 对test oracle有进一步理解:

这里也说的很清楚。test oracle的概念是很明确的(即:就是用来检查程序的输出是不是正确的),但是它的形式却很宽泛,可以使程序,可以是文档,甚至可以是人(震惊= =)。


这里也说的很有趣,巧妙的使用test oracle能够减轻程序员的测试负担。

[6]还补充了oracle的概念和构成:

An oracle is a mechanism for determining whether the program has passed or failed a test.

A complete oracle would have three capabilities and would carry them out perfectly:

1)A generator, to provide predicted or expected results for each test.
2)A comparator, to compare predicted and obtained results.
3)An evaluator, to determine whether the comparison results are sufficiently close to be a pass.

wiki百科[7]也有相关定义。

但是呢,问题出现了:test oracle用中文到底怎么说??
所以有了更进一步的查阅。

2.2 查找test oracle中文表述

在谷歌翻译中[8]中找到:

所以最后我倾向于认为:
test oracle的中文表述是:测试预言
(之前好像也有老师讲过这个术语,但是我记不清 了)

3. 总结

每次写CSDN都要半小时,这还是我在已经找好所有资料(仔细阅读了网页,明白了概念)的情况下。转化成文字还是费时间。

可能是自己的功力不够。
僵硬…

继续努力鸭。

参考文献

[1] 软件测试中的test oracle指什么? https://www.zhihu.com/question/30250441

[2] Xie T. Augmenting Automatically Generated Unit-Test Suites with Regression Oracle Checking[J]. 2006, 4067:380-403.

[3] Tu D, Chen R, Du Z, et al. A Method of Log File Analysis for Test Oracle[C]// International Conference on Scalable Computing and Communications; Eighth International Conference on Embedded Computing, 2009. Scalcom-Embeddedcom. IEEE, 2009:351-354.

[4] junit 方法:assertEquals 和 assertTrue. https://blog.csdn.net/expect521/article/details/77747964

[5] What is a test oracle, and what is it used for? https://stackoverflow.com/questions/23522166/what-is-a-test-oracle-and-what-is-it-used-for

[6] A Course in Black Box Software Testing-Examples of Test Oracles. http://www.testingeducation.org/k04/OracleExamples.htm

[7] Test oracle. https://en.wikipedia.org/wiki/Test_oracle

[8] oracle. https://translate.google.com/#en/zh-CN/oracle

探究:软件工程中的test oracle到底是什么意思?相关推荐

  1. [译] 探究 Swift 中的 Futures Promises

    本文讲的是[译] 探究 Swift 中的 Futures & Promises, 原文地址:Under the hood of Futures & Promises in Swift ...

  2. Tools下的mdscongiguer 文件中 43行 oracle 配置 发现需要连接库 -lclntsh libclntsh.so 库是个什么东西呢?...

    Tools下的mdscongiguer     文件中 43行  oracle 配置      发现需要连接库 -lclntsh      libclntsh.so 库是个什么东西呢? 分想一个知乎网 ...

  3. 浅析软件工程中的UML建模技术

    一.基本信息 标题:浅析软件工程中的UML建模技术 时间:2018 出版源:电子世界 领域分类:软件工程:UML建模技术:需求分析 二.研究背景 问题定义:软件工程中UML建模技术的研究 难点:明确软 ...

  4. oracle中having作用,oracle中having与where的区别

    1.where 不能放在group by 的后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函 ...

  5. 计算机界 TOP 3 难题:“相等”是软件工程中许多重大问题的根源!

    有一个笑话说,计算机科学界有两大难题:一是缓存失效问题,二是命名问题.但我认为还有第三个更难的问题:相等问题.你没看错,等号"="看似简单,但等号的使用和误用,是软件工程中许多重大 ...

  6. 软件工程中众包应用的综述

    A Survey of the Use of Crowdsourcing in Software Engineering 作者 摘要 1 介绍 2 背景 2.1 众包 2.2 众包软件工程 2.2.1 ...

  7. 探究网页中检测QQ登录原理

    探究网页中检测QQ登录原理 在登录QQ邮箱时会自动检测QQ是否已经登录(阿里旺旺也有这个功能了,不过经常不好用),今天突然发觉,这也是个小小的技术点,今天就来探究一下 PS:之前也有人分析过此问题,如 ...

  8. 探究项目管理中的棘轮效应(转)

    探究项目管理中的棘轮效应 本文引入信息经济学中"棘轮效应"理论,阐明了软件管理过程中"棘轮效应"产生的原因.必要条件以及相应的对策.本文可以为项目经理制定科学的 ...

  9. oracle中rowid列,Oracle中的rowid

    ROWID是ORACLE中的一个重要的概念.用于定位数据库中一条记录的一个相对唯一地址值.通常情况下,该值在该行数据插入到数据库表时即被确定且唯一.ROWID它是一个伪列,它并不实际存在于表中.它是O ...

  10. oracle中DBWR全称,Oracle基本术语大全

    Oracle基本术语大全 §2.4.2 重做日志工作模式Oracle可以在两种模式之一来工作: 1)ARCHIVELOG模式(可恢复) Oracle 一般至少有两个日志文件.它们轮流交替地被写入所作的 ...

最新文章

  1. c++ 11 多线程处理(1)
  2. mysql 8.3_8.3 - mysql 表操作
  3. Gdb 调试core文件详解
  4. JavaScript学习笔记:类型检测
  5. AJAX解惑篇(转)
  6. python使用phantomJS循环for爬取多个页面时,解决内存持续变大而报错“ConnectionResetError: [WinError 10054]远程主机强迫关闭了一个现有的连接”的问题
  7. 一般来讲,大公司都有自己的决策团队
  8. Adobe Audition 基本使用
  9. OFFICE技术讲座:标点压缩是各大OFFICE软件差异关键,总体考量有哪些
  10. C语言表上作业法运输问题,论运输问题表上作业法
  11. github客户端的使用方法教程
  12. Matlab信号处理综合工具
  13. 微信小程序中使用emoji表情
  14. E1630加工散热孔:中兴路由器wifi6千兆E1630电信商企版Wi-Fi6路由器3000M全千兆
  15. 干货 | 闪电网络应用开发速成指南
  16. 使用VMware启动centos6.6并使用Qume+kvm虚拟化linux和windows虚机
  17. 使用Java在图片中添加文字
  18. Android 7.0图片裁剪问题
  19. UNI-APP 开发微信公众号(H5)JSSDK的使用、微信扫一扫
  20. 嘎嘎android模拟器,Ladygaga模拟器

热门文章

  1. 戴尔·卡耐基(美)《演讲的艺术》
  2. treble_Android上的Project Treble是什么,我的手机会收到吗?
  3. fig-tlo_PHP-FIG,Quo Vadis?
  4. Dell Optiplex 960 n series 释放SLIC
  5. Vue 国家省市三级联动
  6. 数学有趣地超乎你的想象!超级有趣!
  7. 土豆嫁优酷:烧钱的宿命?
  8. android实现vr 功能,VR模式成亮点:属于Android N的10大新功能
  9. 轻巧易用 迅捷PDF转换成Word转换器效果点评
  10. Visual studio 无法连接网络解决方法