Detailed explanation of twenty common software testing methods

1. Unit test (module test)

Unit testing is the testing of software components. Its purpose is to verify the correctness of the software components. The test object is: module.

Test the module, a single module test, which belongs to the category of static testing

Test phase: After coding or before coding (TDD)
Test object: Minimum module
Tester: White box test engineer or development engineer (testing source code)
Test basis: Code and comments + detailed design documents
Test method: White box test (because to test Source code)
Test content: module interface test (testing whether the parameters in the module are passed correctly), local data structure test (testing the scope of variables), path test (if-else judgment must cover all branches), error handling test, boundary test (for loop)

2. Integration testing

Integration testing, also known as joint testing, assembles program modules using appropriate integration strategies, and performs correctness testing on system interfaces (white box testing) and integrated functions (black box testing). The main purpose of integration is to check Whether the interface between software units is correct.

Test phase: after the general unit test
Test object: interface between modules
Tester: white box test engineer or development engineer
Test basis: unit test module + outline design document
Test method: black box test and white box test combined
test content : Data transmission between modules, functional conflicts between modules, functional correctness of module assembly, global data structure, impact of single module defects on the system

3. 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. Most of the time is spent in system test execution phase, including regression testing and smoke testing.

Test phase: After the integration test is passed
Test object: The whole system (software and hardware)
Tester: Black box test engineer (for functional test)
Test basis: Requirement specification document
Test method: Black box
test Test content: Function, interface, reliability Security, usability, performance, compatibility, security, etc.

Regression Testing¶

4. 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.

After the code is modified, the regression test is carried out, and the regression scope is determined according to the test phase.

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.

5. Smoke test

This term originates from the hardware industry.
Power up the device directly after making a change or repair to one piece of hardware or a hardware component. If there is no smoke, the component has passed the test. It can also be understood that this kind of test takes a short time, and only one bag of cigarettes is enough.

The object of the smoke test is each newly compiled software version that requires formal testing. The purpose is to confirm that the basic functions of the software are normal and that subsequent formal testing can be carried out. The executor of the smoke test is the version compiler.

Concept: Test the core backbone process, if it succeeds, it is considered successful
Function: The standard for judging whether to accept the test, if the core backbone fails, then go ahead

6. Acceptance test

When you buy a new mobile phone, there is usually a 7-day guarantee and a one-month guarantee for replacement. We will try our best to try all the functions of the mobile phone within 7 days.

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 needs, acceptance criteria
Test method: black box test (test the function)
Test content: same system test (function... various documents, etc.)

Seven. Static testing (do not run the program itself, test documents)

Static testing refers to not running the program under test itself, but only checking the correctness of the program by analyzing or checking the syntax, structure, process, interface, etc. of the source program. 'Do structural analysis, flowchart analysis, and symbolic execution on requirements specifications, software design specifications, and source programs to find errors.

8. Dynamic testing

The dynamic testing method refers to checking the difference between the running results and the expected results by running the program under test, and analyzing performances such as running efficiency, correctness and robustness. Most software testing work is dynamic testing.

9. Manual testing

It is to input test cases one by one by people, and then observe the results, corresponding to machine tests, which is a relatively primitive but indispensable step.

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

10. Automated testing

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.

Automation implementation steps:
1. Complete the functional test, and the version is basically stable
2. According to the characteristics of the project, select the automation tool suitable for the project and build the environment
3. Extract the test cases of manual testing and convert them into use cases of automated testing
4. Realize through tools and codes Automated construction input, automatic detection of whether the output results meet expectations
5. Generate automatic test reports
6. Continuous improvement, script optimization.

11. Business Test

Business testing is a process in which testers connect the various modules of the system together to run, simulate the actual workflow of real users, and meet the functions defined by user needs for testing.

For example, check email:
log in to the website - enter the user name and password to log in - enter the inbox - find the email - click to open - view - close the email - exit the mailbox - close the website Business testing focuses on requirements and all business processes of users to test
,
including Main process, branch process, and even smaller processes
To measure different businesses, you must have a special understanding of the needs of the project

12. Interface test

