Summary of test development and practice
1. My understanding of test development
1) The relationship between test development and development and testing
Before I was exposed to the job of test development, I was always thinking about what to do in the test development position? What is the difference between test development and testing? Is test development development? Where is the value of test development? At the beginning, I intuitively thought that test development = testing. It wasn't until I actually worked in practice that I gradually understood what the position of test development needs to do.
First of all, look at the difference from the job title: let’s clarify the abbreviation first. Because the names of these jobs look similar, many people don’t know the difference and connection between the three, software development engineer (SWE), test development engineer (SWT) , Test Engineer (TE)
Secondly, looking at the differences in various aspects of ability, my understanding is: from the requirements of code ability, software development engineer > test development engineer > test engineer; from the requirement of mastering the breadth of knowledge, test development engineer > software development engineer > test engineer, In terms of work communication ability requirements, test development engineer > test engineer > software development engineer
2) Classification of test development
There are two main categories of test development:
One is based on business-driven test development. It can be understood as a business test engineer, who only has the development ability and quality improvement thinking. This type of test development personnel needs to get into the business, actively dig out the weak points of the quality of each link in the business process and find ways to solve them. Through process improvement, development Come up with handy tools to make your testing work sustainable and efficient.
One is the test development based on the framework platform. This type of test development needs to look at product quality from a higher perspective. They will develop some test platforms and frameworks for the entire R&D process or a large project, and provide these capabilities in the form of services to various It is used by the business line to ensure the global built-in quality.
No matter what type it is, the core of the test development position is still "test". The purpose of development is to better serve the test. The test development should focus on the understanding of the test, as well as design and development on this basis. Tools for testers or development and operation and maintenance personnel to improve efficiency and solve practical business problems.
3) The essence of test development
As a business-driven test development engineer, in fact, my work mainly revolves around the business. All the testing and development work we do is also for the purpose of improving test efficiency and ensuring the quality of the business.
In fact, I think the essence of test development should be "understanding the development of tests", in order to better serve the "quality" of products. Since the current testing requirements are no longer adequate for traditional testing positions, in addition to the simple "testing" work at the operational level, we also need to consider everything from test design to data preparation to risk control and R&D efficiency improvement, etc. In all aspects, we need to elevate our work to "quality assurance" at the value level, so testing is only one of the quality assurance methods in the testing phase. What we need to do is to ensure the quality of the entire cycle from product demand review to delivery and launch In addition, we also need to evaluate the quality of our work from various aspects such as efficiency improvement and safety production.
I often fall into a vicious circle. As a business-oriented test developer, I think my main job is to ensure the quality of the business, but when it comes to formulating OKRs, talking about performance, value, etc., I mainly use horizontal I don’t understand why this is so. I didn’t realize that this is what all business tests are used in companies until I saw this ATA article "Thinking about Career Development and Promotion Paths of Business Tests". A challenge faced. (Sigh from a worker)
2. The relationship between testing and development and products
In our usual work, the roles we come into contact with the most are development and product. What is the relationship between these three?
From the perspective of a product delivery pipeline, some people may simply think that product, development, and testing are a linear relationship. After the product review is completed, the development enters the development process. After the development work is completed, the test starts to test and finally completes. The entire requirement goes online. But in fact, there is actually a triangular relationship between the three. The products need to be present in the requirement review stage, development in the technical review stage, and testing in the TC review stage. High-quality delivery of products online.
3. Skills required for test development
1) Business understanding ability
All tests cannot be separated from the business, so after entering a group at the beginning, the first thing to be familiar with is the business. Business testing also accounts for a large proportion of our work, so we need to spend time accumulating time to exercise our business understanding ability.
2) Testing capability
3) Ability to troubleshoot problems
When we find a bug, the first thing we need to do is to quickly locate the cause of the problem, which can also help the development to locate and solve the problem faster. The test process mentioned later also talks about troubleshooting level of ability. For example, after discovering a bug, you can first determine whether it is a front-end or back-end or data or environmental problem, and locate the problem through various methods such as interface return, log inspection, code viewing authority, and specific location to code debugging.
4) Test efficiency improvement ability
In addition to manual testing, we also need to use automated methods to improve testing efficiency. We can write some automated scripts to reduce repetitive work caused by testing, and we can also develop performance platforms to provide infrastructure support for quality assurance. Performance tools are like A sword can take us to greatly improve the efficiency of our work.
5) Awareness of safe production
If the efficiency platform is like a sword, I think safety production is like a shield. We can carry out our business quality assurance work through various methods such as monitoring, fault drills, contingency plans, and quick recovery to ensure that the entire product is not If something goes wrong, or if something goes wrong, the risk can be minimized.
6) Ability to be good at searching
The company's internal knowledge bases such as: ATA, Yuque, DingTalk documents, and external ones such as: GitHub, CSDN, Zhihu, etc. all give us a lot of room for learning, but due to the complexity of knowledge, we still need to be good at searching And the ability to discover the knowledge and tools that are right for you.
7) Owner awareness
For the work you are responsible for, you must have an owner awareness. In fact, this requires a strong sense of responsibility and a proactive spirit. For example, as a project owner, you need to have the ability to control the overall situation, and also have the ability to understand how to divide and arrange tasks. , as well as the ability to coordinate and communicate, the ability to promote project progress, and the ability to anticipate and obtain results. Haha, it’s a bit difficult to be honest, but I think this is what an Alibaba person needs to have.
4. To what extent do we need to achieve in the testing process
In fact, from the perspective of the life cycle of the problem, it can be divided into: discovering the problem -> locating the problem -> solving the problem -> preventing the problem
Level 1: Find problems, raise bugs and let developers locate the cause of the problem;
Level 2: Locate the problem and know what the cause of the problem is. This requires checking the database, logs, and even code to locate the problem. When raising a bug, give the development some possible suggestions to help the development locate the problem, which itself is a reflection of the value of testing.
Level 3: Solve the problem. If the test can solve the problem, then there is nothing to develop, or it can better assist the development to solve the bug.
Level 4: Prevent problems. After solving the problems, you need to have strategies to prevent such problems and better quality assurance
In fact, in the process of work, we are often in a state of level 2, but locating problems is also a test of technology and familiarity with the system. If we can accurately locate the cause of the problem, it can also reduce the workload of development and troubleshooting.
5. Qualities we need
I have been working for a year, and I have summarized it in my usual work. I think that as a test development student, it is best to have the following qualities:
1) Communication skills
Testing needs to deal with a large number of people and requires strong communication skills. If the words are not clear, then the work cannot be carried out. In the communication process, we must first organize the language and logic, and then objectively feedback the truth of the matter. This has always been a challenging and interesting job for me, who is a little socially phobic. In fact, a good interpersonal skills will also greatly improve work efficiency.
2) Careful and patient
Testing is to assist R&D to locate errors and help R&D to complete development work quickly, so we need to be very careful to find some small errors. For some testing process may be repetitive and boring, this requires a lot of patience. Especially for business-type tests, we often need to repeat the same operation steps many times, which is why everyone wants to use automation to free their hands.
3) Logical thinking and problem analysis
When encountering problems, the test needs to quickly analyze and locate the problem, and it can be reproduced. The clear logic can be given to R&D, and the work of R&D, locating bugs and repeated revisions should be minimized. This actually means that we need to have a very strong familiarity with the product, so that In order to locate the problem more quickly and accurately.
4) Learn quickly
There are a lot of things to learn in the test, and there are a lot of knowledge and skills that need to be mastered, so it is very important to have the ability to learn quickly, otherwise it will be easy to be eliminated, but fortunately, the company has a lot of knowledge base and technical knowledge. ATA, this is actually a good learning opportunity for a newcomer, but sometimes there are too many things, so you have to think carefully.
The job of testing is to ensure the quality of the product launch, so it requires a strong sense of responsibility. I think workers in every position need to have such qualities, so there is no need to say more.
6) Team assistance
The test work will deal with various personnel. While doing their own work well, they should actively and consciously pay attention to the progress of the project and the situation within the group. They must have an overall view, put the interests of the team first, and be willing to share personal experience. At the same time, they should be good at learning from colleagues. Learning there, teamwork ability is also the basic quality that the test needs to possess.
7) Document writing
Excellent document accumulation can bring benefits to myself and future generations. I have always liked to do document accumulation because I think a good memory is not as good as a bad pen (it’s because I have a bad memory). Sometimes it can be reminded by writing it down. If you think about yourself, you can also exercise your ability to summarize. When others need it, you can also share it with others. It really kills three birds with one stone~
6. What are the testing workflow and concerns?
First of all, we should intervene in the requirements review stage, and in each work stage, the test needs to have corresponding focus and input and output. Next, I will summarize the test workflow of my usual work and what needs to be done in each stage of the test. things~
1. Requirements review stage [Focus]
Testers need to conduct requirements analysis, be familiar with technical implementation solutions, whether the design covers business requirements, and existing risks, and provide input for test analysis and test case design.
Main focus: architectural rationality, risk assessment, testing strategy (manual testing or automated testing or others)
Determine whether to test by testers or develop self-test according to the size of the demand (you can judge whether to provide smoke test cases according to the situation)
2. Design test cases [focus]
Write test cases and smoke tests according to prd
Write smoke test cases (depending on the size of the project, if the project is a relatively large transformation, or a new project, it is recommended to write it, and provide it to the relevant developers during the use case review. After the smoke test case passes, it will be formally tested)
The test students in the project need to provide smoke test cases to the R&D students, and reach an agreement with the front-end students that the smoke test cases require 10% of the total use cases.
3. Test case review [depending on the size of the demand]
The time is 1-2 days before the original testing time, depending on the size and time of the project to determine whether this link is needed
Output: use case review meeting minutes, modified test cases, smoke test cases (for development)
4. Proposal preview [depending on the size of the demand]
ps: Generally speaking, it is the developer organization. If they ignore it, the testers can request a test rehearsal according to the actual situation to ensure the quality of the test
○Specification: The smoke test cases reviewed according to the test cases are rehearsed by the developer. If all the smoke test cases pass, the test will be accepted. Otherwise, it will be called back and an email will be sent to indicate that the smoke test has failed and the next test is expected.
○Output: smoke test result email (it needs to be sent if it is passed or not, and the expected release time point and risk are given)
○ Put into the test as soon as possible after the test, if the rehearsal fails, you must inform the risk
5. Testing phase 【Focus on】
During the test phase, the test environment, test cases, test data, etc. need to be prepared in advance
During the testing process, defects need to be submitted and followed up in a timely manner. Bugs are generally managed by aone, and the defect format is preferably: [requirement name] specific defect name, which is convenient for subsequent search and classification
Business-related consultation: PD + business; product style-related consultation: product + UED; development-related consultation: front-end + back-end
aone defect handling specification
1. After the bug is fixed, developers need to fix the bug (R&D)
2. After the defect is repaired, the corresponding defect repair verification is required. (Test classmates)
3. After the defect verification is passed, the defect type and cause of the defect need to be classified before closing the defect. (Test classmates)
4. If the defect verification fails, the defect can be reopened and then submitted for development. (Test classmates)
6. Release preview【Function acceptance (multiple rounds possible)】
Testers reserve meeting rooms in advance and send meeting invitations to relevant personnel
Meeting minutes: During the rehearsal process, it is necessary to record the summary of the meeting, which bugs need to be fixed before going online, and which bugs need to be iterated later (pd + business evaluation)
7. Release plan
The writers of the release plan are mainly developers and testers;
Purpose: To write a test plan, the tester will clarify the key points of this test and the return key points, and the developer will clearly release the application and release it smoothly, so as to avoid online bugs caused by missed releases, wrong release order, etc., so that the code is rolled back.
8. Official release
To track the release situation, you can ask the development to synchronize the release rhythm in the group. After the release is completed, the first time online verification (after the release, @pd+ business, they can conduct online acceptance at the same time);
Different businesses may have different release windows, and you need to pay attention to whether it is within the release window, or you may need urgent approval;
Since many online problems are caused by changes, so pay special attention to whether there are any missed releases when re-publishing;
Generally, there is a grayscale observation period during the release process, during which you can observe whether there is any abnormality in the online traffic.
9. Online Verification
Relevant personnel need to verify the online results in a timely manner. General tests are used for verification. If the test cannot be verified due to business characteristics, business students need to verify online in a timely manner. For example, my previous business was tested for online regression.
, due to data security and other issues due to the current business characteristics, the business itself needs to be verified.
In addition, you can build a test template by yourself. For example, I will divide it into four parts, including requirements sorting, test preparation, test process, and test summary. The output of each stage can be deposited in the form of documents, which can be used as follow-up acceptance. and a reference for regression.
Seven, some commonly used small tools and testing skills
1) A simple and good-looking json formatting tool:
[JSON-handle plugin] https://chrome.google.com/webstore/detail/json-handle/iahnhfdhidomcpggpaimmmahffihkfnj?hl=zh-CN
2) [Other online json formatting websites] https://www.json.cn/, https://www.bejson.com/explore/index_new/
3) [Ali translation plug-in] https://chrome.google.com/webstore/detail (haha, I am a person who prefers plug-ins rather than switching tab pages)
Arirang can be installed, a simple proxy tool, and the direct IP domain name can be used as a proxy
The data returned by the local mock backend can also be mocked directly through the request name file://file path, which is very convenient
In this way, you can test front-end problems, including exceptions such as styles~
There is another way: F12 console mode (change style)
Press F12 under the tab of any webpage in Chrome.
The developer tools panel pops up below.
Then click on the Console tab
Then enter: document.body.contentEditable = "true"
Press enter, now you can edit the webpage as you like
Of course, you can also close the editable state after editing
5) mac comes with a screenshot tool
You can record and take screenshots. Sometimes I will record or take screenshots of the test results and give them to the business side for acceptance.
6) There is also xmind: a must for writing test cases; mac notes: usually record some messy drafts; some other commonly used chrome widgets:
Knowledge Base Team
Knowledge Base Team
Knowledge Base Team
Knowledge Base Team
Explore More Special Offers
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00