I can't stand the big factory every day! Come! 66 simple Python software test written test interview questions (including answers) take away!

(The following content is a summary of the software tests I compiled from related websites when I was preparing for the interview. There were many familiar questions when I was preparing for the interview. I posted them here for my own review and reference in the future)

1. What is software testing?

Broadly speaking, software testing refers to all inspection, review, and verification work in the software life cycle, including the review and verification of various documents and codes in the analysis, design phase, and the confirmation phase after the completion of the development.
In a narrow sense, it is the process of identifying software defects, that is, the actual results are inconsistent with the expected results.

2. The goal of software testing?

The ultimate goal is to ensure that software functions meet user needs, and find and correct as many defects as possible before product release or delivery.

3. The principle of software testing?

1. Good-enough principle. A principle of weighing the input/output ratio.

2. Guarantee test coverage, but exhaustive testing is impossible.

3. All tests should be traced back to user requirements.

4. The earlier the test, the better. The test process and the development process should be integrated.

5. The scale of testing is from small to large, from unit testing to system testing.

6. In order to find errors as much as possible, tests should be conducted by an independent third party.

7. The program cannot be modified without authorization to facilitate testing.

8. It should test what the software should and should not do.

9. Testing just shows defects. Testing can only show that there are defects, but it cannot prove that there are no defects. Testing can reduce the probability that no defects are found, but it cannot prove that the software is
absolutely correct.

10. Exhaustive testing is impossible. It is impossible to test all combinations of inputs and conditions, and can be replaced by tests based on risk and priority.

11. Defects are clustered. More tests should be put into modules with a high incidence of defects. A small number of modules tend to hide most of the defects. Modules with a high incidence of defects are often associated with inherent reasons such as unclear requirements, improper design, and high coding complexity, so they must be higher from a risk perspective.

12. The pesticide paradox. After the same test is repeated many times, the defect can no longer be found. Test cases need to be reviewed and modified continuously, and new and different tests are constantly added, and it is possible to find more defects.

13. The test is contextual. The execution of tests in different contexts is different.

14. There is no fallacy. Even if most of the defects in the system are modified, if the system itself deviates from the user's needs, it will not help to find and fix the defects.

4. The measurement of software testing?

1. Test coverage: how many requirements and codes have been tested.

2. Defect discovery rate: When the defect was discovered and how many defects have been discovered, the defects can be classified according to their severity. The data that needs to be recorded include: the number of defects, the severity of the defects, etc.

3. Test success rate: How many test cases have passed and how many are running normally. The data that needs to be recorded are: the number of passed test cases, the number of failed test cases, the number of executed test cases, etc.

5. How many tests are enough?

It depends on the degree of risk (commercial risk and technical risk) and project constraints (time and funding).

6. What is the difference between debugging and testing?

Debugging for developers to find the cause of the defect, repair the code and confirm that the defect has been repaired;

Testing for testers to identify defects.

7. The main steps of the test?

Planning and control; analysis and design; implementation and execution; evaluation of export criteria and reports; test closing activities.

8. What is regression testing?

Regression testing refers to retesting after modifying the old code to confirm that the modification does not introduce new errors or cause errors in other codes.

9. What is the test standard?

The test standard is the user's needs.

10. Why should you avoid testing your own programs?

When testing your own programs, it is easy to test according to the ideas when writing the code, and rarely think from other angles. Based on this kind of thinking, it is difficult to find potential errors.
Due to psychological factors, people subconsciously do not want to find their own mistakes. Based on this mindset, it is difficult for people to find their own mistakes. A certain degree of independent testing can more efficiently find software defects and software failures.

11. What are the elements of software testing?

1. Quality. Software quality is the goal of software testing and the center of software testing. Everything starts from quality, that is, everything starts from customer needs. Anything that violates quality is a problem, and testing is to find these problems.

2. Staff. People are the decisive factor. The attitude, quality, and ability of testers determine the results of the test and have a great impact on the quality of the tested products. Tester factors include the definition of test organization structure, roles and responsibilities.

3. Technology. Software testing technology, including methods and tools.

4. Resources. Mainly refers to the hardware equipment, network environment and even test data required in the test environment. Another important factor is the test time, which is also the resource of the test.

