引言
今日与大家分享的这道面试题,亦是我昔日笔试中的一道题目。在那次测试中,约有四十位应聘者参与,却无一人能给出完美答案。令人意外的是,离正确答案最近的回答,来自一位实习中的大四女生。
许多面试官常问:在软件测试的众多环节中,你认为哪一个环节最为关键?
我个人的看法是,将需求分析转化为测试范围,置于首位。理解需求真的难吗?许多测试从业者认为,给予足够的时间,理解需求并非难事。但实际情况常常是,任务繁重且时间紧迫,使得我们在未能充分理解需求的情况下便进行测试。这时,我们怎能确保测试的软件的上线标准?
掌握快速理解需求并转化为测试范围的方法尤为重要。作为面试官,我自然希望在面试过程中考察应聘者的这一能力。这也是我将此题设为笔试的原因。
关于这道题目,我曾有过诸多考量。若求职者之前遇到过此题,是否对其他求职者不公?若他们因提前训练而获得高分,我是否应将其视为录用依据?
经过深思熟虑,我决定将其纳入笔试。一方面,大部分测试从业者中真正喜欢学习与钻研的并不多,所以大多数求职者遇到此题的概率较小,确保了公平性。另一方面,若他们真的喜欢学习并有所准备,这也是我所欣赏的。我会通过更多问题来判断他们的真实能力,避免单一题目的误导。简单来说,良好的表现不代表擅长分析需求,但表现不佳则表明存在明显不足。而真正擅长学习的人,其实并不多。对于给出的参考思路,我认为并非最佳。若原封不动地采纳,我担心难以判断应聘者是否真正有才华。
面试题
案例分析(请给出分析过程和测试点):
设想一个饮料自动售货机(接受5角或1元)的软件系统。当投入相应金额并按下“橙汁”或“啤酒”按钮时,系统会提供相应的饮料。若机器没有零钱找零,红灯会亮并提示“零钱找完”。此时若投入1元并按下按钮,饮料不会被送出且1元会被退回。若有零钱找零,则红灯熄灭,送出饮料的同时退还5角。
在资料中,此案例的分析是按照“因果图测试法”进行的。但除了这种方法,我们是否还有其他思考方式?
我的看法
抛开固有的测试方法介绍,我们可以尝试用分类的方式来思考这个问题。例如:
在有零钱找且可以选择饮料(红灯灭)的情况下:
1. 投入1元,选择“橙汁”,应送出橙汁并退还5角钱。
2. 投入1元,选择“啤酒”,应送出啤酒并退还5角钱。
3. 投入5角,选择“橙汁”,应送出橙汁。投入,选择饮料的时刻已经到来。
在这个神奇的饮料自动贩卖机面前,我们投入,按下按钮,期待着饮料的降临。这台机器的运行规则并非简单直接,需要我们仔细了解。
当机器发出“有零钱找,但无饮料(红灯灭)”的信号时,无论投入的是5角还是1元,无论是选择啤酒还是橙汁,都无法得到饮料。投入的只会触发机器退币机制。
而当机器亮起“零钱找完”的红灯时,情况则有所不同。若使用5角,无论是啤酒还是橙汁,机器都会按照我们的选择送出饮料。但如果投入的是1元,无论选择哪个按钮,饮料都不会出现,投入的也会被退回。在某些情况下,即使投入5角也可能无法获得饮料。
那么,相比于传统的“因果图”测试法,这种方法有其独特的优点和缺点。优点在于可以更具体地模拟真实场景下的各种情况,更贴近实际。缺点则在于其复杂性可能导致测试者混淆,难以快速理解并操作。
面对这样的机器,我会根据自己的需求和面值做出选择。如果我想喝啤酒且只有5角,我会毫不犹豫地投入并按下啤酒按钮。如果我手中有1元且不确定结果如何,我可能会选择保存等待下一次机会。
至于其他思路,或许可以考虑与机器制造商沟通了解更详细的规则和操作指南,或者寻求旁观者的帮助和建议。毕竟,团队的力量是强大的。在团队合作下,总能找到解决问题的新思路和新方法。关键在于我们如何灵活地运用手中的资源并做出明智的选择。 |