I. Overview
The beginning of software testing is the same as the beginning of the software development life cycle, that is, software testing accompanies the entire software development life cycle. In the software development life cycle, we may use a variety of software testing methods, and now the software testing tools and methods are very many, now in retrospect may be very confusing, so I would like to re-organize the Software testing method:
Second, software testing methods
2.1 Black box/White box
Just learning software testing is this, the software test is divided into two categories:
| Test name |
Describe |
| Black box test Dark Box |
See the Software as a black box, not clear the structure inside, from the functional test |
| White box test |
Internal structure of the known software, testing according to the internal structure |
The personal feeling black box test is relatively simple, but the white box test obviously to the test personnel's request is high.
2.2 Manual/Automatic
| Test name |
Describe |
| Manual Testing Manual Test |
|
| Automated Test AutoMation |
|
The advantages of manual testing are obvious: flexible, comprehensive, low-tech, but the same: heavy workload, a lot of repetition, easy to get mad, prone to error.
Advantages of automated testing: fast and efficient. Cons: Not flexible enough.
Our most recently used Visual Studio can be used for automated testing, and it's a good idea to try out its UI tests recently.
VS's UI Test is to simulate mouse input, keyboard input, and then automatically repeat. This allows for a large number of repeated tests to be performed automatically after the program is changed.
2.3 Functional Testing
Test name |
Test content |
Unit Test |
Verify the accuracy of the program on the lowest function / parameter, such as testing the correctness of a function |
Functional Test functional Test |
Verifying the functionality of the module
|
Integration Testing Integration Test |
Verify the functionality of several modules that have dependencies on each other
|
Scenario Testing Scenario Test |
Verify that several modules are able to complete a user scenario
|
System test |
Testing for the entire system function
|
Alpha Test |
Software Testers perform comprehensive testing of the software in real user environments
|
Beta test |
Real user testing in a real user environment, also known as public beta |
Where unit testing is done by developers, beta testing is user involvement. The rest is what testers should do.
2.4 Other
regression testing Regressiontest: Refer to a new version of the software, re-use the previous test case test to see if there is a problem with the new version.
This regression test clearly demonstrates the importance of automated testing, and if automated testing tools are used, we can easily do a lot of testing in a short time, such as Visual Studio UI testing, and we don't even have to re-record the sequence of operations to test directly.
Exploratory testing Ad hoctest: random, exploratory testing.
is to throw away the test cases, according to their own ideas casually point, according to their own ideas will also find a lot of bugs.
Third, finally talk about the importance of automated testing
1, automated testing can simulate manual testing, reduce the repetitive mechanical testing workload (a large number of regression testing);
2, can improve the accuracy of testing, such as the correct calibration of large data volume;
3, for manual difficult to carry out tests, such as unit testing, statistical test coverage, and so on;
4, for simulating multi-threaded or multi-user concurrency;
Automated testing is necessary, and no side testers have to test it over and over again.
Software Testing-5 software Test summary