引:作为一个软件测试工程师,每当跳槽换工作时,难免在面试中碰到一些“送命题”。之所以称这些问题为“送命题”,主要是因为它们:有的知识点很容易混淆;有的问题很难回答的让面试官满意;有的题目甚至超出了自己的认知…… 基于此,我们后期将为大家不定期解疑答惑,把这些琐碎的知识点加以总结,便于大家记忆。
01 如果给你一个网站,你该如何测试? (PS:关于这个问题,相信在很多技术面试时,大家都碰到过。但,还是有很多小伙伴留言说自己描述不清楚,或者一紧张就忘了其中的步骤。今天就给大家再梳理一次。) 第一步 ,我们要查找需求说明书、产品说明、设计文档等,逐一分析测试需求点; 第二步,通过需求分析,制定合理的测试范围、测试策略及实施方案。 第三步,设计测试用例。我们可以通过分解测试内容,针对性设计用例。举个例子。如果我们要做功能测试,就需要测试链接、媒体元素、界面、页面布局、插件、文字等内容。包括但不限于: 链接是否正确跳转; 是否存在空页面和无效页面; 是否有不正确的出错信息返回; 页面是否风格统一、美观; 多媒体元素是否可以正常加载; 控件是否正常使用; 页面布局是否合理,重点内容和热点内容是否突出;等等。
02 在测试某个项目时,你发现了一个系统bug,但开发工程师不认为这是个bug。对于这种情况,你应该怎么解决? 答:首先本着解决问题的态度,再次跟开发组的成员沟通。如果对方依然认为这个问题可以忽略,而自己仍觉得有必要深究,那么,我将做出以下处理。 首先,将问题备案。填好bug清单,并提交到缺陷管理库中; 其次,通过软件需求说明书、产品说明、设计文档等,甄别缺陷判断依据。这里面,主要有这几项需要注意: 1)是否存在实际结果与预期效果不一致的地方; 2)如果以上说明书没有判断bug的依据,我们可以考虑根据以往经验,按照同类产品的一般特性,来判断是否为缺陷。或站在用户角度来判断; 3)是否可以通过设计人员、或者使用方,充分探讨,得出结论; 4)如果上述3种方法均不奏效,可以向测试经理客观、合理地论述自己对此问题的看法,让测试经理来衡量这个问题的严重性。如果测试经理也无法判断,还可以向公司决策层反映,让他们来决定如何处理这个问题。
03 如果要给APP做安全测试,应从哪几个方面去测? 关于这个问题,首先我们要明确,系统不同,安全性指标也不同。我们应该根据系统安全指标去调整测试策略。软件安全性测试主要包括程序、数据库两部分。由此,我们的测试方案,大致如下: 1)在处理用户认证安全性问题时,我们要考虑的问题主要有: 是否可以明确区分系统内不同用户的权限; 系统内是否会出现用户间的冲突; 用户登陆密码是否存在漏洞,是否可见、可复制,是否会因特殊字符串,出现“密码”的情况; 是否可以通过途径登陆系统(简单说就是,是否可以通过拷贝用户登陆页面的链接,直接进入系统); 用户是否可以使用后退键,而不通过输入口令进入系统; 用户退出系统后,是否可以删除足迹(包括账号密码、浏览痕迹、缓存等); 2)在处理系统网络安全问题时,要考虑问题: 当受到非授权用户攻击时,防护系统是否坚固; 采用成熟的网络漏洞检查工具(即:专业的黑客攻击工具,例如NBSI系列和 IPhacker IP 等)检查,系统是否存在相关漏洞; 确认系统补丁是否已就绪,系统防护措施是否已装配; 采用各类木马,确认系统木马情况是否良好; 采用各种防外挂工具,确认系统各组程序是否存在外挂漏洞,等。 3)数据库安全考虑问题: 确认系统数据是否独立,是否可管理; 确认系统数据是否完整; 确认类似银行的软件系统,机密性是否良好; 确认数据是否可备份,是否可恢复等。
04 什么是测试用例?什么是测试脚本?两者的关系是什么? 1)测试用例 简单来说,测试用例就是一组条件或变量,它是为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。测试者用它来确定软件或系统是否正常工作。 对于不同的测试项目而言,我们需要不一样的测试用例,来确保项目的顺利推进。
软件测试用例的基本要素,包括:用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。这其中: 用例编号:对于测试用例的编号来说,它是有一定规则的。因为,它存在的主要目的是便于查找,以及便于跟踪。测试标题:它是对测试用例的描述,用于明确测试用例的用途。 例如,测试用户登录时输入错误密码时,软件的响应情况。重要级别:定义测试用例的优先级别,可以笼统的分为“ 高 ” 和 “ 低 ” 两个级别。而在实际工作中,我们一般将它划分为5级。 测试输入:提供测试执行中的各种输入条件。这里需要注意的是,测试用例的输入,对软件需求当中的输入有很大的依赖性。 如果软件需求中,没有很好得定义需求的输入,那么测试用例设计中会遇到很大的障碍。操作步骤:提供测试执行过程的步骤。预期结果:提供测试执行的预期结果。预期结果应该根据软件需求中的输出,得出结论。 2)测试脚本 测试脚本一般是指,一个特定测试的一系列指令。这些指令可以被自动化测试工具执行。测试脚本是自动执行测试过程(或部分测试过程)的计算机可读指令。测试脚本可以被创建(记录)或使用测试自动化工具自动生成,或用编程语言编程来完成,也可综合前三种方法来完成。 3)两者关系 简单来说,测试脚本是测试用例中,自动化测试的部分。脚本的编写,必须对应相应的测试用例。
05 你对测试*大的兴趣在哪里?为什么? 关于这个问题,几乎所有的测试面试都会问到。而这个问题的回答,也没有固定的答案,大家可以根据自己的理解和代入感,去进行表述。但值得注意的是,回答一定要诚恳,要符合自身的性格特点,不要让别人觉得你虚伪或者自以为是。 下面给大家整理了一些回答的方向,大家可以参考进行自我描述。 1)测试工作是个严谨的工作。对于个人而言,可以提升个人逻辑思维及归纳总结问题的能力,等。 2)表明你做测试的目的是为了提升能力,也是为了将来成为更好的测试工作者,或者为将来转测试开发工程师做准备等; 3)表示你对数据库方向的测试非常感兴趣,并且希望通过目前的工作,提升自己的数据库掌握能力。
切忌过多表达自己对企业的某一业务感兴趣,比如,你对企业的某一游戏软件感兴趣。一旦你过多的表达,很可能面试官会认为你只想在企业工作一阵子,或是觉得你还很“嫩”,对你的薪资待遇还可以压缩。
06 写在最后 以上5个问题只是技术面试中,众“坑”中的零星一角。希望大家看完后,下次可以不踩坑。另外,也欢迎大家在评论区留言,写下你认为软件测试面试中,曾经踩过的“坑”,或是自己的疑问,便于我们后期给大家明确答案。 祝大家在技术这条路上,越走越顺,越走越远~
点击下方“ 阅读原文 ”,挑战年薪20W~