测试找工作必看:面试题大盘点(带答案)

1.测试人员在测试中的任务是什么?

1.尽可能早地找出系统中的bug;

2.避免软件开发过程中缺陷的出现;

3.衡量软件的品质,保证系统的质量;

4.关注用户的需求,并保证系统符合用户需求。

总的目标是:确保软件的质量

2.测试用例评审的流程是什么?

目的:主要是为了展开测试用例评审工作提供指引,规范测试用例管理工作。

流程:

1.测试用例是否按照公司定义的模板进行编写的;

2.测试用例的本身的描述是否清晰,是否存在异议性;

3.测试用例内容是否正确,是否与需求目标相一致;

4.测试用例的期望结果是否确定、唯一的;

5.操作步骤应与描述是否相一致;

6.测试用例是否覆盖了所有的需求;

7.测试设计是否存在冗余性;

8.测试用例是否具有可执行性;

9.是否从用户层面来设计用户使用场景和业务流程的测试用例;

10.场景测试用例是否覆盖负载的业务流程;

11.用例设计是否包含了正面、反面的用例;

12.对于由系统自动生成的输出项是否注明了生成规则;

13.用例应包含对中间和后台数据的检查;

14.测试用例应有正确的名称和编号;

15.测试用例应标注有执行的优先级;

16.测试用例包含相关的配置信息:测试环境、数据、前置测试用例、用户授权等;

17.每个测试用例步骤应<=15 step;

18.自动化测试脚本必须带有注释(注释应包括:目的、输入、期望结果等);

19.非功能测试需求或不可测试需求是否在用例中列出并说明。

3.缺陷报告内容包括什么?

和bug产生对应的软件版本;

开发的接口人员;

bug的优先级;

bug的严重程度;

bug可能属于的模块,如果不能确定,可以找开发人员来判断;

bug标题,需要清晰地描述现象;

bug描述,需要尽量给出bug的步骤;

bug附件中能给出相关的日志和截图。

4.bug不能复现怎么办?

1.首先考虑环境问题,看是否能够还原原来的环境;

2.遇到问题就要提,不能放过任何一个bug,在提交的bug描述中加上一句话,那就是复现概率,交给开发,开发会根据bug的复现概率,调整bug的优先级;

3.尽量回想发生问题时的复现步骤,不要漏掉任何一个细节,按照步骤尝试复现;

4.与开发人员配合,让开发人员对相应的代码检查,看是否通过代码层面检查出问题;

5.保留发生bug时的log,附加到提交的bug中,希望可以通过log中找到一些蛛丝马迹;

6.查看代码,也许是代码变更引起的bug。

5.什么是HTTP协议,请求方法是什么?以及HTTP与HTTPS协议的区别?

http协议又叫做超文本传输协议,在做网络请求的时候,我们基本上是使用http协议。

请求方式包括get请求和post请求。

http协议与https协议的区别:

1.http协议需要ca申请证书,一般免费证书较少,需要一定费用。

2.http的链接简单,是无状态的,而https协议是由SSL+http构建的可进行加密传输,身份认证的网络协议要比http协议安全。

3.http协议是超文本协议,又叫明码传输,而https是具有安全性的SSL加密传输协议。

4.http协议与https协议使用的链接方式不同,http用的端口是80,https用的端口是443。

6.get与post请求的区别?

get请求使用URL或cookie传参,而post将数据放到body中;

get的URL会有长度上的限制,而post的数据则可以非常大;

post比get安全,因为数据在地址栏上不可见;

一般get请求用来获取数据,post请求用来发送数据。

7.重载与重写的区别?

重载是定义相同的方法名,参数不同,重写是子类重写父类的方法;

重载是在一个类中,重写是在子类与父类之间;

重载是编译时的多态性,重写是运行时的多态性。

8.App测试与web测试的区别?

相同点:

同样的测试用例设计方法

同样的测试方法:都会依据原型图来检查UI;

测试页面载入和翻页的速度、登录时长、内存是否溢出等;

测试应用系统的稳定性。

不同点:

