The software testing interview was asked by the interviewer: Can you build a testing environment? How to answer to appear very level

1. Will you build a test environment?

 Lead: Many people are often asked "Can you build a test environment" during the interview process for software testing? Do you know how to answer this question?

2. How to answer

During the interview, when encountering such a question, many people will feel that their minds go blank, or there are bits and pieces, and they don’t know where to start. On the one hand, I don't know what the interviewer's intention is to ask this question? I don't know what the answer he wants? I don't even know where to answer it. As a tester who has been in the testing industry for more than 8 years, I would like to share some of my experience and opinions with you.

Test environment building learning direction

 

First of all, there is no doubt that when the interviewer asks this question, what he wants to get is your positive answer. I hope you are an excellent test engineer who can build a test environment. No matter what type of test QA is doing, the most basic functional test needs to build a test environment; the performance stress test of the advanced part has higher requirements for the built environment. Therefore, building a test environment is one of the necessary skills for an excellent test engineer, and it is also a prerequisite for QA to carry out testing work. Of course, some companies may have operation and maintenance or R&D departments to help prepare the test environment, but if QA blindly relies on other departments, it will greatly limit the development of testing work. If other departments do not have time or the progress is lagging behind, it will directly affect The progress and efficiency of the test work; and if the test environment is not maintained by QA, when the later expansion of business needs to optimize the test environment, or when encountering problems and debugging, you need to rely on other departments, which will cause the test work to be not independent, and also It will appear that the test staff is unprofessional.

3. Knowledge to be mastered

Knowing the importance of QA's ability to build a test environment, what skills and knowledge do you need to have the ability to build a test environment?

This requires us to know what the test environment is. Testing Environment (Testing Environment) refers to the general term for computer hardware, software, network equipment, and historical data necessary to complete software testing. In short, testing environment = hardware + software + network + data preparation + testing tools. Obviously, if we want to learn to build a test environment, we need to have these five skills and knowledge. Therefore, we will give you a detailed introduction of the knowledge points and the depth and breadth that you need to master in each knowledge field, hoping to give you a guide and know the direction you should work hard.

Hardware, the hardware involved in the general test is the content related to the computer system, such as Windows system, Linux system and MacOS system. The test environment can be deployed on any of the above systems, depending on the specific requirements of the currently tested software. The operating platform of general software may be more on the Windows system; but the construction of related services, such as services that require interaction in software operation, or the hosting service of the software background, will be built on the Linux system. Therefore, the commands and operations related to the Linux system must be known and proficient for QA. There are many types of Linux systems, such as CentOS, Ubuntu, Redhat, Debian, etc., just choose the appropriate system according to the specific needs of the product. In addition, we'd better know how to install the Linux system, because many companies will provide QA with equipment resources, and QA needs to deploy the Linux system on the server according to the demand. One more thing to note here is the hardware requirements for the software to run. Usually the software manual will specify the hardware requirements of the software, such as the number of CPUs, memory size, hard disk size, number of network cards and other information. If there is no clear requirement, QA can communicate with the development or product to confirm. Therefore, regarding the hardware, you need to have an understanding of various operating systems, especially to be able to operate common commands of the Linux system, to be able to install the system, and to configure basic networks such as IP and routing (this will be discussed in the network part) , can install and build common services on various systems.

Software, including the currently tested software and related dependent and interactive software. The current deployment of the software under test, generally after the service is installed on the deployed Linux system, can be directly accessed through the web or APP on the front end. As long as the deployment of the back end is completed, the operation of the front end is relatively simple; dependent and interactive software , generally some supporting software, such as JDK, tomcat, database, etc. How to install and deploy, you can go to Baidu by yourself, there are many related tutorials on the Internet.

Network, this may be a knowledge blind spot of many testers. The network is a relatively large knowledge system, which involves a lot of content and is complex. Therefore, you can give priority to learning some network knowledge closely related to the construction environment, and then slowly penetrate and further study by yourself. In a general corporate network environment, the most basic requirement is knowledge about switching and routing. For example, if you want to build a network topology by yourself and use multiple network devices (such as servers, intermediate devices such as routing switches, clients, etc.), QA needs to plan and configure IP addresses, deploy routing and VLAN and other related configurations to achieve network isolation and communication. In this way, normal business tests can be carried out; in addition, it is best to have a basic understanding of some commonly used basic network protocols, such as TCP, UDP, HTTP, etc., because many services are implemented based on these basic protocols. Knowing these can deepen your understanding, which is conducive to the realization of test operations. Of course, as mentioned earlier, in addition to the above network devices, we also need to operate the basic network configuration of Linux, such as Linux IP and routing configuration, Linux system command packet capture, debugging network communication problems, etc., all of which require Linux commands and network configuration. The basics are used together.

 Data preparation generally refers to the preparation of test data. The test data will be designed in the stage of test case design, and then when the software is running, it will be used as software input to verify the software function. If it is a small amount of normal test data, it can be directly simulated manually. If it is a simulation of a large amount of user data, it can be constructed with the help of test tools. This will be discussed in detail in the next part of test tools.

