51Testing软件测试论坛

标题: 关于test oracle [打印本页]

作者: skinapi    时间: 2004-10-25 17:06
标题: 关于test oracle
在MSN上有位测友问到test oracle怎么解释,我的理解是测试准则。在一篇文章中看到如下的说明:
This method—a function that determines if the application has behaved correctly in response to a test action—is called a test oracle.
翻译一下就是:
这种方法――一种用来判断应用程序是否正确响应测试操作的方法--被称为测试准则。
欢迎大家发表意见。
作者: ayong401    时间: 2004-10-26 10:36
我看过一种翻译,是测试喻示的意思!

看上去很牵强的意思!
作者: binary    时间: 2004-10-26 13:51
标题: 偶还以为是“如何测试Oracle数据库”呢
赶紧进来学习,呵呵

按照 http://www.rbsc.com/pages/OraclePatternList.htm 里面的说法,skinapi 所说的“测试准则”似乎更准确一些

A test oracle is a source of expected results for a test case.
作者: 依伊卜舍    时间: 2004-11-4 16:25
同意楼主的!!
作者: jody    时间: 2004-11-4 18:23
标题: 略有看法
先不管测试标准是否准确,请看这句话的翻译:
“这种方法――一种用来判断应用程序是否正确响应测试操作的方法--被称为测试准则”

1、方法不可能是准则的;
2、method 可以是fuction,但与准则是不一样的,也就是说fucion也不能是准则
methond 可以=fuction但是不能=准则
3、再看看这句“A test oracle is a source of expected results for a test case”,这说明,它是测试准则的source,而不是resource,
不好意思,这样总结下来,我还是找不到一个合适的词来说明它
作者: skinapi    时间: 2004-11-4 21:20
感谢jody。
“This method—a function that determines if the application has behaved correctly in response to a test action—is called a test oracle.”这句话当时翻译时也花了不少时间,总不能找到一个特别合适的说法。老外的很多描述翻译起来还是蛮有难度的,只能通过水平的不断提高来翻译的更准确了。
作者: jody    时间: 2004-11-9 17:39
标题: 不客气
大家共同提高。
作者: xalee    时间: 2004-11-17 17:37
我觉得“测试准则”也不太准确。

我个人的理解是:
  测试是一种对于被测软件的预测,测试是一种预测通过什么样的动作被测软件会产生什么样的行为的方法。
  所以是不是可以翻译为“测试预测”?
作者: shuzhongbo    时间: 2004-12-28 18:18
Oracle的意思是“圣典”,所以test oracle是否就是测试规则、测试准则、测试原则之类的意思!
作者: LittleBird    时间: 2004-12-29 16:58
oracle还有一种解释是:绝对可靠的指导。
作者: juery    时间: 2005-1-5 13:28
标题: 我觉得翻译成测试指导也比较合理,测试准则不太准确了。

作者: juery    时间: 2005-1-5 13:29
标题: 我觉得翻译成测试指导也比较合理,测试准则不太准确了。

作者: skinapi    时间: 2005-1-6 21:48
嗯,我现在也觉得测试指导比测试准则更贴切一些。^_^
作者: Kapok    时间: 2005-1-13 22:19
Originally posted by skinapi at 25-10-2004 17:06:
在MSN上有位测友问到test oracle怎么解释,我的理解是测试准则。在一篇文章中看到如下的说明:
This method—a function that determines if the application has behaved correctly in response to a test act ...


关于testing oracle 在学术界有严格的定义 (当然也有争议)
oracle是对一个程序的formal specification
当给出一个test case 这个specification必须能计算出一个definite value

譬如 对程序P 有一个函数F作为它的specification
对于一个test case t
如果F(t)=d 那d就是用于判断P是否通过t测试的oracle
因为如果用t来运行P 如果结果也等于d 就说明P能通过t测试 如果结果不等于d 就说明P中有一个fault

我觉得“准则”这个词含义好像有点模糊 一些user requirement也能叫做准则 一些设计或编程规范是不是也能叫做准则
而oracle的定义必须是形式化(formal)的 也就是能够通过数学方法来证明的

