A collection of the latest software testing interview questions from the entire network in 2023 (including answers + documents + video explanations)

Preface

I saw some interview questions before, and I always felt that they would be useful, but I couldn’t remember them after reading them again, so I integrated all the interview questions together. They were all shared by big people from all walks of life. In order to make it easier for me to review them when I need them in the future. Come on, no need to look for questions everywhere anymore, today I will share these interview questions that I have compiled.

At the same time, I have also prepared a software testing video tutorial for everyone (including interviews, interfaces, automation, performance testing, etc.), which is below. If you need it, you can watch it directly, or you can directly click on the small card at the end of the article to get the information document for free.

Where to watch software testing video tutorials:

The latest 2023 [Software Testing Interview 300 Questions] Interview eight-part essay tutorial, covering automated testing/interface testing/performance testing/test development, etc.

1. Jingdong software testing job interview 30 questions (dry stuff)

1. What are the common design methods for test cases in black box testing? Please use specific examples to illustrate the application of these methods in test case design work.

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

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

When using the boundary value analysis method to design test cases, you should first determine the boundary conditions. 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 larger than, or just smaller 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: A method of speculating on all possible errors in the program based on experience and intuition, so as to design test cases in a targeted manner.

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

4) Cause-and-effect diagram method: The equivalence class division method and boundary value analysis method introduced earlier focus on considering the input conditions, but do not consider the connection between the input conditions, mutual combination, etc. Considering the mutual combination between the input conditions, Some new situations may arise. But it is not easy to check the combination of input conditions. Even if all input conditions are divided into equivalence classes, there are quite many combinations between them. Therefore, a suitable method must be considered Consider designing test cases in the form of describing the combination of multiple conditions and producing multiple actions accordingly. This requires the use of a cause-and-effect diagram (logical model). The final result generated by the cause-and-effect diagram method is a decision table. It is suitable for checking program input conditions various combinations.

5) Orthogonal table analysis method: The number of test cases may increase due to the combination of a large number of parameters. At the same time, there is no obvious gap in priority between these test cases, and the testers cannot complete such a large number of tests. , you can reduce some use cases through orthogonal tables, 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 based on user scenarios. This is similar to a cause-and-effect diagram, but may have better execution depth and feasibility.

7) State chart method: Obtain all states of the system under test through input conditions and system requirement descriptions, and obtain output conditions through input conditions and states; obtain test cases for 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 form. 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 that are used to define the test case. The number of leaves in the tree or paths in the outline gives an approximate number of test cases required to test all functionality.

2. Describe the complete process of a test activity in detail. (For reference, this answer is mainly based on the waterfall model)

The project manager completes the requirements document through communication with the customer, and developers and testers jointly complete the review of the requirements document. The review content includes: areas where the requirement description is unclear and areas where there may be obvious conflicts or functions that cannot be implemented. The project manager completes the project plan by integrating the opinions of developers, testers and customers. Then SQA enters the project and starts statistics and tracking

The developers complete the requirements analysis document based on the requirements document, and the testers conduct a review. The main content of the review includes whether there are any 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 writing test cases based on the modified requirements analysis document, while 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 need to be reviewed.

Testers build environment

When developers submit the first version, there may be unfinished features that need to be explained. Testers conduct testing and submit bugs to BugZilla after discovering them.

The developer submits a second version, including bug fixes and added features, for testers to test.

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

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

3. Tracking process of BUG management tools (using BugZilla as an example)

The tester discovered the BUG and submitted it to Bugzilla. The status is new. The recipient of the BUG is the development interface personnel.

The development interface assigns the BUG to the developer of the relevant module, and changes the status to assigned. The developer and tester confirm the BUG. If it is my own BUG, ​​it is set to receive; if it is another developer's problem, it is forwarded. It is up to the next developer to carry out this behavior; if it is not considered a problem, everyone needs to discuss and confirm it, reject the BUG, ​​and then the tester closes the issue.

If the developer accepts the BUG and fixes it, the developer will change the BUG status to fixed and inform the developer in which version it can be tested.

Testers test in the new version. If they find that the problem still exists, they will refuse verification; if they have been fixed, they will close the bug.

4. In your opinion, how to improve the efficiency and effectiveness of communication during the communication process between testers and developers? What is the key to maintaining good interpersonal relationships between testers and other members of the development team?

Try to communicate face-to-face as much as possible, and secondly, be able to communicate directly by phone. If you can only communicate through email and other non-timely communication tools, emphasize that you must have a deep understanding of the characteristics and be able to express them clearly.

It is also a more effective method to use some test management tools such as TestDirector for management. At the same time, attention should be paid to accurate descriptions of BUGs in TestDirector.

Pay attention to the following points when establishing good communication between testers and developers in the team:

The first is sincerity, the second is team spirit, the third is having a common language in the profession, and the fourth is to deal with things rather than people and put work first

Of course, you can also increase the other party's favor by pointing out some minor problems directly instead of entering the BUG Tracking System.

5. What is your greatest interest in testing? Why?

There is no fixed and unified answer to this interview question, but it may be asked by many companies. The following answers are provided for review:

The greatest interest is that this is a challenging job;

Testing is an experience-based industry. The longer you work, the more difficult and fun you will feel about doing good testing.

Through your own work, you can make software products more and more perfect and experience fun from them.

When answering such questions, pay attention to the following aspects:

Express your interest as closely as possible to the technical route of the recruiting company. For example, if the company is a database application company, then express your interest in database testing and hope to improve your database mastery through testing.

Show that the purpose of your testing is to improve your capabilities and to do a better job of testing; improving your capabilities is not for the purpose of switching to development or other fields in the future, unless the employer has such arrangements.

Don't express your interest too much outside the scope of the recruiting company. For example, the recruiting company is engaged in financial software, but you are interested in game software; or the recruiting company is engaged in JAVA development, but your interest is in the development of C language programs.

6. What do you think are the advantages of testing?

There is no fixed answer to this interview, but you can refer to the following points and combine them with your own characteristics:

Resilient, patient, organized, like to face challenges, confident to do everything well, strong communication skills, have received good evaluations from previous managers, indicating that I am doing a good job

7. Briefly describe what you have done in your previous job and what you are familiar with. The reference answer is as follows.

My main job in the past was system testing and automated testing. During system testing, the business logic functions of the BOSS system and the Class 5 features of the softswitching system were mainly tested. In the performance test, it is mainly a stress test to obtain the system response time and system resource consumption under different numbers of requests. Automated testing mainly tests softswitch feature testing by writing your own scripts and combining some third-party tools.

