A collection of common software testing interview questions (with detailed answers)

Recently, I have seen various interview experiences and interview questions circulating on the Internet. There are often a lot of technical questions posted, but there are no answers.

For this reason, I sorted out the common interview questions and detailed answers of this software testing basics in my spare time. I hope that the big cows from all walks of life will not hesitate to enlighten me if they find something wrong, just leave a message.

01 Software Testing Theory Part

1.1 Test concept

1. Please introduce unit testing, integration testing, system testing, acceptance testing and regression testing respectively

  • Unit testing: complete the verification work of the smallest software design unit (module), the goal is to ensure that the module is coded correctly
  • Integration testing: discovering issues related to module interfaces through testing
  • System test: It is a black box test based on the overall requirements specification of the system, which should cover all joint components of the system
  • Regression testing: Regression testing refers to retesting the previous test cases after modification to ensure the correctness of the modification
  • Acceptance Testing: This is when the system is tested and accepted by relevant users or independent testers based on the test plan and results. Acceptance testing includes Alpha testing and Beta testing.
  • Alpha testing: Conducted by users at the developer's premises in a controlled environment. And test under the guidance of the developer to the user, the developer is responsible for recording the errors found and the problems encountered in use
  • Beta testing: Conducted by the end user of the software at one or more user sites, usually off-site by the developer. A series of problems encountered in the test are recorded by the user and reported to the developer on a regular basis.

2. What is a black box? What is a white box? What are the black-box and white-box testing methods?

  • Black box: Black box testing is also called functional testing or data-driven testing. Treat the program as a black pot that cannot be opened, and test the program interface without considering the internal structure and characteristics of the program. The "black box" method focuses on the external structure of the program, does not consider the internal logical structure, and tests the software interface and software functions
  • Commonly used black-box testing methods: equivalence class division method; boundary value analysis method; causal diagram method; scenario method;
  • White box testing: also known as structural testing or logic-driven testing, is a test of how the unit under test works internally
  • Common white box testing methods
  1. Static testing: testing without running the program;
  2. Dynamic testing: need to execute the code, find the problem by running the program;
  • Logic coverage includes: statement coverage, decision coverage, condition coverage, decision/condition coverage, condition combination coverage and path coverage
  • 1. Statement coverage Every statement is executed at least once.
  • 2. Each branch of a decision covering each decision is executed at least once.
  • 3. Condition coverage Each condition of each decision should take various possible values.
  • 4. Judgment/Condition Coverage Satisfy the decision coverage condition coverage at the same time.
  • 5. The combination of conditions covers each combination of conditions in each decision at least once.
  • 6. Path coverage causes every possible path in the program to be executed at least once.

3. Test process:

Requirements Test -> Outline Design Test -> Detailed Design Test -> Unit Test -> Integration Test -> System Test -> Acceptance Test

4. App test performance indicators

  • Memory
  • cpu
  • flow
  • startup speed

5. Differences between web testing and app testing

In terms of system architecture:

  • Web projects are generally b/s architecture, browser-based
  • The app project is c/s, and there must be a client, and the user needs to install the client.
  • As long as the web test updates the server side, the client side will be updated synchronously. App projects require both the client and the server to be updated.

Performance:

  • Web pages are primarily concerned with response time
  • The app also needs to care about traffic, power, CPU, GPU, Memory, etc.

Compatibility :

  • The web is based on browsers, so it is more inclined to be compatible with browsers, computer hardware, and computer systems
  • App testing depends on resolution, screen size, operating system, and network.
  • Web testing is browser-based so there is no need to consider installation and uninstallation.
  • And the app is client-side, you must test the installation, update, and uninstallation. In addition to conventional installation, update, and uninstallation, abnormal scenarios should also be considered: including interruption during installation, weak network, and deletion of installation files after installation.

6. What are the types of defects by priority? p1-p5 interview focus

  • Defects must be addressed immediately
  • Defect requests are normally queued for fixes
  • Defects can be corrected at convenience
  • fixed in next version
  • not repair

7. What is the content of the test case? interview focus

  • use case number
  • Test overview or use case title
  • test steps
  • expected outcome
  • Input data
  • priority
  • Preconditions, etc.

