Software Testing Knowledge Point Encyclopedia _ Software Testing

Source: Internet
Author: User
Tags documentation
Software testing objects include: source program, target program, data and related documents


And how to get started with software testing and looking for a job.

The following knowledge is required:

The theory of testing, as well as how test-driven development is used, why test-driven development, Linux and databases, computer networks (can be promoted by the cattle net).


Unit Test-> Integration Test-> confirm Test-> system Test-> Acceptance test

(1) Unit test:

Unit test, also known as module testing, is to test the correctness of the minimum Unit program module for software design, the unit test needs to design test cases from the internal structure of the program, and multiple modules can be tested independently. Junit tests are programmer tests, known as white-box tests, because programmers know how the software being tested accomplishes functions and what (What) functions are done. JUnit is a set of frameworks that inherit the TestCase class and can be tested automatically with JUnit.

The workpiece is the production object in the process of processing.
(2) Integration test
Also known as assembly testing or joint testing, all modules need to be assembled in accordance with the requirements of the outline design specification and the detailed design specification on the basis of unit testing.

(3) Confirm the test
Verify that the goal of the test is to verify that the functionality and performance of the software and other features are consistent with the user's requirements. Validation tests typically include validation tests and software configuration reviews. Usually carried out by a third party testing agency.
(4) System test
As part of a computer system, software is combined with hardware, network, peripherals, support software, data, and personnel to test computer systems in real or simulated environments,
The purpose is to compare with the system requirement and find the problem
(5) Acceptance test
User-oriented testing, software developers and quality assurance personnel to participate in the design of test cases by the user. Instead of full coverage testing of the system, the core business process is tested.

Alpha tests, which are performed by a user in the development environment before the beta test, are also called validation tests.

Alpha testing is a test performed by a user in a development environment, or it can be a controlled test performed by a company's internal users in the simulation of the actual operating environment, and cannot be accomplished by a programmer or tester. Alpha testing can begin after the SOFTWARE Product code has finished coding, or after the module (subsystem) test completes, or after confirming that the product reaches a certain level of stability and reliability during the testing process.

Beta testing: The testing of multiple users of a software in the context of the actual use of one or more users. Developers are not usually on the test site, and beta testing cannot be done by programmers or testers. As a result, beta testing is an on-site application of software in environments beyond the control of developers. In the beta test, the user notes all the problems encountered, including the real and the supervisor identified, reports to the developer on a regular basis, the developer after the comprehensive user report, make changes, and finally the software products delivered to all users. Beta testing focuses on product support, including documentation, customer training, and the production capacity of support products. Beta testing can only begin if the alpha test reaches a certain level of reliability. Because the primary goal of a beta test is to test for support, the beta test should be managed as much as possible by the person who hosts the product release.

Difference: A test is a user, can be internal or user, developers present, the test site immediately feedback to developers, by developers timely analysis and processing. The purpose is to evaluate the function, usability, reliability, performance and support of software products. Especially focus on the product interface and characteristics.

B testing is a multiple user in one or more actual use environment, is completely user, the developer is not present. Focus on product support, including documentation, customer training, and supporting production capacity.

For system testing of mobile application software, we usually carry out the following aspects: Function module test, cross event test, stress test, capacity test, compatibility test, usability/user experience test, etc.

The types of pressure tests that can be applied to mobile phones are: storage pressure, boundary pressure, response pressure, network flow pressure

When designing test cases, you should pay attention to the representativeness of test cases, the predictability and reproducibility of test results.

1, the representative of test cases: to represent and cover a variety of reasonable and unreasonable, legal and illegal, boundary and Cross-border, as well as the limits of input data, operations and environmental settings.

2, the test results of the qualification: that is, the correctness of the test execution results can be judged, each test case should have the corresponding expected results.

3, the reproducibility of the test results: that is, the same test cases, the system's implementation results should be the same.

What is a static test?