In testing, I feel it is very important to have a completely accurate understanding of user needs. In addition, the management of BUGs must be based on needs, and not all BUGs need to be modified.

Testing requires patience and meticulousness, because in the new version, although most of the originally discovered BUGs have been fixed, the original correct functions may also become incorrect. Therefore, focus on iterative testing and regression testing.

8. What is the use of static in C/C++? (please specify at least two)

1) In the function body, a variable declared as static maintains its value while the function is called.
2) Within the module (but outside the function body), a variable declared as static can be accessed by functions within the module, but cannot be accessed by other functions outside the module. It is a local global variable.
3) Within a module, a function declared as static can only be called by other functions in this module. That is, this function is restricted to the local scope of the module in which it is declared.

9. What is the difference between a reference and a pointer?

1) References must be initialized, not pointers.
2) The reference cannot be changed after initialization, and the pointer can change the object it refers to.
3) There is no reference to the null value, but there is a pointer to the null value.

10. Which network protocol does the Internet use? What are the main hierarchies of the protocol? What protocol is used for Internet physical address and IP address translation?

The main hierarchical structure of the TCP/IP protocol is: application layer/transport layer/network layer/data link layer.

ARP (Address Resolution Protocol)

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

top-down integration

Advantages: Verify the main control and judgment points earlier; depth-first can first implement and verify a complete software function; the function is confirmed early, bringing confidence; only one driver is needed, reducing driver development costs; supports fault isolation .

Disadvantages: Column development is heavy; underlying validation is delayed; underlying components are not adequately tested.

The product control structure is relatively clear and stable; the high-level interface changes little; the bottom-level interface is undefined or may often be modified; the production control component has greater technical risks and needs to be verified as soon as possible; it is hoped that the product can be seen as soon as possible functional behavior.

Bottom-up integration

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

Disadvantages: The driver development workload is heavy; high-level verification is delayed, and design errors cannot be discovered in time.
It is relatively stable to adapt to the low-level interface; the high-level interface changes more frequently; the low-level components are completed earlier.

12. Software acceptance testing includes three types of tests: formal acceptance testing, alpha testing, and beta testing.
13. There are many strategies for system testing, including performance testing, load testing, strength testing, usability testing, security testing, configuration testing, installation testing, documentation testing, failure recovery testing, user interface testing, recovery testing, and distribution. Testing, usability testing.
14. The project documents that need to be referenced when designing the system test plan include software test plan, software requirements artifacts, and iteration plan
15. The steps to write test cases by drawing a cause-and-effect diagram are five steps: ___, ___, ___, ___ and converting the cause-and-effect diagram into a state chart. The basic steps for generating test cases using cause and effect diagrams are:

§ Analyze what are the causes (ie, input conditions or equivalent classes of input conditions) and which are the results (ie, the output conditions) in the software specification description, and assign an identifier to each cause and result.

§ Analyze the semantics in the software specification description and find out what is the relationship between the cause and the result, and what is the corresponding relationship between the cause and the cause? Based on these relationships, draw a cause-and-effect diagram.

§ Due to grammatical or environmental restrictions, some combinations between causes and causes and between causes and results are impossible. To indicate these special cases, symbols are used to indicate constraints or limitations on the cause-and-effect diagram. § Convert the cause-and-effect diagram into a decision table.

§ Take out each column of the judgment table as a basis to design test cases.

16. Please tell me who should best complete these tests. What is being tested?

Code and function-level testing are generally completed by white-box testers. They conduct correctness testing on each piece of code or function to check whether it correctly implements the specified functions.

Module and component-level testing is mainly based on the integration and calling relationships between test modules based on program structure design, and is generally completed by testers.

System testing is based on module testing and unit testing. Understand system functions and performance, and conduct comprehensive testing based on test cases.

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

What you need to pay attention to when designing test cases is that in addition to the overall process and functions, you also need to pay attention to strength testing, performance testing, stress testing, boundary value testing, stability testing, security testing and other aspects. (The four basic elements that test cases need to consider are input, output, operation and test environment; in addition, test cases need to consider test type (function, performance, security...), this part can be answered with reference to TP. In addition, Also need to consider the importance and priority of use cases)

18. 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 classes be divided?

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

19. Suppose there is a text box that requires the input of a 10-character postal 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; greater than ten characters, such as 11111111111; mixed numbers and others, such as 123AAAAAAA; empty characters; reserved characters

20. When does the software testing project start? Why?

Software testing should be involved during the requirements analysis stage, because the test object is not just program coding, but all products produced during the software development process should be tested, and software defects tend to amplify. The later a defect is discovered, the more expensive it will be to fix it. The greater the cost.

21. What is regression testing?

Regression testing: (regression testing): There are two types of regression testing: use case regression and error regression; use case regression is to go back and retest the previously used use cases after a period of time to see if the problem is rediscovered. Error regression is a method of re-verifying the defects that appeared and fixed in the previous version in the new version, and testing the relevant modified parts with the defects as the core.

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

Unit testing targets the smallest unit of software design - program module (functions and procedures in process-oriented; classes in object-oriented). The purpose of testing for correctness is to discover possible errors within each program module. There are generally two steps: manual static inspection\dynamic execution tracking.
Integration testing 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 integration of each module. The implemented functions and
system testing are 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, certain supporting software, data and personnel, etc., and must be implemented in practice. In the operating environment, a series of integration tests and confirmation tests are conducted on the computer system.

23. What qualities should a test engineer possess?

1. Responsibility 2. Communication skills 3. Teamwork spirit 4. Patience, carefulness, confidence 5. Always maintain a skeptical attitude and have awareness of defect prevention 6. Have certain programming experience

24. What types of software testing do you know? 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 stage: 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

25. What do you think is the key to good test planning?

Clarify the goals of the test and enhance the practicality of the test plan

The important purpose of writing a software test plan is to enable the testing process to discover more software defects. Therefore, the value of the software test plan depends on its help in managing the test project and identifying potential defects in the software. Therefore, the testing scope in the software testing plan must highly cover functional requirements, the testing method must be practical, the testing tools must be highly practical and easy to use, and the generated test results must be intuitive and accurate.

Adhere to the "5W" rule and clarify the content and process

