Definition of software Testing
The process of running or testing a system using manual and automated means to verify that it meets the required requirements or to clarify the difference between the expected and actual results. --[IEEE Standard terminology for Software engineering)
The previous understanding of the test may be that the test is to find the wrong, to find the bug, but slowly you will feel that some problems should be found early, so to deep-seated discovery problems, the early detection of problems, to the end we think should be how to prevent problems. In the final analysis, the purpose of software testing is not only to find errors, but to be responsible for software quality.
Changes in the concept of software testing
| Traditional Testing |
Test Now |
| Late intervention in development |
has been extended to the entire software lifecycle |
| Test based on Code run |
has been extended to the scope of static testing |
| For the purpose of discovering errors |
has been extended to the category of error prevention |
The purpose of software testing
The purpose of software testing is also changing with the development of testing, in the 1960s testing is to prove that the software can work, in the mid 1970s the purpose of testing is to detect, found errors, and in the 1990s the purpose of testing is to prevent errors, to ensure software quality. This shows that with the continuous development of testing, its importance is undoubtedly obvious.
The significance of testing is to find as many bugs as possible, locate bugs, and ensure that the software meets certain quality standards before the software is delivered.
Test pyramids
- Unit Testing: Testing each unit individually (method) is primarily developed by developers
- Module testing: Testing Each class, file, module, or component
- Integration testing: Test how each module interacts
- System testing: The overall functionality of the test system
- Acceptance test: Whether the software can be accepted by the user
Testing process
We organize the activities required for a test:
1) Software requirements: Define test objectives (rules), define plans
2) test analysis: Design system test, design acceptance test, design usability test (if appropriate)
3) test Plan design: to materialize the system test, to develop the plan of Integration Test and unit test, to obtain the support tool of testing
4) Unit and Integration Test tracking: Assist developers in unit test development
5) test Case Development and review: Create test cases, run tests when unit composition is complete, test case review
6) Test execution: Run system test, acceptance test, usability test
7) Feedback and maintenance: Collect user's questions, perform regression test
This is the real sense of the first contact test, do not see, a look at the shock, the original test there are so many doorways, this blog is just a macro test of some introduction, including testing significance, classification, organization test to carry out the process, the next blog will be detailed introduction of some test knowledge including test cases, unit testing, Interface testing, and so on.
Accelerated test is just beginning, we work together!
Software Testing-Basic article