前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每天一道面试题——计算器

每天一道面试题——计算器

作者头像
张树臣
发布2019-04-28 11:54:19
8600
发布2019-04-28 11:54:19
举报

写在前面

作为软件测试工程师,我们都会经历面试。我常对我的学员说,面试的时候,对于面试官提问的任何问题,不要着急回答,先花几秒钟时间思考面试官提问这个问题的目的:他们为什么要提问这个问题?他们希望听到什么样的答案?他们希望了解求职者哪方面的素质?

思考这些问题有助于避免“答非所问”。

得益于网络,现在可以很轻松的从网上搜索到很多的面试题以及回答的思路。需要注意的是,网上非常多的“参考答案”并非正解。比较典型的就是“说说你的职业规划?"“你对加班怎么看?”

曾经作为面试官,在人才选用方面,我的一贯原则是:

  • 我需要寻找那些不会沉迷于系统的复杂性、遇到困难的问题时能够分解为可执行的步骤并能最终解决的人。
  • 我需要有执行力的人,他们会被紧迫感激发而不是吓跑。
  • 我需要能够在创新和质量中掌握平衡的人,他们不应该只满足于发现更多的bug。但最重要的是,我需要能看到他们的激情。
  • 我需要那些真正想做测试的人。

我会通过一系列的问题来判断求职者是否是我需要的人才,比如:说说计算器的测试点?可以参考以前分享的一篇文章《如何面试测试工程师》。

在我的标准里,我希望从求职者身上看到的其中一项素质,就是求职者是否具备“分类”的思维习惯。

初学者在学习测试用例设计方法的的时候,都会碰到一个名词叫“等价类划分”。这个方法简单点说,就是分类思考的应用。

我在课堂上给学生讲解这个方法的时候,都会使用去饭馆点餐的过程来介绍它:我们去到一家餐馆,服务员会给我们一张菜单。上面会按照“热菜”、“凉菜”、“饮品”这些项目进行划分,我们判断这家餐馆的饭菜好不好,一般不会去尝试所有菜品,而是从每个分类中挑选几样。如果觉得不错,我们就会认可这家餐馆的饭菜质量。

同理,判断系统中某个功能,比如一个输入框是否有问题,我们也是按照“分类”的思路挑选几个输入项进行测试,据此判断这个输入框质量是否达标。这里用到的就是等价类的思想。

正文

文章篇幅所限,本文只简单讨论一下加法如何测试。下图是win7系统中的计算器,我们以此为例:

(小技巧:我们可以在运行中输入calc命令来快速调用计算器)

虽然这个软件很简单,但是加数的选择范围可以说是无穷尽的,我们不能能列举完。所以我们要对这些加数进行分类,然后从不同的类别中选择有代表性的就可以了,就好像我们点菜一样。现在的问题是,如何进行分类呢?

第一种:加数可以是正整数、正浮点数、零,负整数,负浮点数。两个加数,各种五种选择,排列一下就是25种情况。(2+0 和0+2 视为两种不同情况)

第二种:分类的标准是有无进位,这样我们至少有两种情况需要测试:有进位和无进位

第三种:按照加数的位数来分,例如加数可以为一位数,两位数,三位数,四位数......如果这个计算器支持32位数之内的运行,那么加数就有32位选择。在这种情况下,我们没有必要把这32位选择都尝试一遍,在超过10位数之上的,我们可以每五种为一类,如果其中一个通过测试,我们可以认为其他的也没有问题,例如,15位数到20位数,我们可以选择16位数进行测试。

第四种:以加数的个数来分,2个,3个,4个

第五种:.......

从面试题反推用例设计

说到这类,带出来的一个更重要的问题是:怎么写用例呢?又怎么设计测试数据呢?

给一个参考思路:

总结

很多人都听过“等价类”这个概念,但具体怎么使用呢?能做哪些扩展呢?

它的核心思想是分类,并非只有输入框能分类, 我们是对输入和输出进行分类。什么是输入、输出呢?哪些模块可以使用“等价类”的思想测试呢?欢迎在评论区留下你的见解。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试经验与教训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档