The “5W” rule refers to “What”, “Why”, “When”, “Where”, and “How”. Using the "5W" rule to create a software test plan can help the testing team understand the purpose of testing (Why), clarify the scope and content of testing (What), determine the start and end dates of testing (When), and indicate the testing methods and tools ( How), giving the storage location (Where) of the test documents and software.

Adopt a review and update mechanism to ensure that the test plan meets actual needs

After the test plan is written, if it is sent directly to the test team without review, the content of the test plan may be inaccurate or missing test content, or changes in software requirements may cause an increase or decrease in the test scope, and the content of the test plan may not be updated in a timely manner, which may be misleading. Test Executive.

Create test plans, test detailed specifications, and test cases respectively

Detailed test technical indicators should be included in an independently created test detailed specification document, and test cases used to guide the test team to perform the test process should be placed in an independently created test case document or test case management database. There is a strategic and tactical relationship between test plans, detailed test specifications, and test cases. Test plans mainly plan the scope, methods, and resource allocation of test activities from a macro perspective, while detailed test specifications and test cases are specific tactics for completing test tasks.

26. What do you think is the key to good 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 method use case design is also to cover the module output and input interfaces with fewer use cases. It is impossible to test completely and find the most problems in a reasonable time with the fewest use cases.

27. What are your testing career development goals?

The more testing experience, the higher the testing ability. Therefore, my career development requires time and accumulation, and I will run towards a senior test engineer step by step. And I also have a preliminary career plan. I have accumulated testing experience in the first three years, constantly updating and correcting myself, and doing a good job in testing tasks.

28. What are the criteria for ending the test?

From a micro perspective, it is defined in the test plan. For example, the system runs smoothly for 72 hours under certain performance. In the current Bug Tracking System, there are no generally serious BUGs in this version. The number of ordinary BUGs is less than 3, and the BUG repair rate is 90%. The above parameters are then jointly signed by the development manager, test manager, and project manager to approve the version release.

If we talk about it macroscopically, it means that when the software disappears completely, the test will end.

29. What stages should a complete set of tests consist of?

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

30. Do you understand the software development process of the companies you worked for in the past? If you understand, please describe what work needs to be completed in a complete development process? What are the different roles that perform these tasks? What specific tasks have you been engaged in in your previous testing work? Which part of the job are you best at?

Development process—requirements research (requirements personnel), requirements analysis (requirements personnel), outline design (designers), detailed design (designers), coding (developers)

Testing process - requirements review, system test design, outline design review, integration test design, detailed design review, unit test design, test execution

I have done the entire process of testing and am good at test design.

Process determines quality, and software process improvement is precisely to improve the quality of software and to accumulate various past experiences and lessons.

2. All the classic software testing interview questions are here. The first 5 questions must be asked.

Question 1: Why did you choose the software testing industry?

Answer: Because I like software testing, I chose software testing as a career. I think software testing is a more challenging and creative profession than software programming. (Don’t say that you chose to do software testing because you couldn’t continue development, and don’t say that you don’t like coding)

Question 2: Tell me about your understanding of software testing?

Answer: Software testing is the process of verifying software functionality and producing a software product of good standards without defects, errors and failures.

Question 3: What is the test log?

Answer: The test log contains a complete list of operations performed during software testing, and you can know whether the test passed or failed from the test log.

Question 4: What is the difference between manual testing and automated testing?

Answer: Manual testing is performed manually by the user and automated testing is done automatically with the help of pre-scripts. Automated testing is faster, safer, and cost-effective, while manual testing is slower and less secure.

Question 5: What is the difference between white box and black box testing?

Answer: White box testing is a software testing method in which users must know the implementation of the internal structure, while in black box testing, there is no need to know the user's internal working modules. In white box testing, the user should have programming skills, while in black box testing, the user does not need programming skills.

Question 6: What are the benefits of black box testing?

Answer: Black box testing can be done by users with little to no programming knowledge and is much faster than the white box testing process. Few bugs can be caused in software products because every component and module of the software is not tested.

Question 7: What are the advantages of white box testing?

Answer: White box testing ensures a higher quality software product as each component is tested by programmers. This is a lengthy process that takes more time than black box testing.

Question 8: What is regression testing?

Answer: When software is changed or modified, retest to check whether the software functions properly and to ensure that there are no unintentional errors in the software. This testing process is called regression testing.

Question 9: What is functional testing?

Answer: Functional testing is the testing and verification process against customer specifications and meeting all customer requirements.

Question 10: What is the relationship between test cases and test scripts?
 

3. Common interview questions in software testing

1. What are the stages of testing?

Generally speaking, it is divided into 5 stages: unit testing, integration testing, confirmation testing, system testing, and acceptance testing.

2. What are the software testing methods?

Black box, white box, gray box.

3. The difference and use of sum and count in the database

Generally, sum will be used together with order by grouping in interviews.
count: count the number of data records you query: select count(*) from student table;
sum: sum: select sum(chengji) from student table where name='Zhang three';

4. Design a module test case

Examine the interviewer’s experience, use case design capabilities, thinking, and comprehensive testing methods.
Analyze from the aspects of functional testing, interface testing, exception testing, performance, and security testing.

5. How does pytest manage test cases?

Master the case rules, such as starting with test, naming the class after Test, etc.
How to execute a single py in case files and how to manage multiple folders

6. Why did you choose the software testing industry?

Because I knew about the software testing industry before, I felt that its development prospects were very good.
(Never say that you switched to testing after you couldn’t continue development!)

7. What are the types of software testing?

Test types include: functional testing, performance testing, interface testing

8. What is a test case and what is a test script? What is the relationship between the two?

A specific set of input data, operations, or various environmental settings and expected results provided to the system under test in order to conduct the test.
Test scripts are scripts written for automated testing.
The writing of test scripts must correspond to the corresponding test cases

9. How to write test plans and test cases?

To put it simply, the test plan should have detailed testing strategies and testing methods, reasonable and detailed resource arrangements, etc. As for the test cases, it depends on whether the requirements (including functional and non-functional requirements) are refined to function points and whether they are testable. wait.

10. What is the strategy for software testing?

Software testing strategy: Under the guidance of certain software testing standards and testing specifications, a collection of software testing principles, methods, and methods specified based on the specific environmental constraints of the test project.

Common written test questions in software testing:

True or False (Y=right, N=wrong)

1. The purpose of software testing is to find as many software defects as possible. (Y)

2. Beta testing is a type of acceptance testing. (Y)