5. Process. From the creation and review of test plans and test cases to the execution and reporting of tests, the entry and exit standards of each stage are set.

12. What is software quality?

The sum of software features, the ability of the software to meet the requirements of regulations or potential users.

13. What is the difference between software testing and software quality assurance?

Software testing is only one link in the assurance work. Software quality assurance and software testing are two different levels of software quality engineering.
In terms of nature, software testing is a technical work, and software quality assurance is a management work; from the object point of view, the object of software testing is software products, and the object of quality assurance is the entire software process, covering various areas at the company level; In terms of means, software testing focuses on post-test inspections, while software quality assurance emphasizes defect prevention.

14. The basic responsibilities of the testing team?

1. Find all problems in software programs, systems or products

2. Find the problem as early as possible

3. Supervise and assist developers to solve the defects in the program as soon as possible

4. Help project managers to formulate reasonable development plans

5. Tracking, analyzing and classifying and summarizing defects so that project managers and relevant responsible persons can understand the current quality status of the product in a timely and clear manner

6. Help improve the development process and improve product development efficiency

7. Promote the standardization, legibility, maintainability, etc. of program writing

15. What is the defect discovery rate (DDP)?

DDP=Bugs(tester)/(Bugs(tester)+Bugs(customer))
bugs found by testers/(bugs found by testers + bugs found by users)

16. What is a unit test?

Definition: Also known as module testing, it is the testing work that checks the correctness of the smallest unit program module of the software design; test cases can be designed from the internal structure of the program, and multiple module tests can be tested independently in parallel.

Purpose: to find various errors that may exist inside the module.

Content: Module interface test (inflow and outflow of data), partial data structure test, path test, error handling test, boundary test.

Steps: Use design documents to design test cases; create stub modules or driver modules of the tested module; use the tested modules, driver modules and stub modules to establish a test environment for testing.

17. What is an integration test?

Definition: Also known as assembly test or joint test, on the basis of unit test, all modules are assembled according to outline design and detailed design.

Purpose: to find various errors that may exist in the interface of the module connection.

Content: Whether the data passing through the modules will be lost; whether the assembly of one module will affect another module or other modules; whether the assembly of each sub-function will achieve the expected parent function; whether there is a problem with the global data structure.

Assembly method: one-time assembly, multiplication assembly.
Completion mark: Successfully executed all test cases specified in the test plan; corrected errors found; test results passed the review of the special team.

18. What is system testing?

Purpose: To verify and confirm whether the system achieves its original goals, while testing the integrated hardware and software systems.

Test content: Check whether the complete program system can be correctly configured and connected with the system (hardware, network, software) in a real or simulated system operating environment to meet user needs.

19. What is acceptance testing?

Purpose: To test in the user's environment to determine whether the system and product can meet the requirements specified by the contract or the user.

Content: Test and review the entire system according to the task letter or contract and the acceptance document agreed by the supplier and the buyer, and confirm whether to accept or reject the system.

20. What is a static test?

Also known as static analysis technology, it does not execute the software under test, but does structural inspection, flow graph analysis, symbolic execution, etc. to find out software errors on requirements analysis specifications, software design specifications, and source programs.

21. What is a dynamic test?

By entering a set of instance data constructed in advance according to certain test criteria, the program is dynamically run, and the process of discovering program errors is achieved.

22. What is automated testing?

Automated testing is a process of converting human-driven testing behaviors into machine execution.

23. What are the design principles of test cases?

1. The principle of minimizing the coverage of a single use case. Each test case should be as simple as possible and only verify what you want to verify.

2. The principle of test case replacement product documentation function.

3. The principle of single input cost and multiple input cost.

4. The principle of simplifying the analysis and debugging of test results (for the extension and continuation of automated test cases).

24. What is the Alpha test?

It is a kind of acceptance test, which is carried out by the user at the developer's premises, and the Alpha test is carried out in a controlled environment.

25. What is Beta testing?

It is a kind of acceptance test, which is carried out by the end user of the software at one or more user sites. The developer is usually not on site. The user records the problems encountered during the test and reports it to the developer.

26. How to perform unit testing?

The content includes: interface test, internal data structure, global data structure, boundary test, path test, error handling test.

