Can you answer the 17 questions in a series of fatal software testing interviews? None of this would suggest learning more!

1. Given a website, how do you test it? (explore needs + formulate plans)

First, find relevant documents such as requirements description and website design, and analyze the testing requirements.

Develop a test plan, determine the test scope and test strategy, generally include the following parts:

Functional testing; Interface testing; Performance testing; Database testing; Security testing; Compatibility testing

Functional testing can include, but not limited to the following aspects:

link test. Whether the link jumps correctly, whether there are empty pages and invalid pages, and whether there is an incorrect error message returned.

Submit a test of the function.

Whether multimedia elements can be loaded and displayed correctly.

Whether multilingual support can correctly display the selected language, etc.

Interface testing can include but not limited to the following aspects:

Whether the page style is uniform and beautiful

Whether the page layout is reasonable, whether the key content and hot content are prominent

Whether the control works normally

For controls that are required but not installed, whether to provide the function of automatic download and installation

word check

Performance testing generally considers the following two aspects:

pressure test;

load test;

strength test

Database testing should be specifically determined whether it needs to be carried out. Databases generally need to consider connectivity, data access operations, and data content verification.

Security testing:

Checks for basic login functionality

Whether there is an overflow error, resulting in a system crash or permission leak

Common security issue checks for related development languages, such as SQL injection, etc.

If advanced security testing is required, be sure to get help from a professional security firm, outsource testing, or get support

Compatibility testing, according to the contents of the requirement description, determine the supported platform combination:

browser compatibility;

operating system compatibility;

Compatibility of software platforms;

Database Compatibility

Tests are performed and defects are recorded. Reasonably arrange and adjust the test schedule, obtain the resources required for testing in advance, and establish a management system (for example, requirements changes, risks, configurations, test documents, defect reports, human resources, etc.).

Regularly review, evaluate and summarize the test, and adjust the content of the test.

 

2. What is the current main test case design method?

White box testing: logic coverage, loop coverage, basic path coverage

Black box testing: boundary value analysis, equivalence class division, error guessing, cause and effect diagram, state diagram, test outline, random testing, scenario

Independence of system data, backup and recovery capabilities of system data (whether the data backup is complete, whether it can be restored, and whether the restoration can be complete)

3. Briefly describe what is static testing, dynamic testing, black box testing, white box testing, alpha testing and beta testing

Static testing is the process of finding possible bugs in program code or evaluating program code without running the program itself.

Dynamic testing is to actually run the program under test, input the corresponding test instance, check the difference between the running result and the expected result, and determine whether the execution result meets the requirements, so as to verify the correctness, reliability and effectiveness of the program, and analyze the system operating efficiency and performance such as robustness.

Black box testing is generally used to confirm the correctness and operability of software functions. In the case of relationships between inputs and outputs or program functions, software specifications are relied upon to determine test cases and infer the correctness of test results.

White box testing is performed based on the analysis of the logical structure of the software. It is a code-based test. The tester judges the quality of the software by reading the program code or using the single-step debugging in the development tool. Generally, the black box test is performed by the project manager. Programmers develop to achieve.

Alpha testing is a test conducted by a user in a development environment, or it can be a controlled test conducted by users within the company in a simulated actual operating environment. Alpha testing cannot be done by programmers or testers.

Beta testing is a test performed by multiple users of the software under the actual use environment of one or more users. Developers are usually not present at the testing site, and beta testing cannot be done by programmers or testers.

4. Software testing is divided into several stages. What are the testing strategies and requirements for each stage?

Corresponding to the development process, the testing process will go through four main stages: unit testing, integration testing, system testing, and acceptance testing:

Unit testing : Unit testing is the testing work for the smallest unit of software design—program module or even code segment to check the correctness, usually performed by developers.

Integration test : Integration test is to assemble the modules according to the design requirements for testing, the main purpose is to find problems related to the interface. Since the product development team must conduct joint debugging before the product is submitted to the testing department, integration testing is done by developers in most enterprises.

System test : System test is carried out after the integration test is passed, the purpose is to fully run the system, verify whether each subsystem can work normally and meet the design requirements. It is mainly carried out by the testing department. It is the largest and most important test in the testing department and has a significant impact on the quality of the product.

