软件测试面试题每天讲一题

2019-03-27  本文已影响0人  LinminWang

有很多软件测试面试官喜欢问:在软件测试的各个环节中,你觉得哪个环节是最重要的?

在我看来,如何分析分析需求并且转化为测试范围是排在首位的。理解需求难吗?很多测试从业者都有一种感觉,只要给足够的时间,理解需求这个事儿并不难。但我们常常面临的情况是,任务重时间紧,导致我们常常在没有足够理解需求的情况下进行测试,这时候我们还能有信心说测试过的软件产品符合上线标准吗?

这种情况下,有一套快速理解需求并转化为测试范围的方法就显得尤为重要。而作为面试官,自然也希望能在面试过程中判断求职者是否具备这种能力。这也是我当初把这道题作为笔试题的原因。

这道题并非我原创,当初在将它列为我的笔试题的时候有过这样的考虑:求职者是否在其他地方看到过这道题?如果看到过,对其他求职者是否不公平?如果因为他们提前训练过,他们的面试结果是否会对我做出录用决策产生影响?

一番考虑之后,我仍然决定把它列入软件测试面试题。一方面是因为软件测试从业者中,喜欢看书学习的少,这意味着大多数求职者以前碰到这道题的概率很小,这就保证对大多数人是公平的。反过来说,如果他们之前看到过这道题,也可能意味着这名求职者喜欢学习,有上进心,这也是我希望看到的。况且,我可以通过提问更多的问题来判断求职者是否是有真材实料,减少这一道题的结果可能对我的误导。简单来说就是,求职者回答的好,并不代表求职者一定善于分析需求分解需求,但回答的不好,那一定是在这方面存在不足。另一方面,善于学习的人并不多。那个资料中给出的参考思路在我看来并非最优,如果原封不动的把那个参考思路搬过来,我会考虑这名求职者是否是一个只会“读死书”的人。

面试题

案例分析(给出分析过程和测试点):

有一个饮料自动售货机(处理单价为5角钱)软件。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

当初资料中是按照“因果图测试法”给出的思路,具体如下:

1) 分析需求,列出原因和结果

原因:

    1.售货机有零钱找

    2.投入1元硬币

    3.投入5角硬币

    4.押下橙汁按钮

    5.押下啤酒按钮

结果:

    21.售货机〖零钱找完〗灯亮   

    22.退还1元硬币

    23.退还5角硬币             

    24.送出橙汁饮料

    25.送出啤酒饮料

2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:

    11. 投入1元硬币且押下饮料按钮

    12. 押下〖橙汁〗或〖啤酒〗的按钮

    13. 应当找5角零钱并且售货机有零钱找

    14. 钱已付清

3)转换成判定表:

4)

在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。第16列与第32列因什么动作也没做,也删去。最后可根据剩下的16列作为确定测试用例的依据。

我的看法:

当初的作者是用这道题来介绍“因果图测试法”,是为了使用这个需求来训练测试方法的使用。但如果抛开这个限制,我们是否有其他思考方式呢?

显然是有的。在上一次的分享中,我们提到“分类”的方法对测试人员来说很重要,对这道题其实也可以使用分类的方法来思考,比如:

有零钱找, 且有饮料(红灯灭):

    1. 投入1元硬币,押下〖橙汁〗的按钮,送出橙汁,并退回五角钱。

    2. 投入1元硬币,押下〖啤酒〗的按钮,送出啤酒,并退回五角钱。

    3. 投入5角硬币,押下〖橙汁〗的按钮,送出橙汁。

    4. 投入5角硬币,押下〖啤酒〗的按钮,送出啤酒。 

有零钱找,但无饮料(红灯灭):

1. 投入1元硬币,押下〖橙汁〗的按钮,不能送出饮料。

2. 投入1元硬币,押下〖啤酒〗的按钮,不能送出饮料。

3. 投入5角硬币,押下〖橙汁〗的按钮,不能送出饮料。

4. 投入5角硬币,押下〖啤酒〗的按钮,不能送出饮料。

无零钱找,有饮料(〖零钱找完〗的红灯亮):

    1. 投入1元硬币,押下〖橙汁〗的按钮,饮料不送出来而且1元硬币也退出来。

    2. 投入1元硬币,押下〖啤酒〗的按钮,饮料不送出来而且1元硬币也退出来。

    3. 投入5角硬币,押下〖橙汁〗的按钮,送出橙汁。

    4. 投入5角硬币,押下〖啤酒〗的按钮,送出啤酒。

无零钱找,无饮料(〖零钱找完〗的红灯亮):

    1. 投入1元硬币,押下〖橙汁〗的按钮,饮料不送出来而且1元硬币也退出来。

    2. 投入1元硬币,押下〖啤酒〗的按钮,饮料不送出来而且1元硬币也退出来。

    3. 投入5角硬币,押下〖橙汁〗的按钮,不出饮料。

    4. 投入5角硬币,押下〖啤酒〗的按钮,不出饮料。

总结

相比“因果图”测试法,这种方法的有点和缺点是什么呢?

如果是你,你会怎么选择?

你能否想到其他的思路来完成这道题呢?

今日福利

柠檬班准备了150个常用Linux命令

课程地址:http://www.lemonban.com/front/couinfo/188

可加小米老师微信:

13327316731

暗号:官网

软件测试面试题每天讲一题由柠檬班整理

上一篇下一篇

猜你喜欢

热点阅读