说起软件测试近几年的发展,其实已悄无声息地发生了巨大的变化。前几年随着互联网行业的迅猛发展,软件测试人才稀缺,低门槛高薪资促使大批毕业生和转行人员一窝蜂地涌入。而现在,软件测试发展太快,纵观各大招聘网站,基础功能测试岗位需求逐渐减少,已基本饱和,很多软件测试员处于游离态,开始不知所措,不知道自己到底应该学些什么提升测试技术?更不知道现在企业对测试员有哪些要求?可谓"压力山大"。
小编今天分享测试工程师的常用面试问题及参考回答,希望能对您有所帮助。
面试常注意事项
1、软件测试面试指导问题:自我介绍
95%的企业都会问到这个问题,但是大部分人求职者的回答都过于简单平淡,有的人会介绍姓名、年龄、工作经历、兴趣爱好、性格等等,其实这些不用你说,简历上也一目了然。企业之所以喜欢问这个问题,目的是考察应聘者是否能胜任这份工作,为企业带来价值的,具体涵盖以下几点:
- 最擅长的技能;
- 做过最成功的的项目;
- 在团队中体现个人价值的部分;
- 最了解的技术领域等等……
以上这些无关乎日常工作、学习,但要表现出你积极地态度和出色的能力,实事求是、淡定从容地回答才会让企业信服。而且特别提醒,面试官除了会考察一个人的能力,还很重视这个人的礼貌和言行举止,所以在回答完每个问题之后说一句"谢谢",可以给你的面试加分。
面试指导常见的问题
1、性能测试内容有哪些?
1)负载测试:对于分布式网络,测试不同用户数量来测试系统的反应,主要关注性能指标,系统不同表现。同样是软件测试工程师,为什么性能测试月薪更高?
2)压力测试:高压状态下多用户高并发测试(30万-50万),主要关注系统是怎么崩溃的。(内存泄漏,cpu无响应,数据库无反应,网络堵塞)
3)容量测试:系统最大支撑的相关数量,数据库最大数据数量,用户数量。
2、做性能测试有什么作用?
1)目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。
2)用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。
3、性能测试评价指标
1)响应时间(response time):从用户视角评价系统的响应速度,通常响应的时间的经验值:2s流畅,5s可用,10s较慢。
2)吞吐量/率:硬盘IO(读写),网络IO(上行下行带宽),cupIO,服务器处理能力,客户端打开页面的数量。
3)事务处理能力(TPS tansaction per second):打开页面,登陆服务器,实现消息发送等等用户的某一动作就被称为事务。
4、性能测试的核心原理及开发测试工具
性能测试的核心原理及开发测试工具,主要也是基于前两点:
1)基于协议(前端后端通信机制)、界面(决定和前端交互)和代码(后端)。基于网络的分布式架构:基于网络协议去模拟用户发送请求。
2)多线程:模拟多线程操作、多人同时操作、模拟大负载量(功能测试在于用以测试功能)。
3)模拟真实场景:真实的网络环境,用户操作时间不确定性,操作不确定,得出的数据是准确的,场景不对,数据也不一定可用。
5、什么是敏捷测试?
强调从使用系统的用户(客户)角度出发来测试系统。重点关注持续迭代地测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。同时需要及早介入测试 ,持续进行回归测试保证之前测试过内容的正确性。
6、如何进行测试需求分析?
根据自己实际工作,测试需求分析一般从粗到细分解法,第一遍收集好所有需求相关的资料,粗略过一遍,画出基本流,记录疑惑点。第二遍细看,可以通过思维导图从基本流发散。
7、缺陷的生命周期是怎样的?
缺陷提交、缺陷确认、缺陷打开、缺陷修复、缺陷回归、缺陷关闭。
8、测试设计如何保证需求覆盖率
全面测试需求分析、从业务与技术角度设计用例,不仅仅要考虑到当前需求的可行性、发散性思考与之相关的需求点。同时其他流程也要遵循相关行业与业务规范等等。
9、一般缺陷都有哪些类型?
需求、数据、逻辑、性能、功能、安全、兼容、变更、易用等。
10、如何保证软件测试质量?
从项目整体流程的各个阶段描述,软件质量是要在每个环节做好把控的。
11、测试计划有哪些内容?
产品测试背景、测试资源分配、测试策略、风险应对措施、测试方法、测试工具、测试周期、测试参考资料。
12、如何进行回归测试?
分阶段描述。但每个阶段需要计算出回归测试范围以及需要的时间。
实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。