Acceptance test : The acceptance test takes the "Requirement Specification" in the requirements phase as the acceptance standard, and the test requires simulating the actual user's operating environment. For actual projects, it can be carried out together with customers, and for products, it is the last system test. The test content is a comprehensive test of the functional modules, especially the document test.

Unit test test strategy:

Top-down unit testing strategy: Much more expensive than isolated unit testing, not a good choice for unit testing.

Bottom-up unit testing strategy: a more reasonable unit testing strategy, but the testing cycle is longer.

Test strategy for integration testing:

Big Bang Integration: suitable for a maintenance project or the system under test is small

Top-down integration: suitable for a clear and stable product control structure; minor changes in high-level interfaces; undefined or often modified bottom-level interfaces; production-port control components have high technical risks and need to be verified as soon as possible; hopefully as soon as possible Can see the system functional behavior of the product.

Bottom-up integration: The bottom-level interface is relatively stable; the high-level interface changes frequently; the bottom-level components are completed earlier.

Progress Based Integration

Advantages: It has a high degree of parallelism; it can effectively shorten the development progress of the project.

Disadvantages: piles and drivers have a large workload; some interface tests are insufficient; some tests are repetitive and wasteful.

Test strategy for system testing:

Data and database integrity testing;

function test;

user interface testing;

performance evaluation;

load test;

strength test;

capacity test;

Security and access control testing;

Failover and recovery testing;

configuration test;

installation test;

encryption test;

usability testing;

Version verification test;

document test

5. What work is usually done in each phase of software testing? What are the outcome documents for each phase? What is included?

Unit testing stage: Each independent unit module is tested in isolation from other parts of the system. The unit test checks the correctness of each program module to check whether each program module has correctly implemented the specified functions. Generate unit test reports and submit defect reports.

Integration testing stage: Integration testing is based on unit testing, testing whether all the software units meet or realize the corresponding technical indicators and required activity. In this phase, an integration test report is generated and a defect report is submitted.

System testing phase: The software that has passed the verification test is used as an element of the entire given computer system, combined with other system elements such as computer hardware, peripherals, some supporting software, data and personnel, and tested in the actual operating environment. Comprehensive functional coverage of computer systems. At this stage, test summary and defect report need to be submitted.

6. What is included in a software defect (or Bug) record?

A bug record should basically include:

bug number;

bug severity level, priority;

The module generated by the bug;

First, there must be a bug summary, explaining the general content of the bug;

The version corresponding to the bug;

A detailed description of the bug, including some screenshots, videos, etc.;

The test environment when the bug occurs, and the generated conditions are the corresponding operation steps;

7. Black box testing and white box testing, their respective advantages and disadvantages

The advantages of black-box testing are: relatively simple, no need to understand the internal code and implementation of the program; it has nothing to do with the internal implementation of the software; from the user's point of view, it is easy to know which functions the user will use and what problems they will encounter; Based on the software development document, it is also possible to know which functions in the document are implemented by the software; it is more convenient when doing software automation testing.

The disadvantages of black-box testing are: it is impossible to cover all the code, and the coverage rate is low, which can only reach 30% of the total code volume; the reusability of automated testing is low.

The advantages of white box testing are: to help software testers increase code coverage, improve code quality, and discover hidden problems in code.

The disadvantages of white box testing are: there will be many different paths for the program to run, and it is impossible to test all the running paths; the test is based on the code, and it can only test whether the developer is doing it right, but cannot know whether the design is correct or not, and may miss Drop some functional requirements; when the system is huge, the testing overhead will be very large.

8. How to test a paper cup?

Functionality: Fill water in a water cup to see if it leaks; whether the water can be drunk

Safety: Is there any poison or bacteria in the cup

Reliability: the degree of damage to the cup dropped from different heights

Portability: Whether the cup can be used normally in different places, temperatures and other environments

Compatibility: Whether the cup can hold juice, white water, alcohol, gasoline, etc.

Ease of use: whether the cup is hot, whether it has anti-slip measures, and whether it is convenient to drink

User documentation: Does the user manual describe in detail the usage, restrictions, and conditions of use of the cup?

Fatigue test: Fill the cup with water (case 1) and leave it for 24 hours to check the leakage time and situation; fill it with gasoline (case 2) and put it for 24 hours to check the leakage time and situation, etc.

Pressure test: use a needle and keep adding weight on the needle to see how much pressure it will penetrate

 