App的中断测试:来电中断、短信中断、蓝牙中断、闹钟等;

App的安装卸载:全部安装、升级安装、第三方工具安装卸载、消息推送、前后台切换、网络环境等;

兼容性测试:web项目考虑不同浏览器兼容,App考虑不同操作系统、不同机型、不同屏幕等;

网络测试:不同网络与运营商,不同的网络制式,如GSM,CDMA,3G等,在不好或无网络的情况下的app行为;

web自动化测试工具较常用selenium,而手机自动化monkey、appium;

App测试平台:百度云测、PerfDog、testin云测

9.BS/CS架构的区别是什么?

概念:

所谓的架构就是用来指导我们软件开发的一种思维,目前最常见的就是BS/CS。

B——browser浏览器

C——clent客户端

S——server服务端

区别:

1.标准:相对于CS架构来说BS架构的两端都是在使用现成的成熟产品,所以BS会显示的标准一些。

2.效率:相对BS架构来说CS中的客户端可以分担一些数据的处理,因此执行效率会高一些。

3.安全:BS架构当中得到数据传输都是以http协议进行的输出,而http协议又是明文输出,可以被抓包,所以相对于CS架构来说BS就显得不那么安全(相对的)

4.升级:BS架构只需要在服务器端将数据进行更新,前台只需要刷新页面就可以完成升级,而CS架构当中必须将两端都进行更新。

5.开发成本:相对于BS架构来说,CS当中的客户端需要自己开发,所以相对来说成本会高一些。

10.Android手机与iOS手机系统有什么区别?

1.两者运行机制不同:iOS采用的是沙盒机制,安卓采用的是虚拟机运行机制;

2.两者后台机制不同:iOS中任何第三方程序都不能在后台运行,安卓任何程序都能在后台运行,直到没有内存才会关闭;

3.iOS中用于UI指令权限最高,安卓中数据处理指令权限最高。

11.你以前工作时的测试流程是什么?

需求分析——>设计用例——>评审用例——>配置环境——>执行用例——>回归测试及缺陷跟踪——>输出测试报告——>测试结果

12.当你参加评审时,你的评审原则是什么?

正确性:每一条需求都必须准确的陈述其要开发的功能;

一致性:必须与其他软件需求或高层需求不相矛盾;

可行性:其每一项需求都必须是以系统和环境的权能和限制范围可以来实施的;

必要性:每项需求都是用来授权你编写文档的“根源”,要使每项需求都能回溯至某项客户的输入;

可测试性:每项需求都能够通过设计测试用例或其他的验证方法来进行测试;

可修改性:每项需求只应在SRS中出现一次,这样更改会容易保持一致性;

可跟踪性:在每项软件需求与它的根源与设计元素,源代码,测试用例之间建立起链接,而这种可跟踪性要求每项需求都必须以一种结构化的,粒度好的方式编写并单独标明,而不是大段大段的陈述;

分配优先级:应当对所有的需求分配优先级,如把所有需求都看作同样重要,那么项目管理者在开发或节省预算或调度中丧失控制自由度。

13.跟开发人员因为bug产生分歧你是如何解决的?

1.问题确认与评估;

2.明确开发不修改该缺陷的确切原因;

3.具体问题具体分析;

4.发挥TM与PM的沟通职责

14.如何提交高质量的软件缺陷报告(记录)?

1.通用UI要统一、准确;

2.尽量使用业界惯用的表达术语和表达方法;

3.每条缺陷报告只包括一个缺陷;

4.不可重现的缺陷也要报告;

5.明确指明缺陷类型;

6.明确指明缺陷严重等级和优先等级;

7.描述简洁、准确、完整,揭示缺陷实质,记录缺陷或缺陷出现的位置;

8.短行之间使用自动数字序号,使用相同的字体、字号、行间距,可以保证各条记录格式一致,做到规范专业;

9.每一个步骤尽量只记录一个操作;

10.确认步骤完整,准确,简短;

11.根据缺陷,可选择是否进行图像捕捉。

15.手机端测试的关注点有哪些?