8. What are the criteria for the end of the test? interview focus

  • All test cases are executed
  • All unmodified bugs are confirmed or set to their proper status, and the problems of pending modification are analyzed in detail
  • The test report is written
  • Test finishing work is over
  • Test summary completed
  • The project is in trial operation or on-line stage
  • Define the end criteria in the test plan: how many days it runs smoothly under a certain performance, there are no serious bugs in this version, the number of common buhs is less than the number, and the percentage of bug fixes is more than
  • If the actual test meets the above requirements, the project, development, and test managers will jointly sign and agree that the test is over, and the version can be released.

1.2 Software Development Model

Software Lifecycle: The process of software from its initial conception to its eventual death (retirement).

1. Software life cycle
Project approval---requirement analysis---design, coding, testing---release---operation and maintenance---elimination of
software project approval===》Feasibility study===》Demand analysis=== 》General design===》Detailed design===》Coding implementation===》Unit test===》Integration test===》System test===》Acceptance test==》Operation and maintenance

2. Waterfall model

shortcoming:

1. The division of each stage is completely fixed, and a large number of documents are generated between stages, which greatly increases the workload.
2. Since the development model is linear, users can only see the development results until the end of the whole process, which increases development risks.
3. Not suitable for users change in demand

3. Rapid prototyping model (especially popular model now) Axure software

1. Principle: Quickly build a working software prototype in order to understand and clarify problems, make developers and users reach a consensus, and finally develop a software product that satisfies customers on the basis of determining requirements
. 3. Advantages
: `Overcome the shortcomings of the waterfall model and reduce the development risks caused by unclear software requirements`

4. Incremental model (one of the most commonly used development models)

These incremental components are analyzed, designed, coded, and tested in batches.

5. Iterative model development progress is fast

 

1. Principle
`Emphasis on the in-depth development---optimization process`
The development iteration is a complete process through all workflows: requirements analysis, design, implementation and testing workflow
2. Advantages Reduce
the risk of spending on an increment
The risk of products not being able to enter the market according to the established schedule
Accelerate the progress of the development work `
adapt to the scene of rapid demand changes`

6. Spiral model

 

 

1. Principle:
It takes into account the iterative characteristics of the fast model and the systematic and strict monitoring of the waterfall model.
2.
The biggest advantage and feature: the introduction of risk analysis that other models do not have, so that the software has the opportunity to stop when major risks cannot be ruled out, so as to reduce Loss
Suitable for large and expensive system-level software applications

1.3 Software testing model

1. v-model

 

1. Principle: reveal the corresponding relationship between the development process and the testing process.
2. Disadvantages and deficiencies:
only take the testing process as a stage after requirements analysis, system design and coding, and ignore the verification of requirements analysis and system design by testing.
Satisfaction of requirements is not verified until later acceptance testing

2. w model

1. It is composed of two V-shaped models, representing the testing and development process respectively, clearly expressing the parallel relationship between testing and development. 2. Advantages
:
testing activities and software development are carried out simultaneously .
The test object is not only the program, but also the requirements and design
to find software defects as soon as possible. Can reduce software development costs
3. Limitations: Cannot support iterative development model (no cycle process)

3. h-model

 

1. Completely separate the test activities to form a completely independent process
2. As long as the test conditions are mature and the test preparation activities are completed, the test execution activities can be carried out
3. Software testing should be prepared and executed as early as possible, different test activities Can be carried out sequentially or repeatedly (iteratively)

4. x model

1. Separate coding and testing for individual program fragments;
2. Targeted exploratory testing, which is a special type of testing that is not planned in advance;

5. Software Testing Life Cycle

  • Obtain test requirements
  • Write a test plan
  • Develop a test plan
  • Develop and design test cases
  • Execute the test
  • Submit a bug report
  • Test Analysis and Review
  • Submit test summary
  • Prepare for next version testing

6. Briefly describe the life cycle of defects? interview focus

  • Software testers submit defect reports;
  • After review by the test leader, the defect is assigned to the relevant developer for repair
  • After the defect is modified, testers will conduct backtesting according to the modification record in the defect report
  • Defects that pass the backtest are closed by the person in charge;
  • Defects that fail the retest are directly returned to the developer for re-editing, and then retested by the tester until the test and development reach an agreement on how to deal with it.

Finally, I would like to thank everyone who has read my article carefully. Reciprocity is always necessary. Although it is not a very valuable thing, you can take it away if you need it:

 

These materials should be the most comprehensive and complete preparation warehouse for [software testing] friends. This warehouse has also accompanied tens of thousands of test engineers through the most difficult journey, and I hope it can help you! Partners can click the small card below to receive 

Guess you like

Origin blog.csdn.net/okcross0/article/details/130605070