亚马逊QA/测试工程师面试究竟考察应聘者哪些能力?(附一批面试题)
测试技能评估。
编码技能评估。
分析技能评估。
行为测试。
Bar raiser(抬杠者)
要记住的事情。
~ 测试技能评估 ~
为自动售货机创建测试计划和测试用例?[功能测试]
创建测试用例以破坏Amazon系统?[聚焦负面测试]
编写测试案例以检查Amazon系统的健壮性?[压力测试]
现在来看一些有关亚马逊QA工程师职位的示例问题。
1. 复习一些真实的示例问题。
为给定场景编写冒烟测试。一个系统具有三个模块,开发团队修复了一个模块的缺陷,而该模块是从其他模块获得输入。
为以下用例创建测试计划,首次推出销售电子书的网站。
为给定场景编写测试用例。客户选择使用信用卡付款方式购买一本书。
为某应用程序编写测试用例。该应用将文件(例如,文本或pdf)从本地计算机上传到dropbox。
在生产环境中发现错误。QA未及早发现的原因可能是什么?
确定与通过信用卡在线支付有关通过移动应用程序进行购买的测试用例。
每次打开闹铃时,结果手机关机,你将采用哪种测试方法?
编写测试用例,以验证输入为HTML页面URL的API。API将解析页面,读取标签内的数字,对它们进行排序并将其存储在文件中。
2. 找出一些棘手的问题。
编写测试亚马逊网站的计划。假设它有两个类别,每个类别有100种产品。它使你可以购买产品,询问客户信息并支持订单跟踪。
你将如何测试Amazon搜索功能,包括基于类别的搜索?你将自动执行哪些测试,而不会自动进行哪些测试?
有一个图表显示缺陷处在“正在处理”状态所花费的平均天数。X轴反映每天/每周/每月的持续时间。Y轴表示天数。制定测试条件以验证该图。
用户订阅表单具有电话号码字段。JavaScript将其限制为仅接受数字。但是后端将它们存储为文本。认为有问题吗?问题严重吗(高/中/低)?说明理由。
~ 编码技能评估 ~
编写脚本以计算数组中给定元素的出现次数。
什么是内存泄漏?编写一个shell脚本来查找内存泄漏。
以数组形式给出数字。编写一个程序将所有零移动到末尾。
给出了两个大小为7和3的有序列表。第一个列表的末尾有三个空位。以最小的数量将它们合并排序。步骤。
编写脚本以打印编号。给定字符或字符串中所有字母的出现次数。
如何反转N子集中的数组?例如输入:[1,3,5,7,9,11,15,17,19],输出:[5,3,1,11,9,7,19,17,15]。
编写代码以计算给定字符串中的重复字符。
计算字符串中字符的频率。打印每个字符及其频率。例如对于输入<abcabc>,输出应为<(a,2),(b,2),(c,2)>。
如何查找给定的算术表达式是否有效?
在整数排序数组中打印数字的第一个和最后一个出现的位置,如int []列表= {1,2,3,4,5,5,7,8}
编写程序以打印字符串中的第一个非重复字符。例如,给定字符串“Is it your first company” 返回“ u”。
编写代码以螺旋形式打印2×2矩阵。
~ 分析能力评估 ~
一直运行到昨天的桌面Java应用程序今天崩溃了。你如何调试这种情况?
你正在安装设备驱动程序,它崩溃了。你将如何调试?
你正在尝试运行视频文件,但未打开。你将如何调试?
错误跟踪系统无法正常工作。在这个情况下,你会怎么做?
~ 行为测试 ~
你为什么要离开上一家公司?
加入亚马逊的原因是什么?
你不喜欢上一份工作吗?
你如何为产品质量做出贡献?
你如何为我们公司的发展做出贡献?
加入亚马逊后你将采取的第一个举措是什么?
~ Bar Raiser ~
在这个回合中,你可能会遇到与之前任何回合有关的问题。Bar Raiser会在你认为你可以提高亚马逊标准的范围内对你进行调查。你必须证明自己已经掌握了上面讨论的所有能力,展现毅力和遏制狂妄。
这是一种公开回合,候选人可以回答各种问题。
这一回合就像结对编码那样,你必须为某问题提供优化的解决方案。
与其它几轮面试相比,这轮相对困难。
这是确保员工素质达到一定门槛的过程。
面试官善于询问后续跟踪性的问题,其目的是暴露你的自然倾向。
这轮面试的大多数情况,面试官通常会询问行为问题。
Bar raisers是一群在各个岗位都是精英的评估人,在亚马逊在招聘环节中扮演重要角色,对应聘者录用与否拥有表决权,保证亚马逊能招聘到优秀人才的保证。即使应聘者应聘的岗位不是他们所擅长的领域,也不影响他们对应聘者的表决权。
这个由Bar raiser面试应聘者的战略是公司创建初期就开始实施的,后经亚马逊CEO贝索斯改进并一直实施到现在。亚马逊相信这个策略能将不适合公司文化的人筛选出来,然后帮助亚马逊在这个电商竞争的时代保持先进性。
根据一名亚马逊前员工说,目前亚马逊内部共有几百个Bar raisers,这项工作能导致更快的升职。Bar raisers是一项志愿工作,没有额外的报酬,每个Bar raiser每周大约要面试10个人,每个人大约需要2-3个小时,包括笔试和面试等,会占用较多的时间。这些Bar Raiser在做招聘工作的同时还要做好本职工作,比如财务、营销和开发等。所以有些员工也不想做Bar raisers,机制存在着一些问题,也造成Bar raiser的缺失。
~ 要记住的事情 ~
对于每个问题,首先想出一个简单的解决方案,然后考虑一个最佳解决方案。
用清晰正确的语法进行编程,面试官是在没有你干预的情况下理解代码。
你应该能够分辨出代码的复杂性。
尝试通过有用的具体实例来支持你的答案。
不要混淆,要求澄清。它不会伤害但会有所帮助。
~ 其它面试题 ~
Test plan for Amazon login screen
From a given list of array (Not sorted) find the second largest value
Find the prime numbers from the given list of array (1 -100)
Find the shortest path between 2 points on a 2d matrix
Find the union of two strings?
Given an array with numbers 1-5, how would you subtract one number from each index?
Given an array with numbers 1-5, how would you subtract one number from every EVEN number in each index?
How to automate an API that retrieves bank, card holder information based on Credit card number is given as input.
How would you test payment processing.
What else would you test?
Have you been able to work on multiple projects?
Write a function in any language that will print "AN" if a number is divisible by 8, "ANIM" if divisible by 16 and "ANIMAL" if divisible by 32.