Software Test classification

Source: Internet
Author: User

Divide the test according to the project process stage

is a typical waterfall software development process, then the software testing work is carried out in the project development process gradually. The following is a description of what the test means.

Unit tests : Unit tests are tests of the basic constituent units in the software. The purpose is to verify the correctness of the basic components of the software.

Integration Testing: Integration testing is a test performed during the integration of software systems. The purpose is to check whether the interfaces between the software units are correct.

System Testing : The system test is to thoroughly test the software system that has been integrated to verify the correctness and performance of the software system to meet the requirements specified in the specification.

Acceptance Testing : The acceptance test is the last Test action before the software is deployed. The purpose of the acceptance test is to ensure that the software is ready to show that the software system meets the needs of its users.

Unit test Phase :

Module Interface Test

Test with the data stream of the module being measured. Whether the input parameters of the module to be called match the number, attributes, and order of the form parameters of the module.

Local Data structure Testing

Local data structure is to ensure that the temporary storage in the module in the process of the implementation of the complete, correct, module local data structure is often the source of errors.

Path testing

Test the important execution path in the module.

Error handling Test

More Perfect module design requirements can meet the conditions of error, and set appropriate error handling, so that in the event of a program error, the error program can be re-scheduled to ensure that its logical correctness.

Boundary condition Test

Software often fails in convenience, boundary condition testing is a basic test, and is the focus of functional testing in later system testing.

Integration Testing Phase :

In integration testing, we focused on the following:

1. When connecting each module, the data that passes through the module interface is lost.

2. Each module together, can meet the expected requirements of the function.

3. Whether the function of one module can adversely affect the functionality of another module.

4. Whether there is a problem with the global data structure.

5. If the error of a single module is accumulated, it will be enlarged to achieve an unacceptable program.

System Testing Phase :

The main test work of the general system is focused on the system testing phase. Depending on the system, there are many different types of tests.

Functional testing:

Functional testing is the verification of the various functions of the product to check whether the requirements are met.

Performance test:

The performance test simulates various normal, peak, and abnormal load conditions through automated test tools to test the system's performance metrics.

Security testing:

The security test checks the system's ability to prevent illegal intrusion.

Compatibility test:

Compatibility testing is mainly the test system in different hardware and software environment can be normal operation.

Acceptance Testing Phase :

Functional Validation Test

Safety and reliability Testing

Ease of Use testing

Extensibility Testing

Compatibility test

Resource Occupancy test

Acceptance of user documentation data

White box test, black box test, gray box test

The above is the division of testing tools according to the project process according to the various stages of testing. White-Box testing and black-box testing are mainly the division of the visibility of the software code to the test work. This is also my software testing in the domain of the two basic concepts.

black box Test :

Black box testing refers to the software being tested as a black box, we do not care about what the structure of the box is like, only concerned about the software input data and output results.

It only checks whether the program function is normal use according to the requirements specification, whether the program can receive input data properly 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 test :

White box test, refers to the box lid open, to study the source code and program results.

It is in accordance with the internal structure of the program testing procedures, through testing to determine whether the internal action of the product according to the specifications of the specification of the normal conduct, the inspection procedures in each path can be as scheduled to work correctly

Gray box Test :

The gray box test is between the black box test and the white box test.

It can be understood that the gray box test is concerned about the correctness of output for input, but also focus on internal performance, but this concern is not as detailed and complete as the white box, but only through some representational phenomena, events, signs to judge the internal operating state, sometimes the output is correct, but the internal is actually wrong, this situation is very much, If you use white-box testing every time, the efficiency will be very low, so you need to take such a gray box method.

Functional testing, performance testing

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 kinds: logic function test, interface test, usability test, installation test, compatibility test, etc.

Performance testing

The performance test simulates various normal, peak, and abnormal load conditions through automated test tools 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.

My opinion on the classification of performance test: http://www.cnblogs.com/fnng/archive/2012/06/09/2543274.html

Manual testing and automated testing

Manual Testing :

A manual test is a person who goes to one to execute a test case, enter some parameters through the keyboard and mouse, and see if the returned results meet the expected results.

(In fact, do not like others to the general functional testing work called manual testing, like a sculptor does not like others call him carved stone.) Manual testing also requires understanding of business familiarity and basic testing methods. Seemingly simple work can find software problems that no one else can find. In the current field of testing, manual testing is still an irreplaceable test method.

Automated testing

Automated testing is the process of translating a man-driven test behavior into a machine execution. Typically, after a test case has been designed and reviewed, the tester performs the test step-by-stage according to the procedures described in the test case to obtain a comparison between the actual result and the desired result. In this process, the concept of automated testing is introduced in order to save manpower, time or hardware resources and improve testing efficiency.

Automated testing: also can be divided into functional automation testing and performance Automation testing .

In general, automated testing refers to the function of automated testing, through the relevant testing techniques, through the coding of a program to test the functionality of a software, so that you can repeat the program to repeat the test. If a small part of the software changes, we can only modify a portion of the code, we will be able to repeat the entire software functional testing. This will greatly improve the efficiency of the test.

Performance automation testing, of course, in addition to the early stages, today's performance testing work is assisted by the Performance test tool. Tools can be used to simulate thousands of users sending requests to the system to verify the system's processing power.

Smoke test, regression test, random test

These three kinds of tests in the SOFTWARE function test process, neither is the concrete clear test stage also is not the concrete test method.

Smoke Test :

Refers to a new version of the system before a large-scale test, first verify that the basic functionality of the software is implemented, whether it is measurable.

Introduced to software testing, refers to the Test team before the formal testing of a new version, put less manpower and time to verify the main function of a software, if the main functions are not implemented, then call back to the development team to re-develop. The benefit of this is that it can save a lot of time and labor costs.

regression test :

Regression testing means that after you have modified the old code, you re-line the test to confirm that the modification did not introduce a new error or cause other code to produce an error.

Regression testing usually begins with the second round of testing of the software, verifying that the problems found in the first round are fixed. Of course, regression is also a cyclical process, and if the problem of regression does not pass, then the developer will need to make a change to the regression until it passes.

Random test :

means that all the input data in the test is randomly generated to simulate the user's real operation and to find some marginal errors.

Random tests can uncover hidden errors, but there are also many drawbacks, such as testing the system, inability to count code coverage and requirement coverage, and the problems found are difficult to reproduce. is usually put in the final execution of the test. In fact, a more professional version of the random test upgrade is called exploratory testing

Exploratory testing

Exploratory testing can be said to be a kind of test thinking technology. It does not have a lot of practical testing methods, techniques, and tools, but it is a way of thinking that all testers should master. The exploratory emphasizes the subjective initiative of the tester, abandons the complicated test plan and the test case design process, and emphasizes the change of the test strategy in time when encountering the problem.

Exploratory testing should be a direction in the field of future testing.

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.

Safety testing is also gaining more and more attention and attention, because the consequences of security problems are immeasurable. In particular, Internet products are most vulnerable to various security attacks.

Software Test classification

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.