What is the Underlying Logic of the Software Testing? (Part 2)

2022-06-24 15:29:25
ZenTao 3
Translated 1133
Summary : Test analysis is the basis, followed by design, implementation, and evaluation, forming a pyramid model.

What is the Underlying Logic of the Software Testing? (Part 2)

Click here to review What is the Underlying Logic of the Software Testing? (Part 1)

3. The Underlying Logic of Test Process

The test process conforms to the general engineering project process, including the process of analysis, planning, design, implementation and evaluation, no link can be missing, and each link is important. But the previous link will affect the later link, so the more the previous link is, the more important it is. Test analysis is the basis, followed by design, implementation, and evaluation, forming a pyramid model.

 

Another underlying logic of the test process: is to form a closed loop. If problems are found in the test process after evaluation, it is necessary to re-analyze, modify the plan, and change the design… After a complete process, a new closed-loop is formed. From the perspective of test process improvement, it also needs to form a closed loop like PDCA. From the perspective of DevOps today, the test is to make users more satisfied, but at the same time, it is necessary to conduct user surveys and collect user feedback to form a closed loop, such as the closed-loop I drew 16 years ago. In terms of the cost of the defect, the earlier the test, the better, because inferior costs grow exponentially.

Source: Software Quality Report

To sum up: Testing runs through the whole R&D cycle, forms a closed loop, and continues to improve.

4. The Underlying Logic of the Test Analysis

The underlying logic of test analysis is based on systematic thinking and structured thinking. It needs to think systematically from various aspects such as project background, product structure, and quality requirements. The details cannot be ignored. The test scope is presented completely step by step, various test risks are identified, and finally, the test items and their priorities are clarified.

 

Systematic thinking allows us to see the input/output, pre and post conditions, surrounding environment, and various scenarios faced by the object clearly.

Source:  Software Quality Report

Structured thinking helps us formulate more effective testing schemes and strategies, such as layered testing, interface-oriented testing, and so on. At the same time, the test is always risky, so the risk-based test strategy must be adopted in the test analysis, and the 80/20 principle is applied to determine where the 20% most serious risk is concentrated, which functions are the 20% functions most commonly used by users, and which test items are 20% of the key test.

 

The first underlying logic of test analysis: Test analysis is a gradual and in-depth system analysis process. Systematically analyze the tested objects from different dimensions, such as business requirements, user behavior, system functions, and application scenarios, and finally determine what to test.


The second underlying logic of test analysis: Test analysis is also a process of gambling, selection, and balance. It requires concentration and insight to make trade-offs, such as using the 80/20 principle to grasp the main risks, and sometimes it is necessary to abandon some secondary risks.


The third underlying logic of test analysis: Start with the end, start from the test goal and finally return to the test goal. For example, considering how to measure the requirements of test adequacy, the final analysis result - the completion of each test item can meet the requirements of test adequacy.

5. The Underlying Logic of the Test Design

Test design is to use appropriate methods to complete the design of test data, test scenarios or test cases based on the results of test analysis. According to the way of engineering thinking, there is more than one solution. Multiple solutions should be designed to select the better or the best one.


The essence of test design is to cover test requirements more effectively and select one or more coverage strategies from different coverage strategies such as scenario coverage, logic coverage, path coverage, and data coverage. Test design is also a gradual process and a process of continuous improvement.


Test design is a dialectical and unified thinking process, which includes both strict logical thinking and jumping and divergent creative thinking; It is not only the unity of opposites between the Black-box Testing method and White-box testing method, the integration of static test and dynamic test but also the integration of active test and passive test. Only in this way can we meet the design requirements more thoroughly and complete the test faster to achieve the test goal.


The underlying logic of the test design: Test design is art, but also innovation and integration.

6. The Underlying Logic of the Test Automation

Test automation is to give full play to the role or value of tools. For example, tools can fully execute commands and work without complaint. Therefore, automatic testing is suitable for mechanical and monotonous testing work, such as regression testing, performance load testing, stress testing, compatibility testing, BVT (version construction verification testing), etc.

 

The test automation's script development and execution are based on test analysis and design. If there are problems in test analysis and design, relying on tools cannot solve such problems. With better test analysis and design, there can be better automated testing. Therefore, it is very important for us to understand the relationship between test analysis/design and automated testing.

 

The development and use of tools and the development and use of scripts are all done by people, so people still come first, and tools come second. Test automation is also affected by culture and process. Whether test automation can succeed is not a technical problem. Today, there are no technical obstacles. Obstacles often appear in the corporate culture, R & D process and development quality (such as software implementation specification, testability), and so on.


The first underlying logic of test automation: Tools are important, but humans are the deciding factor. 

The second underlying logic of test automation: Automated testing is based on test analysis and design. 

The third underlying logic of test automation: All test work suitable for automation should be automated as much as possible while creating an environment conducive to automated testing.


Source: FreePik

7. The Underlying Logic of the Testers

Last but not least, let's talk about the underlying logic of testers. The value of the tester does not depend on their current working attitude, knowledge, and skills but on the progress rate of attitude, knowledge, and skills. Because we can't change the past, but we can change the future. As long as you continue to learn and reflect, you can quickly complete your evolution and grow up quickly, and no one can stop your bright future.

 

If we master the underlying logic of software testing, we can see the essence of software testing dynamically and continuously only by exploring the invariance in all changes. Seeing the bottom card of software testing, we can always be like a duck to water.

 

The underlying logic of the testers: As long as you keep learning and reflecting, no one can stop you from becoming a testing expert.

8. Summary

The underlying logic of software testing is to obtain the necessary quality information as soon as possible and reveal the quality risks.

 

To this end, the extended underlying logic of software testing includes:

  • Form a closed loop throughout the whole R & D cycle and continuously improve the test process;
  • Risk-based testing strategies are essential;
  • Start with the end and systematically analyze the test requirements to find a balance between resources and test objectives;
  • Test design is art, but also innovation and integration;
  • Automate testing as much as possible on the basis of analysis and design;
  • Tell the test story well and work together with all parties.
Write a Comment
Comment will be posted after it is reviewed.