Testing tools are an area of ​​knowledge that many testers are interested in and flock to. When you perform functional testing, you will use various tools instead of manual work to simplify and deepen testing; when performing stress and performance, you need to use testing tools to simulate high-concurrency, high-throughput, and high-sustainability data. It can be seen that tools are indeed very important and practical. Looking at the job requirements of a large number of recruiting companies, there are basically clear requirements for "familiarity with xxx testing tools". QA can choose the appropriate tool for learning according to the type of testing he will do. For example, if you want to do an interface test, you can choose Jmeter or postman; if you want to do a stress and performance test, you can learn the use of Loadrunner, IxLoad or Avalanche; if you want to simulate the traffic of multiple protocols, you can also use the traffic test commonly used on Linux Tools, such as Hping, Curl, ab, etc.; there are also some commonly used debug and packet capture tools, such as fiddler, wireshark, etc., which can also be learned and used. In short, the tool is a good helper to assist testing, and flexible use can make your testing more efficient. Of course, I would like to add here that the importance of tools is beyond reproach, but everyone should not blindly worship them and blindly pursue the learning and use of tools, because no matter how good a tool is, it is just a tool, and professional testers still need to apply good testing ideas Only by properly using the concept and concept in the test can its role be brought into full play.

4. Interview skills

Speaking of this, many people may feel a lot of pressure. After all, it is not easy for anyone to master so much professional knowledge. It is perfect if you can master all of them, but for those who are not so experienced, and even many test engineers who have been engaged in testing for many years, they cannot confidently be sure that they can do well in all these areas of knowledge. So, before you grow into an all-round excellent test engineer, what should you do if you are asked this kind of question by the interviewer? Here, I can share with you some tips.

          First of all, before going for an interview, first understand what type of company you are going to interview with. In fact, this point is not only for this question, but also for all interviews. You should first figure out the main business and job requirements of the company you are going to interview, and prepare your own knowledge points and direction of answering questions in a targeted manner. This is A must-have for interviews. Well, let’s go back to the issue of environment construction we are going to discuss today, because different companies require you to have different abilities to build test environments. For example, if it is a traditional network equipment company, such as routing and switching, firewall and other business products, he will require you to have more basic knowledge of the network, such as the construction and configuration of the network topology, the use of related protocols, etc., so you can advance Prepare for the relevant knowledge; if it is a traditional Windows software company, most of the test environments are related to the system, which is the content required by the hardware part we mentioned above. Then you can take the time to make up for the relevant knowledge of the Linux system in advance; if it is the most popular Internet company nowadays, it tests web applications, PC-side APPs and mobile-side APP software. Building such a test environment focuses more on Linux system knowledge, as well as the establishment of related services and the use of various tools. Of course, this analysis is only a rough summary, it is not absolutely correct and cannot cover all situations, so it is good for everyone to use as a reference. However, the idea of ​​analyzing the company type and business first and preparing for the job requirements in advance is definitely beneficial and harmless.

          In addition, before the interview, everyone must do a good job of combing according to their existing work experience and knowledge system. Most interviewers will ask you to describe the process of building a test environment based on your work experience. Then you need to combine your own knowledge reserves on the basis of actual project experience, and then organize your language in a targeted manner to cater to the needs of the current interview company. Ask, sum up a beautiful answer that can meet the other party's expectations. It may be a bit abstract to say so, let's look at a specific example.

Five, examples

Interviewer: Did you need to build your own test environment for testing in your previous company? Will you build your own test environment independently?

            You: In our original company, all the testers built the test environment by themselves, because the test work can be carried out more independently and independently, and the later maintenance will be more convenient (first, I answered the question in the affirmative and told you that I would Build a test environment, and also express the necessity that you think testers will build a test environment). Generally, when we get the test requirements, we first prepare the environment according to the requirements. Because my last company was a firewall company with its own equipment and corresponding web applications and APPs, so I will test these front-end applications and firewall equipment services at the same time (let me introduce the company's business type and my own test products first, For the convenience of talking about the key points of environment construction later, here you can decide according to your actual situation). So to prepare such a test environment, we will need to prepare two Linux servers to simulate the client and the back-end server respectively, set up the test topology, and connect the network (indicating that you have the basic network configuration capabilities); and then the Linux system we Generally, it will be installed by itself, and the corresponding services must be prepared (it is OK to express the operation of the Linux system and the construction of common services); then we will use the client to simulate some user traffic, and we will also install some commonly used services on Windows. Test tools to simulate user data to test products (common test tools are no problem). In this way, the initial test environment setup is basically completed.

         Interviewer: So you know how to use the Linux system, right? What services do you generally install? Can you briefly describe the specific steps? (He will pick out the points he is interested in based on your description to ask you in detail, such as some specific knowledge details)

         At this time, you need to answer the specific details and test your technical hard-core ability. Of course, if you are not very clear about yourself, you must avoid the important ones, and guide the interviewer smartly to ask about your field of expertise, such as "I don't know much about this, but I have used another xxx, and I am more familiar with this"  

        ......

6. Summary

All in all, when the interviewer asks you such a question, on the one hand, he wants to examine your technical ability, and on the other hand, he also wants to examine your expressive ability. Therefore, you can compare the knowledge points listed above. If you feel that your knowledge reserves are insufficient, you can take a good tutoring before the interview; if you find that you have dabbled in many knowledge fields, but you don’t know where to start when answering, then Based on my own experience and actual situation, I often summarize and precipitate, and sort out my own knowledge system.

Finally, I would like to thank everyone who has read my article carefully. Reciprocity is always necessary. Although it is not a very valuable thing, you can take it away if you need it:

These materials should be the most comprehensive and complete preparation warehouse for [ software testing ] friends. This warehouse has also accompanied tens of thousands of test engineers through the most difficult journey, and I hope it can help you! Partners can click the small card below to receive 

Guess you like

Origin blog.csdn.net/kk_lzvvkpj/article/details/132605352