1.2 Definition and Classification of Software Testing

1. Definition of software testing (what is software testing)

     The process of operating a program under specified conditions to detect program errors, measure software quality, and evaluate whether it meets design requirements.

Colloquial:

    Under the pre-set conditions, I will perform some operations on the corresponding software, such as WeChat. The purpose of my operation is to find out if it has some errors. After there are errors, I will measure the software according to the number of errors I found. Whether the quality is good or bad, after the whole process is completed, I take out the corresponding documents to verify whether its functions meet the design requirements proposed at that time, and evaluate the whole process, which is software testing.

Specified conditions - test cases;

Find program errors - find bugs;

Measuring software quality - quality assessment;

Meet the Design Requirements - Meet the Needs

2. Software testing classification

2.1 According to the development stage

Unit Testing

        Also called module testing, it tests the constituent units of the software to check the correctness of the basic constituent units. A test object is the smallest unit of software testing: a module. The unit depends on the division dimension. For example, in a room, the basic unit of the room is a brick; in a building, the basic unit of the building is a room.

Integration Testing

        It is also called joint testing (joint debugging) and assembly testing: the program is assembled using an appropriate integration strategy, and the correctness of the interface and integrated functions of the system is tested. The main purpose of integration is to check whether the interface between the software units is correct. For example, WeChat does not have a video account function in the early stage. The integration is similar to making a small module for a video account first, and then integrating it into WeChat to assemble a new version of WeChat. This is the process of integration. If the data in the unit test is compared to water, the interface is equivalent to the water outlet, water inlet, and connection port of the water flow.

System Testing

        Think of a software system as a test of a system. Most testing work treats the software system as a systematic test at this stage. This includes testing the functionality, performance, and hardware and software environments in which the software runs. Most of the time is in the execution stage of system testing, including regression testing and smoke testing. Similar to building a house, the floor, ceiling, and walls are integrated as a whole system. The testing of this whole is system testing.

        Regression testing, every time the software is modified or changed, regression testing will be performed, that is, after modification, test it again in the original development environment to ensure that the modification or change will not affect other parts

        The smoke test comes from the fact that the circuit board in the industrial test is powered on, and if it fails, smoke will be emitted. It is a test verification of the basic functions of the software. The test time is short. (The test is over after smoking a cigarette, hahaha)

Acceptance Testing

        The last test operation before deploying the software is the final stage of technical testing. Also called delivery testing, it shows software users that the software system meets the original requirements. For example, after the house is built, the basic system test is completed, and after the completion, it needs to be handed over to some relevant people for acceptance, including the original designer of the house and the requester to check whether the built house does not meet the original requirements.

2.2 According to whether manual execution

Manual Testing (manualTesting) primitive but required

        In functional testing, the software under test is regarded as a black box. It does not care what the internal structure is, but only cares about the input data and output data of the software. The reason why the black box is more advanced than the white box is: the black box has more uncertain factors, More flexible, the white box falls into the framework of the code.

Automation Testing (automationTesting)

        There is a patient system or application under preset conditions, and the operation results are evaluated (preconditions include: normal conditions and abnormal conditions). Simply put, automated testing is a process of converting human-driven testing behavior into machine execution. Human-driven, Test according to preconditions. Human testing is the core, automation just simplifies the testing process.

2.3 Divided by whether to view the code

Black-Box Testing

        Functional testing regards the software under test as a black box and does not care what the internal structure is, but only cares about the input data and output data of the software. The reason why the black box is more advanced than the white box is that the black box has more uncertainties and is more flexible, and the white box is trapped in the framework of the code.

White-Box Testing

        Structural testing, transparent box testing, logic-driven testing, or code-based testing. It means to open the box and study the source code and program results inside.

Gray-Box Testing

        The test between black and white boxes is mostly used in the integration testing phase, not only focusing on the correctness of input and output, but also on the internal situation of the program. Mostly used in the integration testing phase

2.4 Divide by whether it is running or not

Static Testing

        Refers to not running the program under test itself, but only by analyzing or checking the syntax, structure, process, interface, etc. of the source program to check the correctness of the program, and to perform structural analysis, flowchart analysis, Symbolic execution to find errors

Dynamic Testing

        Check the difference between the running result and the expected result by running the program under test

2.5 Divide by test area

