Sharing: Interview experience of first-tier Internet companies

      Reprint: http://www.51testing.com/html/51/n-3725351.html    

  It’s the season of job-hopping again. Recently, I have experienced interviews with many companies. The positions include test development and ordinary test engineers. There are successes and failures. In the end, I found that some interview questions are basically the same, so I feel it is necessary to share with you and say something. Your own experience, welcome to correct and discuss~

  1. Introduce yourself

  This is the first question you will ask at the beginning. It is also the part that shows your advantages and can best pack yourself. No matter how many times you have gone through, you have to introduce it to every interviewer, and you have to be serious every time. Don't have a burnout attitude, because you don't know which senior leader is sitting in front of you, and directly decides your salary and whether to stay or not.

  As for how to answer this question, my experience is to briefly introduce the project, focusing on what the work is responsible for, what technology is used in the work, what has been learned, and what experience has been summarized. In addition, you should also mention some of the techniques you have learned yourself. Even if you don’t use it in your work, as long as you know it, you can show it. Of course, the premise is that you have really studied this thing yourself and can withstand torture. Row.

  In addition, my experience is to start from the first job, so that there can be a process of ability from low to high, showing that I am a person with strong learning ability and self-motivation; and when it comes to switching to the next company During the process, you can briefly explain the reasons to show that you still have your own ideas and pursuits for future career development.

  2. Network related issues

  Network-related questions are mandatory for every company, including the following:

  1. What problems will you experience when accessing a complete http request

  2. The difference between https and http requests

  3. What are the five-layer protocols and the role of each layer

  4. What are the request methods of http, and what is the difference between get and post requests

  5. What is included in the http request and http response

  6. TCP's three-way handshake process and four-way wave process

  7. Do you know Socket programming and where is it used?

  8. What are the status codes of http requests? What does the beginning of 3 usually refer to?

  9. If a website cannot be accessed, how to troubleshoot the reason

  10. If there are users who are watching the live broadcast and the feedback is too slow, there may be some reasons and how to locate the problem

  11. The difference between WSGI and FastCGI

  12. Packet capture tools such as fiddler and Charles. Now, for the testing of mobile applications, basically all companies require the use of packet capture tools. It is necessary to master the principles, some common basic operations, for setting breakpoints, redirecting, and simulating weak networks. , change request and return operations must be very skilled

  3. Actual project related

  1) What is your testing process

  This question must be asked, must be asked, must be asked, if the company you are in is relatively small, and there is basically no strict process, don't tell the truth, you must answer the complete process, let me give some advice, I hope you can correct me~

  "Requirements review -> determine project schedule -, determine test plan ( functional test , interface test , performance test , compatibility test, etc.)> design test case -> use case review -> prepare test environment (prepare test machine, configure test data) etc.)->Development self-test passed (or simple function smoke, to ensure that the process runs through)->Formal test, new function test, bug raised->Regression verification after development and correction of bug->Remaining problems to be product evaluation plan- >Start a comprehensive test after the new function is sealed->Regression verification after the development and correction of bugs->Smoke of key functions->Online sealing of the board->Online monitoring”

  2) What is the current architecture used in your project?

  Generally, this question refers to the architecture of the server. At this time, it is necessary to have a good relationship with the development of the server. Let him explain the system to you. Generally, more formal companies will have detailed prototype diagrams for the architecture.

  3) How to improve work efficiency and what are the work results

  I feel that this question can actually show more of my ability to think at work, instead of only knowing how to work mechanically. I list my answers to provide you with some ideas.

  "I usually make summaries by myself. For example, when writing test cases , some test points are actually common, and the framework of functional testing can be summarized.

  For example, many problems can be avoided before software development . I have summarized the bug prevention system based on my experience and shared it in the project.

  It can also use various tools to improve efficiency, and use automated tools to complete some repetitive tasks, such as writing some small tools such as CPU monitoring and traffic monitoring.”

  4) How to work as a team

  “Ask more and learn more throughout the test:

  In the requirements review stage, it is necessary to listen to the various logic implementations discussed by developers. Only by understanding the internal implementation logic can better design test points;

  In the use case review stage, developers should also be called together to try to avoid some problems that were not thought of in the previous requirements review during development;

  After developing and solving the bugs, for some complex bugs without too many rules, you should take the initiative to ask the developers what is the cause of the problem and how to solve it, so as to better return the verification. "

  5) How to make a good test plan (here borrows the answer of a lecturer on the MOOC online)

  "when (clear project start and end time)

  how (clear test plan: function, automation, stability, performance, etc.)

  where (where is the requirement document, where is the object under test, where is the package, where is the test case, etc."

  4. Use case design

  A question that every company must ask. Now some large companies will no longer ask you about the theoretical questions of test methods. They are directly asking you to design a use case for a specific function. From a practical point of view, you will use these theories. .

  I think the first thing you need to do is determine what the interviewer is describing to you, what the main aspects are, determine the scope, and then start designing; secondly, you must summarize some general functional testing frameworks by yourself, memorize them, and apply them when answering. In terms of different functions; and don’t just focus on functions, interface, performance, compatibility, security, etc. must be considered comprehensively. The following are some specific questions I was asked.

  1. Test the sending function of Moments

  2. Test the sending function of WeChat

  3. Test the function of the input box

  4. Test the data loading process

  5. Test the function of registration login and verification code

  6. Test video playback

  7. Test the gift giving in the live broadcast

  5. Algorithms

  This is also a question that some companies like to ask very much, and now it is not only required to be able to write algorithms, but also to minimize the time complexity and find the optimal way, which requires us to think about various solutions for various algorithms; at the same time, we need to pay attention to Handling of Exceptions in Algorithms

  1. Sort (bubble, heap sort, quick sort, etc.)

  2. Binary search

  3. Judgment prime

  4. Singly linked list inversion

  5. Determine whether it is a palindrome (aabb format)

  6. Convert decimal to binary

  7. Judge the validity of IP

  8. Merge two ordered arrays to generate a large ordered array with the lowest time complexity

  Of course, in addition to the above basic algorithms, some interviewers will temporarily give you regular data to let you write an algorithm or give ideas to test your logical thinking ability. Of course, if you don't, don't be discouraged. The officer will give you ideas and guide you

  6. Linux, mysql related issues

  (The degree of difficulty is related to the specific requirements of the company)

  1) What are the common commands

  2) What is the role of ps

  3) What are the commands to view memory

  4) Some commands written in the resume

  5) Add, delete, modify and check the database

  6) Association query of database

  7) The advantages of database indexing, how to search for data

  7. Java/Python/shell development language

  This question is also very likely to be asked. It mainly depends on which languages ​​are written in your resume. The following questions are all about Java/shell/python

  1) The difference between ./ and sh executing shell scripts

  2) What is the role of the first line in the shell script

  3) How to use shell script to extract the content of the penultimate column in the log

  4) What is the lamda function

  5) Memory Management in Python

  6) The difference between dictionary, list, and tuple is stored in memory, and what is the time complexity of each when you want to search for data

  7) How to install packages in python

  8) The difference between match and search in the re module

  9) Collection in Java

  10) Some libraries commonly used in Java

  11) How to open a thread in Java

  8. Android application related

  1) The concept of virtual memory, real memory and shared memory, what does PSS mean

  2) The life cycle of activity

  3) Five common layouts in Android

  4) adb common commands

  5) Android system architecture

  6) Four major components of Android

  7) monkey related commands

  8) How to get the monkey log, and how to filter it at last

  9) Common crashes and other abnormal information of Android applications

  10) Difference between process and thread

  11) Difference between memory leak and memory overflow

  9. Automation

  Automation is also a very important question in interviews, and the specific questions depend on what aspects of your resume are involved. I remember that the leader once said that the difficulty of doing test development is not in technology and tools. The difficulty lies in whether you can think of this point can be extracted into automation, or you can develop something to simplify, forming this way of thinking about problems is very important.

  Here are some questions that list the overall macro:

