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