后端测试人员应该知道什么



在面试后端测试人员的职位之前,经常有人问我要阅读什么。在我的工作中,我遇到了一个事实,即许多申请人并不总是了解面试中将会发生的事情,并且毫无准备。因此,这个想法诞生于在一篇文章中收集有用的信息。

FunCorp包含一个主题列表,其中包含我们询问候选人的问题。我决定对其进行补充,以使其更通用,将每个主题划分为几个级别(您需要了解的知识以及将是加分的内容),并添加指向可以在这些主题上阅读的文章和书籍的链接。

本文可解决哪些问题:候选人-准备面试,任何后端测试人员-刷新知识,前端测试人员或移动应用程序测试人员-拓宽视野。雇主可以使用该列表创建工作要求。

必要知识


我将立即发表评论:必要的知识和技能取决于空缺的具体情况。如果空缺是关于在使用HTTP的地方测试API,那么您需要非常了解HTTP,而无需了解操作系统的细微差别。如果使用Windows,则无需了解bash。

我还想向雇主发出呼吁:不要问关于移动内存质量保证工程师职位候选人的Linux中的内存管理问题,这对他的工作不太可能有用。
我没有提及编程语言,因为它很大程度上取决于所使用的堆栈。但是,在测试人员的面试中,他们通常不会被问到任何有关他们的信息(否则,他们会在职位描述中指出必要的语言知识水平)。

我将在许多主题上提供链接,包括到Wikipedia。是的,尽管这不是质量最高的信息源,但是,我认为它非常适合对该主题进行肤浅的研究或使人耳目一新的知识,并且它是很好的,因为在任何一篇文章中,都有特定领域内与其他文章的许多链接。无论如何,我都会提供其他文章和书籍的链接,以便每个人都可以为自己选择适当的信息来源。

测试理论


首先,也许我会以最明显但不是最明确的方式开始:有些团队领导者可以在面试中用各种术语和概念来推动您,有些则完全不问。

对任何候选人的期望


基本术语知识,测试设计技术以及编写质量错误报告的能力。

这表明考生对主题很了解


正式而言,这些是ISTQB证书。

读什么话题


在Habré上 有一篇不错的文章,其中包含所有必要的信息。如果您想更详细地了解测试理论,则可以阅读ISTQB材料

贝壳


根据操作系统的不同,您需要了解bash(sh,zsh等,但细微差别不太可能发挥重要作用)或CMD和PowerShell。

对任何候选人的期望


基本命令知识。

这表明考生对主题很了解


候选人知道许多命令,各种选项,它们的优缺点,使用它们的各种方式以及用于调试问题的工具,例如stracetcpdumpgdb等。

读什么话题


您可以在我以前的一篇文章中了解Linux的主要命令,并且在GitHub上还有一个非常酷的存储库,其中包含大量示例从书中,我会建议Robachevsky,Nemnyugin和Stesik撰写的“ UNIX操作系统” -它不仅与团队有关,而且与整个系统有关。
您可以在此处阅读有关CMD命令的信息,但是PowerShell有一些不错的文档

HTTP(或作业描述中指定的协议)


通常,HTTP被选择为客户端-服务器体系结构的主要协议,因此他们经常询问该协议。但是,您可能需要了解IMAP,POP3,SMTP(如果要测试邮件),Protobuf或MessagePack或其他协议。 

对任何候选人的期望


这完全取决于协议的普遍性。他们不太可能给您二进制流量转储,并要求在Protobuf的纸上对它进行反序列化,但是如果我们在谈论HTTP,那么您需要深入了解它:请求和响应的结构,主要标头,方法,响应代码,HTTPS。

这表明考生对主题很了解


候选人可以回答有关缓存,数据压缩,cookie以及HTTP中各种标头的使用的问题。对于其他协议,一切都比较主观。

读什么话题


关于HTTP,所有必需的信息都在Wikipedia上对于其他协议,我建议您阅读其文档和规格。也不要忘记HTTPS好吧,当然,您应该始终可以轻触到RFC 2616RFC 7540的链接(但还有其他规范)。

下层网络协议


许多候选人不知道HTTP下是什么。我相信这并不能很好地描述它们的特征,因为测试人员必须具有好奇心和好奇心,因此,我当然需要大致了解OSI网络模型。

对任何候选人的期望


候选人应知道有TCP,UDP和IP协议,并了解其本质。

这表明考生对主题很了解


通过了解TCP协议的操作机制(三次握手,标头中的某些字段,标志,滑动窗口),候选人可以说出TCP和UDP的优缺点,它们的应用领域以及IP的常识。如果考生简略地讲其他协议(例如ARP,ICMP,ICMPv6),那就太好了。

读什么话题


基本知识可以从Wikipedia文章中获得:OSITCPUDPIPIPv6ICMPARPICMPv6 网络模型如果您想使自己沉迷于该主题,则可以阅读Tanenbaum的“计算机网络”

