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 feasible3. 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
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 possibleSoftware 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 quality2. 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
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?
. 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
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