40条软件测试面试常考题目总结,话不多说上干货~
(附答案解析)
1
开发犯低级错误怎么办?
开发首先要规范好编码,出低级错时不要指责,内心指出错误。让他们自己进行测试,反思找出错误。
2
你进行过哪些测试,擅长什么?
我主要从事web测试,搭建环境,对程序进行集成测试、系统测试、回归测试。还有编写测试用例,使用手册,功能测试文档。单元测试:测试的最早期阶段,焦点在于被测软件的最小的组成部分。
集成测试:确保最小单元被(部分)整合后能正常操作的测试执行阶段
系统测试:当应用作为整体运行时的测试执行阶段(测试最终的应用)
回归测试:修改了旧代码后,重新进行测试以确认修改操作没有引入新的错误或导致其他代码产生错误。
验收测试:以用户为主,由用户参加设计测试用例,对程序的功能、性能,以及可移植性、兼容性、可维护性、错误的恢复功能等进行确认。主要运用黑盒测试的方法,对系统主要流程、重要功能进行有效性测试,验证所测试的软件是否满足需求规格说明书列出的要求
3
开发说不是bug怎么办?
将自己的见解告诉开发,不行就把见解和bug提交项目经理决定。
4
你的职业规划?
巩固基础测试知识,提高理解需求能力。学习自动化测试,并且运用。技术到位后学习带领测试团队。最后争取达到测试经理水平。
5
什么测试用例才是合格?
能覆盖到所有测试点
6
缺陷测试报告组成?
缺陷编号、缺陷标题、缺陷描述、缺陷优先程度、缺陷所属模块、缺陷所属版本、缺陷所属开发人员、 输入数据、输出结果、缺陷分析等。
C/S模式,使用交替方法确认是client还是server端问题。
7
测试用例包括哪些?
用例编号、测试项描述、操作步骤、输入、预期结果、实际结果、测试人、测试时间、备注
8
软件评审的人员和目的
人员:客户、项目经理、开发人员、测试人员目的:查看软件是否还存在问题。是否在不同平台正常运行,是否有和客户理解不一致的地方,是否有改进的地方
9
什么是软件测试?目的?
使用人工或自动化手段运行程序,为了发现软件的错误而执行检验的一个过程目的:以最少的人力、物力、时间找到软件中的缺陷并修改,从而回避风险。
10
兼容测试
检查软件在不同软件、硬件平台是否可以正常运行。即软件的可移植性。主要查看在不同操作系统、浏览器、数据库、不同版本是否正常运行
11
为什么进行软件测试?
没经过测试的软件无法保证质量,好比iso质量认证一样。测试中发现问题,即时提交开发改进,在软件发布时保证软件质量。
12
软件测试类型有哪些?区别与联系?
常见:功能测试、性能测试、界面测试。
功能测试:占比最大,也叫黑盒测试(不看代码)。进行动态测试时,需要测试软件功能,不需要测试软件内部结构和处理过程。
技术方法有:等价类划分法、边界值分析、错误推测、因果图和综合策略。
性能测试:通过自动化测试工具模拟多种正常、异常、峰值条件,对系统各项性能指标测试。
负载测试、压力测试属于此。负载测试:确定各项工作负载下的系统性能,目标是负载主键增加时,系统各项性能指标变化;压力测试:通过系统的瓶颈,获得系统能提供的最大服务级别。
界面测试:界面好坏决定用户对软件第一印象。合理的界面带来轻松愉悦感受,失败界面有挫败感,让强大的功能付诸东流。
区别:功能测试关注软件功能,每个功能可能存在的问题。性能测试软件多用户并发的稳定性和强壮性。界面测试关注用户体验和易用性。
13
好的测试用例关键?
白盒测试:较少的用例覆盖尽可能多的内部程序逻辑结果。
黑盒测试:较少的用例覆盖模块输出和输入接口。用最少用例在合理时间内发现最多的问题。
对可行和不可行的都要考虑:(1)输入 (2)详细操作步骤 (3)预期输出 (4)实际输出
14
黑盒、白盒、单元、集成、系统、验收测试的区别与联系?
黑盒:已知功能设计规格,测试每个功能是否符合要求。白盒:已知内部工作过程,测试每种内部操作符合设计规格。黑盒意味着测试在软件的接口处进行,把测试对象看做一个黑盒子,不考虑程序内部逻辑结构和内部特性,仅看需求说明书检查功能是否符合需求。黑盒-》功能测试(或者 数据驱动测试)
15
软件开发过程与角色分工?
测试配合开发等进行需求分析和讨论,根据需求说明书制定《项目测试计划》,编写测试用例,建立测试环境。测试负责新产品测试,原有产品的升级测试,负责软件问题解决过程跟踪,软件开发文档、开发工作的规范化,管理开发部门的产品文档,制作用户手册、操作手册,产品上限测试,监督软件开发过程执行,提高软件质量。
16
软件开发过程与角色分工?
开发与测试开会讨论需求。需求分析人员写出需求分析说明,三部门讨论可行性。给出详细设计说明书,开发编码,给出系统流程图。测试根据此,给出bug统计。
17
不同测试类型的联系与区别?
功能、性能、可靠性、安全性、负载测试,压力、安装/卸载、启动/停止、兼容、互联测试,文档、回归、可使用性、容量测试
18
测试计划工作包括?
是对工作内容的有效组织和规划,保证测试工作有效展开。包括测试目标,测试范围定义,测试方法选择,测试进度里程碑,测试资源管理和配置。测试目标最重要,因为他是软件测试的最终达到结果
19
性能测试工具,原理、实际应用LoadRunner
能够录制测试的操作步骤,对其模拟出多个用户播放出来。
(1)visural user genertor:创建脚本,选择协议,录制操作,编辑操作
(2)中央控制器 controller:调度虚拟用户。创建场景,选择脚本,建立虚拟用户,设计shedual,设置ip spoofer
(3)运行脚本,分析shedual
(4)分析测试结果
20
兼容性
平台兼容、网络兼容、数据库兼容、数据格式兼容。
缺陷等级分类
(1) 最高级--导致运行中断(应用程序崩溃),预期的功能没有得到实现,测试工作无法继续进行等
(2) 紧急---事件非常重要,并且需要马上给予关注
(3) 高级---事件是重要的,并且应该在紧急的事件处理之后尽快得到解决
(4) 中级---事件是重要的,但是由于解决问题需要花费一定的时间,所以可以用较长的时间解决
(5) 低级---事件不重要,可以在时间和资源允许的情况下再解决
21
缺陷生命周期
新建bug–提交bug–确认bug–分配bug–修复bug–验证bug–关闭bug
22
测试结束标准
1)一二级缺陷数目达到项目质量管理目标要求,测试暂停返回开发
2)项目出现重大估算和进度偏差,需要暂停或者终止
3)新需求变更大,需修改测试计划和测试用例再进行
4)开发暂停,测试也暂停,备份暂停时的数据
5)所有功能、性能测试用例100%进行
23
测试生命周期
需求测试计划制定和评审–测试用例编写–测试用例执行–bug管理–测试报告输出
24
自我介绍
套路
1)很高兴获得面试机会……想证明我是合适的人选……想获得您的认可……
2)反问面试官:您看我继续介绍项目还是您提问关心的问题?
25
项目介绍
先整体再局部介绍,项目五大维度:
规模(代码规模、需求规模、用例规模、工作量、进度、质量、成本),测试流程,角色与职责,项目中自己角色,自己的特色(做得好的、遇到的困难、做得差的),最后是心得体会。
26
数据库问题
数据库增删改查(insert、delete、update、select);
表结构增删改查(create、drop、alter、describe);
存储过程;触发器等
27
Linux系统
常见50个命令(find、-name、type、perm、user、group、ctime、atime)
熟悉vi、熟悉linux搭建测试环境。LAMP环境搭建。
28
缺陷相关
缺陷跟踪流程(流程基本要素)、整体流程(会话)、缺陷单的20个属性、属性的意义、如何描述好缺陷单、缺陷单的5C原则、缺陷重现步骤。你认为最经典的bug
29
用例相关
用例格式要素、用例设计工程方法论、方法要求如何利用。如何评审用例,从那些维度评审,设计好用例需要那些只是结构
30
软件测试流程
熟悉产品/项目–需求评审–测试需求–测试计划–测试方案–测试用例–预测试,第一轮正式测试–第二轮回归测试–第三轮测试,测试报告–总结–测试指南
31
网络相关
基本网络知识(重点TCP/IP协议)网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构,提供了点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。
1、应用层:应用程序之间相互沟通的层
2、传输层:提供了数据传输,应用程序之间的通信服务
3、网络互联层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机
4、网络接口层:接收数据,并进行传输
32
测试工具
性能测试工具:LoadRunner,Jmeter
自动化测试工具:Selenium
测试管理工具:禅道或者Jira
如何去测试指定软件?
技巧:从质量模型、测试工具、测试方法、测试流程、探索式测试,宏观解决,再微观讲解用例设计
33
你还有什么想要问的吗?
满意情况:先表示感谢,问如果有下一轮面试,什么时候,做什么准备;
一般般情况:感谢,对自己表现不太满意,能否给我一些建议;
很糟糕:感谢,认识到不足,希望给建议
34
测试用例编写结构
功能性、界面UI、易用性、安全性、兼容性
35
STAR法则
S(situation):项目属于什么类型,周期多长
T(task):团队分工,你的角色
A(action):具体实施,自己做了什么
R(result):最后成果,你的收获
36
如何测试纸杯
功能性:是否漏水;是否喝到水
安全性:有没有细菌可靠性:摔下来的损坏程度
可移植性:不同地方、温湿度使用
兼容性:容纳果汁、啤酒、汽水、汽油等
易用性:是否烫手、防滑、方便饮用水
用户文档:使用手册对用法、限制、使用条件描述
疲劳测试:分别装上水、汽油等24小时,泄露情况
压力测试:用物件不断加压,承受多大的压强
37
37、软件生命周期各个阶段的测试内容
(1)需求阶段测试:设计整个过程的进行、测试计划的安排、测试用例的设计以及软件的确认要达到那些要求等。
(2)设计阶段测试:包括概要设计和详细设计。在概要设计阶段,测试人员应阐述测试方法和测试评估准则,编写测试计划,组织成立独立的测试小组,安排具有里程碑的测试日程;在详细设计阶段,测试人员要开发或获取确认支持工具,生成功能测试数据和测试用例,以此来检查设计中遗漏的情况、错误的逻辑、模块接口的不匹配、数据结构不合理、错误的I/O假定、用户界面的补充分等。
(3)编码阶段测试:测试需要解决的首要问题是编码是否和设计的一致;其次是系统是否可维护,系统的规格说明是否正确地实现,编码是否按照既有的标准进行。是否有充分的测试计划评价程序,程序是否提供足够的文档资料,程序内部是否有足够的注释等。在测试完成后,要形成下列输出物:编码说明书、程序文档、计算机程序列表、可执行的程序、程序流程图、操作介绍和单元测试结果。
(4)测试阶段:要进行第三方的正确测试,检验所开发的系统是否能按照用户提出要求运行,在测试阶段要使用户能成功地安装新的应用系统来进行测试。
(5)安装阶段测试:首先要根据系统安装手册制定好安装计划,确定安装流程图,准备好安装文件和程序清单,给出安装测试的预期结果,并对安装过程中的各项可能发生的结果进行说明准备,将程序运行的软硬件要求放入产品说明中。同时要检查时系统用户手册和操作手册,看是否可用。
(6)验收阶段测试 :定义用户角色,定义验收标准,编制验收计划,执行验收计划和填写验收结论。
38
get和post的请求
1、url可见性:get,参数url可见;post,url参数不可见
2、数据传输上:get,通过拼接url进行传递参数;post,通过div体传输参数
3、缓存性:get请求是可以缓存的post请求不可以缓存
4、后退页面的反应get请求页面后退时,不产生影响post请求页面后退时,会重新提交请求
5、传输数据的大小get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。
6、安全性这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。
39
alpha测试和beta测试的区别
alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误beta测试时用户公司组织各方面的典型终端用户在日常工作中实际使用Beta版本,并要求用户报告异常情况,提出批评意见。
区别:主要是测试场所不同,alpha是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行测试;alpha测试的环境是受开发方控制的,用户的数量相对少,时间比较集中,beta测试环境不受开发方控制,用户数量相对多,时间不集中
40
TCP/IP协议的模型和每层的主要协议
从下到上:
1、链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡
2、网络层(互联网层):处理分组在网络中的活动,比如分组的选路;(IP、ICMP、IGMP)
3、运输层:主要为两台主机上的应用提供端到端的通信(TCP和UDP)
4、应用层:负责处理特定的应用程序细节
今天的分享就到此结束了~
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)
可以自助拿走,群号:310357728群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦
如果对你有一点点帮助,各位的「点赞」就是小编创作的最大动力,我们下篇文章见
在小公司“混”了2年,我只认真做了5件事,如今顺利拿到字节 Offe
去了字节跳动,才知道年薪 30w 的测试工程师有这么多?
北京35岁程序员失业,感叹:编程估计没戏了,想去卖点煎饼果子养家~
29岁转行软件测试靠谱吗?一个过来人的心路历程送给迷茫的你
同样是IT行业,测试和开发薪资真就差这么大吗?