3. Acceptance testing is performed by the end user. (N)

4. Testers do not need to submit any artifacts before the project is approved. (Y)

5. Unit testing can discover about 80% of software defects. (Y)

6. Code review is to check whether the source code meets the requirements of the module design. (N)

7. Bottom-up integration requires testers to write drivers. (Y)

8. Load testing is to verify the highest level of capability of the system to be tested. (N)

9. Testers must adhere to principles and will not pass the test if the defects are not repaired. (N)

10. Code reviewers are generally served by testers. (N)

11. We can artificially make the software have no configuration problems. (N)

12. The integration test plan is submitted at the end of the requirements analysis phase. (N)

Multiple choice questions

1. Among the following logic coverage testing methods, the one with the strongest coverage capability is (D)

A. Statement coverageB. Determine coverage C. Conditional coverageD. Condition combination coverage

2. Regarding the difference between black box testing and white box testing, which of the following statements is correct (A)

A.White box testing focuses on program structure, and black box testing focuses on function
B. White-box testing can use automatic testing tools, but black-box testing cannot use tools. 100 In-depth Lectures on Test Questions
C. White box testing requires developer participation, black box testing does not require
D. Black box testing is more widely used than white box testing

3. Regarding the representation of status codes in the HTTP protocol, which of the following statements is incorrect (D)

A.1**: Indicates client error
B.2*: Indicates that the request was successfully received*
C. 3**: Indicates that the request is completed and the customer needs to further refine the request
D. 4**: Indicates server error

4. In Linux. To unpack bugzilla.tar.gz and report in detail the filenames processed by the tar command, you should use the command (A)

A.tar –xvzf bugzilla.tar.gz B.tar –cvzf bugzilla.tar.gz
C.tar –cvzf bugzilla.tar.gz D.tar –cxvf bugzilla.tar.gz

5. In Redhat Linux 9, to install a software package, perl.i386.rpm, and display the installation progress with the # sign during installation, the command that should be used is (A)

A.rpm –ih perl.i386.rpm B.rpm –i perl.i386.rpm
C.rpm –e perl.i386.rpm D.rpm –V perl.i386.rpm

6. In the vi editor of Linux, you want to exit vi without saving the changes. The required command is (C)

A.:qa B.:qw C.:q! D.:!q

7. There are two data tables stored in a database: teacher table (teacher number, teacher name) and course table (course number, course name, teacher number). To quickly find out the courses taught by a certain teacher, create an index as follows The correct method is (C)

A.Create an index on the teacher table by teacher number
B. Create an index on the course schedule by course number
C. Create an index by teacher number on the course schedule
D. Create an index on the teachers table by teacher name

8. To query the status of all books in the book table whose title (bookname) contains "Computer", you can use statement (B)

A. SELECT * FROM book WHERE bookname LIKE 'computer'
B. SELECT * FROM book WHERE book_name LIKE '%computer%'
C. SELECT * FROM book WHERE book_name='computer'

9. Which of the following descriptions about alpha testing is correct: (AD)

A. Alpha testing requires user representatives to participate
B. Alpha testing does not require user representatives to participate
C. Alpha testing is a type of system testing
D. Alpha testing is a type of acceptance testing

10. Who should participate in the software testing plan review meeting? (ABCD)

A.Project manager
B.SQA person in charge
C.Configuration person in charge
D.Testing team

4. The most complete software testing interview questions on the Internet with answers (performance testing + functional testing + interface testing + automated testing)

Performance testing

Briefly describe the performance testing process?

1. Analyze performance requirements.
2. Develop a performance testing plan.
3. Write test cases
4. Set up a test environment and prepare test data
5. Write performance test scripts
6. Optimize performance test scripts.
7. Design test scenarios.
8. Analyze the test results.
9. Regression performance testing.
10. Write a test report.

In what environment and time are your performance tests performed?

We will build an independent performance testing environment for testing. In terms of time,
benchmark testing: do it after functional testing and when the system is relatively stable.
Load test: In the dead of night, when no one is using the system

What is the role of think_time?

Simulate real production user operations and examine the impact on the server.
After confirming that the performance test results are credible, if the following problems are found, follow the ideas provided below to locate the problem.

How to do performance testing if there is a verification code function?

1. Temporarily block the verification code and restore it after completing the performance test.
2. Use the universal verification code.

What are the performance test indicators?

Response time
  Throughput
  cpu
  memory
  io
  disk

Functional testing

What are your views on the software testing industry? Why should you choose software testing?

Software testing is a promising career. I have more experience in this industry. I think I am very suitable for this position and want to continue firmly.

What should you do if a bug is discovered during testing but the developer thinks it is not a bug?

First, submit the problem to the defect management platform for filing and registration. Then, to obtain the basis and standards for judgment:

Based on the requirements specification, product description, design documents, etc., confirm whether the actual results are inconsistent with the plan, and provide direct basis for whether the defects are confirmed;

If there is no documented basis, you can use the general characteristics of similar software to explain whether there are inconsistencies to confirm whether it is a defect;

Confirm whether it is a defect based on the user's general usage habits;

Discuss with designers, developers, product managers and other relevant personnel to confirm whether it is a defect.

Reasonable discussion, explain the reasons for your judgment to the test manager, be objective and rigorous, and do not mix personal emotions. Wait for the product manager to make the final decision. If there is still a dispute, confirm with the test manager. When sending the online report, leave the risk of this bug as an early warning so that everyone on the project team is aware of the situation.

What are the methods for designing test cases?

Equivalence classes, boundary values, decision tables, cause and effect diagrams.

What is the strategy for software testing?

Software testing strategy: Under the guidance of certain software testing standards and testing specifications, a collection of software testing principles, methods, and methods specified based on the specific environmental constraints of the test project.

What are the tasks of testers in the software development process?

(1) Find bugs in the system as early as possible;

(2) Avoid the occurrence of defects in the software development process;

(3) Measure the quality of software and ensure the quality of the system;

(4) Pay attention to user needs and ensure that the system meets user needs. The overall goal is: to ensure the quality of the software.

Interface automated testing

What is the difference between get and post?

For Get request, the browser will send http header and data together, and the server returns 200 response code. For
Psot request, the browser sends header first, the server responds with 100 (continue), and then sends data. The server returns 200 response code.
Security ratio of Post get high

How to deal with associations in interface automation?

