推广 热搜:   中国  公司  行业  设备  快速  企业  上海  未来  技术 

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

   日期:2024-12-20     移动:http://www78564.xrbh.cn/mobile/quote/27298.html

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

一开始搜索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.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]

[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:


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

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

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

2.2 查找test oracle中文表述

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

每次写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

本文地址:http://www78564.xrbh.cn/quote/27298.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号