Test classification of software testing tutorial

Table of contents

1. Classification by test object

interface test

reliability test

fault tolerance test

document test

compatibility test

usability test

Install and uninstall test

Performance Testing

security test

memory leak test

2. Classify according to whether to view the code

black box testing

white box testing

gray box testing

3. Divided by development stage

unit test

Integration Testing

System test

Regression Testing

smoke test

Acceptance Test

4. Organize by Test Implementation

alpha test

beta test

third party testing

5. Divided by running or not

static test

Dynamic Testing

6. According to whether manual division

manual testing

automated test

7. Divided by test area

Internationalization test

localization testing


1. Classification by test object

interface test

When the user interacts with Runa, the interface is the user's first impression of the software. It is very important that a reasonable interface design can bring users a relaxed and pleasant feeling.

Interface testing (referred to as UI testing) refers to testing and checking all the content displayed on our software interface according to the requirements of the interface (usually UI design draft) and the design rules of the interface, including:

1. Whether the content of the interface is complete, consistent, accurate and friendly. Adaptation of the interface content to the screen size, line break, whether the content is clearly displayed

2. Verify whether the interface layout and typesetting are reasonable, whether the font design of different sections, and whether the picture display meets the requirements

3. Test the different controls on the interface, whether the dialog box, text box, scroll bar, option button, etc. can be used normally, and whether the effective and invalid state design is reasonable

4. The interface layout and color tone conform to the actual development

reliability test

Reliability (Availability) is availability, which refers to the ability or degree of normal operation of the system, and is generally expressed by the percentage of the time that software services are normally provided to users in the total time.

Reliability = uptime / (uptime + non-uptime) * 100%

The higher the ratio, the higher the reliability of the software

The periods of non-uptime of the system may be due to hardware, software, network failure or any other factors (such as power outages) which can cause the system to stop working, or the connection can not be accessed, or the performance can be reduced so drastically that the software can not be used existing services, etc. Usability indicators generally require 4 or 5 "9", that is, 99.99% or 99.999%

fault tolerance test

It means that the system can handle exceptions, and the user's wrong operation will not cause the system to crash, thereby improving the availability of the system

Include:

1. Enter abnormal data or perform abnormal operations to test the protection of the system. If the fault tolerance is good, it can give prompts or internal digestion of the system, which will not cause system errors or even crashes

For example, data-level testing, verification testing, environmental fault tolerance testing, and interface fault tolerance (such as inputting resources that do not exist in the URL, whether there are safeguards) testing

2. Disaster recovery testing

Use various means to force the software to fail, verify whether the data saved in the system is lost, and whether the system and data can be restored

document test

Development documents: feasibility study report, software requirement specification, data requirement specification, outline design specification, detailed design specification, database design specification, module development file.

Management documents: project development plan, test plan, test analysis report, monthly development progress report, and project development summary report.

User documentation: user manuals, operation manuals, user documentation functions: improve ease of installation; improve software ease of learning and use; improve software reliability; reduce technical support costs.

compatibility test

Compatibility test requirements refer to specifying the compatible environment to be tested, considering the compatibility of software and hardware. As far as software compatibility is concerned, the following aspects are mainly considered:

The compatibility of the system's own version and the compatibility of the user's existing data, data compatibility is the most important thing, for the user, the data is the most valuable

Test the compatibility with the application environment, such as operating system, application platform, browser compatibility

Test compatibility with third-party systems and third-party data

usability test

The result of applied ergonomics research is that the product is more flexible and comfortable to use. Software products always pay attention to user experience, so that users can obtain a comfortable and easy-to-use experience. The testing for software in this aspect is called usability testing.

1. Standard and normative

For the existing software operating platform, usually its UI standard has been established unconsciously, which has become the consensus of everyone. Most users have gotten used to and accepted these standards and norms, or have agreed with the meaning represented by these information. For example, the appearance of the interface for installing the software, when to use the appropriate dialog box, etc.

2. Intuitive

The intuitiveness of the user interface requires that the software features be easy to understand and clear. The user interface is well laid out and the response to operations is as expected by the user. For example, the results of data statistics are displayed clearly and intuitively in the form of reports (bar graphs, fan graphs, etc.); the designs of many mainstream search engines and calendars also have intuitive features;

Install and uninstall test

The installation and uninstallation of applications are the most basic functions. Once an error occurs, it is a serious bug.

Aspects to consider:

Different ways to install and uninstall software

Compatibility: Whether the application can be installed in different system environments and versions

Whether to support manual pause and cancel during installation and uninstallation

Is there a prompt when the installation space is insufficient?

Can it be uninstalled normally

Environmental problems, such as drivers, power outages, network outages, etc., whether it can be dealt with reasonably

Performance Testing

When using the software, sometimes the opening of the software web page is getting slower and slower, it takes a long time to display the list when querying data, and the software is running slower and slower. These problems are caused by system performance problems.