A: By running the program test software is called dynamic testing. Testing software by reviewing documents, reading code, and so on is called static testing, and in dynamic testing, you typically use white box and black box tests to design test cases from different angles to find errors in software code. DDDDDDD

Static test method is to not run the program itself, only through the analysis or check the source program syntax, structure, process, interface, etc. to check the correctness of the program. The requirement specification, software design instructions, source program to do structural analysis, flowchart analysis, symbol execution to find the wrong. Static methods analyze the static characteristics of the program to find out the missing and suspicious, such as mismatched parameters, improper loop nesting and branching nesting, disallowed recursion, unused variables, references to null pointers, and suspicious computations. Static test results can be used for further error checking and provide guidance for the selection of test cases.

What is a white box test?

A: White box test (White-box testing, also known as logic driven testing, structural testing), it is to know the product internal work process, through testing to detect whether the product internal action in accordance with the specifications of the normal, according to the procedures of the internal structure test procedures, Check whether every path in the program is able to work correctly according to the predetermined requirements, regardless of its function, the main methods of white box testing are logical drive, base road testing, mainly for software verification.
Support for development languages: White Box testing tool is the source code test, the main content of the test includes lexical analysis and grammar analysis, static error analysis, dynamic detection.

White box test is mainly used in the unit testing phase, mainly for the code level test, for the internal logic structure of the program, testing means are: statement coverage, decision coverage, conditional coverage, path coverage, conditional combination coverage

1. Statement overwrite: Executable statement is executed at least once;
2. Judgment coverage: Each judge takes the true branch and takes the false branch to experience at least once;
3. Conditional coverage: The value of each condition is satisfied at least once;

4. Path testing: Execution of all possible execution paths;
5. Conditional combination COVERAGE: Each condition may have at least one occurrence, and the result is at least one occurrence;

6. Judgment/Condition Coverage: judgment and conditions are met;
The difference from conditional coverage: He is not simply asking for "true" and "false" results for each condition, but requires that all of these results be at least once;
7. Basic PATH Test: path test executed each path, the result of each decision must have experienced once

The methods of designing test cases with black box technology include: equivalence class division, boundary value analysis, error inference, decision table and comprehensive strategy.

Design system test plan need to refer to the project text: Software test plan, software Requirements specification, iteration plan

System tests include load testing, usability testing, strength testing, and safety testing.

(1) Load test: The data in the overload environment to run, see if the program can bear. The goal is to determine and ensure that the system works well beyond the maximum expected workload.

(2) Strength test: Under a certain load conditions, the continuous operation of the system in a longer span of time to the performance of the system caused by the impact.
(3) Capacity test: The purpose of capacity test is to analyze the limit value of an index (such as maximum concurrent user number, database record number, etc.) which reflects the application characteristics of software system, and the system does not appear any software failure in its limit state or can keep the main function running normally. Data-oriented, and its purpose is to show that the system can handle the data capacity determined within the target.

Unit tests can detect about 80% of software defects.

In the logical test overlay, the most powerful test coverage is the conditional combination overlay.

Test methods can be divided into individual review, spot and triage, black box test, white box test.

One of the principles of software testing is that testing should be done as soon as possible, preferably at the demand stage.

Test-driven Development (test-drivendevelopment) is a core practice and technology in agile development as well as a design methodology. The principle of TDD is to write the unit test case code before developing the functional code, and test the code to determine what product code needs to be written. Although TDD is the core practice of agile methods, it is not only suitable for XP (Extreme programming), but also suitable for the development method and process of sensitive words. The basic idea of TDD is to drive the whole development through testing, but the test-driven development is not simply a test effort, but a process of analyzing, designing, and quantifying the requirements. The important purpose of TDD is not only to test software, but to ensure that code quality is only part of the process, and to help customers and programmers remove ambiguous requirements during development. TDD first considers the use of requirements (objects, functions, processes, interfaces, etc.), primarily by writing a test case framework to design the process and interface of the function, and the test framework can be validated continuously.

