测试常见面试题_第1页
测试常见面试题_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、不能重现的bug该如何处理?bug应该可重现,问题重现才可以让开发快速原因定位并解决问题。在测试的过程中偶尔会碰到一些不能重现的问题,对于这类型的问题应该:1、首先,测试人员应该想办法重现,如果实在不行,也应该将bug产生的条件和出现的问题做一个记录,建议开发根据问题的描述来进行原因定位。当然了,即使开发解决了问题,如果不能重现,也不能有效地验证。2、根据经验,一般的问题的产生都可以找到重现的规律的,只是看花的时间和成本。严重的bug一定要想办法找到原因,而优先级别低的问题可以考虑成本先将bug搁置,以后重现的时候再让开发解决。通常,不能很快找到规律的问题都是一些比较重要且奇怪的问题,开发

2、一般不能根据描述进行定位,此时测试工程师应该有很强的责任心和信心想办法重现问题。3、关于bug的重现,有一点非常重要的是,一定要开发人员与测试人员很好地配合,bug的重现效率才会更高,测试人员千万一个人不要闷头闷脑地在那冥思苦想,而应该及时把问题和看法与开发人员交流,毕竟程序是他们写的,大家一起探讨可以有效地促进问题的解决。复杂的问题并不是一个人就可以轻易就解决的,而是一个团队的结晶,要懂得充分利用团队的力量。4、注意bug出现的时候的日志,通常程序日志都包含着很重要的信息,从那些信息中分析出现问题的条件,并尝试重现。5、碰到问题时,应该尽量将出错信息作为关键字在互联网搜索,有可能别人也碰到了

3、类似的问题并解决了,即使没有人解决过相同的问题,在互联网上也有很多资料,可以帮助你获取灵感。6、必要时,写一些简单的测试程序来帮助重现问题。下面我会讲一个在实际测试过程中不能重现的问题的解决方法与过程,可能这个问题对于刚入门的人来说有点难理解,不要紧,你不需要看明白问题的原因和代码,但需要学会这个复杂的问题的解决方法,并应用到实际的测试当中。1、问题的描述:某短信发送模块出现core,但由于core信息紊乱不能定位到出错原因且无法重现导致core的规律。2、问题重现过程:(1)使用gdb对core原因进行追踪,发现core信息中含有的错误信息为:#0oxffic5ai8in_malloc_un

4、locked()from/lib/libc.so.1#1oxff1C57foinmalloc()from/lib/libc.so.1(2)以这两句core信息作为关键字在google上搜索,一些文章上类似问题的分析中获取经验,初步推断是由于内存溢出而产生的core(3)将这些文章转发给开发负责人,并讨论可能导致的原因,开发从文章中获取灵感,写测试程序对推断进行测试(4)同时测试人员详细分析程序运行日志,发现出现core之前,短信编码为平时少见的245,而短信的长度则是一个临界值140字节(5)测试人员从程序运行日志中得到启发,发送一条短信编码为245且短信长度为140字节的短信,果然出现了相类

5、似core(6)开发人员分析根据测试结果分析导致core的原因:调用sprintf打印短信内容的时候导致了内存溢出,而这样溢出会覆盖它后面的内存块的内存管理区域,在紧接着的malloc操作中就会发生段错误,从而导致了core的出现。这个问题的原因,因为多人的参与,得到了准确的定位和解决,虽然原因是我最先发现的,但问题的准确定位和解决并不是归公到某个人,而是大家一起努力的结果,团队的结晶。二、暂时无法解决的问题在测试的过程中,开发可能会在bug回复的时候告诉你暂时无法解决该问题,这个时候作为测试的负责人,应该怎样处理呢?1、首先,确实问题是否真的无法解决,解决需要付出的成本有多大。2、其次,确认

6、问题的严重性,如果此类问题不解决,是否会导致严重的后果。3、对于会导致严重后果的问题,一定要坚持让开发解决,并且想办法帮助开发解决问题。测试人员应该主动协助开发人员找到问题的原因和解决方法,并充分利用团队的资源,请教对这个领域比较有经验的工程师,大家一起讨论问题的解决方法。4、对于对系统不会造成危害的问题或虽然有微小的危害但修改成本过高而又可以人为避免,则可以将问题遗留到下一版本解决或关闭这个bug,并在bug报告中说明原因和注意事项。5、这个时候,测试人员的态度非常重要,在告诉开发这个问题一定需要解决的时候态度是温和的坚定,并让他意识到问题的严重性。试想想,如果你板着脸孔冷冰冰地丢给开发一句