27. What are the advantages and disadvantages of manual testing and automatic testing?

Manual testing: The disadvantage is that the testing workload is large, repeated, and regression testing is difficult to achieve.

Automatic testing: Use software testing tools to automatically implement all or part of the testing work, manage, design, execute and report, save a lot of testing overhead, and can complete some tests that cannot be achieved by manual testing.

The entire process of manually completing the test cannot guarantee the scientificity and rigor of the test:

The more defects modified, the more difficult the regression test;

No one can provide accurate data to the decision-making level to measure the current work progress and work efficiency;

Burnout caused by repeated tests and other factors make the test standards inconsistent;

The longer the test takes, the less stringent the test is.

Automatic testing frees testers from repeated and complicated test execution, and spends more time on test design and result analysis:

Software testing cannot be fully automated;

Cannot complete all manual testing tasks;

No creativity and poor flexibility, unable to improve the effectiveness of the test;

Many unexpected problems may be encountered in the process, especially when the software is unstable;

The maintenance cost of test scripts is high.

28. What are the methods for test case design?

Equivalence class division method; boundary value analysis method; scenario method; orthogonal experiment method; causality diagram; decision table; error speculation method.

29. What is a test plan?

According to the project-related documents, the documents used to guide the entire test process need to define the test scope, test strategy, personnel allocation, software and hardware configuration, schedule, and goals to be achieved at each stage of the test process.

30. What are the key contents of test cases?

Six key contents are use case number, use case description, prerequisites, input data, test steps, and expected results.

31. What are the ways to find missing problems?

The manual is the basis and standard; related change emails and discussion records; read other people's defects from time to time; communicate with developers more often; selectively re-verify previous defects;

Pay attention to changes; simple thinking, focusing on the main line, reducing major omissions.

32. The idea of ​​agile development? People-centered, iterative, and gradual development methods.

Individuals and interactions are better than processes and tools;

Software that can work is better than comprehensive documentation;

Customer cooperation is better than contract negotiation;

Responding to change is better than following a plan.

33. The principle of agile development?

Satisfy customers by delivering valuable software as early as possible;

Even in the later stages of development, changes in requirements are welcome, and agile processes use changes to create competitive advantages for customers;

Regular delivery of working software, the delivery interval can be from a few weeks to several months, the shorter the delivery interval, the better;

During the entire project development period, business personnel and developers must work together every day;

Build projects around motivated individuals, provide them with the environment and support they need, and trust them to complete their work;

Within the team, the most effective and efficient way to transmit information is face-to-face conversation;

The working software is the primary progress metric;

The agile process advocates a sustainable development speed, and the responsible persons, developers and users should be able to maintain a long-term, constant development speed;

Constant attention to excellent skills and good design will enhance agility;

Simplicity is the most fundamental;

The best architecture, requirements and design come from the organization team;

At regular intervals, the team will reflect on how to work more effectively, and then adjust its behavior accordingly.

34. What is agile testing?

Agile testing is a new testing process, method and practice adopted to adapt to agile development methods.

Simply put, agile testing is continuous and timely feedback on software quality issues.

35. What is a software defect (bug)?

Software defects refer to those defects in the system or system components that cause the system or components to fail to achieve their due functions. Such as:

The software does not realize the functions required by the product specification;

The software has errors that the product manual specifies should not occur;

The software realizes the functions not described in the product manual;

The software does not achieve the goal that the product specification does not mention but should achieve;

The software is difficult to understand, difficult to use, slow to run, or the software tester thinks the end user will think it is bad.

36. Requirements for submitting a defect (bug)?

The basic requirements of bug description: accurate classification, concise description, clear steps, clear description of actual results, and evidence for complex issues.

Problem description: module or function-test steps-expected results-actual results-other information.

Single, succinct, reproducible, complex issues, reports do not allow abstract words.

37. White box testing?

White box testing is also called structural testing, logic-driven testing or program-based testing. Generally used to analyze the internal structure of the program. White box testing requires a certain degree of coverage of the structural characteristics of the program under test.

Control flow test:

1. Statement coverage criteria: Statement coverage testing is one of the simplest structural testing methods, requiring that every statement in the program be executed during the test. In a control flow graph, the necessary and sufficient condition for all statements to be executed is to cover all nodes in the graph.
2. Branch coverage criteria: branch testing requires that in software testing, each branch obtains at least one "true" value and one "false" value. == Branch coverage test includes sentence coverage test ==
3. Predicate test: the condition of a branch is composed of predicates. A single predicate is called an atomic predicate. Atomic predicates can form compound predicates through logical operators (or, and, not) .
(1) Atomic predicate coverage criterion: It is required that in software testing, each atomic predicate contained in each compound predicate obtains at least one true value and one false value.Atomic predicate coverage criteria and sentence coverage criteria have no inclusion relationship with each other, and branch coverage criteria have no inclusion relationship with each other.
(2) Branch-predicate coverage criterion: It is required that in software testing, not only each atomic predicate contained in each compound predicate obtains at least one truth value and one false value, but also each compound predicate itself obtains at least one truth value And a false value.Branch-predicate coverage criteria include sentence coverage criteria, branch coverage criteria, and atomic predicate coverage criteria.
(3) Compound predicate coverage criterion: It is required that the various possibilities of the predicate in each condition appear at least once in the software test.Compound predicate coverage criteria include sentence coverage criteria, branch coverage criteria, atomic predicate coverage criteria, and branch-predicate coverage criteria.
Path coverage criterion: It is required to observe the entire path of the program, and the program is required to cover all the complete paths.The path coverage criterion includes the branch coverage criterion, but there is no inclusion relationship with the predicate test.

38. TDD (Test-Driven Development)?

TDD requires that the test code be written before the code of a certain function, and then only the function code that makes the test pass, and the whole development is promoted through the test. This helps to write concise, usable and high-quality code and speed up the development process.

39. The steps for designing test cases with causality diagram method?

①Analyze the requirements, extract the causal relationship, and assign identifiers; ②Analyze the requirements, extract the input and output, and express them as a causal diagram; ③Mark the constraints on the causal diagram; ④Convert the causal diagram into a judgment table; ⑤According to the judgment table Design test cases for the situations shown in each column.

40. What are the steps for designing test cases using the decision table method?

①List all condition and action stakes; ②Determine the number of rules; ③Fill in condition items; ④Fill in action items; ⑤Simplify the decision table and merge similar rules or actions.

41. What are the automated testing frameworks?

Modular framework, function library framework, data-driven framework, keyword-driven framework.

42. What are the statistical methods of test coverage? What are they?

Code coverage, functional module coverage, demand coverage, database coverage.

43. What is FMEA?

FMEA (failure mode and effects analysis): Failure mode and effects analysis is an important method of reliability design. Various risks are evaluated and analyzed in order to eliminate these risks or reduce risks to Acceptable level.

44. List the EMC test and environmental test items you know about?

Insert picture description here

45. Please describe the process of TCP/IP connection establishment?

Insert picture description here

46. ​​What are the ways to call a DLL?

Insert picture description here

47. What are the coverage methods for white box testing?

Statement coverage, branch coverage, predicate coverage, path coverage.

48. The difference between process and thread?

A thread is an execution unit of a process and a schedulable entity of the process.
Insert picture description here

49. How should software defect levels be divided?

1. Fatal errors may cause problems such as abnormalities and crashes of this module or other related modules;

2. Serious error, the problem is limited to this module, causing the module to fail or exit abnormally;

3. General error, partial failure of module function;

4. Suggest a question, the improvement opinion of the person who raised the question on the test object.

50. What kind of management measures are taken for defects?

1. To better manage defects, defect management tools must be introduced, either commercial or open source;

2. According to the defect life cycle, consider the management of defect submission, defect status management and defect analysis management;

3. All the defects found must be submitted to the defect management tool immediately and accurately, which is the management of defect submission;

4. After the defect is submitted, it needs to be assigned to the corresponding developer immediately. The submitter needs to pay close attention to the status of the defect to help solve the defect as soon as possible. After the defect is resolved, the defect repair needs to be verified immediately;

5. In order to better improve the development process and testing process, it is necessary to analyze and summarize the defects, such as the types of defects, the age distribution of defects and other information.

51. Concurrent performance test?