Advantages: In any one development node can come up with a can be used, with a small number of bugs and a certain function of the product.

Disadvantage: Increase the amount of code. The test code is twice times or more of the system code.

What is a driver module.

A: The driver module is called the "main program" in most cases, it receives the test data and passes it to the tested module. Unit tests a function unit, the unit itself is not able to run independently, need to transmit data for it, write drive
The driver module mainly completes the following things:
1, accept the test input;
2, the input to judge;
3, the input to the measured unit, driving the test unit implementation;
4. Accept the result of the unit being measured and judge the result;
5, the judgment result as the use case execution result output test report.

What is a pile module?

A: For example, when the function a unit test, the measured function unit also includes a function B, in order to better error, positioning error, we should write for function B pile, to simulate function B function, to ensure that it is correct.

Requirements Document Testing: whether there are logical contradictions in the testing requirements and whether the requirements are technically achievable;

Design document test: Test design to meet all requirements and design is reasonable.

Test tools:

LoadRunner includes script editing tools, test execution tools, result analysis tools

Performance testing: The main test software to meet the requirements of the specifications specified in the various performance indicators, and to meet some performance-related constraints and constraints.

The aim is to confirm whether the software satisfies the performance requirement of the product, and to find out the performance bottleneck in the system and optimize the system by testing.


Stress testing: Simulate a huge workload to see if the system can function properly under peak usage, to get a test of the maximum service level provided by system performance.


Load testing: By progressively increasing the workload of the system, testing the changes in system capabilities and ultimately determining the maximum amount of work that the system can withstand to meet the functional metrics. Stress testing is essentially a specific type of load test.


Applicable scenarios for automated and manual testing:

Automated test scenarios:

1. Fewer changes in product requirements.

2. The project development cycle is longer.

3. Test cases are performed frequently. such as a lot of regression testing work

4. Manual testing is not competent. For example, high concurrent operation, continuous collection of equipment resources, long time stability testing, multi-user operation, such as manual operation or testing is not competent work.

5. The people have sufficient financial resources.

Manual Test Application Scenario:

1. Product Requirements change more.

2. The project development cycle is relatively short and requires prompt delivery.

3. Test case execution is not frequent, requires human observation, and requires flexible testing.


Advantages and disadvantages of automated and manual testing:

Advantages of automated Testing:

1, the regression test more convenient: longer cycle of regression testing workload, testing more frequent, suitable for automated testing. Since the test scripts and use cases are designed and the expected results are predictable, regression test automation can greatly improve efficiency and shorten the return time.
2, simulate the real situation: You can perform manual tests cannot be performed, such as concurrent thousands of users to test the load of the system, testers can not achieve testing purposes, and the use of automated test tools to simulate the concurrent process of multiple users.
3, the effective use of human and material resources: frequently machine action can be performed with automated testing, reduce the occurrence of errors, better use of human resources.
4, test reuse: Because automated testing is often used in automated scripting technology, so you can only need to do less or even without modification can be implemented in different testing process using the same use cases.
5, reduce human error: Automated testing is machine completion, there is no human negligence and error in the implementation process.

Disadvantages of automated Testing:

1, automated testing is the implementation of tools, there is no thinking, can not be subjective judgments, the interface color, layout and system of the collapse phenomenon can not be found, these errors through the human eye is very easy to find.
2. The automated test tool itself is a product that may be affected in different system platforms or hardware platforms, and may affect the test results of the program being tested at run time.
3, for the needs of frequent changes in software, test script maintenance and design comparison air crash.
4, automated testing is machine execution, manual testing than automatic testing found more defects.
5, automated testing to write test scripts, design scenarios, these requirements for testers are relatively high, the design of the test directly affect the results of the test.

To sum up, can be summed up automation is not completed, manual testing can make up, the combination of the two effective test quality assurance is the key.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.