腾讯十年经验总结分享!软件测试经典面试题!你招架的住吗?

2132 篇文章 118 订阅
1306 篇文章 21 订阅

在这里插入图片描述

1.你的测试职业发展是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断更新自己改正自己,做好测试任务。

2.你认为测试人员需要具备哪些素质

做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起  2、些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时候做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误。

3.你为什么能够做测试这一行

虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。

4.测试的目的是什么?

测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。

5.测试分为哪几个阶段?

一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试

6.单元测试的测试对象、目的、测试依据、测试方法?

测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。

7.怎样看待加班问题

加班的话我没有太多意见,但是我还是觉得如果能够合理安排时间的话,不会有太多时候加班的。

8.结合你以前的学习和工作经验,你认为如何做好测试。

根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。

9、linux查看文件用什么命令,查看进程用什么命令?

查看文件内容的命令有 more less head tail cat

查看进程:ps -ef | grep 进程号

查看日志文件常用:less、view

10、查看日志常用什么命令,主要查看什么内容?

查看日志常用less命令或者view命令。

主要查看程序运行的记录,比如支付失败,后台就有报错信息打印到.log日志文件中,就可以通过分析日志信息来初步定为问题。(补充:同时也去查询数据库,分析订单数据,查看支付状态等等)

PS:日志就是.log的文本文件,和.txt一样属于文本文件。vi或者vim编辑器属于记事本软件,一般不会用来查看日志。

11、软件测试用例设计/测试用例的内容/管理工具?

参考:以场景(故事)为驱动的测试设计,并且针对测试数据的选择上面通常结合等价类划分,因果图,边界值,错误推测。

测试用例的内容:标题、测试环境、测试输入数据、测试步骤、期望结果、测试结果、测试时间、测试人员

管理工具:禅道、QC

12、你对测试最大的兴趣在哪里?为什么?

回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案参考:

最大的兴趣,感觉这是一个有挑战性的工作;

测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣,

通过自己的工作,能使软件产品越来越完善,从中体会到乐趣。

回答此类问题注意以下几个方面:

1、尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。

2、表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。

3、不要过多的表达你的兴趣在招聘企业的范畴之外。比如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,而你的兴趣是在C类语言程序的开发。

13、你的测试职业发展是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的点要求自己,不断的更新自己改正自己,做好测试任务。

14、现在有一个登录页面,有一个账号和一个密码输入框,一个提交按钮。请问登录功能怎么设计测试用例?

此题的考察目的:

1、了解需求(测什么都是从了解需求开始);

2、是否有设计 Test Case 的能力

3、是否熟悉各种测试方法;

4、是否有丰富的 Web 测试经验;

5、是否了解 Web 开发;

我们可以跟面试官了解确认需求:

1、登录界面应该是弹出窗口式的,还是直接在网页里面;

2、账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);

3、界面美观是否有特殊要求?(即是否要进行 UI 测试);

测试用例设计:

测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑:

一.功能测试(Function Test)

1、输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)

2、输入错误的账号或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)

3、登录成功后能否跳转到正确的页面

4、账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)

5、账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)

6、记住账号的功能

7、登录失败后,不能记录密码的功能

8、账号和密码前后有空格的处理

9、密码是否加密显示(星号圆点等)

10、牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用

11、登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确

12、输入密码的时候,大写键盘开启的时候要有提示信息。

13、什么都不输入,点击提交按钮,看提示信息。(非空检查)

如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进群
902061117,群内会有不定期的分享测试资料。

二. 界面测试(UI Test)

1、布局是否合理,两个 文本框和一个按钮是否对齐

2、文本框和按钮的长度,高度是否复合要求

3、界面的设计风格是否与 UI 的设计风格统一

4、界面中的文字简洁易懂,没有错别字。

性能测试 (Performance Test)

1、打开登录页面,需要几秒

2 、输入正确的账号和密码后,登录成功跳转到新页面,不超过 5 秒。

三、安全性测试(Security Test)

1、账号和密码是否通过加密的方式,发送给 Web 服务器

2、账号和密码的验证,应该是用服务器端验证,而不能单单是在客户端用 javaScript 验证

3、账号和密码的输入框,应该屏蔽 SQL 注入攻击

4、错误登录的次数限制(防止暴力破解)

5、考虑是否支持多用户在同一机器上登录

6、考虑同一用户在多台机器上登录

四、可用性测试(Usability Test)

1、是否可以全用键盘操作,是否有快捷

2、输入账号,密码后按回车,是否可以登录

3、输入框是否可以以 Tab 键切换

五、兼容性测试(Compatibility Test)

1、主流的浏览器下能否显示正常已经功能正常

2、不同的平台是否能正常工作,比如 Windows, Mac

3、移动设备上是否正常工作,比如 iPhone, Android

4、不同的分辨率

15、GET和POST有什么区别?

