25道软件测试工程师经典面试题,你确定不进来看看?

Time will tell.

8、软件的安全性应从哪几个方面去测试/h2>

软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

用户认证安全的测试要考虑问题:

  • 明确区分系统中不同用户权限
  • 系统中会不会出现用户冲突
  • 系统会不会因用户的权限的改变造成混乱
  • 用户登陆密码是否是可见、可复制 、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
  • 用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
  • 系统 络安全的测试要考虑问题
  • 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
  • 模拟非授权攻击,看防护系统是否坚固
  • 采用成熟的 络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP )
  • 采用各种木马检查工具检查系统木马情况
  • 采用各种防外挂工具检查系统各组程序的外挂漏洞.

数据库安全考虑问题:

  • 系统数据是否机密(比如银行系统,这一点就特别重要,一般的 站就没有太高要求)
  • 系统数据的完整性(曾在的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
  • 系统数据可管理性
  • 系统数据的独立性
  • 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否完整)

9、什么是测试用例,什么是测试脚本,两者的关系是什么/h2>

为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。

测试脚本是为了进行自动化测试而编写的脚本。

测试脚本的编写必须对应相应的测试用例。

10、简述静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

静态测试

  • 是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。

动态测试

  • 是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。

黑盒测试

  • 一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。

白盒测试

  • 根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。

α测试

  • 是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。

β测试

  • 是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

11、软件质量保证体系是什么,国家标准中与质量保证管理相关的几个标准是什么们的编 和全称是什么/h2>

SQA由一套软件工程过程和方法组成,以保证软件的质量。SQA贯穿整个软件开发过程,应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。

软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。

它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

12、软件产品质量特性是什么/h2>

功能性:

  • 适应性、准确性、互操作性、依从性、安全性。

可靠性:

  • 成熟性、容错性、易恢复性。

可使用性:

  • 易理解性、易学习性、易操作性。

效率:

  • 时间特性、资源特性。

可维护性:

  • 易分析性、易变更性、稳定性、易测试性。

可移植性:

  • 适应性、易安装性、遵循性、易替换性

13、软件测试的策略是什么/h2>

在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。

14、软件测试分为几个阶段,各阶段的测试策略和要求是什么/h2>

和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试

4个主要阶段:

单元测试:

  • 单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

集成测试

  • 集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。

系统测试:

  • 系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

验收测试:

  • 验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

单元测试测试策略:

自顶向下的单元测试策略:

  • 比孤立单元测试的成本高很多,不是单元测试的一个好的选择。

自底向上的单元测试策略:

  • 比较合理的单元测试策略,但测试周期较长。

孤立单元测试策略:

  • 最好的单元测试策略。

集成测试的测试策略:

大爆炸集成:

  • 适应于一个维护型项目或被测试系统较小

自顶向下集成:

  • 适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

自底向上集成:

  • 适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

基于进度的集成

优点:具有较高的并行度;能够有效缩短项目的开发进度。

缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。

系统测试的测试策略:

  • 数据和数据库完整性测试;
  • 功能测试;
  • 用户界面测试;
  • 性能评测;
  • 负载测试;
  • 强度测试;
  • 容量测试;
  • 安全性和访问控制测试;
  • 故障转移和恢复测试;
  • 配置测试;
  • 安装测试;
  • 加密测试;
  • 可用性测试;
  • 版本验证测试;
  • 文档测试。

22、详细的描述一个测试活动完整的过程

(供参考)

项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:

  • 需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。
  • 项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。
  • 然后SQA进入项目,开始进行统计和跟踪。

开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。

测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。

测试用例完成后,测试和开发需要进行评审。

测试人员搭建环境:

  • 开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。

  • 开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。

重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。

如果有客户反馈的问题,需要测试人员协助重现并重新测试。

23、BUG管理工具的跟踪过程

(以BugZilla为例子)

测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员。

开发接口将BUG分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,

  • 如果是本人的BUG,则设置为接收;
  • 如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;
  • 如果认为不是问题,则需要大家讨论并确认后,拒绝这个BUG,然后测试人员关闭此问题。
  • 如果开发人员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。

测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。

24、在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果持测试人员同开发团队中其他成员良好的人际关系的关键是什么/h2>

尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。

运用一些测试管理工具如TestDirector进行管理也是较有效的方法,同时要注意在TestDirector中对BUG有准确的描述。

在团队中建立测试人员与开发人员良好沟通中注意以下几点:

  • 一真诚
  • 二是团队精神
  • 三是在专业上有共同语言
  • 四是要对事不对人,工作至上

当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。

25、你对测试最大的兴趣是什么/h2>

这类型的面试题没有固定答案,但可能是许多企业都会问到的。可以参考以下答案:

  • 感觉它是一份有挑战性的工作;

  • 测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣;

  • 通过自己的工作,能使软件产品越来越完善,从中体会到乐趣。

回答这种类型的问题时,注意以下几个方面:

  • 尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。

  • 表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。

  • 不要过多的表达你的兴趣在招聘企业的范畴之外。比如招聘企业是做财务软件的,而你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,而你的兴趣是在C类语言程序的开发。

25道软件测试工程师经典面试题,你确定不进来看看?
好喽,分享就到这里,作为测试工程师,不断提升自己工作能力是提高薪资待遇最重要的基础。另外也要注重学习, IT 行业是个不断发展、更新迭代相对较快的行业,技术具有明显的时代特征,所以紧跟时代技术的发展才能让自己不掉队,在职场当中具有足够的竞争力。

测试工程师职业发展路线:
功能测试 — 接口测试 — 自动化测试 — 测试开发 — 测试架构师

如果你对Python自动化软件测试、面试题等更多内容感兴趣,在这里推荐一个学习资料分享群:175317069。有各项已整理好的测试学习资源,也有行业深潜多年的技术人分析讲解。

最后希望看到这里的你终成为一名极具竞争力的高级测试工程师。

觉得还不错就【点赞】、【评论】、【关注】吧~

Time will tell.(时间会说明一切)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月26日
下一篇 2020年10月26日

相关推荐