7、“这个问题一定要解决!”扭头就走,他会是怎样的反应呢?可以笑的时候就笑吧,大家都是工作,不要将工作的氛围搞得太僵,大家在一个和谐的环境中工作才会保持愉悦的心情。6、发现问题之后测试人员可能心里会嘀咕“反正这是开发的问题就让开发去折腾吧”,如果你一不小心这样想了,那就偷偷的想几秒钟好了,这个念头闪过之后,作为bug负责人的你怎么忍心看着开发一个人手忙脚乱呢?测试和开发其实是一个整体,在这个整体中的每个人都有责任去解决问题。三、测试工程师和开发工程师的意见不一致1、首先,客观地比较自己的建议和开发的意见哪个更好。2、如果开发的方法的确是比较优化,那就应该接受开发的意见;如果经过对比之后还是觉得自己

8、的建议更好,那就坚持自己的建议,并详细给开发解释你的建议,通过对比两者之间的差别婉转地告诉开发你的建议值得采纳。3、如果双方还是对各自的意见相持不下,可以跟项目经理一起讨论,由项目经理衡量应该采取哪种处理方法。不过,有时候,项目经理也不一定站在你这边,你可能还需要花脑筋说服项目经理或被项目经理说服。4、当然,这个问题的讨论前提是问题值得花时间和精力去研究讨论,如果是一些比较简单或次要的问题,就没必要花那么长的时间去计较了,放过开发吧,也许他真的觉得这个问题没必要这样修改或者是他也修改到很累很烦了,这么简单的一个问题何不让开发轻松一下?四、开发工程师不配合工作1、先进行一个自我检讨:我的态度有问

9、题吗?我报的bug是否都描述清楚了?我所发现的问题是否有价值?如果这些问题的答案是否定的,那么自己先改正了,开发会看大到你的改变,也会调整自己的态度的。2、在一个团队中有一、两个不合作的开发工程师是正常的,不可能每个人都那么配合那么好态度,也没必要自己觉得很难受,因为问题在于他的身上,你做对了自己该做的就行了。3、不要去逃避,双方之间换一种有效的沟通方法。比如,在MSN上交流不清楚,就换成电话或面对面,听到你愉快的声音或看到亲切的面孔,对双方之间的互动更加有帮助。但不要说着说着就火冒三仗,面红耳赤了哦!如果你也是火暴的脾气,面对面交流双方很容易争执起来,那么就通过MSN或邮件来交换意见吧!总之

10、,交流的方式是很多的,选择双方更能有效沟通的交流渠道会达到事半功倍的效果。4、尽量避免与对方直接冲撞。人的自尊心都是很强的,学历越高或能力越强的人,通常自尊心也是越强,你尊重他他才会尊重你,说得通俗点,你给了他面子、给了他台阶,他才会给你面子给你台阶。即使双方之间发生了争执,也不要太过介怀,只是工作而已,大方点继续对他真诚的微笑。5、如果他实在不配合,必要的时候,可以适当表达你的立场,或者委婉地向他的领导反映或者将你们之间的交互邮件抄送给他的领导。这是一个有效的方法,但同时也是一个容易引发新的矛盾的方法,记住这样做是为了有效解决问题,而不是在别人背后“打小报告”。这是在工作,对事不对人。在我的

11、team中,有一个开发的态度非常不配合,不管是对我还是其它的测试人员。五、如何处理不能迅速定位的工程故障对于一些不能迅速定位的工程故障,开发很自然寄望于测试环境能将问题重现,如果能够轻易在测试环境重现,那肯定是一件好事,不过通常如果是一些简单的容易出现的问题,在测试的时候肯定就已经发现问题了;正是因为问题的复杂或者是一些测试时没有考虑过的问题,才遗留到工程上导致出现故障。1、查看工程环境程序日志,如果没有查询的权限,请工程实施人员帮忙查找,分析日志查找到问题的原因或相关线索。2、如果日志的提示信息足够,可以根据日志定位原因,则在测试环境中按照日志提示构造条件相同的测试案例测试,尝试在测试环境中

12、将问题重现。3、如果不能从日志中获取足够的信息,而且测试环境中也无法把问题重现,那么先跳出思维定势,想想为什么会出现这样的故障,可能导致的原因有那些,自己还有哪些测试点或异常没有考虑到,测试环境和配置与实际的工程环境和配置有哪些差异等等。同时主动与开发负责人、工程实施人员以及有经验的项目经理讨论,分析可能导致的原因。4、请工程实施人员将工程环境的配置文件和执行程序帮忙ftp到本地测试环境,在测试环境中使用实际工程环境的配置文件和执行程序,并尽量模拟实际环境搭建测试环境。5、在模拟实际环境的测试环境中,根据分析的可能原因构造测试案例测试,尝试在测试环境中将问题重现。6、问题重现后协助开发解决问题