Pass the result returned by the previous request into the parameters of the next request, reflect the result of the request to a class attribute (using the setattr() function), and call this class attribute on the next request

How to verify the results of automated tests?

Assertion, expected results versus actual results

Database verification, query the data in the database according to the test scenario and compare it with the data before the request

Tell me about your understanding of parameterization and data-driven?

This question involves two very important concepts in automated testing: parameterization and data-driven. In fact, in my opinion, the two of them are the same thing - the separation of test scripts and data. For example: your login script originally wrote a fixed set of test data: username and password. Every time I change the data, I have to change the script. I want to separate the data and the script, and then extract the user name and password to the outside. It is best to put them in an external file. This is called parameterization.

For performance testing, I want to ensure that each virtual user logs in with a different username and password, which is closer to the real business scenario. For automated testing, I want to test multiple data combinations – such as various types of usernames and passwords. Regardless of the scenario, there are multiple sets of data, but the login operation process remains unchanged. This is called data-driven.

Unit testing frameworks for general development languages ​​have data-driven functions, such as Python's ddt module and TestNG's DataProvider annotations.

How to clean up the garbage data generated by the interface?

As above, for data creation and data cleaning, you need to use python to connect to the database to perform addition, deletion, modification and query operations.
Test case pre-operation, setUp does data preparation,
and post-operation, tearDown does data cleaning.

WebUI automated testing

How to determine whether an element exists in selenium?

There is no native method to determine whether an element exists. Generally, we can determine by positioning the element + exception capture.

Can hidden or display = none elements in selenium be located?
No, if you want to click, you can use js to remove the attribute of dispalay=none.

How to improve the execution speed of selenium scripts?

1. Optimize test cases.
2. Reduce unnecessary steps.
3. Interrupt page loading.
4. Use Selenium grid.

What is continuous integration?

Frequently integrate code into the trunk and continuously structure the project so that errors can be quickly discovered and prevent branches from significantly deviating from the trunk.

What is layered testing?

1.Data layer
2.Interface layer'
3.UI layer

App testing

Please explain what is the difference between the systems of IOS phones and Android phones?

The two operating mechanisms are different: IOS uses a sandbox operating mechanism, and Android uses a virtual machine operating mechanism.

The two background systems are different: no third-party program can run in the background in IOS; any program in Android can run in the background and will not be closed until there is no memory.

What aspects do you think the app’s performance testing, that is, special testing, needs to focus on?

Memory, CPU usage, power consumption, traffic, etc.

Please briefly introduce the four-layer architecture of the Android system?

From top to bottom, they are the application layer, application framework layer, system runtime layer, and Linux core layer.

What would you do if your app crashes or ANR occurs during the trial?

You can filter out the logs first: adb logcat | findstr xxxxx (filter log information), and then search for keywords, such as: exception, crash, to see which methods or exceptions caused the problem, and after initially locating the cause of the problem , which can be left to developers to specifically find out the underlying causes and fix them.

Please briefly introduce the practical Android UI automation testing tools?

appium: It is a mobile automation framework that can be used to test native applications, mobile web applications and hybrid applications, and is cross-platform.

robotium: is a foreign Android automated testing framework, mainly for black box automated testing of Android platform applications. It provides APIs that simulate various gesture operations (click, long press, slide, etc.), search and assertion mechanisms, and can Operate various controls.

Full stack automation testing interview questions

1. Web automation testing interview questions

1.Can hidden or display = none elements in Selenium be located?

No, you can write JavaScript to change the hidden value in the tag to 0 first, and then locate the element.

2.How to ensure the success rate of operating elements in Selenium? In other words, how can I ensure that the element I click on is clickable?

Add element intelligent waiting time driver.implicitly_wait(30)
Add mandatory waiting time (such as writing sleep in python)
try method to position id, name, clas, x path, css selector in different ways. If the first method fails, you can automatically try the third one. Two kinds

3. How to improve the execution speed of Selenium scripts?

Code optimization, multitasking, and distributed deployment can all improve script execution speed.

4. Use cases often become unstable during operation. That is to say, if they can pass this time, they will not pass next time. How to improve the stability of use cases?

time.sleep( )
driver.implicitly_wait(30)
mostly uses try to capture and handle exceptions

5. What is your execution strategy for automation use cases?

Automated testing and software development are essentially the same. Use automated testing tools and analyze test requirements to design automated test cases, thereby building an automated testing framework, designing and writing automated scripts, verifying the correctness of the test scripts, and finally completing automation. Test the test script (that is, the application software whose main function is testing) and output the test results.

6. Is it necessary to connect to the database for data verification during automated testing?

Data verification from the database level can make it easier to verify whether the data processing of the system is correct. After the data processing logic is normal, verification at the UI level also needs to be done.

7. Among these attributes, id, name, class, xpath, and css selector, which one do you prefer the most and why?

Almost all elements of css and xpath can be positioned, but their shortcoming is that the position is easy to change after changing the element on the page, so the first thing to use is id or name.

8. How to locate dynamically loaded elements on the page?

Trigger the event of dynamic loading element until the dynamic element appears and position it

9. How to locate elements whose attributes change dynamically?

xpath or css positioning through siblings, parents, and children

10. After clicking the link, will Selenium automatically wait for the page to load?

Will do

11.What is the page object design pattern?

To put it simply, the page is used as an object, and the page object is passed during use to use the corresponding members or methods in the page object, which can better reflect the object-oriented and encapsulation characteristics of object-oriented languages ​​​​(such as java or python).

12. How to highlight an element after positioning it (for debugging purposes)?

Use JavaScript and other scripts to reset element attributes and add backgrounds and borders to positioned elements.

13. What is an assertion?

An assertion is a logical expression that specifies a state that a program must have, or a condition that a set of program variables must satisfy at some point during the execution of the program.

14. What do you think is the biggest flaw of automated testing?

Unstable
Reliability
Difficult to maintain
Cost and benefits

2. APPUI automation testing interview questions

1. When the Android APP has insufficient memory, how does the system end the process to obtain memory?

The system gives priority to ending suspended (suspended) processes and releasing memory.

2. What are the common serious problems in APP testing? What are the respective causes?

Common ones include crash and ANR (application unresponsive, stuck), which are generally caused by device fragmentation, large network fluctuations, memory leaks, and coding errors.

3. Please briefly introduce an APP automated testing tool you have used?

Open question with some subjective opinions

