水杯测试----误人子弟啊!

发表于:2011-10-08 13:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Mr.曾    来源:51Testing软件测试博客

  近来有位朋友在面试时遇见一个问题,其实这个题目很多人都听说过,那就是水杯测试

  在51或者各大测试网站上都有过水杯测试的文章,不少公司也将水杯测试当做面试题目,其实就软件测试这个行业而言,我个人觉所谓的水杯测试其实是一个失败的问题,不管是回答这道题目的人还是出这道题目的人,我都想说,水杯测试是对测试员的误导,也是一种错误的认可,就水杯测试本身而言是对用例的设计方法的一种教学案例,培训新人时也许用的到,但是我们有很多人却将这个水杯测试的功能无限放大,甚至希望通过这个测试来选择一些优秀的人才,来看看测试员是否具备测试思维。

  在这里我简单的分析一下水杯测试,首先水杯是一个产品,是一个实实在在存在的东西,如果你的公司是以实物产品为主打的,那自然无可厚非,不过与其说这样是测试,倒不如说是质检,质量检测,水杯测试和我们软件测试这个行业真的是没有多大关系。

  其次软件测试的基础,是对业务的了解,在测试的最开始的环节是对需求的掌握,是对业务流程的掌握,而试问水杯测试却是绕过了这两个环节,能够用在水杯测试上得测试思维实际上少的可怜,也许有些小聪明的新人会去问问有什么需求。是用来做什么的,但是这还是不够的,他缺少一个构成软件的流程,业务流程,或者说先后顺序,你会去考虑没有加水的时候能不能喝吗?但是在软件的时候经常需要考虑如果没有上一个操作能否进行下一个操作,水杯的功能是单独的,而不是贯通性的。

  在这里也引申一下,所有的实物测试均和软件测试有本质上得不同,如果我们只是针对功能进行测试的教学,那么是可以借用的,可如果是在了解测试基础后就不需要再去过多的研究,而公司招人更不应该将此作为一个参考,如果根据这类问题你招到得员工看似优秀考虑问题较为全面而实际上却不能将业务联系起来,其真实能力却还是需要培训。。。

  下面我们来对比已知的水杯测试经典用例

  水杯测试

  -------以下内容来自互联网,由于流传甚广,没有办法确定这个案例的由来--------

  测试项目:杯子

  需求测试:查看杯子使用说明书

  界面测试:查看杯子外观

  功能度:用水杯装水看漏不漏;水能不能被喝到

  安全性:杯子有没有毒或者细菌

  可靠性:杯子从不同高度落下的损坏程度

  可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

  兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

  易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

  用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

  疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

  压力测试:用根针并在上面不断加重量,看压强多大时会穿透

  跌落测试:杯子加包装(有填充物),在多高的情况下摔下不破损

  震动测试:杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输

  测试数据:

  其中应用到:场景法、等价类划分法、因果图法、错误推测法、边界值法等方法

  期望输出:

  该期望输出需查阅国标、行标以及使用用户的需求

  说明书测试:检查说明书书写准确性

  相信这份文档不少朋友已经通过各种途径看过或者听说过了,然而实际上这种测试甚至可以列为无效测试,原因如下。

  原因之一,从软件的角度来讲,我们只需要关心能不能实现而不用考虑实现的质量,但是实物测试不同,大家都有喝过粘稠状的液体,比如玉米糊,乳酸奶等,一旦液体的粘稠度超过了一定的限度,我们要考虑的就不只是能不能被喝到,而是怎样喝道,假设粘稠度足够高,那么很有可能这些物质就会粘在杯底,不管是喝得时候还是对水杯做清洁的时候都会极为不便,这一点是功能度。

  原因之二,水杯作为日常生活中离不开的生活用品,与我们的健康息息相关,而我们的用例思想还停留在产品的使用上,这里面就有一个影子,因为软件关心的就是能不能使用,毕竟不管软件能不能使用都不会影响到我们的健康,而水杯不然,这里我提出一点,水杯装的液体在什么情况下不会影响到人体健康,比如塑料杯在装开水时就会因为化学作用产生一些对人体有害的物质,纸杯在温度过高时,内部的一层油膜也会溶解在液体里,诸如此类的因素在软件上都是不必考虑的因素,而作为实物来讲,确是不容忽视的因素,这一点是针对所谓的水杯测试的安全性。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 你的苦咖啡
    2012-2-15 17:39:02

    我是非计算机专业的,毕业半年一直做手机软件测试(黑盒),一直觉得没啥技术含量,真的门槛低,所以做起来也没多大劲头。前几天去参加一个面试的时候,笔试遇到了水杯测试的这道题目,当时完全不知道啥意思,毕竟面试前我一点都没有准备,对测试的理论知识也了解的很少。面试后知道自己该好好的补课了,因为突然想在这一行做下去了。

  • yxygood
    2011-11-30 13:39:40

    水杯测试,用于面试是可以的,但是,要看面试官要从这道题的回答中获得什么。其实,水杯测试主要测试的是面试者的思维发散和全面性,而不在乎水杯测试的测试本身。当然,靠这一道题来权衡一个测试者,也是不对的。
    再者,软件测试其实也是质量保证中的一个环节,为什么不能是质量保证呢,在我看来,楼主对测试的认知有点儿狭隘了,因为软件测试如果真的做全了,各方面都考虑到了,那就是质量保证了,而不仅仅对软件的一种简单测试。

  • 1977fx1250
    2011-11-30 11:27:38

    我不太同意LZ的说话。怎么说好呢。为什么我们软件测试的思想只是停在是否能使用上呢?其实实物测试和软件测试之间的思想是可以互相借鉴的。实物有安全性问题,软件就没有么?实物要联系实际情况,软件就不需要么?什么叫做软件测试只关注能不能实现功能,只能实现功能的软件?为什么微软要做图形化界面,而不是一直专注于DOS?这些问题LZ有想过么?

  • ifthenelse
    2011-11-14 18:42:52

    不管是管理层还是技术层,中国缺少一些有思想的人,虽说名言说“真理往往掌握在少数人手中”,但在IT业界,我们国家与发达国家比真的是差距不小。楼主的文章是老文章又被顶起来了,说明不管是支持者还是反对者都认识到了这一点,也许这就是一个过程,也许再过十年,我国的IT行业真正的从模仿和劳力密集型转向到有思想的架构与设计的层次来,而测试也正是这块的先锋(个人观点,测试是结合了开发、设计、需求各方的技术先驱部队). 推荐大家关注此贴,顶起来是件好事。

  • Mr.曾
    2011-11-14 17:38:22

    回复ifthenelse : 呵呵这帖子有段时间了,没想到被翻出来了, 其实我本身表明的就是针对水杯测试被滥用误用这点的,关于水杯,回顾了一下 大家的评论 ,反对的都是在水杯的思维发散上,前段时间针对这点写了一篇文章,只是投了搞不方便发表出来,要1月份才有答案了,这里提一下,无边际的发散是否是好事? 选择多了会不会出现不知道选什么的情况,针对水杯,不是牢骚什么的,实际上我能说出很多大家都想不到的测试方向,只是觉得没有必要而已,呵呵 文笔功力太差 让大家误以为我针对的是水杯测试,实际上我针对的是水杯测试的滥用误用 这里再说一下了呵呵

  • ifthenelse
    2011-11-14 16:09:48

    补充一点:楼主这篇文章很好,很全面,观点上主要是太偏激了点,题目太吓人,如果是我写的话,肯定会写在“水杯测试--面试官你真懂它吗?"之类,“误人子弟”是太夸张了点。另外,做技术人员容易太较真,所以对于面试这种,很多是没标准答案的,没必要一定分出对错来。楼主特别让人欣赏的是能敢于批判这咱一轰而上的坏风气,确实有很多不怎么高明的面试题到处再被利用,可以说国人少了点创新精神。我也想对那些学样的公司们说你面试不是为了招合适的人吗?别人的面试题就不要乱搬。

  • ifthenelse
    2011-11-14 15:58:02

    总感觉楼主言语之间蕴藏着一丝丝牢骚语句,这里我想说明以下几点:1.如果100个面试者出题都出了这个水杯测试问题,他们想要的结果或说角度就未必一样,它只是用来考核的一个例子,你学校里参加考试时也话有这样的经历,有试题出错了,成绩上也并不是给所有人少扣这题的分数,而是有些考生写明了此题有错或此题无解之后老师才给分,所以水杯题面试时如应试者很优秀也许他会提出异议,那教官也就满意了; 2. 水杯的测试与软件的测试并非如你所说有本质区别,而恰是本质无区别。测试是QA的一种主要手段,你硬要说水杯与软件构别的话,那你也可以说ERP软件和电子商务也有区别,难道ERP软件公司的面试就不能提电子商务方面的题目吗?你要知道面试是种手段,测试也只是种手段,用微软测试考官常说的一个句来说测试关键要有“sense“. 另外,我也没听说应聘测试的人员通过了这个面试题就算通过了,这个题目只是作为一个初级的考sense的。以后的软件也有很多会与硬件结合的,物联网时代更会是如此。这用例本身不错,只是现在太多人喜欢拿现成的,滥用了而已。
    你真的完全没必要揪着这题目不放,眼光放宽点。愿你几年后再年过问题时有新的收获!

  • lzp0214
    2011-11-04 21:51:49

    不要把眼光顶在水杯上面。。把思维放大点,水杯只是一个例子而已。任何对象都能拿来测试。只是看你能考虑多少与对象有关的……

  • sophie_wang
    2011-10-22 17:24:42

    同意Mr.曾的看法。
    “水杯测试”只是将软件测试实物化,只是一种比喻,用于帮助人们理解软件测试的各类测试。作为软件测试人员,了解了解各类测试的目的还可以;作为面试题,就不太专业了。水杯毕竟与软件没有直接关系。

  • Mr.曾
    2011-10-18 12:16:05

    欢迎来我博客空间讨论
    实在受不了这个的回复了,太烦了,回复半天回复不起
    水杯测试地址:http://www.51testing.com/?uid-434556-action-viewspace-itemid-246491
    我的博客地址:http://www.51testing.com/index.php?uid-434556

  • Mr.曾
    2011-10-18 12:11:48

    回复 Carl_Lew:  呵呵。我也只是一个新人,不过,这个基本的测试素养也太基本了吧。。。。 现实很残酷的,如果对测试的认知停留在这个阶段,那公司为什么要养你呢,测试的门槛很低但也是一个专业方向,而顺着你的思想来说的话,随便来个人都能测试,那公司还这么辛苦的招人面试做什么呢?这点就是误导了,不要把测试看的太简单了,一个好的测试员能够驱动和掌控一个项目,一个差的测试员只能作为测试机器,点一下动一下,对于新人来讲,不得不说这是一种职业上的误导,测试的简单只是相对而言,并且也只是入门简单 ,而并不是随便找个人就能胜任的,同时,对一个项目进行测试那么测试的方向是有排序的,我个人的理解优先要考虑业务,然后是需求,最后才是功能点,而水杯测试只考虑到功能点,这也造成了很多人认为测试很简单,不深奥,

  • Carl_Lew
    2011-10-18 09:46:34

    曾大师把测试的所谓业务流程看得太复杂了。测试的目的,除了白盒外,最终都是检查需求是否能实现,比如说能否盛水,图案是否正确,是不是经摔等等。杯子测试当然不能覆盖软件测试所有内涵,因为从功能测试角度看,他只实现了一个单一功能,不像软件的功能是多重的,而且还牵涉到所谓的“流程”。但我想用他来考察应试者的基本测试素养已经足够了吧.

  • Mr.曾
    2011-10-17 22:19:17

    Carl_Lew  呵呵 软件测试基础确实不难。但也不是算不上高深。 你这么说也只是说明你对软件测试了解不足、言归正传。 你所说的懂了水杯测试也就懂了软件测试,而我在文中的观念恰恰相反懂了水杯测试 与懂了软件测试之间没有什么联系,因为实物和软件本身侧重点不同。你没办反透过水杯来测试一个业务流程。更不可能判断出你所使用的用例对整个流程的覆盖,你能够判断的仅仅是单独的功能点的实现。并不能串成一条线

  • Carl_Lew
    2011-10-17 21:20:14

    sorry,说错了,水杯测试和软件测试是有关系的,懂了水杯测试的思路,软件测试也就不难了,软件测试没那么高深。

  • Mr.曾
    2011-10-17 19:41:59

    回复Carl_Lew  你的思想。。。呵呵。。。真不好说啊。。 你要是觉得公司有义务去培养你。那我无话可说。  公司选择员工首先看的是员工的潜力。以及能够给公司带来盈利,这是社会 不是象牙塔。高考升大学本身就是中国教育上的问题,请不要把他和工作混淆了。 社会和学校是不一样的 呵呵  软件测试职业的面试并且还是专业面试题目,你现在和我说  水杯测试和软件职业没有必然联系。 我真不知道你是在赞同我呢还是在自己踩自己了 呵呵

  • Carl_Lew
    2011-10-17 17:31:13

    人家用杯子测试来考察你应试者基本测试素养的,和软件测试之间没有严格的关系。就如你要进大学必须要参加高考一样,那些题目能代表大学里的知识吗?中学里求速度值是路程除以时间,大学里求速度是路程对时间的微分~钻牛角尖,误导新人!

  • Mr.曾
    2011-10-15 20:54:10

    回复andyyoung    我并没有钻牛角尖,我只是针对水杯测试的价值和对新人的一个误导来说的, 诚然水杯测试能够考验到思维,但是这种根据水杯实物散发出去的思维并不是软件需要考虑的,比如,我要考虑到液体与水杯材质产生的化学反应, 这算是发散思维了。可这种思维方向对于软件行业本身有什么意义呢,强调下,我在文中提出的观点是水杯测试对新人的误导以及根据水杯等实物散发出得思维对于软件测试所需要的思维是有所差别的,这点是不应该作为考核的

  • andyyoung
    2011-10-14 17:57:40

    这个论坛的楼层是倒着来的,当有新的评论进来后,所有的楼层都变了。评论中提到的楼层就对不上了,很明显的错误。唉。。。。

  • andyyoung
    2011-10-14 17:55:26

    水杯测试的本质是检测思维方式,楼主专牛角尖了。。

  • Mr.曾
    2011-10-10 08:42:00

    回复15搂,这种排序的确很老火啊,而且也不方便大家交流

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号