ui测试、功能测试、性能测试、安装卸载测试、软件升级测试、登录测试、安全性测试、消息推送、前后台切换、兼容性测试、网络环境测试、monkey测试。

16.测试用例的方法有哪些以及包含的内容?

方法:等价类划分法,边界值,场景法,因果图,正交表。

内容:

等价类:有效等价类,无效等价类;

边界值:上点(边界上的点),离点(离上点最近的点),内点(边界有效范围内的任意一点)

场景法:基本流,备选流,异常流

因果图:输入与输入的关系(异:所有输入条件中最多有一个产生,也可以一个没有;或:所有输入条件中,最少有一个产生、或者多个、或者没有;唯一:有且只有一个条件产生;要求:只要有一个产生,其他跟着也会出现)

正交表:因子(所有参与试验的影响试验结果的条件),水平(影响试验因子的取值或输入)

17.软件质量的特性是什么?

1.功能性:软件需要满足用户显示或者隐式的功能;

2.易用性:软件易于上手和学习;

3.可靠性:软件必须实现需求文档中指明的具体功能;

4.效率性:类似于软件的性能;

5.可维护性:软件具有将某一个功能修复之后继续使用的功能;

6.可移植性:软件具有从一个平台移植到另一个平台上去使用的能力。

18.测试计划工作的目的是什么?以及测试计划文档的内容包括什么?

测试计划工作的目的:借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程中的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。

测试计划文档包括:测试背景、测试的目的、人员的安排、时间的分配、测试环境情况、风险评估等。

19.搭建过什么环境,搭建工作环境是如何搭建的?

企业用的是Java开发的,搭建测试环境是用Linux+MySQL数据库+Tomcat+war包。

还有持续集成,这个方式引入Jenkins,把手动的方式转变成自动化部署

像安装配置的时候就在网上找一份文档,按照文档进行配置

20.怎样保证覆盖用户需求?

项目开始前,我们会先熟悉需求,画好流程图,保证整个流程都覆盖全面,小组之间每个人都根据各自的流程图,各个功能点有哪些限制条件来讲解一下自己对测试点的理解,防止之后编写测试用例时出现遗漏;

用例编写完成之后,再进行用例的评审,看看测试点有没有遗漏,对需求理解有没有错误,测试场景是否覆盖完全。

21.开发环境与测试环境有什么区别?

开发环境是程序员们专门用于开发的服务器,配置可以比较随意,一般为了开发调试方便,一般打开全部错误报告。

测试环境一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。

22.请说几个常见的状态码?

200:请求发送成功;

302:代表重定向;

400:客户端发送的请求语法错误;

401:请求的页面没有授权;

403:没有权限访问这个页面;

404:没有这个页面;

500:服务器内部异常;

501:当前不能处理客户端的请求;

504:服务器端超时,没返回结果。

23.压力测试与负载测试的区别是什么?

压力测试通常是在高负载的情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。

24.代码的版本管理用什么工具?

get和SVN都用过

get操作:get add . 添加所有文件

get commit -m “描述” 提交

get push origin 分支名 上传分支

SVN操作:Checkout(提取)

Commit(提交)

Update (更新)

25.如果回归测试不通过怎么办?

分析问题,明确为什么没通过;

如果不是明确提交的缺陷确实存在,缺陷报告返回开发人员;

开发人员重新修改问题;

再次提交测试人员回归测试。

26.测试报告包括哪些?

项目的概要描述;

测试过程缺陷的统计,一定程度反映项目的质量;

整个项目过程有需要改善的地方,提出建议;

给出结论,项目是否可以上线。

27.你在项目中最经典的bug是什么?

1.兼容性问题,在IE浏览器提交按钮可以点击,到了谷歌,火狐就不能了

2.字段的值显示不是想要的结果,或没有显示。(开发从库表取值有误)

3.提交数据之后,状态没有转变为已提交。(代码没有正确获取库表中记录状态改变的状态码)

4.修改密码,新密码与旧密码一致也能成功,没有做新旧密码的校验。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值