International Testing

        For software used by users in different regions of the world, due to the globalization of software and the rise of software outsourcing industry, software localization and internationalization testing has become a unique testing field, which is equivalent to the completion of localization testing. It is handed over to different departments for translation in different languages, and after the translation is completed, local personnel are invited to conduct corresponding tests.

localization testing

2.6 Organizational Division by Test Implementation

Alpha Testing

        It is to invite users to the company for testing. Alpha test is a test performed by a user in a development environment, or a test performed by a user within the company in a simulated actual operating environment; , reliability, performance and support). Notice! Alpha testing cannot be done by programmers or testers.

Beta Testing

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

Difference Between Alpha Testing and Beta Testing

different test sites

Alpha testing refers to inviting users to the development site to test

Beta testing means testing at one or more users' premises

Different number of users and time concentration

The environment of the alpha test is controlled by the developer, the number of users is relatively small, and the time is relatively concentrated

The beta test environment is not controlled by the developer, the number of users is relatively large, and the time is not concentrated

different order

Alpha testing is performed before beta testing

General software products require larger-scale beta testing, and the testing cycle is long

Third-party Testing

        Organizational testing between developers and users, such as outsourced testing, third-party testing platforms (crowd testing platforms)

2.7 Divide by test object

non-functional testing

2.7.1 Performance Testing

        Whether it meets the performance specified in the specification: stability, whether it is stable for a large number of users, response time (response speed - 235 principle (within 2s: good perception by users; 2s-3s: acceptable to users; 3s-5s: people Feeling impetuous)), throughput (TPS)

The test code itself also tests the database server

2.7.2 Safety Testing

        A relatively independent field that requires more expertise. Such as: web security testing, need to be familiar with various network protocols, firewalls, CDNs, familiar with the vulnerabilities of various operating systems, familiar with routers, etc. High difficulty, low salary, low demand

2.7.3 Compatibility Testing

        Compatibility test mainly refers to whether the software can work well, whether there will be any impact, whether the software and hardware can work efficiently, and whether it will affect the crash of the system

Platform testing (Windows, Linux, MacOS)

Browser testing (Google, Firefox)

        Whether the software itself is forward or backward compatible (for example, whether WeChat version 2.0 can accept messages from WeChat version 1.0, and whether different versions can communicate normally)

Data Compatibility Test

2.7.4 Document Testing

development files

Feasibility study report, software requirement specification, data requirement specification (for example, gender can only be male or female), outline design specification, detailed design specification, database design specification, module development file

user file

User Manual, Operation Manual

The role of user documentation: 1. Improve ease of installation; 2. Improve ease of learning and ease of use of software; 3. Reduce technical support costs

Management documents: 1. Project development plan; 2. Test plan (test team leader); 3. Test analysis report; 4. Development progress monthly report; 5. Project development summary report

Points to pay attention to: 1. Terms of documentation; 2. Correctness of documentation; 3. Integrity of documentation; 4. Consistency of documentation; 5. Ease of use of documentation

2.7.5 Usability (User ability testing)

Ease of use is the epitome of adaptability, functionality, and effectiveness of interactions.

2.7.6 User interface Testing

Test whether the functional module layout of the interface is reasonable: such as whether the software interface is awkward, and the modules are far from each other

Whether the overall style is consistent: such as WeChat dark mode

Whether it is in line with user habits: such as the Meituan button

Test interface operation convenience: such as the glory of the king

Navigation is simple and easy to understand: such as the navigation menu under WeChat

Availability of page elements: such as whether the page button is responsive or not

Whether the text is correct: such as login or login typo

Whether the naming is unified: if you click on the message, the pop-up should also be a message prompt box

Is the interface beautiful?

2.7.7 Installation Testing

Installation and uninstallation of test programs: the most typical is the installation and uninstallation of APP

functional testing

Functional testing is to verify the various functions of the product. According to the functional test cases, test item by item to check whether the product meets the functions required by the user, which is also a black box test. In the test, the software under test is regarded as a black box, and it does not care what the internal structure of the box is, but only cares about the input data and output data of the software.

references:

without

Remark:

If there is any infringement, please contact by email, I am sorry.

This is only for learning personal notes, and if there is any reprint, please indicate the source.

Contact Email: [email protected]

Learn to test the penguin group together (chat, water group, do not disturb advertising): 826471103

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324328450&siteId=291194637