Do you know how to build a test environment?
In the process of software testing, many people are often asked “do you know how to build a test environment” facing such questions, do you know how to answer?
How to answer
During the interview, when confronted with such a question, many people will feel blank, or dots, do not know where to start.
On the one hand, what is the intention of the interviewer asking this question?
I don’t know what answer he’s looking for.
More do not know should answer from what respect.
As a tester in the testing industry for over 8 years, I’d like to share some of my experiences and insights with you.
First of all, it goes without saying that the interviewer wants you to say yes to this question and that you are a good test engineer who knows how to build a test environment.
No matter what type of test QA does, the most basic functional test needs to build a test environment;
The advanced part of the performance pressure test, the building environment requirements are higher.
Therefore, building a test environment is one of the necessary skills of a good test engineer, and also a prerequisite for QA to carry out test work.
Of course, some companies may have operations or r&d departments to help prepare the testing environment, but relying solely on other departments can limit testing efforts.
If other departments do not have time or the progress is behind, it will directly affect the progress and efficiency of the test work;
In addition, if QA is not responsible for the maintenance of the test environment, when the test environment needs to be optimized for later business expansion, or when problems need to be debugging, they need to rely on other departments, which will lead to the test work is not independent, and the test staff will appear unprofessional.
Two, need to master knowledge
Knowing how important it is for QA to be able to build a test environment, what skills and knowledge do you need to be able to build a test environment?
This requires us to know what the test environment is.
Testing Environment refers to the 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, we need these five skills and knowledge to learn how to build a test environment.
Therefore, we for each knowledge field we need to master the knowledge point and its depth and breadth, to give you a detailed introduction, I hope to give you a guide, know the direction of their efforts.
Pieces of 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 current software under test.
General software running platform, may be more in the Windows system; However, the construction of related services, such as interactive services for software operation, or hosting services for software background, will be built on the Linux system.
So Linux commands and operations are something QA must know and be familiar with.
There are many types of Linux systems, such as CentOS, Ubuntu, Redhat, Debian and so on
Choose the right system according to the specific needs of the product.
Also, it’s a good idea to know how to install Linux, because many companies will provide QA with equipment resources to deploy Linux on the server as required.
Here also need to pay attention to a point, is the software operation of the hardware requirements.
Generally, the software specification will specify the hardware requirements of the software, such as the number of CPU, 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 for confirmation.
Therefore, in terms of hardware, you need to have some understanding of various operating systems, especially the ability to operate common Linux system commands, install the system, configure IP, routing and other basic networks (which will be discussed in the network section), and install and build common services on various systems.
Pieces of software
Includes the software currently under test as well as the software with related dependencies and interactions.
Currently, the software under test can be directly accessed through Web or APP in the front end after the services are installed on the deployed Linux system. As long as the back-end is deployed, the front end is relatively simple to run.
Dependencies and interactive software, generally some supported software, such as JDK, Tomcat, database and so on.
How to install and deploy, we can go to their own Baidu, a lot of relevant online tutorials.
Three, need to master skills
Mixer network
This can be a knowledge blind spot for many testers.
Network is a relatively huge knowledge system, which involves much and complex content.
Therefore, we can first learn some network knowledge closely related to the construction environment, and then slowly infiltrate and further their own.
Knowledge of switching and routing is a basic requirement for corporate networks.
For example, to build a network topology, use multiple network devices (such as servers, routing and switching intermediate devices, clients, etc.).
QA needs to plan and configure IP addresses, deploy routes and vlans, and implement network isolation and communication so that normal service tests can be carried out.
In addition, for some common basic network protocols, such as TCP, UDP, HTTP, etc., it is best to have a basic understanding.
Because many services are implemented based on these basic protocols, knowing these can deepen your understanding and facilitate the implementation of testing.
Of course, as mentioned earlier, in addition to the above network devices, we also need to operate the basic network configuration of Linux.
Linux IP and route configuration
◆ Command capture in Linux
Debugging network communication problems, etc
These require a combination of Linux commands and network basics.
◆ Data Preparation
Generally refers to the preparation of test data.
The test data will be designed during the test case design phase, and then used as software input to verify software functions during software operation.
If it is a small amount of normal test data, you can simulate it manually. If it is a large amount of user data, you can build it with the help of a test tool, which will be covered in more detail in the next test tool section.
◆ Test tools
It is an area of knowledge that many testers are interested in and keen on.
When we perform functional testing, we will use a variety of tools instead of manual, simplify and deepen the test;
The need to simulate high concurrency, high throughput, and high persistence with testing tools increases with execution pressure and performance.
It can be seen that tools are indeed very important and practical. Looking at the job requirements of a large number of recruitment companies, there are clear requirements of “familiarity with XXX test tools”.
QA can choose the right tools to learn for the type of testing they will be doing.
For example, if you want to do interface testing, you can choose Jmeter or Postman.
For stress and performance testing, learn Loadrunner, IxLoad, or Avalanche;
To simulate the traffic of multiple protocols, you can also use the traffic testing tools commonly used on Linux, such as Hping, Curl, ab, etc.
Other common debugging and packet capture tools, such as Fiddler and Wireshark, can also be learned and used.
All in all, tools are a good helper to assist testing, and flexible use can make your testing efficiency twice the result with half the effort.
Of course, HERE I would like to add that the importance of tools is indeed indisputable, but we should not blindly worship, blindly pursue the learning and use of tools, because no matter how good a tool is, it is just a tool.
It still needs professional testers to apply good testing ideas and concepts to exactly use the test in order to play its role to the extreme.
4. Interview skills
At this point, there may be a lot of people feel stressed out, after all, it is not easy for anyone to master so much professional knowledge.
If you can master it all is perfect, but for people who are not so rich in experience, and even a lot of test engineers who have been engaged in testing for many years, they can not be confident that they can be in all of this knowledge.
So what do you do when an interviewer asks you this question, before you grow into an all-rounder?
Here are some tips I can share with you.
First of all, before you go to the interview, first know what type of company you are going to interview with.
In fact, not only for this question, should be for all interviews, should be clear about the main business and job requirements of the company you are going to interview, there are specific to prepare their knowledge points and answer the direction of the question, this is an essential wisdom of the interview.
Ok, so we’re going to go back to building environments today, because different companies have different requirements for your ability to build test environments.
For example, if it is a traditional network equipment company, such as routing and switching, firewall and other business products, it will require you to prefer more basic network knowledge, such as network topology construction and configuration, the use of relevant protocols, so you can prepare for relevant knowledge in advance;
If it is a traditional Windows software company, most of the test environment is related to the system, that is, we talked about the above part of the hardware requirements.
Then you can advance the knowledge of the Linux system to catch up on the time;
If it is the most popular Internet company, the test web application, PC APP and mobile APP software are more.
To build such a test environment, it focuses more on the Knowledge of Linux system, as well as the construction of relevant services and the use of various tools.
Of course, this analysis is only a general summary, not absolutely correct and can not cover all situations, so it is good to make a reference.
However, the idea of analyzing the type of company and business and preparing for the needs of the position can certainly be beneficial.
In addition, before the interview, we must do a good job according to their own work experience and knowledge system.
Most interviewers will ask you to describe the process of setting up a test environment according to your work experience, so you need to build on the basis of actual project experience, combined with their own knowledge reserves, and then have targeted organizational language to meet the requirements of the current interview company.
Come up with a good answer that meets the other person’s expectations.
This might sound a little abstract, but let’s look at an example.
Five, the instance
Interviewer: Did you have to build your own testing environment in your previous company? Will you build your own test environment?
You: Our original company is testing personnel to build their own test environment, because this kind of test work can be more independent and independent development, and later maintenance will be more convenient.
(First, answer the question in the affirmative, stating that you know how to build a test environment, and that you think it is necessary for the tester to build a test environment).
We usually get the test requirements, according to the requirements of the preparation environment.
Because my last company was a firewall company, which had its own equipment, as well as corresponding Web applications and apps, I tested these front-end applications and firewall device services at the same time.
(First introduce the business type of the company and its own test products, in order to facilitate the focus of environment construction, here can be determined according to their own actual situation).
Therefore, to prepare such a test environment, we need to prepare two Linux servers to simulate the client and the back-end server respectively, set up the test topology, and configure the network.
(Show that you have the basic network configuration ability)
Then we usually install Linux ourselves, and we have to prepare the corresponding services.
(It is also OK to express Linux operating system and common service setup)
Then we will simulate some user traffic with the client side and also install some common testing tools on Windows to simulate user data to test the product.
(There is no problem with common testing tools.)
So the initial test environment setup is basically complete.
Interviewer: So you can use Linux, right? What services do you install? Can you give a brief description of the specific operation steps?
(He will pick out the points he is interested in according to your description and ask you in detail, such as some specific knowledge details)
This time, you need to answer the specific details, test your technical core ability.
Of course, if you’re not sure about something, be sure to steer the interviewer toward asking about your expertise.
For example, “I don’t know much about this one, but I have used another XXX and this one is more familiar to me”…
Six, summarized
In short, the interviewer is asking this question to test your technical skills as well as your presentation skills.
So, you can compare the knowledge listed above, if you feel that your knowledge reserve is not enough, you can take advantage of the interview before a good remediation;
If you find that you have dabbled in many fields of knowledge but do not know where to start, you can often summarize and settle your knowledge system according to your own experience and actual situation.
The following is my automation for the technology of some induction and summary, I hope to help the heart of the technology on the road to go all the way to black friends! With tutorial learning materials ~
These materials should be the most comprehensive and complete preparation warehouse for my friend [Software Testing]. This warehouse also accompanied me through the most difficult journey. I hope it can also help you
Follow my wechat public account [sad Latiao] for free ~
If my blog is helpful to you, if you like my blog content, please “like” “comment” “favorites” one key three even oh!