有一些testing without an oracle或者又称non-testable software的例子
譬如计算sin() cos()之类的numerical program
sin30=0.5大家都知道 但是sin31=?
如果没有一个确定的值来判断程序运算结果是否正确 就是没有oracle
作者: skinapi    时间: 2005-1-15 11:07
感谢Kapok从学术角度对test oracle进行了解释,那根据你的意见,如果从中文表达上来说,把它翻译成什么更贴切一些,谢谢!
作者: Kapok    时间: 2005-1-16 17:48
Originally posted by skinapi at 15-1-2005 11:07:
感谢Kapok从学术角度对test oracle进行了解释,那根据你的意见,如果从中文表达上来说,把它翻译成什么更贴切一些,谢谢!


赫赫 其实翻译真的很难说
我觉得专有名词的翻译就跟protocol一样
必须大家都认同 不然真的不知道什么意思
我老板上课时把它解释成“毛主席的话” 比较有意思
作者: xalee    时间: 2005-2-7 09:59
对于test oracle,Douglas Hoffman在他的一个slide中作了比较详细的说明(请看附件)。不过中文怎么译还需要好好琢磨琢磨。
作者: skinapi    时间: 2005-2-7 12:44
感谢xalee提供资料。^_^
作者: brilliantking    时间: 2006-2-25 11:20
标题: 我对test oracle的理解。
上面提到了test oracle的几种解释:
1.
This method—a function that determines if the application has behaved correctly in response to a test action—is called a test oracle.

2.
A test oracle is a source of expected results for a test case.

3.
oracle是对一个程序的formal specification
当给出一个test case 这个specification必须能计算出一个definite value

譬如 对程序P 有一个函数F作为它的specification
对于一个test case t
如果F(t)=d 那d就是用于判断P是否通过t测试的oracle
因为如果用t来运行P 如果结果也等于d 就说明P能通过t测试 如果结果不等于d 就说明P中有一个fault

4.xalee提供的资料中提到:
What a Test Oracle Is
Two slightly different views on the
meaning of the term:
– Reference Function: You ask it what the
“correct” answer is.
(It tells you the expected result.)
– Reference and Evaluation Function: You
ask it if the program passed the test.
(It tells you if the actual result is OK.)

对比以上各种解释,我觉得oracle是一种用来判定程序是否通过测试的函数,所以test oracle 可以译成“测试判定函数”。
可能有断章取意之嫌,请高手指正!:p

[ 本帖最后由 brilliantking 于 2006-2-25 11:21 编辑 ]
作者: harold_zou    时间: 2006-3-1 09:50
我请教过一个朋友,她告诉我就翻译成测试的oracle,理解它的具体含义就可以了
作者: harold_zou    时间: 2006-3-8 16:04
test oracle 包含两个部分:一是oracle information,是测试执行的预期结果;一是oracle procedure,把测试的实际执行情况与预期结果进行比较。
我认为它是一个测试过程,是一个程序,可以是用于手工执行的程序,也可以是用于自动执行的脚本之类的。
它以测试用例为入口,自动产生或手动产生oracle information(预期输出),然后执行oracle procedure(把预期输出与软件的实际状态进行比较)。出口是测试的结果。
作者: fennek    时间: 2006-3-9 10:46
Collins辞典上对Oracle有这样的解释:
In ancient Greece, an oracle was a priest or priestess  who made statements
about future events or about the truth.
1.prophecy, divination, prediction, prognostication, revelation
2.pundit, adviser, authority, guru, mastermind, mentor, wizard

一般多指带有预言性质的内容。
作者: fennek    时间: 2006-3-9 10:55
4.xalee提供的资料中提到:
What a Test Oracle Is
Two slightly different views on the
meaning of the term:
– Reference Function: You ask it what the
“correct” answer is.
(It tells you the expected result.)
– Reference and Evaluation Function: You
ask it if the program passed the test.
(It tells you if the actual result is OK.)

结合Collins给出的解释,我觉得Test Oracle包含两个部分的内容:
1.参考作用;
2.参考和评估作用;