The process of concurrent performance testing is a process of load testing and stress testing, that is, gradually increasing the load until the system's bottleneck or unacceptable performance points. The process of determining the concurrent performance of the system through comprehensive analysis of transaction execution indicators and resource monitoring indicators.

52. Load test?

Load testing is to determine the performance of the system under various loads. The goal is to test the corresponding output items of the system components when the load gradually increases, such as throughput, response time, CPU load, memory usage, etc. to determine system performance. Load testing is a process of analyzing software applications and supporting structures and simulating the use of real environments to determine acceptable performance.

53. Stress test?

Stress testing is a test to obtain the maximum service level that the system can provide by determining the bottleneck or unacceptable performance points of a system.

54. Fatigue test?

Fatigue test is the process of using the maximum number of concurrent users that the system can support under stable operation of the system, continuing to execute business for a period of time, and determining the maximum workload intensity performance of the system through comprehensive analysis of transaction execution indicators and resource monitoring indicators.

55. Big data volume test?

Large data volume tests are divided into two types: independent large data volume tests for certain system storage, transmission, statistics, and query services; comprehensive data combined with stress performance testing, load performance testing, and fatigue performance testing Quantity test plan. The key to large data volume testing is the preparation of test data, which can be prepared by tools.

56. How to carry out performance test if the customer didn't give performance index?

Consult with the project manager, test supervisor, etc., determine the performance index according to conventions and experience settings, refer to the performance indicators of similar systems, and refer to historical data.

57. How is the software quality guaranteed during the testing process?

①After the test case is written, the review must be strengthened to ensure that the test case covers all requirements; ②In the process of test execution, attention should be paid to checking the test coverage, reviewing the quality of submitted defects, and paying attention to the testing of related modules when retesting; ③Testing time If you have enough money, you can do cross-testing to ensure the quality of the test.

58. What is written in the test plan?

Overview; analysis of the tested object; characteristics to be tested; characteristics not to be tested; overall design method;

Test model: test network diagram, structure/object relationship diagram, test principle, operating procedure;

Test requirements: environmental requirements, object requirements, test tool requirements, test code requirements, data requirements, and other requirements;

Test design: tool design, test code design, use case design, design principles, test items;

appendix.

59. What is the difference between a test plan and a test plan?

The test plan is technical; the test plan is management.

The test plan mainly considers the technical feasibility, key technology, resource input, schedule, risk management, configuration management, input and output of the test. The test plan is more for reference by senior managers when making decisions, and at the same time guides the development of subsequent test work.

In some small projects, only one test plan is needed, and the content of the test plan is relatively small, which can be combined with the test plan; while in some large projects, dozens of test plans may be designed, and a test plan is needed to outline the guidelines.

60. The focus of unit testing and system testing?

Unit testing focuses on system modules, including verification of the correctness of subroutines; system testing focuses on the operation of the entire system and compatibility with other software.

61. BUG process?

Submit Defects -> Assign Defects -> Confirm Defects -> Postpone Processing -> Fix -> Process Defects -> Return Defects -> Close Defects.

62. Please write down the composition of the computer and what operating systems are there?

The computer is composed of two parts: hardware and software.

Hardware: input device, output device, memory, arithmetic unit, controller;

Software: system software, application software.

Operating systems are: DOS (disk operating system), UNIX, XENIX, LINUX, Windows, Netware (network operating system).

63. How to use loadrunner?

Develop test plan à create test script à create scenario à run scenario à monitor test scenario à analyze test results.

64. What is the experience that you think is a bug but the developer does not think it is a bug?

When testing a certain system, after the deletion operation was performed, the system did not pop up the corresponding deletion success or failure message, but the data list was refreshed, and the deleted data disappeared from the list. The developer believes that this will reflect the success of the delete operation, but for the user, it will be more intuitive to indicate the operation result through the prompt message.

65. What is the life cycle of software testing?

Requirements analysis, test planning, test design, test development, test execution, test evaluation.

66. What is the life cycle of BUG (referring to program coding errors)?

new、open、in process、check、resolved、closed、reopened。

Click the link to join the group chat [Python automated testing exchange group]

Guess you like

Origin blog.csdn.net/jin19990112/article/details/108709075