Software testing interview questions 90% of the encounter: "You will set up a test environment?"

When the interview, to face such questions, many people will feel my mind a blank look, or bits and pieces, I do not know where to start.

On the one hand does not know what the interviewer ask this question of intent? I do not know what he wanted the answer is?

More do not know from what to answer.

As a test for more than eight years of industry practitioners testers, I would like to share some of my experiences and views.

 

First of all, no doubt, the interviewer asks this question, you want to get a definite answer, I hope you will be a good test engineer to build a test environment.

QA No matter what type of test, the most basic function test, we need to set up a test environment;

Advanced performance pressure part of the test, higher requirements to build the environment.

So we set up a test environment is one of the outstanding test engineers the necessary skills, but also to carry out QA testing of pre-conditions.


Of course, some companies may have O & M or R & D department is ready to help test environment, but QA if blindly rely on other departments, it will greatly test the limitations of the work carried out, if other departments do not have time or behind schedule, will directly affect the the progress and efficiency of the test work;

QA and testing environment if it is not responsible for the maintenance of the late business expansion needs time to optimize the test environment, or encountered a problem when you want to debug, need to rely on other departments, the test will not work independently, the test will look unprofessional staff .

Understand the importance of QA have the ability to set up a test environment, then really want to have the ability to set up a test environment, and what skills and knowledge needed to master it?

This requires us to know what the test environment?

Test Environment (Testing Environment), refers to computer hardware and software in order to complete the necessary testing, the general term for software, network equipment, historical data, in short, the test environment = hardware + software + network + + Test data preparation tools.

Obviously, we must learn to set up a test environment, we need to have these five skills and knowledge.

So, we focused on each area of ​​knowledge we need to grasp the depth and breadth of knowledge and, for everyone to be a detailed introduction, hope that they can make a guide, knows the direction of their own efforts.

Hardware , general hardware test will involve relevant content is a computer system, such as Windows systems, Linux systems and MacOS systems.

Test environment can be deployed on any of the above system, according to the specific needs of the current depending on the tested software.

General operating platform software may be more on the Windows system; however structures related services, such as interactive software needed for the operation of the service, or software background bearer services, will be built on a Linux system.

So Linux operating system commands and associated QA must know and be skilled.

 

There are many types of Linux systems, such as CentOS, Ubuntu, Redhat, Debian, etc., to choose the right system according to the specific needs of the product can be.

In addition, we may also want to know how to install a Linux system, because the provision of equipment resources in many companies give QA, QA need to deploy Linux on the server on demand. (Does not install linux system students can also find the video I want to also install software oh)

One thing to note here also, is the software to run the hardware requirements.

Will clear the usual software manual software hardware requirements, such as information on the number of CPU, memory size, hard drive size and number of the card, if there is no clear requirements, QA can confirm with product development or communication.

So, on this piece of hardware, we need all of you to understand the various operating systems, particularly Linux operating system commonly used commands can be able to install the system and configure IP, routing and other basic network (the network will then focus mentioned in section) , can be installed and set up common services on a variety of systems.


Software , including the current test software and associated dependent and interactive software.

The current deployment of tested software, usually installed after the deployment of good service, you can access through the web front end or APP directly on a Linux system, the back-end as long as the deployment is complete, run the front is quite simple; dependent and interactive software generally some support software, such as JDK, tomcat, database and so on.

How to install the deployment, we can go on their own Baidu, online tutorials related to many, if not, I can send relevant information to everyone, basically 30 minutes you can build a good database JDK + tomcat +

 

Network , this knowledge may be a lot of blind testers.

Network is a relatively large body of knowledge, particularly concerning the numerous and complex.

所以大家可以优先学习一些跟搭建环境密切相关的网络知识,然后自己再慢慢的去渗透和深造。


一般公司网络环境,最基本的要求是交换和路由相关的知识。

比如要自己搭建一个网络拓扑,使用多台网络设备(如服务器,路由交换等中间设备,客户端等),QA需要规划和配置IP地址,部署路由和VLAN等相关配置,实现网络隔离和通信,这样才可以开展正常的业务测试;另外,对于一些常用的基础网络协议,如TCP,UDP,HTTP等,最好也能有个基本的认知,因为很多服务都是基于这些基础协议实现的,知道这些能够加深自己的理解,有利于测试的作的实现。

当然,如前面提到的,除了以上网络设备,我们还需要操作Linux的基本网络配置,如Linux IP和路由配置,Linux系统命令抓包,调试网络通信问题等,这些都是需要Linux命令和网络基础知识结合在一起使用的。


数据准备,一般指测试数据的准备。测试数据会在测试用例设计的阶段设计好,然后软件运行的时候,作为软件输入去验证软件功能。

如果是少量、正常的测试数据,可以直接通过手动方式模拟出来,如果是大量的用户数据的模拟,可以借助测试工具来构建,这个接下来的测试工具部分会再详细讲到。


测试工具,是很多测试人员都比较感兴趣而且趋之若鹜的一个知识领域。

大家执行功能测试的时候,会利用各种工具代替手工,简化和深化测试;执行压力和性能的时候,就更加需要借助测试工具模拟出来高并发、高吞吐、高持续的数据。

由此可见,工具确实很重要也很实用,纵观大量招聘公司的职位要求,基本都有“熟悉xxx测试工具”的明确要求项。

QA可以针对自己将要做的测试类型,选择合适的工具进行学习。