数据库


对任何候选人的期望


基本的SQL查询(每个人都喜欢的JOIN)。

这表明考生对主题很了解


不同DBMS的常识,复制,分片,DBMS的内部结构以及非关系数据库的常识。

读什么话题


一般而言,有关数据库的信息可以在特定DBMS的文档中找到。如果要详细处理数据库,则建议使用Kleppman的“高负载应用程序”的相应章节

面向对象


对任何候选人的期望


了解OOP的基本原理。

这表明考生对主题很了解


如果考生知道一些模式,那就太好了。

读什么话题


你可以阅读有关原则,例如,在这里,关于模式- 在这里还有一本很酷的书《面向对象的编程技术》。设计模式 “一帮四”。

操作系统


对任何候选人的期望


对于大多数测试人员的职位空缺,对操作系统细微差别的了解并不重要。

这表明考生对主题很了解


如果考生了解内存管理,内核和堆栈,新进程及其创建,文件系统等知识,那将很酷。

读什么话题


简要地说,您可以阅读已经提到的Robachevsky,Nemnyugin和Stesik 所著的“ UNIX操作系统”一书如果您对该主题感兴趣,则可以使用例如Tanenbaum 的Modern Operating Systems进行深入研究通常,您可以使用Wikipedia来熟悉该主题:有关于Linux内核虚拟内存上下文切换等的文章。

计算机架构


对任何候选人的期望


对于大多数测试人员的职位空缺,对处理器,内存和外围设备的细微差别的了解并不重要。

这表明考生对主题很了解


如果考生对处理器,寄存器,缓存,内存和磁盘等有大致了解,那就太好了。

读什么话题


您可以使用Wikipedia初步熟悉硬件:CPU处理器模式微体系结构(本文中有许多其他相关文章的链接),高速缓存ALU管道分支预测器超标量等。例如,可以使用Tanenbaum 撰写的“ Computer Architecture”一书对这个主题进行更全面,更深入的研究

算法和数据结构


他们很可能不会问有关算法和数据结构的问题(特别是如果职位不在实习生或初级职位),但是您仍然需要了解一些常识。就个人而言,在一次采访中我只被问过有关二进制堆的问题;我自己也不喜欢问候选人。因此,我将不介绍任何标准,仅附上具有良好图片的文章,您可以将其打印并放在醒目的位置。如果您想将自己沉浸在算法和数据结构中,请随时阅读“算法。开发指南“ Skien或“算法。构建与分析” Cormen。

其他


  1. 许多使用Docker的地方
  2. (« »).
  3. REST SOAP.
  4. JSON XML.
  5. Protocol Buffers, MessagePack BSON.
  6. TLS.
  7. Git ( VCS).
  8. Nginx Apache.
  9. .
  10. TeamCity Jenkins ( CI-).



, google.com Enter?


这是一项经典任务,您可以通过该任务检查应聘者总体上对网络技术的了解程度。在Habré 对此任务进行详细的分析,但我不建议您细读“通过键盘接线图发送少量电流”类型的细微差别。

使用按钮测试表单


是的,在后端测试人员的采访中经常会问这个任务。这项任务很经典,因此如果应聘者幻想一下并用一个按钮想象一下该按钮的背后可能会很酷。例如,我们可以假设数据从表单到后端,由多个服务器和数据库组成,后端写入日志并具有配置-与“在输入字段中输入值太长”相比,这将立即添加更深层次的测试用例。 。例如,您可以使用tcpdump查看通信是否准确地流向了所有后端服务器。您可以尝试发送SQL注入或损坏的JSON(自然,如果在任务上下文中突然出现JSON);您可以检查日志是否占用了磁盘上的所有可用空间;您可以在什么时候检查系统安全的后端,向数据库添加数据的正确性等。因此,候选人将展示他的广阔视野,这无疑将使他受益。

服务测试


上一个任务的一种变体:例如,有一个服务在端口上侦听并接收JSON作为输入,并以相同的格式进行响应。一切都是相似的,只是没有锡,所以您不必担心。我们使用telnet连接到端口,然后一切都一样。

REST API端点测试


再一次,一切都是一样的,只是使用HTTP(最有可能)。在这里,您可以演示HTTP协议的知识:例如,如果请求中包含各种标头,请检查服务的操作。

当然,您不能为从头准备后端测试器而编写通用培训手册:这完全取决于公司的细节,部门的细节以及团队负责人。技术并没有停滞不前:直到最近,Docker才被积极使用,现在对它的使用经验将是一大优势。但是,我试图在一个地方收集基本的东西,如果这有助于为至少一个人准备和寻找工作,那么我写这篇文章是有充分理由的。

附言:我还建议您阅读同事文章“现代测试仪的图像。您需要了解并能够做到的事情”,它概述了测试人员的各种开发方向。

All Articles