This article is transferred from the tester community, the original link: Jck28-Lucio-Introduction to the test development system - study notes - tester community
1. Introduction to the test system L1
1. Basic concepts of software testing
1.1. Concept
- The "test object" is tested by hand or with tools
- Verify that there is no discrepancy between the actual and expected results
1.2. The role of software testing:
- Through testing, defects in the software can be found and fixed, thereby increasing the user's confidence in using the product
- Testing can reduce the risk of problems with the development of products of the same type
2. Software development process
- In order to make the work of software development systematic and controllable;
- All activities need to be managed with a suitable software development model and development process.
2.1. Waterfall model
- The activities of software development are carried out in a strictly linear manner.
- The current activity accepts the results of the work of the previous activity.
- The results of the work of the current activity need to be verified.
Requirement analysis—> design—> coding—> implementation—> software testing—> completion—> maintenance
: Make a plan;
: Demand analysis;
: Software design;
: program coding;
: Software testing;
: Operation and maintenance;
2.2. Agile development model
- It is suitable for scenarios where requirements change frequently and rapid development is required.
- XP
- SCRUM
2.2.1, XP - Extreme Programming
2.2.2、 SCRUM
2.3、 DevOps
2.3.1、 DevOps 生命周期
- Continuous development
- Continuous testing
- Continuous integration
- Continuous deployment
- Continuous monitoring
2.3.2、CI/CD
- 持续集成(Continuous Integration,缩写为 CI):
- A software development practice.
- Integrations can occur multiple times a day for team development members.
- Each integration is validated by automated builds, including compilation, release, automated testing.
- Based on the test results, determine if the new code and the old code are properly integrated.
- 持续交付(Continuous Delivery,缩写为 CD)
- It is a software engineering approach.
- Let the production process of software products be completed in a short cycle.
- Ensure that the software can be stably and continuously maintained in a state that is ready for release.
- Target:
- Build, test, and release software faster and more frequently.
- Reduce the cost and time of software development and reduce risk.
3. Test process system
3.1. Principles of software testing
- Tests revealed the presence of defects
- Exhaustive testing is not possible
- Testing is intervened as early as possible
- Defect clustering (2/8 rule) – defects are clustered in 20% of modules
- The Pesticide Paradox—Test cases cannot be used more than once
- Test activities depend on what is being tested
- There is no fallacy that there is a mistake
3.2. Software test objects
- Requirements analysis stage: requirements documents, interface documents
- Coding Implementation Phase: Source code
- System function usage: software program
3.3. Software testing model
3.3.1. V model
Requirements Analysis—> Outline Design—> Detailed Design—> Coding—> Unit Testing—> Integration Testing—> System Testing—> Acceptance Testing
3.3.2, W model
3.3.2, H model
3.4. System test process
Requirements analysis - > test plan - > test design - > use case review - > test execution - > - bug relationship - > release and maintenance
3.5. Bug management process
3.6. Test left shift
- Shift left is a move to the development phase prior to testing
- Test teams are involved early in the software development cycle
- Test your code
- From finding bugs to preventing bugs
- Code review
- Code audits
- Unit tests
- Automated smoke testing
- R&D self-test
3.7. Test right shift
- Shift right is to move back after publishing
- Online monitoring will be carried out after the product is launched
- Closed-loop online problem feedback-check-solve-update process
- More convenient log viewing and backhaul services
- Abundant and effective logs are convenient for problem location
- Abundant monitoring metrics (such as service anomaly indicators)
- Business monitoring (e.g., SMS sending, etc.)
- Daily monitoring of key metrics (server metrics)
- Production Data Monitoring (Alerts)