Basic Concepts of Software Testing

What is software testing?
Review, operate, and evaluate a software system under specified conditions to verify whether the software system meets specified requirements or to identify differences between expected and actual results. Provide a basis for the quality and evaluation of software products.

Why do software testing?
Make sure the software does what it promises or advertises.
Make sure the software meets performance and efficiency requirements.
Make sure the software is robust and adapts to the user's environment.
Early prevention, early detection, and timely tracking of software defects to meet product release requirements.

How to test software?

Find bugs earlier, faster, and more, and ensure they are fixed, both manually and automatically, using a variety of testing tools and management tools.

Software test object?

software program.

Documentation that matches the program.

Configuration data that supports the operation of the software.

Software testing principles
1. Planned testing as early as possible reduces the cost of solving problems.
2. Successful testing consists in uncovering hitherto undiscovered defects.
3. Testing does not guarantee that the software is 100% free of problems.
4. The essence of testing work should be traced back to user needs.
5. The scale of testing is from small to large, from unit testing to system testing.

6. Good-enough principle, exhaustive testing is impossible.


Software Testing Classification

By testing phase

1. Unit testing:

Complete the verification of the smallest software design unit module. Static testing of code style and rules, program design and structure, business logic, etc.
White-box testing techniques, which are performed by the developers themselves.

2. Integration testing
The unit modules tested are assembled into subsystems, and then the test is carried out. The main test content is the interface.
Integration tests are mostly interface tests and interaction tests.
Top-down
, bottom-up
3. System testing
The entire software system is fully integrated and tested as a whole. It mainly includes the following test directions:
functional test: Verification of each function of the product to check whether it meets the requirements of the demand.
Performance test: Test various performance indicators of the system by simulating a variety of normal, peak and abnormal load conditions through automated test tools.
Security test: Check the system's ability to prevent illegal intrusion.
Compatibility test: Test whether the system can run normally under different hardware and software environments.

4. User Acceptance/Validation Testing
Alpha Testing
– Testing performed by users in a development environment, Alpha testing is performed in a controlled environment.
Beta testing
– is conducted by the end user of the software at one or more user premises, the developer is usually not on site, and the user records problems encountered during testing and reports it to the developer.


Visible division of code:

1. Black box testing:

Also known as functional testing or data-driven testing, it is to test the functional requirements/implementation of software, and to test whether each function meets the requirements through testing, regardless of the internal logical structure of the program.
Common black-box testing methods: equivalence class
division,
boundary value analysis ,
causal diagram,
error guessing
scenario method Whether the white-box testing methods are running normally according to the requirements and design : logic coverage (statement coverage, branch coverage, conditional coverage, decision-conditional coverage, conditional combination coverage), loop coverage (simple loop, nested loop, concatenated loop). 3. Gray box testing: Gray box testing is between black box testing and white box testing. Other test classifications: Regression testing: A test performed after software modifications are made to verify that the modifications made to the software are correct. First, the modification has achieved the intended purpose, which is to confirm the test, and the second is to ensure that it does not affect the correctness of other functions of the software. Smoke test: In the software, "smoke test" refers to the main function of the test version. If it can pass the test, it will continue to other full-function tests. Before testing a new version on a large scale, verify that the basic functions of the software are implemented and testable. The purpose is to confirm that the basic functions of the software are normal, and the follow-up formal testing work can be carried out.












Guess you like

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