1) How to automate testing  in layers

  2) How to ensure the validity of the script

  3) How to reduce automation maintenance costs

  Below is a list of some of the automation methods and tools most companies use today:

  1. Interface automation

  1) The premise of doing interface automation is to understand network-related knowledge, which has been mentioned above and will not be repeated here.

  2) Commonly used tools, such as jmeter/postman, etc., you can find the tools you are familiar with to describe

  3) How to perform automated interface testing

  4) How to identify use cases for interface automation

  5) How to stress test the interface, set the number of concurrency, and focus on the indicators

  6) Do you understand the layered framework of automation

  2. UI automation

  (biased towards UIautomator and APPium)

  1) What is the principle of appium and why you choose to use this tool

  2) How to position the element

  3) What automation use cases have been written and what have been done with automation tools

  4) What class libraries does UIautomator have?

  5) How does Appium perform initial configuration

  3. Continuous Integration

  1) What is the significance of the concept of continuous integration

  2) How to integrate automation into Jenkins

  3) How to configure a project

  These are the various questions I have experienced in the interview. Some people may say that this is not a question only for test development, but now times are different, and many fresh graduates and developers have discovered the potential of the position of test development. , have changed jobs one after another, greatly raising the threshold for testing recruitment, in fact, most of the actual work is still the task of functional testing. Isn't there a saying on the Internet that "the interview felt like I was going to build a rocket, but when I actually went in, I found out that I was going to screw the screw".

  Of course, my resume is biased towards Android application testing. These questions may be less related to web testing and performance testing, but I think the general answer is the same. Now the interviewer is not only concerned about whether you will use these technologies, What is more concerned about is whether you understand the principles of these technologies you are using, and whether you have a process of active thinking. To sum up, we are required to ask more why and think more deeply when learning some knowledge points, so as not to be afraid of being questioned during the interview and being underpaid. In fact, don't be discouraged if you fail the interview, because getting a job opportunity is determined by many factors, such as eyesight, luck, whether the technology is suitable, whether the applicant company is short of people, and many other reasons. So even if you fail once, as long as you sum up your experience and regroup, you will definitely be able to find a satisfactory job!

  Last but not least, I must thank Mr. Wu for his test development course. Although I have only just learned half of it, without the python I have learned in the past six months and a little code foundation, I have made some reluctant results. , I estimate that many companies can't make it through... I believe that after I finish all the courses, there will be a bigger leap in technology, and I will work harder to senior test engineers~

  The times are different now. Even developers come to compete with us for jobs. Some fresh graduates doing test development have higher starting salaries than those who have worked for two or three years. The competition pressure is so great, why not study hard.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324391340&siteId=291194637