软件测试员面试常见问题有哪些

啊南 1689阅读 2020.04.20

【导语】: 求职者在面试软件测试员岗位时都会遇到哪些问题?招聘软件测试员的公司很多,但是基本上的面试问题还是大同小异的,作为求职者在面试前提前了解下面试官都会问哪些问题,当面试官问到我们相同的问题时也不至于心慌意乱,无法回答。

软件测试员面试常见问题

1、给你一个网站,你如何测试?
2、软件生存周期及其模型是什么?
3、什么是软件测试?软件测试的目的与原则
4、软件的安全性应从哪几个方面去测试?
5、你对测试最大的兴趣在哪里?为什么?
6、你认为做好测试计划工作的关键是什么?

给你一个网站,你如何测试?

首先,查找需求说明、网站设计等相关文档,分析测试需求。
制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
设计测试用例:
功能性测试可以包括,但不限于以下几个方面:
链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
提交功能的测试。
多媒体元素是否可以正确加载和显示。
多语言支持是否能够正确显示选择的语言等。
界面测试可以包括但不限于一下几个方面:
页面是否风格统一,美观
页面布局是否合理,重点内容和热点内容是否突出
控件是否正常使用
对于必须但未安装的控件,是否提供自动下载并安装的功能
文字检查
性能测试一般从以下两个方面考虑:
压力测试;负载测试;强度测试
数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
基本的登录功能的检查
是否存在溢出错误,导致系统崩溃或者权限泄露
相关开发语言的常见安全性问题检查,例如SQL注入等
如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
兼容性测试,根据需求说明的内容,确定支持的平台组合:
浏览器的兼容性;
操作系统的兼容性;
软件平台的兼容性;
数据库的兼容性
开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
定期评审,对测试进行评估和总结,调整测试的内容。

软件生存周期及其模型是什么?

软件生存周期(Software life cycle)又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,知道失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段。每个阶段有明确的任务。
周期模型(典型的几种):
瀑布模型
快速原型模型:快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。
迭代模型:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。在某种程度上,开发迭代是一次 完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段都可以细分为迭代。每一次 的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。
生命周期阶段:
软件计划与可行性分析
需求分析
软件设计
编码
软件测试
运行与维护

软件测试的目的与原则

在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试的目的:
测试是程序的执行过程,目的在于发现错误
一个成功的测试用例在于发现至今未发现的错误
一个成功的测试是发现了至今未发现的错误的测试
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
确保产品满足性能和效率的要求
确保产品是健壮的和适应用户环境的
软件测试的原则:
测试用例中一个必须部分是对预期输出或接过进行定义
程序员应避免测试自己编写的程序
编写软件的组织不应当测试自己编写的软件
应当彻底检查每个测试的执行结果
测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
检擦程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
应避免测试用例用后即弃,除非软件本身就是个一次性的软件
计划测试工作时不应默许假定不会发现错误
程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比
软件测试是一项极富创造性,极具智力的挑战性的工作

软件的安全性应从哪几个方面去测试?

软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
用户认证安全的测试要考虑问题: 明确区分系统中不同用户权限 、系统中会不会出现用户冲突 、系统会不会因用户的权限的改变造成混乱 、用户登陆密码是否是可见、可复制 、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入 系统 、系统网络安全的测试要考虑问题 、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上 、模拟非授权攻击,看防护系统是否坚固 、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP ) 、采用各种木马检查工具检查系统木马情况 、采用各种防外挂工具检查系统各组程序的外挂漏洞
数据库安全考虑问题: 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)、系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据 的不完整,对于这个系统的功能实现有了障碍) 、系统数据可管理性 、系统数据的独立性 、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

你对测试最大的兴趣在哪里?为什么?

回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:
最大的兴趣,感觉这是一个有挑战性的工作;
测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
通过自己的工作,能使软件产品越来越完善,从中体会到乐趣
回答此类问题注意以下几个方面:
尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。
表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。
不要过多的表达你的兴趣在招聘企业的范畴这外。比如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,而你的兴趣是在C类语言程序的开发。

你认为做好测试计划工作的关键是什么?

明确测试的目标,增强测试计划的实用性
编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确
坚持“5W”规则,明确内容与过程
“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。
采用评审和更新机制,保证测试计划满足实际需求
测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。
分别创建测试计划与测试详细规格、测试用例
应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。