软件测试面试

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、兼容性
平台兼容、网络兼容、数据库兼容、数据格式兼容。
缺陷等级分类
极高:测试过程司机、系统崩溃、数据跌势、功能没有实现
很高:导致软件功能不稳定、功能实现错误、流程错误
中级:校验错误、罕见故障、错别字,不影响功能,影响体验
低级:没影响的小问题

21、缺陷生命周期
新建bug–提交bug–确认bug–分配bug–修复bug–验证bug–关闭bug

22、测试结束标准
1)一二级缺陷数目达到项目质量管理目标要求,测试暂停返回开发
2)项目出现重大估算和进度偏差,需要暂停或者终止
3)新需求变更大,需修改测试计划和测试用例再进行
4)开发暂停,测试也暂停,备份暂停时的数据
5)所有功能、性能测试用例100%进行

23、测试生命周期
需求测试计划指定和评审–测试用例编写–测试用例执行–bug管理–测试报告输出

24、自我介绍套路
1)很高兴获得面试机会……想证明我是何氏的人选……想获得您的认可……
2)反问面试官:您看我继续介绍项目还是您提问关心的问题?

25、项目介绍
1)先整体再局部介绍,项目五大维度:规模(代码规模、需求规模、用例规模、工作量、进度、质量、成本),测试流程,角色与职责,项目中自己角色,自己的特色(做得好的、遇到的困难、做得差的),最后是心得体会。

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、你还有什么想要问的吗?
满意情况:先表示感谢,问如果有下一轮面试,什么时候,做什么准备;
一般般情况:感谢,对自己表现不太满意,能否给我一些建议;
很糟糕:感谢,认识到不足,希望给建议

35、测试用例编写结构
功能性、界面UI、易用性、安全性、兼容性

36、STAR法则
S(situation):项目属于什么类型,周期多长
T(task):团队分工,你的角色
A(action):具体实施,自己做了什么
R(result):最后成果,你的收获

37、如何测试纸杯
功能性:是否漏水;是否喝到水
安全性:有没有细菌
可靠性:摔下来的损坏程度
可移植性:不同地方、温湿度使用
兼容性:容纳果汁、啤酒、汽水、汽油等
易用性:是否烫手、防滑、方便饮用水
用户文档:使用手册对用法、限制、使用条件描述
疲劳测试:分别装上水、汽油等24小时,泄露情况
压力测试:用物件不断加压,承受多达压强

38、软件生命周期各个阶段的测试内容
(1)需求阶段测试:设计整个过程的进行、测试计划的安排、测试用例的设计以及软件的确认要达到那些要求等。
(2)设计阶段测试:包括概要设计和详细设计。在概要设计阶段,测试人员应阐述测试方法和测试评估准则,编写测试计划,组织成立独立的测试小组,安排具有里程碑的测试日程;在详细设计阶段,测试人员要开发或获取确认支持工具,生成功能测试数据和测试用例,以此来检查设计中遗漏的情况、错误的逻辑、模块接口的不匹配、数据结构不合理、错误的I/O假定、用户界面的补充分等。
(3)编码阶段测试:测试需要解决的首要问题是编码是否和设计的一致;其次是系统是否可维护,系统的规格说明是否正确地实现,编码是否按照既有的标准进行。是否有充分的测试计划评价程序,程序是否提供足够的文档资料,程序内部是否有足够的注释等。在测试完成后,要形成下列输出物:编码说明书、程序文档、计算机程序列表、可执行的程序、程序流程图、操作介绍和单元测试结果。
(4)测试阶段:要进行第三方的正确测试,检验所开发的系统是否能按照用户提出要求运行,在测试阶段钥匙的用户能成功地安装新的应用系统来进行测试。
(5)安装阶段测试:首先要根据系统安装手册制定好安装计划,确定安装流程图,准备好安装文件和程序清单,给出安装测试的预期结果,并对安装过程中的各项可能发生的结果进行说明准备,将程序运行的软硬件要求放入产品说明中。同时要检查时系统用户手册和操作手册,看是否可用。
(6)验收阶段测试 :定义用户角色,定义验收标准,编制验收计划,执行验收计划和填写验收结论。

39、get和post的请求
1、url可见性:
get,参数url可见;
post,url参数不可见
2、数据传输上:
get,通过拼接url进行传递参数;
post,通过body体传输参数
3、缓存性:
get请求是可以缓存的
post请求不可以缓存
4、后退页面的反应
get请求页面后退时,不产生影响
post请求页面后退时,会重新提交请求
5、传输数据的大小
get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)
post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。
6、安全性
这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

40、alpha测试和beta测试的区别
alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误
beta测试时用户公司组织各方面的典型终端用户在日常工作中实际使用Beta版本,并要求用户报告异常情况,提出批评意见
区别:
主要是测试场所不同,alpha是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行测试;alpha测试的环境是受开发方控制的,用户的数量相对少,时间比较集中,beta测试环境不受开发方控制,用户数量相对多,时间不集中

41、TCP/IP协议的模型和每层的主要协议
从下到上:
1、链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡
2、网络层(互联网层):处理分组在网络中的活动,比如分组的选路;(IP、ICMP、IGMP)
3、运输层:主要为两台主机上的应用提供端到端的通信(TCP和UDP)
4、应用层:负责处理特定的应用程序细节

测试面试题盲点##

1.Clean OS
即比较纯净的系统环境,除OS和基本驱动外无其他应用程序。类似于安全模式的最基本启动环境。

2.C/S和B/S的区别
1.C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。

2.Client/Server是建立在局域网的基础上的。
Browser/Server是建立在广域网的基础上的。

3.硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。
B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行。

3.静态测试和动态测试
静态测试
所谓静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
从概念中我们可以知道,其包括对代码测试、界面测试和文档测试三个方面:

  • 对于代码测试,主要测试代码是否符合相应的标准和规范。
  • 对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
  • 对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。

动态测试
动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。

黑盒测试有可能是动态测试(运行程序,看输入输出),也有可能是静态测试(不运行,只看界面)
白盒测试有可能是动态测试(运行程序并分析代码结构),也有可能是静态测试(不运行程序,只静态察看代码)
动态测试有可能是黑盒测试(运行,只看输入输出),也有可能是白盒测试 (运行并分析代码结构)
静态测试有可能是黑盒测试(不运行,只察看界面),也有可能是白盒测试(不运行,只察看代码)

4.selenium优点

1.Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。
2.覆盖平台广,可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Chrome和 Firefox 中运行。
3.通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。
4.通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。
5.Selenium 的核心,也称browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行

你可能感兴趣的:(软件测试面试)