For 8 years in Ali, only this note is left in P7, and I have helped my friends get 15 Offers....

Time flies, and in the blink of an eye, I have worked in Ali for 8 years. The work pressure is high and the pace is fast, but I have indeed grown technically, especially when you maintain the system related to the big promotion. It took a lot to get to P7 thought

At the beginning of my career, like most testers, I first came into contact with pure functional interface testing. At that time, I was doing testing in an e-commerce company. In this technology-hungry IT industry, continuous learning is crucial. But what I did before was the most basic business work. As time passed, I became confused about my self-worth and the meaning of my position.

One is that I feel like I’m wasting time, and the other is that I’ve been doing functional testing for almost 2 years, and I feel like I’m living in a muddle every day, and my salary has never risen, and my position has never been promoted. Many colleagues around me have either been promoted or raised their salary. Either change jobs and go to work in a better company, especially feeling that I am doing nothing.

After serious thinking, I decided to join a big factory. After several months of hard work, I successfully joined Tencent. It has been eight years now. I am especially grateful for my determination and courage. I am also a person who loves to learn. The work experience of the past few years has been compiled into a complete note. This note has helped friends get 10 offers from Tencent, Ali, Meituan, etc.!

Learning routes in all directions of software testing

Just starting to learn, if you haven't even planned the complete learning steps, it is basically impossible to learn to test.
The author's successful landing also benefited from the fact that I found some high-quality notes, tutorials and guidance from some big guys on the Internet.
Here, I will also organize the technical points in all directions of learning software testing to form a summary of knowledge points in various fields. , its usefulness is that you can find the corresponding learning resources according to the above knowledge points to ensure that you learn more comprehensively.

Software testing learning (work) technical route:

You can choose the direction of software testing. Only when you choose the right direction can you learn the corresponding content. First, you need to know what kind of work you can do. Here is a brief introduction of what you can do after learning software testing:

  • Functional testing of requirements

Participate in requirements review meetings, formulate test plans, write test cases, review test cases, execute test cases, submit bugs, regression verify bugs, send test reports, conduct online verification and other activities.

  • Automation Test Engineer

Use automated testing tools such as Robot Framework, Python+unitest/pytest, Selenium, etc. to complete page UI automation or interface automation, improve testing efficiency, and expose problems as soon as possible.

  • Performance Test Engineer

According to the project requirements, formulate a stress test plan for important interfaces, use Jmeter and other testing tools to conduct stress tests, cooperate with developers to find system bottlenecks, and produce stress test reports.

  • Test Development Engineer

Some companies have special test platforms and test tools to complete functions such as bug statistics and quality analysis, interface automation statistics, etc., and this part of the development work will be undertaken by test development engineers. Test development has higher requirements for technology and coding.

Junior software test engineer professional skills reserve

1) Understand the basics of computer and software testing

a. Basic computer knowledge

Computer components, operating system classification, common system architecture (B/S and C/S), commonly used DOS commands

b. Basic theoretical knowledge of software testing

The purpose, definition, principle of software testing, product quality model, basic process of software testing

2) Commonly used Linux commands

In software testing, sometimes we need to build the test environment by ourselves, or deploy automation projects on the server. The servers basically use the Linux system, so we need to master some basic Linux commands

3) SQL statement

In software testing, the verification of test results or the preparation of test data in automation will be done by operating the database. Therefore, for the most basic addition, deletion, modification, and query SQL statements of the database, it is necessary to be able to write independently

4) Writing of manual test cases (most important)

As a software test engineer, the most basic requirement is the ability to write use cases. How to write a test case with high coverage and low repetition rate is the ability that should be constantly pursued when entering the software testing industry.

5) Defect management

Understand how to manage the bugs proposed by testers in the team, so as to ensure that the bugs of the project can be fixed in time

Mastering the above skills, for a student who has just entered the software testing industry, he will definitely be able to gain a firm foothold.

Intermediate software test engineer professional skills reserve

1. Professional skills related to interface testing

Whether it is automated testing or performance testing, or even developing in the direction of test development, the most basic thing is to test the interface. Therefore, if you want to be a good intermediate software test engineer, the first step is to be able to complete the interface test.

1) Basic theoretical knowledge related to interface and interface testing

Including the concept of interface and interface testing, the principle of interface testing, the process of interface testing, http protocol, Restful interface style. These things need to be understood

2) Use of interface tools: Postman and Jmeter

For interface testing, you can use code or tools. Usually, interface testing is done using tools at most. There is no other reason, "efficient".

3) Packet capture tools: Fiddler and Charles

During the test, in order to locate the front-end and back-end problems, we will use the packet capture tool to view the results returned by the interface. In order to locate the problem is the front-end, or the back-end.