13、。7、验证解决后的程序是否仍然会出现类似故障。8、总结出现故障的原因并作记录,如果是配置的问题需要提醒工程人员在实施的时候注意,如果是测试疏忽的测试点要在测试报告中记录并在案例库中增加相应的案例,如果是某些异常开发没有考虑全面要总结类似的问题并提示所有开发注意。下面是一个非常难定位的工程故障的实例,希望这个工程故障的解决方法和态度能够给你一些启示。1、问题描述:在某省某短信业务高峰期,实际处理的短信比接受到的短信少,也就是在系统处理某环节丢失了部分短信。2、问题进展:A、实际工程环境的日志没有任何错误提示B、相关模块的负责人进行代码白盒检查,也没办法从代码中看出缺陷C、测试环境没有出现工程所描

14、述的故障3、问题解决:A、登录实际的工程环境,查看所有相关的程序日志,但程序的日志都正常,不能从中得到启示和帮助。B、根据推测可能的原因,在测试环境中试图使用大压力测试,但也没出现工程所描述的故障。C、与开发负责人、项目经理和工程人员讨论可能导致故障出现的原因,并根据讨论结果设计测试案例、测试方案。D、将工程实际环境的配置和执行文件拿到测试环境,并模拟工程环境搭建测试环境,发现其中配置存放短信的配置项比实际测试环境的大两倍。也就是:;queuesize,inbyte,20MBQueueSize=2O97i52O;maxISMGqueuelength,0meansnolimitMaxQueueL

15、en=50000E、模拟出现故障时的业务压力,发现当发送队列MaxQueueLen超过了46807后,不会继续增大,永远不会到达50000,也就是说永远不可能出现队列满的情况,模块永远不会报队列满的错误;所以系统只要接收到信息就往队列里放(只有该模块队列满或者连接不上等异常出现的时候才会存放到短信缓存器),而该模块共享队列最大只能存放46807条信息,多余的信息也便丢失了。F、建议开发人员修改程序,当短信存放超过了实际存放长度或配置长度,就提示错误并将短信存放到短信缓存器,确保短信在高峰期得到保障。G、给工程人员提供配置建议。共享队列大小、队列长度与网关连接个数之间的关系应该满足:对于共享队列

16、大小为QueueSize=20971520,MaxIQueueLen,网关连接个数为之间的关系为:网关连接个数*MaxQueueLen<=40000。因此,若网关个数为1,贝UMaxQueueLen的安全大小是MaxQueueLen=40000。H、开发人员修改程序之后验证问题:(1)、仍然保留MaxQueueLen=50000配置不变,压力测试,当短信发送队列MaxQueueLen超过了46807后,系统能够提示错误信息,并将短信缓存到短信缓存器。(2)、配置MaxQueueLen=40000,压力测试,当短信发送队列MaxQueueLen=40000的时候,系统提示错误,并将短信存放

17、到短信缓存器。六、资源不足该怎么办1、现有的资源是否能解决2、能否可以借用资源3、向领导反映并说明问题的严重性1请自我介绍一下。面试就是自我推销的过程,同样自我介绍应有闪光点,应突出自己为什么这个岗位。2说说你以前公司的测试流程。必答题。主要结合自己的项目经验相信讲一个自己做过的项目,从立项到测试结束,当然侧重测试和自己所做的内容。这里面试官一般都会根据你说的再提问。3你是怎样做出自己的职业选择或者自己的职业规划。这题也经常问。可以从自己的优点说如何适合做软件测试,对与职业规划,我一般说在技术上往资深测试工程师发展。4你觉得自己作为测试工程的优势在哪里?你认为自己比你的同事优秀在哪里?也经常问

18、,可以从性格出发,讲自己优点,以及在项目中表现,领导的良好评价等,总之“恰当”地往好处说,不要言过其实,让人怀疑你的人品哦。说说自己的缺点?这个也不好回答,最好能恰当地引申回答到优点上。5. 一个测试中不堪回首,或者让你很郁闷的事情。我被问到了,当时想不起来,后来想想可以讲一个项目中的失误及后果,然后讲自己如何去成功弥补及教训经验。我如果提前想一下就不会该说什么了。6你的好友是如何评价你的?你的项目组长是如何评价你的?这类题也经常问。回答总要往好处说,但是你要自信地回答。7在成年后,哪些成绩给你带来最大程度的满足?蛮不错的题。记得我但是答的是第一次自己带一个小项目,顺利完成测试任务。8.测试时你提交的bug被研发拒绝或者他认为不是问题,你如何处理?9. 测试与开发沟通如何提高效率和改善沟通效果?测试工程师的素质和技能?10. 你在压力

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论