Preface
Some time ago, I was preparing performance materials to summarize the quality work and outputs in the past year. Inadvertently, I lamented that time flies. This year is my fifth year of struggling in the field of test development. Taking advantage of this point in time, I will summarize my work in the past few years.
There are several purposes for the summary:
- Precipitation and Sharing: Precipitation of quality assurance technology and work experience in the past few years can provide some reference for students who are just starting out, hoping to help them avoid detours; on the other hand, it also allows you to examine the work in recent years with a critical perspective, find shortcomings, and continuously improve.
- Plan and spur: Based on the work accumulation in the past five years and the current industry hotspots, I formulate the next five-year plan to clarify the future development direction and regularly spur myself.
- Exchange and encouragement: I hope to have in-depth discussions with colleagues in the industry and get valuable suggestions.
experience
2019:
- July: I conducted a short-term internship in the Situation Awareness R&D Department of a local network security company in the school to experience the workplace environment for a preliminary experience.
- Second half of the year: Join Baidu Netdisk department as a test development intern, participating in the quality assurance of Yishi Album v1.0 and Baidu Netdisk core modules.
2020:
- He obtained Baidu Smart Cloud Test Development Offer and was responsible for network business testing during his internship.
- After officially joining the company, he transferred to the storage testing team and started a three-year cloud product testing career, focusing on quality assurance and efficiency improvement.
2023 to present:
- Join a startup company in the OLAP field and be responsible for the construction of quality assurance system, efficiency improvement and infrastructure optimization.
- Currently responsible for the quality assurance of products in a certain direction.
Keywords for the first five years of career: storage, quality assurance, efficiency improvement, infrastructure construction.
precipitation
It can be mainly divided into three aspects: quality assurance, efficiency improvement and personal skills.
The following is a summary of personal experience. A rough outline is made. Many concepts will not be explained in detail. You can ask the big model or Google for details.
Quality Assurance
Speaking of this, many students may directly link to the test, but in fact, quality assurance does not mean testing. Testing is only a kind of means of quality assurance. I summarize it into 3 aspects: quality assessment, quality plan, and quality standards.
Quality Assessment
The purpose of quality assessment is to clarify the weaknesses of system quality and to formulate quality assurance plans and carry out according to priority.
Test coverage
- Test coverage: All internal tests are reviewed.
- Code Coverage: Perform all tests and output code coverage. Each code language has corresponding tools such as Java JaCoco, C++ llvm, etc.
- Log coverage: Perform all tests, output logs and log printing logic coverage in code. baidu has a project logcover, and the personal body ROI is not high.
BUG Analysis
- It mainly consists of basic scenarios and KA user scenarios, and requires high-quality attention. And classify bugs, functions, performance, stability, etc.
Warranty plan
The quality assurance plan can be roughly divided into three aspects: quality assurance process, quality testing, and quality standards.
Warranty process
You can search for the software engineering test process online. It is more detailed than mine. To summarize the following are more useful:
Test access
- Admission test passes: Various CI passes.
- Incremental coverage meets the standards: Set a baseline according to the actual system type, such as more than 90% of the database kernel part.
- The test document is given: including design documents, code changes PR, risk points, etc.
Quality Assessment
Test design
Test design review
Regression Test
- After the test is passed, the test version is executed on the regression pipeline to determine whether it affects the existing function. Of course, regression testing can also be pre-existed to the test access stage.
The release version is accurate - Regression tests are normal, performance has no fallback, etc.
Smoking test - Select high-quality test cases as smoke test cases and verify them after the product is launched.
PoC Testing - Verify in a customer environment or pre-production environment.
Quality testing
This section can be searched online to test the pyramid, from the bottom to the top, including but not limited to:
Foundation layer: unit test/pile test
Intermediate layer: Functionality/Compatibility/Integration Testing
High-level: Performance/Long-stabilization/Pressure/Chaos/Safety/Scenario Simulation
Quality standards
Any engineering project has quality standards, not limited to system software, automobiles, bridges, food, etc.
Of course, the more accurate the baseline of the quality standard, the richer and more detailed the corresponding project is.
Standard baseline: This can formulate corresponding quality standard baselines based on the actual situation of the project, such as:
- All tests in the release version have passed.
- In all test cases, monitoring alarms will not be triggered.
- All performance scenarios do not fall back.
Release report
- All test situations need to be output with real and clear results.
Improve efficiency
This area mainly depends on company needs, improving testing or R&D efficiency, including but not limited to:
CI/CD
Test Tools
Test framework
Test platform
Monitoring alarm
Personal skills
This requires you to have a positioning, what kind of role you want to become in a certain field, and to master relevant skills. Including hard skills and soft skills.
Hard skills
System familiar
- User scenario
- System architecture
- Important modules
- Code details
Theoretical knowledge
- Grouping
- network
- operating system
- Database, etc.
Tool usage
- programming language
- System Tools
- Test Tools
- Test framework, etc.
Code capability
- Code day reading
- Code review
Problem solving
- Problem recurs
- Problem positioning
Soft skills
Thinking and methodology of quality, efficiency, operation and maintenance
Upward and downward management capabilities, etc.
think
This is an article I have always wanted to write. Due to limited space, I briefly summarized several years of work. In the future, I will improve each piece of content or write a separate article to discuss with you.
In the past few years of testing and development, I have gained a deeper understanding of quality assurance and gained a lot of experience. At the same time, I would like to take this opportunity to thank all the teachers for their help and affirmation.
In the past two years, everyone must be very clear about the hot topics in the computer industry. Generative AI and big models have promoted the revolution in the entire industrial chain. Sometimes I think, as a test development, how to have the foundation of one's life so as not to be overwhelmed by the wave of AI big models.
Combining work precipitation and industry hotspots, I have formulated myself the next five-year plan in many aspects:
- Direction
- Continue to the basic business of generative AI and large models.
- Skills
- Have the ability to lead people.
- Proficient in the implementation principles of current quality assurance projects (OLAP).
- Continue to improve the level of basic theories, tools and code, and have the ability to position problems, risk assessment and customer re-insurance.
- Able to use big models to promote implementation in a certain field of business quality assurance.
- I have been learning about network security and have been interested in network security recently. Future big model security is also a direction.
- Other aspects
- The "Distributed Storage System Quality Assurance Notes" is output, hoping to be helpful to relevant practitioners.
- Maintain a good physical condition and mentality.
refer to
Recommended Book List
- "The Art of Software Testing" (Glenford Myers)
- "James Whittaker"
- Designing Data-intensive Applications (Martin Kleppmann)
- "Principles of Pyramids" (Barbara Minto)
- ...
discuss
- In the context of the rapid development of AI models, will traditional quality assurance methods be replaced by AI? How should test development engineers transform or improve their skills to adapt to this trend?
- As a test development engineer or architect, what do you think is the most valuable quality? Is it technical depth, sense of risk, or other characteristics? How do you cultivate this quality in practice?
- What kind of position are you currently engaged in and how long have you been working on? Do you have different experiences?
Welcome to share your views or experiences!