Compare the pros and cons of other familiar automation tools.
A brief solution for automation (be brief and please be specific about the key content). (Hint: appnium etc.)

4.What is the difference between Android testing and web testing?

Same point:

Design test cases are based on equivalence classes, boundary values ​​and other methods, and the testing principles are the same;
most use black box testing methods to verify business functions;
it is necessary to check whether the interface layout, style and buttons are beautiful and unified (UI testing);
testing Page loading and page turning speed, login time overflow and other issues (performance testing)
test the stability of the application system;

difference:

Mobile phones are used as communication tools, and some behaviors such as communication will cause APP (interruption testing).
Mobile phone users’ installation and uninstallation of app products: directly upgrade from the previous version/last two versions to the latest one.
The most commonly used tool for web automated testing is selenium, while the more commonly used automation tools for android mobile phone automated testing are monkey, monkeyrunner, and Appium (the testing tools are different)

5.What are the environments for app testing?

Local environment: The mobile phone environment where the app is installed and the automated testing environment built on the computer (such as Android SDK, etc.
).
Server environment: The server deployed by the war package can be accessed through a browser or an app
. (You are accessing the interface of the web program)

6. Briefly introduce the installation steps of Android SDK:

Download jdk and Android sdk,
install jdk, and configure environment variables (java_home, classpath, path)

7. Please briefly introduce the mobile application and its server-side testing points?

Mobile applications mainly include permissions, installation, operation and uninstallation, UI, functions, performance, interruptions, compatibility, security,
regression, upgrades and updates, and user experience. (The 11 major testing points of the app)
The server side has interface testing, performance testing, and security testing.

8. How to determine whether an app bug is a client problem or a background problem

This depends on the business. Generally, there are more problems with data on the front end. The general approach is to submit problems to the front-end development.
They know whether it is their own problem or the problem of the data returned by the background.

9. How to retrieve log information in Android?

Import Android system log information to the local in real time: adb logcat -v time > d:\mylog.log
Run an app and obtain the log information of the app in real time (return information in cmd):
adb shell monkey -p com. android.calendar -v 1000 > d:\mylog2.log

10. Common adb commands:

View currently connected devices: adb devices
Install software: adb install path\xx.apk
Uninstall software: adb uninstall <package name>
Send files from the computer to the device: adb push <local path> <remote path>
adb push C:\ test1.txt /sdcard/
Download the file from the device to the computer: adb pull <remote path> <local path>
adb pull /sdcard/test1.txt D:
Get the log in real time: adb logcat -v time > D:\mylog.log
Log in to the terminal device shell: adb shell
to find the package name/activity name: adb logcat | findstr START
(in the script, the value after cmp= is the package name/activity name)
Start APP Start
adb shell am start -n packageName/activity
Close app
syntax : adb shell am force-stop package name
monitor APP startup time
adb shell am start -W packageName/activity
Monkey command:
adb shell monkey -v -p mypackage 50

11. How to test APP on so many mainstream models?

Our company bought Meizu, Huawei, Xiaomi, iPhone7, iPhone8, iPhone8plus,
and
iPhone

12. App crashes (flashback), what may be the cause?

Too much cache junk: Due to the characteristics of the Android system, if junk files are not cleaned for a long time, it will cause more and more lags. There will also be crashes. Too many
programs are running, resulting in insufficient memory.
Application version compatibility issues: If the application version If it is too low, it will lead to incompatibility and crash. In addition, some new versions may also cause the application to crash during debugging. Solution: If the version is too old, just update to the new version; if the new version crashes, it may be that the application is being revised and debugged. You can uninstall and install the old version.
Check where the APP accesses the network and whether the ImageView in the component can be downloaded normally and displayed on the app page.
Check whether the APP's SDK is compatible with the phone's system.
In some specific situations, such as video playback, when Android 5.0 is upgraded to Android 6.0,
some system APIs are available in the old version but not in the new version. When the time comes to return the object, it will fail and report empty, and the system will A crash occurs

13.What are the startup methods for Appium?

1. Client startup
2. Command line startup

14. Please briefly introduce the Android UI automated testing tools you have used?

appium: is a mobile automation framework that can be used to test native applications, mobile web applications
and hybrid applications, and is cross-platform. Robotium: is a foreign Android automated testing framework, mainly for
black box automated testing of Android platform applications. It provides APIs for simulating various gesture operations (click, long press,
slide, etc.), search and assertion mechanisms , able to operate various controls.

15. Please explain the system differences between Android phones and IOS phones?

The two operating mechanisms are different: IOS uses a sandbox operating mechanism, and Android uses a virtual machine operating mechanism.

The two background systems are different: no third-party program in IOS can run in the background; any program in Android can run in the background and will not be closed until there is no memory.

In IOS, UI commands have the highest permissions, and in Android, data processing instructions have the highest permissions.

3. Interface automation testing interview questions

1.Can Webdriver be used for interface testing?

Interface testing is handled by ready-made modules, and WebDriver is used for WebUI automated testing. If you want to implement interface testing, you can use the Requests module to implement it.

2. According to your understanding, what is the software interface?

It refers to the class or function in the program that is specifically responsible for transmitting or receiving data between different modules and processing it.

3. What is the difference between HTTP and HTTPS protocols?

The https protocol requires you to apply for a certificate from a CA (Certificate Authority, Certificate Authority). Generally, there are fewer free certificates, so it requires a certain fee;
http is a hypertext transfer protocol, and information is transmitted in plain text. The HTTPS protocol is constructed from the SSL+Http protocol. The network protocol for encrypted transmission and identity authentication is
more secure than the http protocol;
http and https use completely different connection methods and use different ports. The former is 80 and the latter is 443;

4.Which layer is HTTPS on?

HTTPS is at the application layer.

5.What is the difference between get and post?

Both POST and GET submit data to the server, and both obtain data from the server.
the difference:

Transmission method: get is transmitted through the address bar, post is transmitted through messages. Transmission
length: the get parameter has a length limit (limited by the URL length), while post has no limit.
GET generates a TCP data packet (for GET request, the browser will Send the http header and data together, the server responds with
200 and returns the data), POST generates two TCP data packets (for POST, the browser sends the header first, the server responds with 100
continue, the browser then sends data, and the server responds with 200 ok and return Data)
The get request parameters will be completely retained in the browsing history, but the parameters in the post will not be retained.
When doing data query, it is recommended to use the GET method; when doing data addition, modification or deletion, it is recommended to use the post method.