9. What are the common design methods of test cases for black box testing? Application of method in test case design work.

1) Equivalence class division: Equivalence class refers to a subset of an input domain. In this subset, each input data is equivalent to revealing errors in the program. It is reasonable to assume that: testing a certain equivalence The representative value of a class is equal to the test of other values ​​of this class. Therefore, all input data can be divided into several equivalence classes reasonably, and one data in each equivalence class is taken as the input condition of the test, and a small amount of Representative test data. Get good test results. Equivalence class division can have two different situations: valid equivalence class and invalid equivalence class.

2) Boundary Value Analysis: It is a supplement to the equivalence class division method. Test work experience tells me that a large number of errors occur on the boundary of the input or output range, rather than inside the input and output range. Therefore, designing test cases for various boundary conditions can detect more errors.

To design test cases using the boundary value analysis method, the boundary conditions should be determined first. Usually, the boundaries of the input and output equivalence classes are the boundary conditions that should be focused on testing. Values ​​that are exactly equal to, just greater than or just less than the boundary should be selected as test data, Instead of selecting typical values ​​or arbitrary values ​​in the equivalence class as test data.

3) Error guessing method : based on experience and intuition to speculate on all possible errors in the program, so as to design test cases in a targeted manner.

The basic idea of ​​the error speculation method: List all possible errors and special cases that are prone to errors in the program, and select test cases based on them. For example, many common errors in modules have been listed during unit testing. Previous products The errors found in the test, etc., these are the summary of experience. In addition, the input data and output data are 0. The input form is blank or the input form has only one line. These are the situations that are prone to errors. You can choose these situations The following example is used as a test case.

4) Cause-and-effect diagram method : The equivalence class division method and boundary value analysis method introduced above both focus on considering the input conditions, but do not consider the relationship between the input conditions, mutual combination, etc. Considering the mutual combination of the input conditions, Some new situations may be generated. But it is not an easy task to check the combination of input conditions. Even if all input conditions are divided into equivalence classes, there are quite a lot of combinations among them. Therefore, it is necessary to consider adopting a suitable To describe the combination of various conditions, correspondingly generate multiple actions to consider the design of test cases. This requires the use of causal diagrams (logic models). The final result of the causal diagram method is the decision table. It is suitable for checking program input conditions of various combinations.

5) Orthogonal table analysis method : It may cause a surge in the number of test cases due to the combination of a large number of parameters. At the same time, these test cases have no obvious gap in priority, and testers cannot complete such a large number of tests. , some use cases can be reduced through the orthogonal table, so as to achieve the possibility of covering as large a range as possible with as few use cases as possible.

6) Scenario analysis method : refers to simulating the user's operation steps according to the user scenario. This is similar to the cause-and-effect diagram, but it may have better execution depth and feasibility.

7) State diagram method : Get all states of the system under test through input conditions and system requirements description, and obtain output conditions through input conditions and states; obtain test cases of the system under test through input conditions, output conditions and states.

8) Outline method : The outline method is a method that focuses on requirements. In order to list various test conditions, the requirements are converted into an outline. The outline is represented as a tree structure with a unique path between the root and each leaf node. Each path in the outline defines a specific set of input conditions used to define test cases. The number of leaves in the tree or paths in the outline gives the approximate number of test cases needed to test all functionality.

10. Describe in detail the complete process of a testing activity. (For reference, this answer is mainly the practice of the waterfall model)

The project manager communicates with the customer to complete the requirements document, and the developers and testers jointly complete the review of the requirements document. The content of the review includes: places where the requirements description is unclear and places that may have obvious conflicts or unrealizable functions. The project manager completes the project plan by integrating the opinions of developers, testers and customers. Then SQA enters the project and starts doing statistics and tracking

The developer completes the requirement analysis document according to the requirement document, and the tester conducts a review. The main content of the review includes whether there are omissions or differences in understanding between the two parties. The tester completes the test plan document, and the content included in the test plan is described above.

Testers start to write test cases according to the modified requirements analysis document, and developers complete the outline design document and detailed design document. These two documents become supplementary materials for testers to write test cases.

After the test cases are completed, testing and development needs to be reviewed.

The tester builds the environment

The developer submits the first version, and there may be unfinished functions that need to be explained. Testers conduct tests and submit to BugZilla after finding bugs.