These two tools, we generally choose one of the two to learn, because their functions are the same.

2. Programming language learning

The implementation of automated testing mainly relies on code to complete. So to be able to automate testing, you first need to master a programming language. Currently, the mainstream automated testing programming languages ​​in the industry are python and java. I personally recommend python, because for newcomers, it is less difficult to get started. If you can study all day, you can get started with python in about 10 days

3. Automated testing and learning

After learning Python, we can start learning about automated testing.

The purpose of automated testing is mainly to reduce the time for regression testing.

Automated testing in software testing is divided into UI automation and interface automation.

After passing the above study, let's see what abilities you have?

SQL statements, Linux common commands
Manual test case writing and defect management
Use packet capture tools for front-end and back-end problem location
Use Postman or Jmeter for interface testing
Use Python for interface/UI automation testing

 

Knowledge points that senior test engineers need to master

At this stage, you need to broaden your knowledge system, and at the same time have a deeper understanding of the advanced stage, code quality, test architecture, microservices and middleware, containerization, automated test design, test architecture, CI/CD, and shift left testing , test phase, test shifted right.

One of the differences between test development and R&D posts is that R&D pays more attention to depth, while test development pays more attention to breadth.

For example: you need to understand CI/CD, because the test platform/tool ​​you make may need to be connected to the CI/CD pipeline or the operation and maintenance monitoring system

Another example: when you do performance testing, if you don't understand the core knowledge of architecture design, you may encounter many problems that are difficult to solve when doing full-link stress testing and service degradation testing.

Find a test development JD to compare, and you can also see that this post is for middleware and performance testing. All privatization platforms understand.

In addition to broadening your knowledge system, you also need to refine your coding skills.

In short, big factories use Java a lot. If you want to go to a big factory, you basically have to be familiar with Java, otherwise the interview will be easily passed.

Interview real question sharing

personal information

  1. Self-introduction item (important)
  2. The biggest challenge in the project, the project that took the longest time, and the thing with a sense of accomplishment
  3. The most impressive bug in the project
  4. Is there anything you want to ask?
  5. Suitable for business testing or technical testing
  6. Why Byte
  7. Describe your strengths and weaknesses in 3 words

test

  1. Understanding of test development, why you want to do test development, understanding of test development
  2. Classification of software
  3. What is interface testing
  4. Test cases for WeChat red envelopes
  5. Test case for WeChat comment function
  6. Test the Alipay payment code and design test cases
  7. black box testing method
  8. white box testing approach
  9. The process of software testing
  10. How to design test cases for the login function?
  11. How to test online bank transfer, design a test case.
  12. Given a website, how should you test it?
  13. A paper cup with an advertisement, please design a test case?
  14. Imagine a login box, including ID, password, login, cancel, remember password (check box), write as many test points as you can think of?
  15. Test case for testing Taobao shopping cart
  16. Design a test case for Douyin sliding video up and down
  17. Design Douyin app user login test
  18. interrupt test
  19. Test in a scene, recommend filters
  20. Circle of friends like comment test case

Situational questions

  1. If many users in one area of ​​Douyin cannot download videos
  2. If the user receives a text message from the bank indicating that the deduction has been successful, but the merchant has not received the money, what do you think will be the problem?
  3. Enter a url, what happened?
  4. How to implement a user login function
  5. Reduce performance consumption caused by transactions under high concurrency?
  6. If an API interface has an unstable bug, how to determine it?
  7. If you submit a bug and the developer tells you that it does not exist, what should you do?
  8. Reasons why visiting pages load slowly and how to fix them
  9. If you disagree with your leader, what will you do
  10. If the image upload fails, analyze the reason
  11. For the comment function, how do you design the interface, and what are the main parameters that need to be passed?
  12. What is the reason for the white screen on the app page?
  13. During the full-link stress test, it was found that the CPU load rate of a certain server was 100%, and the disk and memory usage were normal. How would you analyze the possible cause?
  14. Design a system for buying train tickets, input the departure station and arrival station, and return all possible results
  15. What happens after the add to cart request
  16. Reasons why Taobao users fail to pay

If you have many puzzles in the software testing industry, welcome to communicate and discuss with me in the industry's communication group. There are free tutorial materials and testing resources at each stage in the group, hoping to help you break through the bottleneck in front of you

Python basics

  1. Python's memory pool mechanism
  2. The difference between python arrays and lists
  3. Which packages do you use in python, the standard library
  4. Difference between procedural and object oriented languages
  5. reflection
  6. python data structure
  7. The underlying implementation of dict and list
  8. python decorator, function, usage
  9. Advantages of compiled and interpreted languages
  10. garbage collection mechanism
  11. GIL lock
  12. is and ==
  13. The difference between __new__ and __init__
  14. Write multithreading in python, print 123 in a loop