6. Common POST data submission methods

There are four main ways: application/x-www-form-urlencoded, multipart/form-data,
application/json, text/xml, etc.

7. What is the HTTP protocol stateless protocol? How to solve the HTTP protocol stateless protocol?

Stateless means that the protocol has no memory ability for transaction processing, and the server does not know the state of the client. That is, after we
send an HTTP request to the server, the server will send us data according to the request, but after sending it,
no information will be recorded. HTTP is a stateless protocol, which means that each request is independent, and Keep-Alive cannot
change this result. The lack of status means that if subsequent processing requires the previous information, it must be retransmitted, which may result in an
increase in the amount of data transferred per connection. On the other hand, the server responds faster when it does not need previous information. This feature of the HTTP
protocol has advantages and disadvantages. The advantage is that it liberates the server, and each request "clicks to the end" will not cause
unnecessary connection occupation. The disadvantage is that each request will transmit a large amount of repeated content information. After the emergence of web applications that dynamically interact between clients and servers
, the stateless nature of HTTP has seriously hindered the implementation of these applications. After all,
interaction needs to connect the past and the future. A simple shopping cart program also needs to know what the user has chosen before. commodity. As a result,
two technologies for maintaining HTTP connection status came into being, one is Cookie and the other is Session.

8.The difference between cookie and session

Cookie data is stored on the client's browser, and session data is stored on the server.
Cookies are not very secure. Others can analyze the cookies stored locally and conduct cookie deception. Considering security,
session data should be used .
The session will be stored on the server for a certain period of time. . When visits increase, it will take up more of your server's performance. In order to
reduce server performance, cookies should be used.
The data saved by a single cookie cannot exceed 4K. Many browsers limit a site to save a maximum of 20 cookies, which
can store login information and other important information. For session; other information needs to be saved and can be placed in cookies

9. Common return status codes in request interfaces

1xx – Information prompt (indicates a provisional response. The client is prepared to receive one or more 1xx responses before receiving a regular response)
2xx – Success (indicates that the server successfully accepted the client request)
3xx – Redirect (client browsing The browser must take more action to fulfill the request. For example, the browser may have to request a different page on the server, or repeat the request through a proxy server) 4xx – Client Error (Sending error, there is a problem with the client. For example, the
client The client requested a page that does not exist, and the client did not provide valid ID verification information)
5xx – Server error (the server cannot complete the request because it encountered an error).
Common return codes are:

200 OK - [GET]: The server successfully returns the data requested by the user
201 CREATED - [POST/PUT/PATCH]: The user successfully creates or modifies data
202 Acepted - [*]: Indicates that a request has entered the background queue (asynchronous task)
204 NO CONTENT - [DELETE]: The user successfully deleted the data
400 INVALID REQUEST - [POST/PUT/PATCH]: The request issued by the user was incorrect, and the server did not create or modify the data.
401 Unauthorized -[*]: Indicates that the user does not have permission. (Incorrect token, user name, password)
403 Forbidden -[*]: Indicates that the user is authorized (as opposed to 401 error), but access is prohibited
404 NOT FOUND -[*]: The request issued by the user does not exist for the request Record, the server did not perform the operation, the operation is idempotent
406 Not Acceptable - [GET]: The format requested by the user is not available (for example, the user requested JSON format, but only XML format)
500 INTERNAL SERVER ERROR - [*]: Occurred on the server Error, the user will not be able to tell whether the request made was successful or not.

10.What is DNS?

DNS is the Domain Name System. DNS is used for domain name resolution. After you enter
the URL online, it will convert it into an IP and then access the other party's server. Without it, you would have to memorize it if you want to go to Baidu. You only need to remember the IP address of Baidu,
but with DNS processing, you only need to remember the domain name of the corresponding website, that is, the URL.

11. How does your company do interface testing?

The actual difference between interface testing and general testing is the design part of the test case.

