Notes and Reflections on "The Growth Diary of a Test Engineer from a Rookie to a Test Architect"

1. The essence of testing

1. Testing is actually the process of finding and solving problems, and its goal is to deliver software products to customers with the highest possible quality, so that there are as few problems as possible in the software products.

Instead of exhaustive testing, risk analysis and testing priorities for different system functions are used to determine the focus of testing.

2. Software development itself is an engineering process that pursues the ratio of output to input. Therefore, when considering the content and method of testing, the ultimate goal should be a high output-input ratio.

Second, the sampling characteristics of the test

Except for small projects, full (combination of various inputs and preconditions) testing is not feasible

3. Diversity of Test Types

1. Unit testing: A test that is closest to development. Developers write unit test cases and execute them, verifying that the unit modules produce the expected results.

    Among the agile development patterns, there is a popular development pattern called test-driven development. The core of test-driven development is to make unit test cases well first, and functional development aims to pass the corresponding unit test cases.

    Agile development fundamentally avoids the weaknesses of the waterfall model, it has two core points - iterative development and incremental development

2. Functional testing: by executing automatic or manual test cases, the corresponding functional points can be verified.
3. Performance testing: testing focusing on verifying the non-functional requirements of the software. Simulate concurrent access scenarios of real users through automated methods to verify system performance indicators (throughput, stability, reliability) or discover performance bottlenecks
4. Compatibility: version, browser, etc. compatibility check

5. Exploratory testing: "purposeless" + "random" use of the system from the user's point of view

The goal of the test

Potential software problems are reduced as much as possible
Software test results are the responsibility of the software owner/user

5. The development team does much more than just develop

1. The development skills of developers have an important relationship with whether the software is completed with high quality

2. The quality of software testing is directly related to the workload of testers, and even the quality of product launch

3. Irregular development process brings huge difficulties to testing, launch, and even risk control

PS: What developers do is not limited to development; what testing experts do is not limited to testing.

6. Test Architect

1. Responsibilities. The responsibility of the test architect is to define the test strategy, and define the direction and method of the test from a macro level. The test architect has an accurate grasp of the technical characteristics and business requirements of the test target, and can provide the test team with comprehensive suggestions in terms of methodology.

2. Requirements. As the "think tank" of the test team, the test architect should have a high level of skills, including in-depth and comprehensive testing experience, a comprehensive understanding of software development and testing models, and a relatively deep understanding of business models and customer business needs. understanding.

ps: At present, when it comes to architects, they often only consider the experts in development technology, and often ignore the requirements of business direction and other aspects. Personally, I think that a good architect should not talk about the test architecture out of business, and the architect should have the ability:

  • Have a deep understanding of development technology and be able to give professional advice from the technical design stage
  • Prospective and experienced in industry testing methods, able to design corresponding testing strategies for different technical architectures (the breadth and depth of testing)
  • Prospective and experienced in business direction, able to design corresponding test solutions from the perspective of business requirements

3. Differences from test engineers.

Test Architect: Develop/guide the team's test strategy from a macro perspective

Test Engineer: Execution of specific tests

7. Test Metrics

  • Whether the functional quality software is implemented as designed and meets the corresponding functional requirements 
  • Does the structural quality software meet the relevant non-functional requirements
  • Iterative Process Metrics
  • Efficiency improvement measure.

    From the perspective of the whole project, the risk can be reduced by "discovering the problem as early as possible", and the later the problem is found, the higher the risk of the project and the greater the impact on the overall progress.

  • Quality Operational Metrics

8. Identify problems as early as possible 

1. In the process of iteration and accumulation, the more the underlying defects are discovered, the later the time of discovery will be, and the higher the cost of repairing the defects;
the risk will be reduced by "discovering the problem as early as possible", and the later the problem is discovered, the higher the risk of the project. , the greater the impact on the overall progress.
2. As a test expert, the problem that should be considered is how to find defects earlier and solve them effectively
  • How to find problems earlier and effectively?
  • Problem analysis after the problem is found?
ps: As a test expert, the core ability is actually the ability to think. Through practice and summary, you can form your own methodology
. 3. There are two types of feasible methods for finding problems, namely analysis methods and testing methods.
  • Analytical method. Non-testing means to find problems
  • testing method. Various testing methods to find problems
PS: It is caused by a certain part of the system, and this local problem will be manifested at the macro level of the system after it is enlarged;
4. Efficiency improvement

There are two external manifestations of efficiency improvement:

The first way is to use the same time to complete more test case executions;

The second way is that for the same or the same group of test cases, the time spent is reduced 

ps: "Over-automation" needs to be avoided in the automation design process

9. (Methodology) Think like a layman and practice like an expert

    The layman's way of thinking can be an effective entry point when identifying and solving problems. A good entry point is a good start, however, the real practice must verify the correctness of the idea with the rigor and prudence of experts.

10. Testing is both a technique and an art 

    Technology is constantly changing, while art is more in the realm of aesthetics and philosophy. What technology and art have in common is that there is no end to the cultivation base on this. Even if you become a test master, there are still many things worth pursuing in the field of testing. With a deeper understanding of testing, test engineers can develop original insights into the philosophy of testing, whether technical, methodological, or managerial. To be able to make this insight, the test engineer has reached the level of the test master. The continuous emergence of new technologies, new methodologies and new testing philosophies promotes the continuous progress of the entire software testing field and even the field of information science.

Guess you like

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