To solve the performance problems of software products, it is necessary to analyze the performance requirements of the products, and then complete the design and execution of performance tests based on the performance requirements and system architecture of the system, and finally carry out continuous performance tuning. Common performance issues are as follows:

Resource leaks, resource bottlenecks

thread deadlock, thread blocking

slow or inefficient query

Increasingly influenced by external systems

The key indicators to measure the performance of a system are: user response time, transaction average response time (TPS), throughput rate, clicks per second, memory and CPU usage, etc.

security test

Security refers to information security, which refers to the ability of a computer system or network to protect the privacy and integrity of user data, protect the normal transmission of data and resist hackers and virus attacks.

Security Question:

Security issues in the code, such as SQL/XML injection

Fake ID: Identity Spoofing

Input fields, such as entering malicious or virus-laden scripts or long strings

Tampering, malicious modification of data, breach of data integrity

memory leak test

From the user's point of view, the memory leak itself will not cause any harm, and the average user may not feel the existence of the memory leak at all. However, memory leaks will accumulate. As long as the number of executions is sufficient, all available memory will eventually be exhausted, making the execution of the software slower and slower, and finally stop responding. This kind of software problem can be compared to the "chronic disease" of the software.

There are many reasons for memory leaks, the most common are the following:

Forgot to reclaim the memory after allocating it.

There is a problem with the way the program is written, which makes it impossible to recycle (for example, the infinite loop makes it impossible to execute the recycling step).

Some API functions are used incorrectly, resulting in memory leaks.

How to detect memory leaks

Manual static method: read the code and manually search for unreclaimed memory.

Automatic tool method: With the help of tools for testing memory leaks, such as Visual Leak Detector, record each memory allocation and clearly tell users how memory leaks.

2. Classify according to whether to view the code

black box testing

Black-box testing is to check whether the system functions are in normal use according to the requirements specification, whether it can properly receive input data and output correct results, and meet the specification requirements without considering the program logic and internal structure at all .

Therefore, black box testing is also called data-driven testing, which only focuses on the functions of the software.

Advantages of black box testing

There is no need to understand the code and implementation inside the program, and do not pay attention to the implementation inside the software.

Design test cases from the user's point of view, it is easy to know which functions users will use, what problems they will encounter, and exercise the product thinking of testers

The test case is based on the software requirements development document, and it is not easy to miss the functions that need to be tested in the software requirements document.

The disadvantage of black box testing is that it is impossible to cover all the code. low code coverage

The test methods used in black-box testing include equivalence classes, boundary values, causal diagrams, scenario methods, and error guessing methods.

white box testing

White box testing, also known as structural testing or logic testing, is generally used to analyze the internal structure of the program, and design test cases for the logical structure of the program for testing.

The purpose of white-box testing is to perform coverage tests on the logical paths in the software by checking the internal logical structure of the software; to set up checkpoints in different places in the program, and to check the status of the program to determine whether the actual operating status is consistent with the expected status.

White box testing focuses on code logic and has certain loopholes in business functions

It mainly includes six test methods:

Statement coverage: A line of code is a statement, and use cases must cover all statements

Decision coverage: Use cases should cover all decisions (true/false)

Condition coverage: Cover all conditions (satisfy all conditions)

Judgment condition coverage: combine decision coverage and condition coverage

Condition combination coverage: combine all conditions and cover

Path coverage: try to cover all paths in the code

Advantages: code coverage is relatively high

Disadvantages: low coverage of business functions

gray box testing

Between white box testing and black box testing, focusing on code coverage and business functions

3. Divided by development stage

test pyramid

unit test

Unit testing is the testing of software components. Its purpose is to test the correctness of the basic components of the software. The object of the test is the smallest unit of software design: the module. aka module testing

Testing phase: post-coding or pre-coding (TDD)

Test object: the smallest module

Tester: white box test engineer or development engineer

Test basis: code and comments + detailed design documents

Test method: white box test

Test content: module interface test, local data structure test, path test, error handling test, boundary test

How to perform unit testing in Java -> junit

Integration Testing

Integration testing is also called joint testing (joint debugging) and assembly testing. It is a test that assembles program modules using appropriate integration strategies and checks the correctness of system interfaces and integrated functions. The main purpose of integration is to check whether the interfaces between software units are correct.

Testing phase: After general unit testing

Test object: Interface between modules Tester: White box test engineer or development engineer

Test basis: unit test module + outline design document

Testing method: Black box testing combined with white box testing

Test content: data transmission between modules, function conflicts between modules, correctness of module assembly functions, global data structure, and the impact of single module defects on the system

System test

Think of a software system as a system of tests. This includes testing the functionality, performance, and the hardware and software environment in which the software runs.

Testing phase: after the integration tests pass

Test object: How does the entire system (software, hardware) Java perform unit testing?

Tester: black box test engineer

Test basis: requirements specification document

Test method: black box test

Test content: function, interface, reliability, usability, performance, compatibility, security, etc.  

Regression Testing