1、Get通过URL来传输数据,POST通过URL和请求体传输数据,在请求体中的数据,我们是无法直接观测到的。

2、在安全性上,GET没有POST安全。但是他们都不是绝对安全。因为POST中的数据,可以通过抓包获取

3、在数据大小上,GET有限制,而POST没有上限。

16、你在公司当中,是怎么分析定位BUG的?

1、在公司里面,我们定位BUG必须借助工具才能完成。

例如我们可以使用fiddler抓包,抓取接口的信息,如果是前端问题,那么在前端输入信息,和fiddler抓到的请求肯定会不一样。如果是接口的响应数据有问题,那么就是后端BUG。

2、怎么深入定位后端里面的BUG呢?

这个时候,我们需要借助日志来完成,我们按照开发提供的日志文件路径,来使用关键字搜索对应时间所产生的错误日志,根据日志的描述,来判断问题出在哪个方面。如果日志文件看不懂,可以让开发帮助查询分析。

3、一般BUG的来源有这么几个:

开发修复BUG引发的BUG

开发新功能引发的BUG

开发使用了依赖的第三方插件导致BUG

缓存导致的BUG

17、GET和POST有什么区别?

1.Get通过URL来传输数据,POST通过URL和请求体传输数据,在请求体中的数据,我们是无法直接观测到的。

2.在安全性上,GET没有POST安全。但是他们都不是绝对安全。因为POST中的数据,可以通过抓包获取

3.在数据大小上,GET有限制,而POST没有上限。

18、缺陷中应该包含什么元素?严重等级一般有哪些?

分析:这个问题和上面测试用例一样,每个公司的要求可能都会不一样;
回答:主要元素有:标题、BugID、复现步骤、实际结果、预期结果、截图、日志等;软件缺陷等级一般有四种,致命(程序奔溃)、严重(金额计算错误、数据出错)、一般(不影响使用但是会造成一定的麻烦)、优化(字体字号不统一)

19、MySQL的常用命令有哪些?

分析:数据库知识,是测试工程师必备的一个基本技能,在面试过程中也是经常会遇到的一个考点。对于刚入行的测试,对数据库知识的要求不会太高,只要求能掌握基本的增删改查语句即可。关于数据库的知识,在后续的时间里,也会慢慢的整理出来,供大家学习、参考。

回答:这里只给出几个标准的语法结构:

增:insert into 表名(列名) values (数据);
    如:在stu表中插入id为001,姓名为张三的学生,(insert into Stu(stu_id,stu_name) values (001,‘张三’);)
        删:delete from 表名 where 指定数据;
    如:在stu表中删除id为001,姓名为张三的学生:(detele from Stu where stu_id=‘001’ and stu_name = ‘张三’;)
        改:update 表名 set 改变项 where 指定数据;
    如:在stu表中修改id为001的学生姓名为“张三”:(update Stu set stu_name = ‘张三’ where stu_id=‘001’ ;)
        查:select (查询项) from 表名 where 指定条件;
    如:在stu表中查询id为001,姓名为“张三”的学生信息:(select * from Stu where stu_name = ‘张三’ and stu_id=‘001’ ;)

20、你未来的职业规划是什么?

分析:职业规划问题,是所有面试中最常问的问题,问的人可能是HR、部门主管、经理、甚至是董事长。同一个问题,问的人不同,想要获取的信息也肯定是不一样的。HR更多的想看你在公司的稳定性;技术主管可能更想知道你是否真的喜欢测试这个岗位,后期是否会主动学习型新的技能等;而经理更多的是看你的职业规划符不符合公司的发展方向;软件测试工程师的发展方向主要有:测试开发、产品经理、测试转开发、测试大牛、讲师等岗位;

回答:HR:如果是HR问的话,多从稳定性的角度回答,如:家人、朋友都在公司附近,或者喜欢贵公司的文化氛围等;

技术:回答之前可以先简单介绍一下自己为什么选择软件测试这个职业,以及自己对这个职业的看法,最后再回答自己的职业发展方向即可;

经理or董事长:这个回答回答起来的话还是比较难把握的,因为在面试时,面试者往往对公司的发展方向不是非常了解,所以在回答时可以再带一句,“具体的发展方向,还需要公司的发展方向去调整”。这样回答就会保险一些。

21、还有什么想要问我的吗?

分析:这个问题在每个面试的尾声都会被问到,直接说没有,会让HR觉得你不关心这个岗位,问的多了又会显得面试之前没有做好充分的准备。所以问题一般控制在两到三个比较好。

回答:

1、公司的研发团队目前是什么规模?开发、测试分别有多少人?
     
2、公司的业务方向是什么?

3、如果我入职之后,我的工作职责是什么?


最后:如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进群 902061117,群内会有不定期的分享测试资料。

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

好文推荐

2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!

什么样的人适合从事软件测试工作?

软件测试和软件开发哪个发展更好

那个准点下班的人,比我先升职了…

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值