There are a wide variety of software testing methods, and the memory is confusing. If you classify software testing methods, they will be much clearer. I refer to some books and online materials to list common software testing methods so that everyone can have a general view of the software testing industry.
Classification from Test Design Method
Test name |
Test content |
Black box black box testing |
The software system is treated as a "black box" and cannot understand or use the internal structure and knowledge of the system. Design and Test Based on the behavior of the software, rather than the internal structure. |
White Box white box testing |
Designers can view the internal structure of the software system and use the internal knowledge of the software to guide the selection of test data and methods. |
Gray box. gray box test |
Between black box and white box |
Conclusion: The more you know about the system, the better. At present, most testers perform black box tests, and few do white box tests. White box testing has high requirements on Software testers and requires a lot of programming experience. To test the white box of the. NET program, you must be able to understand the. NET code. To test the Java program, you need to understand the Java code. If you can understand it, will you still perform the test?
Manual or automatic classification
Test name |
Test content |
Manual test manual test |
The tester uses the mouse to perform a manual test (test GUI) |
Automation Automated Testing |
Test A Program (test an API) |
For projects, manual testing and automated testing are equally important, and they are all ways to ensure the quality of software. At present, most of the project teams are combined with manual and automated tests. Because many tests cannot be automated and many complex business logic cannot be automated, automated tests cannot replace manual tests.
For the personal development of software testers, automated testing is a challenge and a direction for the development of testers. Testers need to learn a lot of development knowledge (there is no end to learning about development ). In the long run, automated testing will certainly become increasingly popular.
Manual testing is suitable for people who have just started their work. The biggest disadvantage of manual testing is its low technical content, monotonous and easy to waste.
In general, manual testing is better than testing business logic, while automated testing is better than testing the underlying architecture.
If the tested program is more testable, it is necessary to perform automated testing. Automation can be achieved as much as possible. The following situations can be automated.
1. Test the stored procedure. For example, use C # To test the Stored Procedure
2. Test web servies. For example, use the soupui tool or C # and Java to test web servies.
3. Systems with separated interfaces and business logic, such as MVC, MVP architecture, or WPF programs. You can use test scripts to test the APIs of these programs.
Classification from test Purpose
Function Testing
Testing ranges from small to large, from internal to external, from program developers (unit tests) to testers, to alpha/beta testing for general users
Test name |
Test content |
Unit Test |
Verify the accuracy of the program with the lowest features/parameters, such as testing the correctness of a function (done by developers) |
Functional test function test |
Verify the functions of the module (done by the tester)
|
Integration Test |
Verify the functions of several interdependent modules (implemented by testers)
|
Scenario test scenario test |
Verify whether several modules can complete a user scenario (done by testers)
|
System Test |
Test functions of the entire system (done by testers)
|
Alpha Testing |
The software tester performs a Comprehensive Test of the software in a real user environment (the tester does)
|
Beta testing |
Tests performed by real users in real user environments are also called public tests (performed by end users) |
Non-functional testing
In addition to basic functions, a software also has many features, which are called "quality of service requirement" service quality requirements. Without software features, these features cannot be shown. Therefore, we need to perform these tests at the appropriate stage of software development-after the basic functions are completed.
Test name |
Test content |
Stress Test |
Verification software can still return the correct results if it exceeds the load design and does not crash |
Load Test |
Test whether the software works normally under load conditions. |
Performance Test |
Test the software performance and whether the service quality is satisfactory. |
Accessibility Test |
Software-assisted function testing-test whether the software provides adequate assistance to users with disabilities |
Localization/globalization |
Localization/globalization Testing |
Compatibility Test |
Compatibility Test |
Configuration Test |
Configuration test-test whether the software works properly under various configurations |
Usability test |
Availability test-test whether the software is easy to use |
Security Test |
Software Security Testing |
Performance Testing
Performance testing requires testers to be proficient in performance testing tools, such as qtp, LoadRunner, and jmeter. Visual Studio also provides many performance testing tools that require testers to understand and write scripts for low-level protocols.
Performance testing is very technical and promising. It is a career development direction for Software testers.
Security Testing
Security Testing has a wide range of content and is very difficult. I have only been exposed to XSS (Cross-Site Scripting) and SQL injection attacks.
Security Testing is very technical, and I think it is also a career development direction for Software testers.
Classification by test time and role
In the process of developing software, many tests play the role of Beacon Tower. They tell us whether the software development process is smooth.
Test name |
Test content |
Smoke test |
Smoke-if the test fails, the next step cannot be performed. |
Build verification test (BVT) |
Verify that the build passes the basic test. |
Acceptance Test |
Acceptance Test: a test to fully assess a function/feature |
The BVT test is a smoke test. It refers to the automated test script that runs automatically after the build is generated to check the basic functions of the build. If the BVT test fails, developers need to modify it immediately and generate a new build.
Categories by test policy.
Test name |
Test content |
Regression test regression test |
Re-run previous test cases for a new version to see if the new version is degraded compared with the known version (regression) |
Ad hoc test Exploratory Test |
A random, exploratory test. |
Santiy Test |
For a rough test, you only need to execute some test cases. |
Regression test regression test:
For software testers, repeated tests are required. Therefore, regression testing should be automated. Otherwise, testers must repeat tests over and over again,
1. If developers make minor changes, they need testers to perform regression tests. Ensure that existing functions are not damaged
2. The bug fix also requires regression testing to ensure that the new Code fixes the fix and that the existing functions are not damaged.
3. A complete regression test is required later in the project to ensure that all functions are good.
Ad hoc test exploratory test:
I usually like to perform random tests. Aside from test case, I just want to perform random tests on my own. If you test the GUI, ad hoc can find a large number of bugs.