如果说他的职责就包含这两项内容,不妨把它理解为“测试依据”,或者干脆就叫它Test Oracle,只要明白它是干什么的就可以了,呵呵。
作者: brilliantking    时间: 2006-3-10 15:10
我个人觉得应尽量将外文翻译成中文,用中文来表达外文的意思。
作者: superls    时间: 2006-8-14 17:03
学习一下
作者: panorama    时间: 2006-8-15 17:52
This method—a function that determines if the application has behaved correctly in response to a test action—is called a test oracle.
如果直接翻译过来的意思是:

判定应用程序是否能正确响应一个测试动作的方法或者函数就叫做一个test oracle.

实际上oracle指的是判断一个测试是成功,失败还是可能成功的一个参考函数。这个函数产生一个预期的确定的值,应用程序返回的值如果等于这个预期的值,就判定为成功。否则,就判断为失败。

老外的意思其实就是戏称这个参考函数就像神仙一样权威,和无所不知。所以就用了oracle这个词汇。

如果你要直译,保留老外调侃的味道,那么翻译成:测试神谕,测试神仙,测试上帝,测试权威,测试神使 都可以。

楼上有位兄弟的老板翻译成: 毛主席的话,其实也是一个意思,不过是中国版本而已。呵呵。

如果要意译:直接翻译成:测试参考函数,测试判定函数。都可以。

楼主翻译成判定准则:我觉得不太好,尽管意思楼主理解还是对的。因为准则是一个静态的东西,而test orcale有动态判定过程在里面,不仅包括判定准则,还包括判定过程。

[ 本帖最后由 panorama 于 2006-8-15 17:56 编辑 ]
作者: cr19800604    时间: 2006-8-18 12:37
恩,学习了!
作者: 粉色小乖    时间: 2006-8-28 15:26
标题: 呵呵,学到了
sdlkfj3
作者: AlexanderIII    时间: 2006-8-28 19:02
有好多 词,没有一定的英语底蕴,和中文水平是不能翻译得贴切的

对于翻译水平,只能靠大家共同努力来提高了
作者: alice1002376    时间: 2006-9-8 17:09
3、再看看这句“A test oracle is a source of expected results for a test case”,这说明,它是测试准则的source,而不是resource

这句话更说明了oracle 是准则的意思,测试准则就是测试用例预期的结果的集合。
准则本来就是有指导作用了,硬是要翻译成什么测试指导之类,那就有点英语式中文了
作者: laisiting    时间: 2006-9-12 20:32
标题: 干么一定要译成中文呢,提高自己的英语水平,就可以意会得到了
干么一定要译成中文呢,提高自己的英语水平,就可以意会得到了,有些老外的东西是不能译成中文来理解的
作者: luke8057    时间: 2007-6-27 20:05
原帖由 Kapok 于 2005-1-16 17:48 发表


赫赫 其实翻译真的很难说
我觉得专有名词的翻译就跟protocol一样
必须大家都认同 不然真的不知道什么意思
我老板上课时把它解释成“毛主席的话” 比较有意思



应用的太生动了
作者: skinner    时间: 2011-9-8 11:25
学习了。。。
作者: jackstraw21    时间: 2011-9-21 16:16
ISTQB词汇:
test oracle: A source to determine expected results to compare with the actual result of the software  under  test.  An  oracle  may  be  the  existing  system  (for  a  benchmark),  other software, a user manual, or an individual’s specialized knowledge, but should not be the code.

是否可以翻译成:测试结果参照物
作者: joyyoung    时间: 2012-4-27 14:13
在Rational Unified Process里有这么一个解释:
Test Oracle:
A strategy for knowing whether a test passes or fails. The test oracle includes both the medium through which the output from the test can be observed, and the technique for interpreting what that medium exposes. It provides a means by which observed results can be evaluated against expected results.
作者: brushington    时间: 2016-1-5 18:32
test oracle是测试用例的目标输出 (可以译为“测试目标输出”或者“测试期望输出”),test case是“测试用例”(即测试输入),test criteria是测试准则(一般是覆盖度准则)




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2