operating system

  1. Read-write locks, differences, application scenarios
  2. What is the difference between thread and process
  3. What is a deadlock, the conditions of a deadlock
  4. How to prevent deadlock,! Avoid deadlocks, checks for deadlock occurrences
  5. What is the difference between the heap and the stack and the storage mode?
  6. Memory Leaks and Memory Overflows
  7. Multithreading and multiprocessing, and application scenarios
  8. Process communication method
  9. How does multithreading work
  10. How computer memory is managed
  11. Process Scheduling Method
  12. What are Linux user mode and kernel mode
  13. What is the difference between process state, process state ready and waiting state
  14. What is virtual memory for?
  15. Thread Pool
  16. Implementation of thread safety
  17. Process and thread context switching
  18. coroutine

computer network

  1. TCP three-way handshake, four-way wave process
  2. Why does the client wait for a period of time in the TIME_WAIT state
  3. CLOSING state
  4. If the server does not receive the third ack, but receives the data sent by the client, what will the server do?
  5. Talk about get and post
  6. http status code
  7. TCP and UDP
  8. The process of an HTTP request (the whole process from entering the URL to returning)
  9. http和https
  10. stateless and connectionless
  11. OSI seven-layer model, what protocols are there in each layer
  12. HTTP protocol request message structure
  13. How does TCP ensure reliable transmission and how to deal with packet loss
  14. Talk about sliding windows
  15. What is the difference between SYN and ACK packets in the TCP three-way handshake, and what is included
  16. How to implement RUDP if UDP wants to be reliable
  17. semi-join attack
  18. TCP sticky packet and unpacking
  19. What are cookies and sessions, why use cookies and sessions
  20. DNS protocol and function
  21. DNS query method
  22. Function and working mode of ARP protocol
  23. What is the maximum size of an Ethernet packet
  24. Are there security issues during the three-way handshake? Describe what security issues exist? How to defend against such security issues?
  25. web attack, CSRF attack
  26. How does TCP perform congestion control? How does congestion control determine congestion?
  27. How does TCP fast retransmission determine the loss?
  28. Where is the https certificate stored?
  29. Long connection and short connection and their respective applicable scenarios

database

  1. The sql statement takes the id group within one month and takes the name of the youngest student in each class in a grade. The grade table outputs the grades of the top three, and the bottom three. Copy the data of table A to table B to query that each subject has a score greater than 80 Filter out the records for each hour by the name of the students. Investigate where. Investigate the difference between the aggregation function where and having. Query the number of repetitions in a database sql query. Query the student id and average score query total of students whose average score is lower than 60 in the student score sheet. The name of the person with the highest score Usage of the user id limit who has logged in three times within a period of time in the user table
  2. Database engines and their differences InnoDB MyISAM MEMORY:
  3. How to query mysql log
  4. (Multiple) Reasons for slow query speed and how to solve it
  5. What is a database transaction? how to use
  6. The meaning and difference of primary key, foreign key and index
  7. The characteristics of transactions (ACID), talk about the meaning of each characteristic
  8. type of index
  9. What is a clustered index and what is a non-clustered index
  10. What is the data structure of the index
  11. prefix index
  12. MySQL/MongoDb port number
  13. The database has several forms of joins between tables (left join, right join, inner join, full join)
  14. Talk about the data structure and application scenarios in redis
  15. three paradigms
  16. database isolation level
  17. Why use b+ tree index instead of hash

Linux

  1. Common commands to view process ps view all processes long format ps -ef print current folder files ls -al a all files l detailed information soft link ln -sa target hard link ln create directory mkdir modify permissions chmod view files: move files mv can also rename copy file cp delete file rm -r recursive delete -f delete read-only file wildcard? Single character, *multiple characters, [az] character set grep regular search display line number -n query number -c reverse selection -v view specified process ps -ef | grep pid view command history history view disk space df -hl view file Size du Find files find [directory] Find by name -name "h*" Terminate a process starting with h kill -9 pid
  2. How to prevent newcomers from misuse rm -rf
  3. Find the process with process number 199 ls -ef|grep 199
  4. The number of lines containing keywords in a file grep -c "key" ./file
  5. The number of lines in the files ending in .log that contain keyword a but not keyword b grep "a" ./file | grep -cv "b"

interview information

Our advanced study of automated testing must be to find a high-paying job. The following interview questions are the latest interview materials from first-tier Internet companies such as Ali, Tencent, and Byte, and some big guys have given authoritative answers. A set of interview materials believes that everyone can find a satisfactory job.

 The above information should be very helpful for friends who want to test advanced. Those who need it can click the business card below to get it for free.

 

Guess you like

Origin blog.csdn.net/okcross0/article/details/131074328