比如你要做的是接口测试,可以选择Jmeter或者postman;你要做压力和性能测试,可以学习Loadrunner,IxLoad或者Avalanche的使用;要模拟多种协议的流量,也可以使用Linux上常用的流量测试工具,如Hping,Curl,ab等;还有一些常用的debug和抓包工具,如fiddler,wireshark等,也可以学习并且使用起来。

总之,工具是辅助测试的好帮手,灵活使用可以让你的测试效率事半功倍。

 

当然,这里想补充一句,工具的重要性确实无可厚非,但是大家还是不要盲目崇拜,一味追求工具的学习和使用,因为工具再好也仅仅就是一个工具而已,还是需要专业测试人员应用良好的测试思路和理念去恰到其分地使用到测试中,才能将其作用发挥到极致。

讲到这里,可能会有很多人都觉得压力山大,毕竟要掌握这么多专业的知识,对任何一个人来说都不是一件易事。如果能够全部掌握固然是完美,但是对于经验没有那么丰富的人,甚至有很多从事测试多年的测试工程师,都无法自信的笃定自己可以在这所有的知识领域里游刃有余。

所以,在你成长成为一个全能型优秀测试工程之前,被面试官问到这种问题要怎么办呢?

这里,我可以分享给大家一些小技巧。

 

首先,去面试之前,先了解你要去面试的公司具体是个什么类型的公司

    其实这点,不止针对这个问题,应该是针对所有的面试,都应该先弄清楚你要去面试的公司主要业务和职位要求,有针对的去准备自己的知识点和回答问题的方向,这是面试的一个必备智慧。好,回到我们今天要讨论的环境搭建的问题,因为不同的公司所需要你具备的搭建测试环境的能力是不一样的。

    比如是一个传统的网络设备公司,如路由交换,防火墙等业务产品,他会要求你更偏向于的网络基础知识多一些,如网络拓扑的搭建和配置,相关协议的使用等,所以你可以提前做好相关知识的准备;

    如果是传统的Windows软件的公司,搭建测试环境大部分都是跟系统相关的,也就是上面我们讲到的硬件部分要求的内容。那么你就可以提前把Linux系统的相关的知识抓紧时间恶补一下;

    如果是时下最流行的互联网公司,测试web应用,PC 端APP和移动端APP软件的较多。

搭建这样的测试环境,则侧重更多的是Linux系统知识,还有相关服务的搭建以及各种工具的使用。 当然,这种分析也只是一个大概的总结,不是绝对正确也不能涵盖所有的情况,所以大家做一个参考就好。不过,先分析公司类型和业务,针对岗位需求提前做准备的这种思路,肯定是百利而无一害的。

另外,面试之前,大家一定要根据自己已有的工作经验和知识体系做好相关的梳理

大部分面试官,都会要你根据工作经验描述搭建测试环境的过程,那么你就需要在实际项目经验的基础上,结合自己的知识储备,然后再有针对性的组织语言去迎合当前面试公司的要求,总结出来一份漂亮而且能满足对方预期的答案。这么说可能会有些抽象,我们可以来看个具体实例。

面试官:你以前公司测试需要自己搭建测试环境么?你会自己独立搭建测试环境么?

你:我们原来公司都是测试人员自己搭建测试环境的,因为这样子的测试工作能比较自主独立的开展,而且后期的维护也会比较方便一些(首先,肯定的回答了问题,告知你是会搭建测试环境的,而且也表达了你认为测试人员会搭建测试环境的必要性)。

我们一般会在拿到测试需求的时候,根据需求先把准备环境好。因为我上一家公司是一家防火墙公司,有自己的设备,也有相应的web应用和APP,所以我会同时测试这些前端应用以及防火墙设备服务(先介绍一下公司的业务类型以及自己的测试的产品,以方便后面讲环境搭建的重点,这里可以根据自己的实际情况而定)。

所以准备这样的测试环境,我们会需要准备两台Linux服务器分别模拟客户端和后端服务器,搭建好测试拓扑,配通网络就可以(表明网络基础配置能力你是具备的);然后Linux系统我们一般也会自己安装,而且还要准备好相应的服务(表达出Linux系统的操作和常用服务搭建也是OK的);然后我们会用客户端模拟一些用户流量,也会在Windows上安装一些常用的测试工具来模拟用户数据来测试产品(常用测试工具也是没有问题的)。这样最初的测试环境搭建基本就完成了。

面试官:所以Linux系统你是会用的对吧?你们一般会安装一些什么服务?具体操作步骤能简单描述一下么?(他会根据你的描述挑出来他感兴趣的点来细化的问你,比如一些具体的知识细节)

你:(这个时候,就需要你回答具体的细节了,考验你的技术硬核能力了。当然,如果遇到自己不是很清楚的,一定要避重就轻,聪明的引导面试官问你擅长的领域,比如“这个我不是太了解,但是我用过另外一个xxx,这个我比较熟悉”) ......

总而言之,面试官问你这样的问题,一方面是想考察你的技术能力,另一方面也想考察你的表达能力。

所以,大家可以对照一下上面列出来的知识点,如果感觉自己的知识储备不足,可以趁面试之前好好补习一下;

如果发现很多知识领域自己都有涉猎,但是回答的时候不知道从哪里开始,那就根据自己的经验和实际情况,时常总结和沉淀,梳理自己的知识体系。记住,毫无准备的面试,成功率都不会太高;善于总结积累的人,运气都不会太差!

 

Guess you like

Origin www.cnblogs.com/lz1996/p/11576338.html