Software Testing has become an essential engineering practice for the production of high-quality software, in which the software testing method is a wide variety, and for beginners, it is difficult to remember. Therefore, I pass the class to listen to and consult the information to simple summary, convenient everybody has a whole understanding.
classification from test design methods
test name |
&NBSP ; test content |
Black Box testing black box test |
Black-Box testing is also known as functional testing, and it is tested to see if each feature is working properly. In the test, the program as a black box can not be opened, regardless of the internal structure of the program and internal characteristics of the case, in the program interface testing, it only checks whether the program function in accordance with the requirements of the specification of the normal use, the program can properly receive input data and produce the correct output information. Black box testing focuses on the external structure of the program, regardless of the internal logical structure, mainly for the software interface and software function testing. |
white Box testing test |
White box testing is also known as structural testing, transparent box testing, logical drive testing, or code-based testing. White box testing is a test case design method, the box refers to the software being tested, the white box refers to the box is visible, you know what the inside of the box and how it works. The White box method thoroughly understands the internal logic structure of the program and tests all logical paths. The "white Box" method is a poor lift path test. When using this scenario, the tester must examine the internal structure of the program, starting with the logic of the checker and drawing the test data. |
Gray box testing gray box test |
Gray box test is between white box test and black box test, it can be understood that the gray box test is concerned about the correctness of the output for the input, but also focus on the internal performance , but this kind of attention is not as detailed and complete as the white box, only through some representational phenomena, events, signs to judge the internal operating state, sometimes the output is correct, but the internal actually has been wrong, this situation is very much, if every time through the white box test to operate, the efficiency will be very low, So it is necessary to adopt such a method of gray box. |
Black-box and white-box tests are especially common, and the comparisons are as follows:classification from the point of view of executing a program
Test name |
Test content |
Static testing of the static test |
Static method is to not run the program itself, only by analyzing or checking the source program syntax, structure, process, interface, etc. to check the correctness of the program. The requirements specification, software design manuals, the source program to do structural analysis, flow chart analysis, symbol execution to find the wrong. Static methods through the analysis of the static characteristics of the program to find out what is missing and suspicious, such as mismatched parameters, inappropriate loop nesting and branch nesting, disallowed recursion, unused variables, null pointer references and suspicious calculations. Static test results can be used for further error checking and provide guidance for test case selection. |
Dynamic testing Dynamic Test |
The dynamic test method refers to the difference between the running result and the expected effect by running the program under test, and analyzes the performance of running efficiency, correctness and robustness. This method consists of three parts: constructing the test case, executing the program, and analyzing the output result of the program. |
Static testing includes the review of the design specification of the SOFTWARE PRODUCT, the reading of the program code, and the review. The troubleshooting and analysis functions of static analysis are irreplaceable by other methods. has been used as an automated code validation method.
Dynamic testing provides information about execution tracking, time analysis, and testing coverage by observing the actions of the code as it runs. Dynamic testing discovers errors by actually running the program. Through the effective test cases, the corresponding input pin-out relationship to analyze the operation of the program being tested.
The different test methods differ in their objectives and focus, in the actual work. These two methods should be used together to achieve a more perfect effect.
from test whether manual classification
Test name |
Test content |
Manual Test Manual Testing |
Testers use the mouse to manually test (test the GUI), or perform manual calculations |
Automation Automated Testing |
Program test program (Test API) |
Whether it's automated testing or manual testing, the core is always a test case. Invalid use cases, in any way to test, will not achieve good testing purposes. 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. Of course, the purpose of automated testing is to save labor costs and time costs, the boring regression test automation, shorten the project cycle, and this is precisely the manual test can not be compared to manual testing is the biggest drawback is the low technology content, monotonous boring.
All in all, manual testing wins the test of business logic, and automated testing wins the test of the underlying architecture.
the process of software development is classified by stages
Test name |
Test content |
Unit Test |
Unit testing refers to the inspection and validation of the smallest testable unit in the software. For unit testing in the meaning of the unit, in general, according to the actual situation to determine its specific meaning, such as the C language unit refers to a function, Java unit refers to a class, graphical software can refer to a window or a menu. In general, the unit is the minimum measured function module that is artificially defined. Unit testing is the lowest level of test activity to be performed during the software development process, and the independent unit of the software will be tested in isolation from other parts of the program. |
Integration Testing |
Integration testing, also known as assembly testing or joint testing. Based on unit testing, all modules are assembled into subsystems or systems according to design requirements (e.g. according to the structure diagram) for integration testing |
Confirm Test |
The purpose of the validation test is to show future users that the system can work as expected. After the integration test, has been designed to assemble all the modules into a complete software system, interface errors have been basically eliminated, and then should further verify the effectiveness of the software, this is the task of confirming the test, that is, the function and performance of the software as the user reasonably expect. |
System Testing |
System testing is for the entire product system testing, the purpose is to verify whether the system meets the requirements of the definition of specifications, to identify with the requirements of the specification or inconsistent with the place, so as to put forward a more perfect plan. After the system test finds the problem, it is debugged to find out the cause and location of the error and then correct it. is a black box class test based on the overall requirements specification of the system, which should cover all the components of the system. Objects include not only the software to be tested, but also the hardware on which the software relies, peripherals and even some data, some supporting software and its interfaces. |
Acceptance Testing |
The acceptance test is the last Test action before the software is deployed. Software testing activities performed prior to product release after the SOFTWARE product has completed unit, integration, and system testing. It is the final stage of a technical test, also known as a delivery test. The purpose of the acceptance test is to ensure that the software is ready and that it can be used by end users to perform the established functions and tasks of the software. |
Regression test |
Regression testing refers to re-testing the old code after it has been modified to confirm that the modification did not introduce a new error or cause other code to produce an error. Automated regression testing significantly reduces the cost of system testing, maintenance upgrades, and more. As an integral part of software life cycle, regression testing occupies a great proportion of workload during the whole software testing process, and many regression tests are carried out at every stage of software development. In progressive and fast iterative development, successive releases of new versions make regression testing more frequent, and in extreme programming methods, it is required that several regression tests are performed every day. Therefore, it is very meaningful to improve the efficiency and effectiveness of regression testing by choosing the right regression test strategy. |
Alpha Test |
Alpha testing is a test performed by a user in a development environment, or it can be a test performed by a user within the company in a simulated actual operating environment. The objective of alpha testing is to evaluate the flurps of software products (i.e. functionality, localization, usability, reliability, performance, and support). Especially focus on the product interface and features. The alpha test can start at the end of the software Product code, or after the module (subsystem) test is complete, or after confirming that the product has reached a certain level of stability and reliability during testing. |
Beta test |
Beta testing is performed by end users of the software in one or more room locations. Unlike Alpha testing, developers are often not on the site of beta testing because beta testing is a "real" application in environments where the software is beyond the developer's control. All problems (real or imagined) encountered in the user beta test, and report these issues to the developer on a regular basis. After receiving the issue reported during beta testing, the developer makes the necessary modifications to the SOFTWARE PRODUCT and is ready to release the final software PRODUCT to all customers |
classification from the purpose of the test
Test name |
Test content |
Functional Testing |
Functional testing checks to see if the actual functionality meets the needs of the user. Most of the work of the test is also around the function of the software, the purpose of design software is to meet customer demand for its functions. Any test work would be meaningless if the deviation was to this end. Functional testing can be subdivided into many types: logic function test, interface test, usability test, installation test, compatibility test, etc. |
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. |
Performance testing |
Can be tested by automated test tools to simulate a variety of normal, peak and abnormal load conditions to test the system's performance indicators. The performance of software includes many aspects, such as time performance and space performance . Time Performance : mainly refers to a specific response time of the software. such as the time required for a login, the time required for an exchange, etc. Of course, it doesn't make sense to analyze the response time of a transaction without a specific test environment. A specific and independent test environment needs to be built. Space Performance : Mainly refers to the system resources consumed by the software, such as hardware resources, CPU, memory, network bandwidth consumption and so on. |
Security testing |
Security testing is the process of testing a product to verify that the product complies with the security requirements definition and product quality standards during the life cycle of the IT software product, especially when the product development is basically completed to the release stage. |
Talking about Software test method