前言:

世界在不断的变化当中,你曾经以为最简单的事物未必会一直处于一成不变得状态,就像男女朋友见面,以前都是上来就抱一下,现在见面都有距离了,比如呢双方都戴着口罩,问为什么,因为这样最安全。突然让我想起了那句话,世界上最远的距离,就是你在我身边,我却看不清你的脸。

我只是想说事物呢都处于运动的状态,绝不会一成不变,如果你不随着大环境的转变而做出调整,到最后吃亏的还是自己。最近呢有很多在找测试的工作的从朋友给我留言,其中有个问题感觉很尖锐,今天拿出来和大家做一个分享。有小伙伴说我只是想找一份基础的功能测试工作,但是面试官的问题把我整懵了。于是我私下整理了一些功能测试的面试题 ,看看小伙伴们你们是否也卡咳了。
离职后,我只想找份功能测试,面试官却把我逼上绝境……

正文:

一.在此之前,我们先来重新回顾一下什么是功能测试?

1.功能测试的概念:

功能测试也称黑盒测试,即把测试对象当成一个黑盒子,不需要关注该软件的内部结构及处理过程。采用黑盒测试设计测试用例的方法有:等价类划分法、边界值分析法、错误推测法、因果图法、判定表、正交试验设计法等。

A.等价类划分法,等价类分有效等价类和无效等价类,其中每一条都是一条测试用例。拿手机号为例,有效等价类包括有效移动手机号、电信手机号、联通手机号等,无效等价类包括非手机号段的11位数字、含特殊字符、不足11位数字等。

B.边界值法,如需求要求“1-10个字符”,有效边界:最大值1、最小值10、有效最小次边界2、有效最大次边界9;无效边界:无效最小次边界0个字符、无效最大次边界11个字符、大于11等。

C.错误推断法,依据经验和直觉推测系统中可能存在的各种错误,有准对性的编写检查这些错误的测试用例。例如列出合适的错误推荐清单、确定需要进行错误猜测的测试子项、对测试子项进行错误猜测等。

D.判定表法,包含一下五部分

条件桩:列出所有可能的条件

条件项:列出针对它所列条件的取值,在所有可能的条件下的真假值

动作桩:列出所有可能的操作

动作项:列出在每一种条件取值组合的情况下,执行动作桩中的哪些动作。

规则:任何一个条件组合的特定取值及其相应要执行的操作

在这里推荐一个软件测试交流群,qq:642830685,群中会不定期的分享软件测试资源,测试面试题以及行业资讯,大家可以进群一起交流技术喔。
也可以关注我的微信公众号:程序媛一菲,领取硬核资源啦。

二.带大家会回顾了功能测试的概念后,我们开始进入正题,看看那些让你头疼的功能测试面试题。

问1:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?

答:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
根据用户的一般使用习惯,来确认是否是缺陷;
与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷。

问2:给展示一个app界面,你如何编写测试用例?

答:测试用例设计的话,首先是正常的使用,就是点击页面中的按钮、输入正 常的查询等等;
其次,反向用例设计,即非正常的测试用例,比如过长的字符、非法字符等等,
最后,功能测试一般采用就是黑盒测试的方法(边界值、等价类等等)。

问3:你如何进行链接测试?

答:首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;
其次,测试所链接的页面是否存在;
最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向页 面,只有知道正确的URL地址才能访问。

问4:你如何进行表单测试?

答:首先,保证测试提交信息的完整性,如注册、登录、用户资料修改等;
其次,输入表单内容是否能够包含特殊字符(如sql注入等);再次,文本框内容 是否有长度限制(如过长字符超出数据库该字段的设置长度而报错)。

问5:功能测试主要有那些测试方法?

等价类划分、边界值、因果图划分、正交、场景、随机、错误推断、测试大纲

A:等价类划分法:
有效等价类和无效等价类:
案例:比如一个登陆输入框,规定只能输入中文,同时长度为6-10,

通过等价类设计测试用例:

测试用例中重要的三步: 输入 操作 预计结果 如果与预期结果不符合就是bug

a.有效等价类:

输入:输入长度为6的中文,输入的为王小明,这就是有效等价类

b.无效等价类:

1: 输入长度为4的中文,输入位小名,点击登录,预计结果长度不符合要求

2: 输入长度为6,但是是英文的,点击登录,预计结果 请输入中文

3: 输入长度为4,而且不是中文的,是数字,1234,点击登录,预计结果请输入中文并且长度为6-10位

4:输入长度为12而且不是中文的,比如qwertyuiopas,点击登录,预计结果请输入中文并且长度为6-10位

B:边界值法:

应用场景:边界值往往和等价类划分法一起使用,形成一套更为完善的测试方案,找到有效数据和无效数据的分界点,

注解边界值一般和有效等价类划分法配合使用:

案例:比如一个登陆输入框,规定只能输入中文,同时长度为6-10,

上面输入框的边界的:如果固定大于等于6,并且小于等于10,

那左边界就是 5和 6

右边界是:10 和 11

测试用例:

1:输入的为王小明,这就是有效等价类和边界值的结合使用

2:输入小名,这就是边界值为5,同时有效等价类

3:输入欧阳致远家,这就是边界值10,同时等价类有效

4:输入欧阳致远啦啦,这就是边界值为11,同时有效等价类

C:因果图及判定表法:

应用场景:在一个界面中有多个控件,如果控件之间有组合关系或者限制关系,不同的控件组合会产生不同的输入结果,为了弄清楚不同的输入组合会产生咋样的输出结果,可以使用因果图及判定表法:

判断是儿童还是青年还是成年人:

条件1:年龄 age

条件2:身高height

条件3:体重weight

输入年龄5,体重80公斤,身高170,查无此人

输入提高80,身高170,输入年龄20,成年人

输入年龄5,体重30,身高60,小孩

D:正交表:

应用场景:在一个界面中有多个控件,每个控件有多个取值,测试时考虑不同的控件不同取值之间的多种组合,但组合数量巨大(>20种,20种以下一般考虑判定表因果图),没有必要全部测试,如何从所有的组合中挑选最少、最优的组合进行测试,可以使用正交排列法。

正交表的测试思想特点:

1.使用每个控件的每个取值参与组合的次数是基本相等的(均匀的)

2.在所有的组合数据中,选取数据时,应该均匀的选取,而不能从局部选取。

3.如果时间允许,尽可能的多测一些组合

正交表:主要针对一个输入框里面可能有多个值,而且数量巨大

年龄 体重 省 市 县

比如:输入年龄 18,体重45,山西 大同 阳高

E:测试大纲法

适用场合:程序包含多个窗口,每个窗口中又有多个功能,这些功能之间又有一定的联系。为了梳理清楚窗口之间以及窗口不同功能之间的联系,使用测试大纲法。

F:场景法

适用场合:大多数的业务比较复杂的软件系统都适合使用场景法(便于将各个功能点串起来,便于形成完整的业务感觉)是一种基于软件业务的测试方法,把自己当成最终用户,尽可能的模拟用户在使用此软件的操作

案例:

场景一:比如买东西:输入袜子,点击查询,出现列表,点击七匹狼,点击进入详情,点击加入购物车,点击去购物车结算,点击收获地址,点击支付,支付成功

场景二:比如买东西:输入袜子,点击查询,出现列表,点击七匹狼,点击进入详情,点击加入购物车,点击去购物车结算,点击收获地址,点击取消支付

G: 错误推断法

基于经验和直觉推测程序中所有可能存在的各种错误 , 从而有针对性的设 计测试用例的方法

在进行灰盒测试的时候经常用到此方法

三.下面是我和几位面试完的朋友交流发现,有些朋友还被问到概念题,我赶忙又去搜集了下关于概念方面的题目,不要太感动。

1、UI:这是最能直观反应我们系统的最好地方。就像现在是一个看颜值的时代,一个好看的美女 | 帅哥,就会有一种看一眼,再看一眼,我还要看一眼的感觉,这个时候这个人是好是坏,都会暂且不伦,就一句话,好看就完事了。

2、功能:功能是最能反应一个系统的强大之处。就好像一个人的内涵,我们常常都会说,你看别人家的孩子多牛啊,你看别人家的老公多成功啊,你看别人家的妻子多贤惠啊,咳咳。。。跑偏了。我们可以这样看,XX博士精通8国语言汉、韩、日、英、德、法、俄、匈,精通琴棋书画,擅长各类运动,身高180cm、体重75kg,XX研究院教授,兼职健身教练,还会客串XX美食节目等。那么就可以看出这个人的技能很多,人的技能转换成应用就是功能。

3、易用性:就是看这个系统是不是很好操作,很好上手。就好像我们使用搜索引擎,输入自己的内容,就可以出现想要的答案;再比如,我们再领取了什么优惠券,或者说我们跨平台登录之后,自动返回系统主页,也就是对用户的一种引导性操作,很人性化;之前使用过一个app,就是点击一个按钮之后,弹窗提示请签约,但是不会跳到签约界面上,自己找半天才找到签约的地方,这种在操作上就会流失用户,体验就没有那么高。

4、网络:网络的影响会影响到用户的体验,一般遵守258原则是最好的。2秒内反应,欢呼雀跃;5秒内反应,还能接受;8秒之后,不能忍受。就像我们叫一个人,那个人立刻就回答你,我们就会觉得被尊重,而一个人半天不理你,是不是可能心里就会有点其他的想法。网络我们可以测试联网,断网,弱网,切换网络等等情况。

5.稳定:我觉得这是一个系统的健康。就好像一个人三天两头的就感冒生病,你觉得他的这个身体系统会很稳定吗。

6.兼容:不管是app,还是web都会有兼容的测试。web兼容各种浏览器以及不同浏览器的版本,app的话系统的选择、厂家的选择、分辨率的选择、运行内存的选择等等。

好了。以上就是一菲和大家分享关于功能测试方面的面试题,欢迎大家补充或者指正。软件测试是技术为王的工作,只要及时汲取新的知识,不断的查缺补漏,然后充盈自己,相信你的运气不会太差。最后祝愿大家都能找到心仪的工作。

在这里推荐一个我自己创建的软件测试交流群,qq:642830685,群中会不定期的分享软件测试资源,测试面试题以及测试行业资讯。大家可以在群里积极交流技术。

写在最后:

假如生活欺骗了你,不要悲伤不要着急,因为明天的生活还是要继续。放弃两字15笔,坚持两字16笔,放弃与坚持在一笔之差!差之毫厘,失之千里,持之以恒,就是胜者!所以朋友们加油吧,只要不放弃,你终会到达属于自己的星辰大海。
离职后,我只想找份功能测试,面试官却把我逼上绝境……