Regression testing refers to retesting after modifying old code to confirm that the modification did not introduce new bugs or cause other code to generate errors.

It occupies a large proportion of workload in the entire software testing process, and multiple regression tests will be performed at each stage of software development. With the size of the system, the cost of regression testing is increasing, it is very meaningful to improve the efficiency and effectiveness of regression testing by choosing the correct regression testing strategy. (Testing with automated tools would be handy)

smoke test

The object of the smoke test is each newly compiled software version that needs to be formally tested. The purpose is to confirm that the main functions and core processes of the software are normal, and it is executed before the formal system test.

The smoke test is generally submitted to the tester for testing after the developer completes the development. The smoke test is performed first to ensure that the basic functions are normal and will not hinder subsequent tests.

If the smoke test passes, the tester starts formal system testing. If it fails, the tester can ask the developer to re-fix the code until the smoke test passes, and then start system testing.

Both regression testing and smoke testing are system testing.

Acceptance Test

Acceptance testing is the last testing operation before deploying software. It is the final stage of technical testing, also known as delivery testing. The purpose of the acceptance test is to ensure that the software is ready, and to demonstrate to the software purchaser that the software system meets the original requirements in accordance with the project contract, mission statement, and acceptance basis documents agreed by both parties.

Test phase: After the system test is passed

Test object: the whole system (including software and hardware)

Testers: Mainly end users or demand side

Test basis: user requirements, acceptance criteria

Test method: black box test

Test content: same system test (function...various documents, etc.)

4. Organize by Test Implementation

alpha test

Alpha testing is a test conducted by a user in a development environment, and it can also be a test conducted by users within the company in a simulated actual operating environment. The purpose of alpha testing is to evaluate the FLURPS (ie, functionality, localization, usability, reliability, performance, and support) of a software product. Large-scale general-purpose software usually requires Alpha and Beta testing before it is officially released.

Alpha testing cannot be done by programmers or testers.

beta test

Beta testing is a type of acceptance testing. Beta testing is performed by end users of the software at one or more locations.

The difference between alpha testing and beta testing:

The number of testers is different: the number of Alpha test users is relatively small, and the number of beta test users is relatively large

The testing environment is different: Alpha testing is controlled by the developer. The beta testing environment is not controlled by the developer

Alpha testing refers to inviting users to the developer's site for testing (or internal personnel testing in the company). Beta testing refers to testing at one or more user sites.    

The testing time is different: the Alpha testing time is relatively concentrated, while the beta testing time is not concentrated

The test cycle is different: the alpha test cycle is short, and general software products require a large-scale beta test, and the test cycle is relatively long

Different stages of testing: alpha testing is performed before beta testing 

third party testing

Organizational testing between developers and users

5. Divided by running or not

static test

Statically check program code, interface or documentation for possible errors without running the software under test.

It does not use the execution of the test data but the analysis process of the test object, and only checks the correctness of the program by analyzing or checking the design, internal structure, logic, code style and specifications of the source program.

Dynamic Testing

It refers to the process of actually running the program under test, inputting the corresponding test data, and checking whether the actual output results match the expected results. Therefore, the only criterion for judging whether a test is dynamic or static is to see whether the program is run. Most software testing work is dynamic testing.

6. According to whether manual division

manual testing

Manual testing is to input use cases one by one by people, and then observe the results, corresponding to machine testing, which is a relatively primitive but necessary step.

Summarize the advantages and disadvantages: Advantages: Automation cannot replace exploratory testing and testing of divergent thinking results. Disadvantages: slow execution efficiency, large volume and error-prone

automated test

It is to run the system or application program under preset conditions and evaluate the operation results. The preconditions should include normal conditions and abnormal conditions.

Simply put, automated testing is a process of transforming human-driven testing behavior into machine execution.

Automated testing such as functional test automation, performance test automation, and security test automation.

Automated testing is divided according to the test object, and can also be divided into interface testing, UI testing, etc. The ROI (output-input ratio) of interface testing is higher than that of UI testing.

7. Divided by test area

Internationalization test

Software internationalization and software localization are two processes of developing software systems for users in different regions of the world. Localization testing and internationalization testing are tests for such software products. Due to the globalization of software and the rise of the software outsourcing industry, software localization and internationalization testing has become a unique testing field.

important point:

Whether the date, number format, currency, etc. can adapt to the cultural customs of different countries. For example, Chinese is Year Month Day, while English is Month Day Year

Whether the sorting method takes into account the characteristics of different languages. For example, Chinese is sorted according to the pinyin order of the first character, while English is sorted according to the first letter

Different measurement units are used in different countries, whether the software can adapt and convert

Whether the software will work well on different types of hardware, especially popular hardware sold in the local market

Whether the online help and documentation have been translated, and whether the translated links work. Whether the text translation is correct and appropriate, and whether there are grammatical errors

localization testing

The tests mentioned above are all local tests

Guess you like

Origin blog.csdn.net/chenchenchencl/article/details/131761139