The variety of software testing methods, memory confusion, if the software testing methods to classify, it will be much clearer. I refer to some books and online information, the common software testing methods listed, so that you have a general view of the software testing industry.
Classification from Test design methods
Test name |
Test content |
Black box test |
The software system is treated as a "black box", and the internal structure and knowledge of the system cannot be understood or used. Design tests from the behavior of the software, not the internal structure. |
White box test |
The designer can see 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. Grey Box test |
Between the black box and the white box |
Summary: In practical work, the more you know about the system, the better. Most testers now do black-box testing, and few do white-box testing. Because white-box testing is very demanding for software testers, it requires a lot of programming experience. White box testing for. NET programs you need to be able to read. NET code. To do a Java program test, you need to read Java code. If you can read it, do you still have a test?
Whether the test is sorted manually or automatically
Test name |
Test content |
Manual Test Manual Testing |
Testers use mouse to manually test (test GUI) |
Automation Automated Testing |
Program test program (Test API) |
For projects, manual testing and automated testing are equally important and are a means of ensuring software quality. Most of the current project teams are combined with manual testing and automated testing. Because many tests cannot be automated, and many complex business logic is difficult to automate, automated testing cannot replace manual testing.
For Software Testers personal development, doing automated testing is a challenge, but also a direction of the development of testers, the need for testers to learn a lot of development knowledge (development of knowledge is really learning AH). In the long run, automated testing is certainly getting more and more popular.
Manual testing is more suitable for people who just work soon, the biggest disadvantage of manual testing is the low technical content, monotonous, easy to be useless.
In general, manual testing wins the test of business logic, while automated testing wins the test of the underlying architecture.
If the tested program is more testable, it is necessary to make automated tests. Can do automation as far as possible to make automation, the following situations can be automated
1. Test the stored procedure. For example, to test stored procedures in C #
2. Test the Web servies. For example: Use the Soupui tool, or C#,java to test the Web servies.
3. Interfaces and business logic separate systems, such as MVC,MVP architecture, or WPF programs. You can use test scripts to test the APIs of these programs.
Classification from the purpose of the test
Functional Testing
Testing ranges from small to large, from inside to outside, from program developers (unit tests) to testers, to general user Alpha/beta testing
Test name |
Test content |
Unit Test Units testing |
Verify the accuracy of the program on the lowest function / parameter, such as testing the correctness of a function (developers do) |
Functional test Function testing |
Verify the functionality of the module (testers do)
|
Integration Test Integration Testing |
Verify the functionality of several interdependent modules (testers do)
|
Scenario test Scenario testing |
Verify that several modules are able to complete a user scenario (testers do)
|
System test Systems Testing |
Tests for the entire system function (testers do)
|
Alpha Test |
Software Testers perform thorough testing of the software in real user environments (testers do)
|
Beta test |
Real user testing in a real user environment, also called beta (end user) |
Non-functional testing
In addition to the basic functions of a software, there are many features outside the functionality, these are called "Quality of servicerequirement" quality of services requirements. without the functionality of the software, none of these features can be shown, so we need to do these tests at the appropriate stage of software development - when basic capabilities are complete.
Test name |
Test content |
Stress Test pressure Testing |
Verify that the software is able to return the correct result without crashing the load design |
Load test |
Test whether the software works properly under load |
Performance Test Performance Testing |
Test the effectiveness of the software, whether to provide satisfactory service quality |
Accessibility test |
Software accessibility Testing - does the test software provide adequate accessibility to disabled users |
Localization/globalization |
Localization / Globalization Testing |
Compatibility Test |
Compatibility test |
Configuration Test |
Configuration test - test software works in a variety of configurations |
Usability Test |
Usability testing – testing the software for ease of use |
Security Test |
Software security Testing |
Performance testing
Performance testing requires testers to be proficient in performance testing tools such as QTP, LoadRunner, Jmeter. Visual Studio also provides a number of tools for performance testing. Requires testers to understand and script low-level protocols
Performance testing is very technical content, very promising, is a professional development direction of software testers.
Security testing
The security test content is very wide, very difficult ah. I've only been exposed to XSS (cross-site scripting attacks) and SQL injection attacks.
Safety testing is very technical, I think it is a professional development of software Testers
Classification by time and function of test
In the process of developing software, many tests play the role of "Beacon", they tell us whether the process of software development is unblocked.
Test name |
Test content |
Smoke Test |
" Smoke"– if the test does not pass, you cannot proceed to the next step |
Build Verification Test (BVT) |
Verify that the build passed the basic test. |
Acceptance Test |
Acceptance testing, testing for a comprehensive assessment of a function/feature |
The BVT test is a smoke test, which refers to the automated testing scripts that run automatically after build is built to check the basic functionality of this build. If the BVT test fails, the developer will need to modify it immediately to regenerate the build
Classification according to test and measurement strategy.
Test name |
Test content |
Regression test Regression testing |
For a new version, rerun the previous test case to see if the new version is degraded compared to the known version (regression) |
Exploratory testing of Ad hoc test |
Random, exploratory testing. |
Sanity Test |
Rough testing, just perform some of the test cases |
Regression Test regression tests:
For software testers It is repetitive testing, so regression testing is best automated, otherwise testers will repeat the test over and over,
1. Developers make minor changes that require testers to do regression testing. Ensure that existing functionality is not compromised
2. Bug fix also requires regression testing to ensure that the new code fixes the fix and that the existing functionality is not compromised
3. Late in the project, a complete regression test is required to ensure that all functions are good
Exploratory testing of Ad hoc test:
Usually I like to do random tests, and throw away the test case. yourself according to your own ideas, casually point. If the test gui,ad hoc can find a large number of bugs.
Summary of software test methods