Get the interface specification.
Design interface test function use cases (mainly from the user's perspective to see whether the interface can achieve business requirements, use case design is a set of black box use cases).
Various input parameter verifications (normal conditions, abnormal conditions include incorrect number of input parameters, incorrect types, optional/required, and consideration of mutually exclusive or related parameters).
Various verifications of interface return values ​​(in line with interface document requirements)
Understand the interface implementation logic and achieve logic coverage (statements/conditions/branch/judgment/…)
Can the interface be executed concurrently, is it safe, and does the performance meet the requirements?
Use tools or write by yourself code to verify.
Finding problems is the same as functional testing. Report a bug when it is time to report a bug, and track the status of the tracking status.

12. How to design interface test cases?

Generally, the following aspects need to be considered when designing interface test cases:

Whether the prerequisites are met.
Some interfaces need to meet the prerequisites before they can successfully obtain data. Common
reverse use cases that require login Token: design 0~n use cases based on whether the preconditions are met (assumed to be n conditions)

Whether to carry parameters with default values.
Forward use case: parameters with default values ​​are not filled in and no parameters are passed. All required parameters are filled with correct and existing "regular" values. Others are
not filled in. Design 1 use case.

Business rules and functional requirements.
Depending on the time situation and the interface parameter description, it may be necessary to design N forward use cases and reverse use cases.

Whether the parameters are required?
Reverse use case: For each required parameter, design a reverse use case with an empty parameter value.

Is there any correlation between parameters
? Some parameters have a mutually restrictive relationship with each other.

Parameter data type restrictions
Reverse use case: For each parameter, design a reverse use case in which the parameter value type does not match

The data range value limit of the parameter data type itself.
Forward use case: For all parameters, design a forward use case in which the parameter value of each parameter is the maximum value within the data range.

13. When you do interface testing, what do you test?

Usability testing:
According to the agreed protocol, method, format content, transmit data to the interface and return the expected results after processing:

Whether the interface function is implemented correctly;
return value testing - in addition to the correct content, the return value must also be of correct type to ensure that the caller can parse it correctly;
parameter value boundary value and equivalence class testing;
error and exception handling testing

If you enter abnormal values ​​(null values, special characters, exceeding the agreed length, etc.), the interface can handle them correctly and respond as expected; if you
enter incorrect parameters, the interface can handle them correctly and respond as expected; if
you input more parameters and less parameters, the interface can handle them correctly and respond as expected. Correct processing and response as expected;
testing of incorrect transmission data format (such as json format written as form format);
security testing, mainly refers to the security of transmitted data:

Whether sensitive data (such as passwords, secret keys), etc. are encrypted for transmission;
whether the returned data contains sensitive data, such as user passwords, complete user bank account information, etc.;
whether the interface performs security verification on incoming data, such as identity ID plus token Similar verification;
whether the interface prevents malicious requests (such as a large number of forged request interfaces causing the server to crash);
performance testing, such as the response time of the interface, concurrent processing capabilities, and stress test processing:

Concurrent requests to the same interface (especially POST requests), the processing of the interface (such as inserting the same record, causing data errors, causing system failures); the interface
response time is within the range that the user can tolerate;
what to do for interfaces with large request volume Stress testing to determine whether the biggest bottleneck points meet current business needs;

14.What tools do you usually use to test interfaces?

Commonly used http protocol interface testing tools, such as: postman, fiddler, jmeter; webService interface uses SoapUI,
jmeter, etc.

15. There is no interface document. How to do interface testing?

This question mainly tests emotional intelligence, which in layman’s terms means the ability to fool. First, you can fool the interviewer. Then, it’s a blind test. Be prepared to take the blame at any time. Of course, you can’t answer the interviewer’s surprise (psychological mmp,
face Smiling), then it’s time to fool around.
Use a packet capture tool to capture the interface, and then conduct targeted tests. If the field information in the interface is unclear, find time to focus on
developing solutions. (Common packet capture tools Fiddler, Charles, etc.)

16. In the process of manual interface testing or automated interface testing, how to deal with data dependencies on upstream and downstream interfaces?

Use a global variable to process dependent data, such as returning a token after logging in. If other interfaces require this token,
use a global variable to pass the token parameter.

17. How to test interfaces that rely on third-party data?

After mocking, the interviewer will ask you if you want to mock, and then you can continue to dig along the pit and build a mock service.

18. In interface testing, how to test interfaces that depend on login status?

The essence of the interface that relies on the login status is that each time a request is sent, a session or cookie is required to
send it successfully. The necessary session or cookie is added when constructing a POST request.

19. How to simulate a weak network for testing?

Both Fiddler and Charles can simulate weak network testing. What we usually call simulated packet loss is also simulated weak network testing. For
details, please see "Several Weak Network Simulation Methods, There Is Always One Suitable for You"

20. What bugs have you found during your usual interface testing?

The interviewer asks this question mainly because he wants to know if you have really done interface testing. After all, many friends’ resumes are now packaged (without packaging, there will be no interview opportunities. There is no way, in order to survive, you can understand). Common mistakes,
interface Not implemented, results not returned as agreed, boundary value processing errors, etc.
When abnormal values ​​are entered (null values, special characters, exceeding the agreed length, etc.), the interface throws an error and is not encapsulated;
when incorrect parameters are entered, more or less parameters are entered, errors may occur in the interface;
security issues, such as clear text transmission , the returned results contain sensitive information, user identity information is not verified, malicious requests are not intercepted, etc.;
performance issues, such as concurrent insertion of multiple identical operations into the interface, too long response time, bottlenecks in interface stress testing, etc.;

21. When an exception occurs in an interface, how do you analyze the exception?

First capture the packet, use the fiddler (charles) tool to capture the packet, or the F12 debugging tool on the browser; if it is on the APP, use Fiddler
as a proxy, and set the proxy through the mobile phone to view the request and return messages;
check the back-end log, such as The Linux system connects to the server through xhell, checks the interface log, and checks whether there is any error message (command: tail -f log file);

22. How to analyze whether a bug is in the front-end or the back-end?

Usually when bugs are raised, front-end development and back-end development always argue and do not admit that it is the other party's bug.
This situation is easy to judge. First capture the packet and look at the request message. Then look at the interface document to see if there is any problem with the request message. If there is a problem, the data
sent by the front end is wrong.
If there is no problem with the request message, then look at the return message. , the returned data is incorrect, that is a problem with back-end development.

23. Do you do interface test automation?

Nowadays, for a large number of applications, it is generally recommended to implement interface test automation, which has low maintenance costs and high profits. There are many commonly used tools
, such as Jmeter, Robot Framework, pytest, etc.

24. List how many JMeter listeners?

Some of the JMeter listeners are:
Collection Report
Summary Report
View Result Tree
View Result in Table Graphical
Result
BeanShell Listener
Summary Report etc.

25. Data-driven testing in python

In unittest, there is no built-in data driver. We have to use ddt to implement it. First, we have to
install ddt in the python operating environment. Use the following command to install
pip install ddt .
Another test framework, pytest, has its own data driver implementation.
Parameterization is achieved through @pytest.mark.parametrize(argnames,argvalues).
You can also use python to read and drive data according to your own needs.

26. How to deal with associations in interface automation?

Pass the result returned by the previous request into the parameters of the next request, reflect the request result to a class attribute (using the
setattr() function), and call this class attribute on the next request

27. How to verify the results of automated testing?

Assertion, compare the expected results with the actual results.
Database verification, query the data in the database according to the test scenario and compare it with the data before the request.

28. Specifically how automation is applied in this project, and your analysis of the automation results

After completing the design and implementation of all automated testing frameworks, conduct interface testing, then integrate it into
Jenkins, configure scheduled execution, generate html reports, check the test pass rate, and check the interface functions.
Perform regression testing and new functions every time a version is released. Development before testing.

Technical assistance

Finally, I would like to share a collection of self-study tutorials on software testing here. It should be very helpful to friends who are developing in the testing industry. If you are in need, you can [click on the small card at the end of the article to receive it for free] . In addition to basic introductory resources, bloggers also collect a lot of advanced automation resources. From theory to practice, only by integrating knowledge and action can you truly master it. The full set of content has been packaged on the network disk, and the total content is close to 500 G.

☑ 215 episodes - a complete set of video courses from zero to mastery
☑ [Courseware + Source Code] - complete supporting tutorials
☑ 18 sets - source code for practical testing projects
☑ 37 sets - testing tool software package
☑ 268 questions - real interview questions
☑ 200 templates - Interview resume template, test plan template, software test report template, test analysis template, test plan template, performance test report, performance test report, performance test script case template (complete information)

These materials should be the most comprehensive and complete preparation warehouse for friends who do [software testing]. This warehouse has also accompanied me through the most difficult journey. I hope it can also help you! Everything must be done early, especially in the technical industry, where technical skills must be improved.

Guess you like

Origin blog.csdn.net/huace3852/article/details/133084985