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