Interface test (referred to as UI test), to test whether the layout of the functional modules of the user interface is reasonable, whether the overall style is consistent, whether the placement of each control is in line with the customer's usage habits, and also to test the convenience of interface operation and easy-to-understand navigation, The availability of page elements, whether the text in the interface is correct, whether the naming is unified, whether the page is beautiful, whether the combination of text and pictures is perfect, etc.

13. Documentation test

14. Compatibility testing

We often surf the Internet, and the same website behaves differently on different browsers

WEB test; APP test

Compatibility mainly refers to whether the software can operate 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 test
Browser test
Whether the software itself is forward or backward compatible
Test whether the software is compatible with other related software The most common
data compatibility test
is the browser compatibility test, different browsers in css, js parsing Different will result in different display of the page.

15. Usability test

Usability (Useability) is a concentrated expression of the adaptability, functionality and effectiveness of the interaction.

The phone call function is not placed on the home page, it is placed under a directory, and the call function can be found after three or four clicks. Is this function easy to use?

16. Performance test

Check that the system meets the performance specified in the requirements specification.

Usually manifested in the following aspects:

Accurate measurement of resource utilization (such as memory, processor cycles, etc.) Response time
to execution interval
Logging events (such as interrupts, errors) Processing accuracy of throughput (TPS) auxiliary storage areas (such as buffer, work area size, etc.) monitoring



17. Usability test

Usability (Useability) is a concentrated expression of the adaptability, functionality and effectiveness of the interaction. Usability falls under the category of ergonomics, the discipline of designing everyday objects to be easy to use and functional.

The phone call function is not placed on the home page, it is placed under a directory, and the call function can be found after three or four clicks. Is this function easy to use?

In some large factories, there will be a special department to conduct usability testing, also called user experience testing.

18. Installation test

The installation and uninstallation of the test program
is typically the installation and uninstallation of the app

19. Security Test

Security testing is a relatively independent field that requires more expertise. For example, web security testing requires familiarity with various network protocols
TCP\HTTP, firewalls, CDNs, vulnerabilities in various operating systems, routers, etc. In terms of software, he is familiar with various attack methods, such as
SQL injection, Xss, etc.
As a web entry test, you can use IBM's appscan.

20. Memory leak test

There are too many things opened on the computer, the machine responds slowly or even freezes, it will be fine after restarting, and the same problem will appear later

Many software systems have the problem of memory leaks, especially programs written in "unmanaged" languages ​​that lack automatic garbage collection mechanisms, such as C, CH, Delphi, etc. 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.

1. Forgot to recycle after allocating memory.
2. There is a problem with the way the program is written, which makes it impossible to recycle.
3. Some API functions are used incorrectly, resulting in memory leaks.
4. Not released in time.

Detection of memory leaks:
1. For different programs, different methods can be used to check memory leaks, and some special tools can also be used to check memory problems, such as MemProof. AQTime, Purify, BundsChecker, etc. Some development tools themselves have a memory problem checking mechanism. Make sure that the programmer turns on these functions when writing the program and compiling the program.
2. Check through code scanning analysis tools


              [The following is the most complete software test engineer learning knowledge architecture system diagram in 2023 that I compiled]


1. From entry to mastery of Python programming

2. Interface automation project actual combat

3. Actual Combat of Web Automation Project


4. Actual Combat of App Automation Project

5. Resume of first-tier manufacturers


6. Test and develop DevOps system

7. Commonly used automated testing tools


Eight, JMeter performance test

9. Summary (little surprise at the end)

life is long so add oil. Every effort will not be let down, as long as you persevere, there will be rewards in the end. Cherish your time and pursue your dreams. Don't forget the original intention, forge ahead. Your future is in your hands!

Life is short, time is precious, we cannot predict what will happen in the future, but we can grasp the present moment. Cherish every day and work hard to make yourself stronger and better. Firm belief, persistent pursuit, success will eventually belong to you!

Only by constantly challenging yourself can you constantly surpass yourself. Persist in pursuing your dreams and move forward bravely, and you will find that the process of struggle is so beautiful and worthwhile. Believe in yourself, you can do it!

Guess you like

Origin blog.csdn.net/nhb687096/article/details/131980113