The development submits the second version, including Bug Fix and some functions added, and the testers conduct testing.

Repeat the above work, generally after 3-4 versions, the number of BUGs will decrease, and the requirements for shipment will be met.

If there are problems reported by customers, testers are required to assist in reproducing and retesting.

11. Talk about your understanding of the two strategies of top-down integration and bottom-up integration in integration testing, and talk about their respective advantages and disadvantages and which type of testing they are mainly suitable for

top-down integration

Advantages: The main control and judgment points are verified earlier; a complete software function can be realized and verified first according to the depth first; the function is verified earlier, which brings confidence; only one driver is needed, reducing the cost of driver development; support fault isolation .

Disadvantages: The amount of development of the column is large; the underlying verification is delayed; the underlying components are not sufficiently tested.

The product control structure is relatively clear and stable; the high-level interface changes little; the low-level interface is undefined or may be modified frequently; the production and port control components have high technical risks and need to be verified as soon as possible; hope to see the system of the product as soon as possible functional behavior.

bottom-up integration

Advantages: verify the behavior of the underlying components earlier; the work can be initially integrated in parallel, which is more efficient than top-down; reduces the workload of the stub; supports fault isolation.

Disadvantages: The development workload of the driver is heavy; the verification of the high level is delayed, and design errors cannot be found in time.

The underlying interface is relatively stable; the high-level interface changes frequently; the underlying components are completed earlier.

12. What aspects should be considered when designing test cases, that is, which aspects are tested by different test cases?

When designing test cases, it is necessary to pay attention to not only the overall process and functions, but also strength testing, performance testing, stress testing, boundary value testing, stability testing, security testing and other aspects. (The four basic elements that need to be considered in the test case are input, output, operation and test environment; in addition, the test case needs to consider the type of test (function, performance, security...), this part can be answered by referring to TP. In addition, Importance and priority of use cases also needs to be considered)

13. When saving a text file under Windows, a save dialog box will pop up. If a test case is created for the file name, how should the equivalence class be divided?

Single-byte, such as A; double-byte, AA, I I; special character /'. ';, =-, etc.; reserved words, such as com; the file format is 8.3 format; the file name format is not 8.3 format; /, * and other nine special characters.

Assuming that there is a text box that requires the input of a 10-character zip code, how should the text box be divided into equivalence classes?

Special characters, such as 10 * or ¥; English letters, such as ABCDefghik; less than ten characters, such as 123; more than ten characters, such as 11; numbers and other mixed, such as 123AAAAAAAA; empty characters; reserved characters

14. What is the focus of unit testing, integration testing, and system testing?

Unit testing is aimed at the smallest unit of software design - program modules (functions and procedures in process-oriented; classes in object-oriented). The testing work for correctness checking is to find possible errors that may exist inside each program module. There are generally two steps: manual static inspection \ dynamic execution tracking

The integration test is aimed at testing the components integrated by each module that has passed the unit test. Its main content is the interface between each unit module and the functions realized by each module after integration.

System testing is aimed at the integrated software system. As an element of the entire computer system, it is combined with other system elements such as computer hardware, peripherals, some supporting software, data and personnel. In the actual operating environment, Perform a series of integration and validation tests on the computer system.

15. What are the types of software testing you know, and briefly introduce them.

Classified by testing strategy: 1. Static and dynamic testing 2. Black box and white box testing 3. Manual and automatic testing 4. Smoke testing 5. Regression testing;

Classified by testing phase: unit testing, integration testing, system testing;

Other common testing methods: 1. Functional testing 2. Performance testing 3. Stress testing 4. Load testing 5. Usability testing 6. Installation testing 7. Interface testing 8. Configuration testing 9. Documentation testing 10. Compatibility testing 11. Security test 12, recovery test

16. What do you think is the key to doing a good job in test case design?

The key to white-box test case design is to cover as many internal program logic results as possible with fewer test cases

The key to black-box use case design is also to cover module output and input interfaces with fewer use cases. Impossible to fully test to find the most problems in a reasonable amount of time with the fewest use cases

17. What phases should a complete set of tests consist of?

Feasibility analysis, requirements analysis, general design, detailed design, coding, unit testing, integration testing, system testing, acceptance testing

Guess you like

Origin blog.csdn.net/a448335587/article/details/132238838