Large sum of software test methods
Software testing methods a wide range of memory confusion, if the software testing methods to classify, it will be much clearer. I refer to some books and online information, the commonly used software testing methods listed, so that the software testing industry has a general view.
Classification from Test design methods
Test name |
Test content |
Black box test |
The software system as a "black box", can not understand or use the system's internal structure and knowledge. Design tests from the behavior of the software rather than the internal structure. |
White box test |
Designers 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 actual work, the more you know about the system, the better. At present, most of the testers are doing black box test, few do white box test. Because white-box testing is very demanding for software testers, it requires a lot of programming experience. White box test for. NET program you need to be able to read. NET code. To do Java program testing, you need to be able to read Java code. If you could read it, would you still be testing?
Sort from test manually or automatically
Test name |
Test content |
Manual Test Manual Testing |
Testers use mouse to manually test (test GUI) |
Automation Automation Test |
Testing programs with programs (Test API) |
For projects, manual testing is as important as automated testing and is a way to ensure software quality. Most of the project teams are now combined with manual testing and automated testing. Because many tests cannot be automated, and many complex business logic is hard to automate, automated testing cannot replace manual testing.
For personal development of software testers, it is a challenge to do automated testing, but also a direction for the development of testers, the need for testers to learn a lot of development knowledge (the development of knowledge is really life-long learning AH). In the long run, automated testing must be more and more popular.
Manual testing is more suitable for people who just work, the biggest disadvantage of manual testing is low technical content, monotonous, easy to wreck.
Overall, the manual test wins in the test business logic, while the automated test wins in the test underlying architecture.
If the tested program is better testable, it is necessary to automate the test. Automate as much as possible, and the following situations can be automated
1. Test the stored procedure. For example, use C # to test stored procedures
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 for these programs.
Classify from the purpose of the test
Functional Testing
The scope of the test from small to large, from the inside to outside, from the Program Developers (unit test) to testers, to the general user Alpha/beta test
Test name |
Test content |
Unit test test |
Verify the accuracy of the program on the lowest feature/parameter, such as testing the correctness of a function (developer) |
Functional test function test |
Validation module features (testers do) |
Integration test integration test |
Verify the functionality of several interdependent modules (testers do) | /tr>
Scenario test scene test |
Verify that several modules can complete a user scenario (testers do) |
System test System test |
Test for entire system functionality (testers do) |
Alpha test |
Software Testers perform comprehensive testing of software in real user environments (testers do) |
Beta test |
Real user test in real user environment, also known as (end user) |
Non-functional testing
In addition to the basic functions of a software, there are many features beyond the functionality, these are called "Quality of Service requirement" quality of services requirements. Without the functionality of the software, none of these features can be demonstrated, so we need to do these tests at the appropriate stage of software development-the basics are done.
Test name |
Test content |
Stress Test pressure Testing |
Verify that the software can still return the correct results when it exceeds the load design without crashing |
Load Test Loading tests |
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 test-test software to provide adequate accessibility to disabled users |
Localization/globalization |
Localization/Globalization Testing |
Compatibility Test |
Compatibility test |
Configuration Test |
Configuration test-test software to work properly under various configurations |
Usability Test |
Usability testing – Testing the software for ease of use |
Security Test |
Software security Testing |
Performance test
Performance testing requires testers to perform proficiency testing tools such as QTP, LoadRunner, and Jmeter. Visual Studio also provides a number of tools for performance testing. Requires testers to understand and script low-level protocols very well
Performance testing is very technical content, very promising, is a software tester professional development direction.
Security testing
The content of the security test is very wide and very difficult. I have only been exposed to XSS (Cross-site scripting attacks) and SQL injection attacks.
Security testing is very technical, and I think it's a career direction for 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 software development process is smooth.
Test name |
Test content |
Smoke Test |
"Smoke" – if the test does not pass, the next step will not work |
Build Verification Test (BVT) |
Verify that the build passes the basic test. |
Acceptance Test |
A test that is tested in order to fully assess a function/feature. |
BVT testing is a smoke test that automatically runs automated test scripts to check the basic functionality of a build after it has been built. If the BVT test fails, the developer needs to modify it immediately to regenerate build
According to the Test measurement strategy classification.
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) |
Ad Hoc test Exploratory testing |
Random, exploratory testing. |
Sanity Test |
A rough test that only needs to perform some of the test cases |
Regression Test regression testing:
For software testers It is repetitive testing, so regression testing is best automated, or testers will repeat tests over and over again,
1. Developers make minor changes that require testers to do regression testing. Ensure that the 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 project, need to do a complete regression test to ensure that all the functions are good
Ad hoc test Exploratory testing:
Usually I like to do random tests, put aside test case. Oneself in accordance with their own ideas, casually point. If the test gui,ad can find a large number of bugs.
The above is a number of software testing methods of collation, follow-up to continue to collate relevant information, thank you for your support for this site!