软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件测试框架性的问题,测试环境搭建问题、当然还有一些自动化测试和性能测试的问题。测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块,给大家总结了一系列常见的面试题合集,【点击“面试宝典”获取】
软测基础
软件测试的目的与原则是什么?
软件测试的目的:
通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心。
软件测试的原则:
1.证明软件存在缺陷;
2.不能执行穷尽测试;
3.缺陷存在群集现象;
4.某些测试需要依赖特殊的环境;
5.测试应尽早介入;
6.杀虫剂现象。
测试人员在测试中的任务是什么?
1.尽可能早的找出系统中的bug;
2.避免软件开发过程中缺陷的出现;
3.衡量软件的品质,保证系统的质量;
4.关注用户的需求,并保证系统符合用户需求。
总的目标是:确保软件的质量
测试用例评审的流程是什么?
目的:主要是为了展开测试用例评审工作提供指引,规范测试用例管理工作。
流程:
1.测试用例是否按照公司定义的模板进行编写的;
2.测试用例的本身的描述是否清晰,是否存在二义性;
3.测试用例内容是否正确,是否与需求目标相一致;
4.测试用例的期望结果是否确定、唯一的;
5.操作步骤应与描述是否相一致;
6.测试用例是否覆盖了所有的需求;
7.测试设计是否存在冗余性;
8.测试用例是否具有可执行性;
9.是否从用户层面来设计用户使用场景和业务流程的测试用例;
10.场景测试用例是否覆盖最负载的业务流程;
11.用例设计是否包含了正面、反面的用例;
12.对于由系统自动生成的输出项是否注明了生成规则;
13.用例应包含对中间和后台数据的检查;
14.测试用例应有正确的名称和编号;
15.测试用例应标注有执行的优先级;
16.测试用例包含相关的配置信息:测试环境、数据、前置测试用例、用户授权等;
17.每个测试用例步骤应<=15 step;
18.自动化测试脚本必须带有注释(注释应包括:目的、输入、期望结果等);
19.非功能测试需求或不可测试需求是否在用例中列出并说明。
缺陷报告内容包括什么?
和bug产生对应的软件版本;
开发的接口人员;
bug的优先级;
bug的严重程度;
bug可能属于的模块,如果不能确定,可以找开发人员来判断;
bug标题,需要清晰的描述现象;
bug描述,需要尽量给出bug的步骤;
bug附件中能给出相关的日志和截图。
请您描述一下测试的v模型。
bug不能复现怎么办?
1.首先考虑环境问题,看是否能够还原原来的环境;
2.遇到问题就要提,不能放过任何一个bug,在提交的bug描述中加上一句话,那就是复现概率,交给开发,开发会根据bug的复现概率,调整bug的优先级;
3.尽量回想发生问题时的复现步骤,不要漏掉任何一个细节,按照步骤尝试复现;
4.与开发人员配合,让开发人员对相应的代码检查,看是否通过代码层面检查出问题;
5.保留发生bug时的log,附加到提交的bug中,希望可以通过log中找到一些蛛丝马迹;
6.查看代码,也许是代码变更引起的bug。
什么是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。
get与post请求的区别?
get请求使用URL或cookie传参,而post将数据放到body中;
get的URL会有长度上的限制,而post的数据则可以非常大;
post比get安全,因为数据在地址栏上不可见;
一般get请求用来获取数据,post请求用来发送数据。
重载与重写的区别?
重载是定义相同的方法名,参数不同,重写是子类重写父类的方法;
重载是在一个类中,重写是在子类与父类之间;
重载是编译时的多态性,重写是运行时的多态性。
App测试与web测试的区别?
相同点:
同样的测试用例设计方法;
同样的测试方法:都会依据原型图来检查UI;
测试页面载入和翻页的速度、登陆时长、内存是否溢出等;
测试应用系统的稳定性。
不同点:
App的中断测试:来电中断、短信中断、蓝牙中断、闹钟等;
App的安装卸载:全部安装、升级安装、第三方工具安装卸载、消息推送、前后台切换、网络环境等;
兼容性测试:web项目考虑不同浏览器兼容,App考虑不同操作系统、不同机型、不同屏幕等;
网络测试:不同网络与运营商,不同的网络制式,如GSM,CDMA,3G等,在不好或无网络的情况下的app行为;
web自动化测试工具较常用selenium,而手机自动化monkey、appium;
App测试平台:百度云测、PerfDog、testin云测
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当中的客户