In the software testing interview, tell me the most difficult question you have ever encountered

 During the test interview, the interviewer often presents a simple scene for everyone to design test points to test everyone’s test design ability. The questions seem simple but actually contain murderous intentions. Testers need to make different answers according to their working years. Can pass.

If you work for 1-2 years, then you only need to answer the functional test points, but the functional points considered must be comprehensive;

If you work for 3-4 years, in addition to functions, you also need to consider performance and user experience;

If you have worked for more than 4 years, then you need to consider more comprehensively, and you need to consider security testing and compatibility testing.

Here I will start by throwing bricks and stones, taking the login of the web system as an example to design a use case, and let everyone see how many test points can be designed for the most commonly used login. (We only consider logging in to the web system with a user name and password, and do not consider mobile phone verification codes, mobile phone scanning codes, and third-party logins)

Functional use case design points:

1. Registered user name and correct password, verify whether the login is successful

2. Registered user name and incorrect password, whether the verification is successful or not, and the prompt information is correct

3. For unregistered user names and arbitrary passwords, verify whether the login fails and the prompt information is correct

4. The account is not activated to log in, and the verification fails to log in

5. The disabled user logs in, verify whether the login fails

6. Both the user name and password are empty, verify whether the login fails, and the prompt information is correct

7. One of the user name and password is empty, verify whether the login fails, and the prompt information is correct

8. Whether the password box on the page is encrypted and displayed

9. After the user logs in successfully but the session times out, whether to continue the operation will be redirected to the user login interface

10. Whether users of different levels, such as administrators and ordinary users, have correct permissions after logging in to the system

11. Whether the default focus of the browser page is located in the user input box

12. Whether the shortcut keys Tab and Enter can be used normally

13. Whether the user name and password support special characters and Chinese

14. After successful logout, click the back button of the browser, whether it is possible to continue the operating system

15. Under different browsers, verify the display and function correctness of the login page

16. Verify that the login UI page design is beautiful

Security test case design points:

1. Whether the storage in the user password database is encrypted

2. Whether the user password is encrypted during network transmission

3. Whether the password has a validity period, and whether the password needs to be changed after the password validity period expires

4. If you do not log in, directly enter the URL address after login in the browser to verify whether it will redirect you to the user login interface

5. Does the password input box not support copy and paste?

6. Whether the password entered in the password input box can be viewed in the browser developer code mode

7. Is there any sql injection vulnerability in the user name and password input boxes?

8. Whether there is an XSS cross-site scripting attack vulnerability in the user name and password input boxes

9. Whether to lock the account in the case of multiple consecutive login failures

10. The same user has logged in on multiple terminals (browser, mobile phone, etc.) successively to verify whether the login is mutually exclusive

12. Whether the password can be remembered, whether the remembered password is stored encrypted, whether the remembered password has an expiration date, and whether the password is cleared after the expiration date

13. Password strength and complexity verification

Use case design points for performance stress testing:

1. Whether the response time of single-user login meets the requirements

2. Whether the response time of user login in a high-concurrency scenario meets the requirements

3. Whether the hardware resources of the server meet expectations in a high-concurrency scenario (considering the resource utilization of the network, disk, CPU, and memory)

There will also be omissions in the design of the above test points, but if you can name these test points during the interview, I believe the interviewer will be satisfied!

Software testing classic interview questions

1. What is your testing career development?
  The more testing experience, the higher the testing ability. So my career development needs time to accumulate, step by step toward a senior test engineer. And I also have a preliminary career plan, accumulate testing experience in the first 3 years, ask myself according to the key points of how to be a good test engineer, constantly update myself and correct myself, and do a good job in testing tasks.

2. What qualities do you think testers need to have?
  To do testing, they should have a certain coordination ability, because testers often have to deal with some problems in contact with developers. If they are not handled well, some conflicts will arise, and the work will not be good. Do. And testers must have a certain amount of patience, sometimes doing tests is very boring. In addition to being patient, testers cannot let go of every possible error.

3. Why are you able to do testing?
  Although my testing technology is not very mature, I think I can still be competent for software testing, because software testing not only requires good technology, but also has certain communication skills. Patience, careful and other external factors. Taken together, I think I am qualified for this job.

4. What is the purpose of testing?
  The purpose of testing is to find out the errors in the software product and make the software meet the user's requirements as much as possible. Of course, it is impossible for software testing to find all errors.

5. What are the stages of testing?
  Generally speaking, it is divided into 5 stages: unit testing, integration testing, confirmation testing, system testing, acceptance testing

6. The test object, purpose, test basis, and test method of the unit test? The
  test object is the program error inside the module, and the purpose is to eliminate the errors and defects in the logic and function of the partial module. The test basis is the detailed design of the module, and the test method is the white box test.

7. How to treat overtime?
  I don’t have much opinion on overtime, but I still think that if the time can be arranged reasonably, there won’t be too much overtime.

8. Combining your previous study and work experience, how do you think the test should be done.
  According to my previous work and study experience, I think that to do a good job, you must first have a good communication. Only when the communication is barrier-free, can there be good collaboration and better efficiency. The other thing is that the technology must pass the test , To do the test, you must have enough patience and a good working habit. If you don’t understand, you should ask, and communicate with colleagues in real time. Only in this way can you do a good job in the test.

9. Why did you choose the software testing industry
  ? Because I knew about the software testing industry before, I think its development prospects are very good.

10. Describe the software development and testing process based on your previous work or study experience, which roles are in charge, and what you do. There
  must be architects, development managers, test managers, programmers, and testers. I am mainly responsible for executing test cases for the assigned modules.

11. Tell me about your understanding of software testing/quality assurance based on your experience.
  Software quality assurance and testing are a batch of test cases carefully designed according to the specifications in the software development phase and the internal structure of the program (that is, input data and expected Output results), and run the program according to these test cases to find the wrong process. It is the testing of various aspects of an application to check its functionality, language validity, and its layout.

12. What is the process of software testing?
  Requirements survey: comprehensively understand the system overview, application fields, software development cycle, software development environment, development organization, time arrangement, functional requirements, performance requirements, quality requirements and testing requirements, etc. Estimates of personnel, time and effort required for the project and project quotations based on the system overview.

  Develop a preliminary project plan.

  Test preparation: organizing the test team, training, setting up the test and management environment, etc.

  Test design: carry out test design for each test item according to the test requirements, including the design of test cases and the development of test scripts.

  Test implementation: implement the test according to the test plan.

  Test evaluation: According to the test results, a test evaluation report is issued.

13. What do you understand about SQA's responsibilities and work activities (such as software measurement)?
  SQA is a project team independent of software development. By monitoring the software development process, it ensures that the software development process follows the specified CMM procedures (if any) Corresponding CMM regulations), timely put forward suggestions and improvement plans for non-conformity items, and report to senior managers for problem solving when necessary. In this way, the introduction of defects is prevented, thereby reducing the maintenance cost of later software. The main work activities of SQA include formulating SQA work plan, participating in the review of stage products, auditing process quality, functional configuration and physical configuration, etc.; measuring the data generated during the project development process, etc.

14. Talk about your understanding of software configuration management.
  During the development process of the project, corresponding configuration management tools should be used to control the change of configuration items (including the products of each stage). The use of configuration management depends on the project size, complexity and risk. s level. The larger the software, the more important configuration management becomes. Also in configuration management, there is a very important concept, that is, the baseline, which is the combination of various configuration items at a certain stage. A baseline provides a formal standard, and subsequent work is based on this standard, and only authorized This standard can only be changed later. Configuration management tools mainly include CC, VSS, CVS, SVN, etc. I have only used SVN, and I am not very familiar with other tools.

15. How to write test plans and test cases
  is simpler. The test plan should include detailed test strategies and test methods, reasonable and detailed resource arrangements, etc. As for test cases, it depends on whether the requirements (including functional and non-functional requirements) Refine to function points, whether it is testable, etc.

16. Talk about the general situation of mainstream software engineering ideas (such as CMM, CMMI, RUP, XP, PSP, TSP, etc.) and their understanding
  CMM: SW Capability Maturity Model software capability maturity model, its role is the software process Improvement, evaluation and evaluation of software capabilities.

  CMMI: Capability Maturity Model Integration CMMI integrates most of the latest software management practices, and at the same time makes up for the defects in the SW-CMM model.

  RUP: rational unified process is a software engineering process.

  XP: extreme program, which means extreme programming, is suitable for software development of small teams. Like the third question above, such a development process can be adopted in combination with the prototyping method. To understand the importance of testing for xp development, emphasize the concept of testing (focusing on unit testing) first. Programming can significantly improve the quality of code, and continuous integration is good for quickly locating problems.

  PSP and TSP are individual software process and group software process respectively. Everyone knows that CMM just tells you what to do but does not tell you how to do it, so PSP/TSP tells you how to do it in the process of implementing CMM. PSP emphasizes the establishment of personal skills (how to make plans, control quality and how to communicate with others collaborate with each other, etc.). And TSP focuses on producing and delivering high-quality software products (how to effectively plan and manage the project development tasks faced, etc.). In short, the implementation of CMM can never really improve the maturity of capabilities. Only by organically combining the implementation of CMM with the implementation of PSP and TSP can the maximum effectiveness be exerted. Therefore, the software process framework should be an organic integration of CMM/PSP/TSP.

17. How do you ensure the quality of software, that is to say, how do you think the quality of software can be guaranteed to the greatest extent?
  Testing cannot guarantee the quality of software to the greatest extent. The high quality of software is developed and designed, not After testing, it not only needs to monitor the software development process, so that all stages of software development must be carried out in accordance with the specified procedures, but also through the review of the products of each stage, QA's monitoring of the process, and the audit of functions and configurations. To achieve the optimization of development. Of course, testing is also an important way to ensure software quality, and is an important part of software quality assurance engineering.

18. Based on the current national conditions in China, most companies have tight project schedules, fewer personnel, and no or very irregular requirements documents. How do you think the quality of software is guaranteed in this situation? (Most companies want to know most How do you ensure the quality of the software in the face of this difficulty, because these companies are generally in this situation - they don't want to invest too much and want to ensure the quality)
  . It is almost impossible, because there is not enough time for you to test, and the lack of standardized documents prevents the test requirements from being refined enough and targeted. Therefore, as the quality assurance of the company, the project manager should determine the software life cycle model that conforms to the project itself (such as RUP's building materials, prototype method), clarify the project development process and urge the project team to work according to this process. All projects Team members (the project manager is more important) must make a reasonable work plan, strengthen the unit test of the code, carry out continuous integration of the product within the customer's predetermined product delivery date range, etc., if time permits, they can cooperate with the customer to carry out necessary system functional testing.

19. What qualities and skills should a test engineer possess?
  1- Master the basic basic theory of testing

  2- Conduct testing with the attitude of finding out the problems existing in the software, and don't appear as a picky image

  3- Proficient in reading requirements specifications and other documents

  4- Look at the problem from the user's point of view

  5- Have a strong sense of quality

  6-Careful and responsible

  7-Good and effective communication (with developers and customers)

  8-Have previous test experience and can timely and accurately judge where the high-risk area is

20. Some key points for doing a good job in software testing
  1-Testers must undergo relevant training on basic knowledge and theory of testing

  2- Testers must be familiar with system functions and business

  3- The test must be planned, and the test plan must be coordinated with the entire project plan

  4- Writing test cases must be implemented, and the test execution phase must be carried out according to the test cases

  5- Functional and non-functional requirements such as usability, functions, branches, boundaries, performance, etc. must be tested

  6-For complex processes, it is necessary to carry out process branching, combined condition analysis, and then perform equivalence class division to prepare relevant test data

  7- An important part of test design is to prepare specific test data and know which scenario or branch the test data is for testing.

  8- On average, at least one bug should be found in every three test cases for personal tasks, otherwise it can only mean that the quality of the test cases is not good

  9- Except for the repeated tests built every day, test automation can be considered, and others should not be considered for the time being.

21. Cultivate the quality of software testers
  1- First, you should be interested in software testing and have confidence in yourself. If you have these two points, then no matter what difficulties you encounter during the development process, you will definitely be able to overcome them

  2- Be good at doubting. In fact, there is no absolute right. There are always mistakes. I have a rebellious mentality. What others think is impossible, I think it may happen. Others think it is right, but I think it is not right.

  3- The spirit of breaking the casserole and asking the end, for the BUG that only appeared once, we must find out the reason, and we will never give up until we solve it.

  4- Keep a good mood, otherwise you may not be able to do a good job in the test. Don't bring the unpleasant emotions in your life to work.

  5- Be careful when testing, not all bugs can be found easily, you must be careful to find these bugs.

  6-Be flexible, be smart, and create more examples that are prone to bugs.

  7- When possible, communicate with customers more, they have what you need.

  8-Put yourself in the customer's shoes and test the system from their point of view.

  9- Don't let the programmer convince you with the words "this can't happen", instead, you should convince him that in the customer psychology, it is not like this

  10-Consider the problem in a comprehensive way, and consider the problem in combination with the needs of customers, business processes and system architecture.

  11- Don't complicate the question. This is contradictory to the previous point. If you are a novice, don't worry about this for now, because it will be discussed and resolved by your group members in the end.

  12-Pursue perfection, for new testers, strive for perfection, it's good for you, although some things can't be done, you should try.

  13-Sense of humor, good communication with the development team is the key, try to find a BUG killer for your development team, or say to them "I can't believe that the program you wrote has not found a BUG until now" .

22. Why do you need to carry out testing work in a team?
  Because it is difficult to know the quality of the software before it is released. Just like ISO quality certification, testing also requires quality certification. At this time, it is necessary to be in the team Work in software testing. In the process of testing, the problems in the software are found, and the developers are notified and corrected in time. When the release is about to be released, the quality of the software can be obtained from the test report.

23. What types of software testing are you familiar with?
  The testing types include: functional testing, performance testing, interface testing

  Functional testing occupies the largest proportion of testing work, and functional testing is also called black box testing.

  Performance testing is to test various performance indicators of the system by simulating various normal, peak and abnormal load conditions through automated testing tools. Both load testing and stress testing are performance testing, and they can be combined.

  Interface testing, the interface is the most direct layer of interaction between the software and the user, and the quality of the interface determines the user's first impression of the software.

  The difference is that functional testing focuses on all the functions of the product, taking into account every detailed function and every possible functional problem. Performance testing mainly focuses on the stability and robustness of the product as a whole under multi-user concurrency. Interface testing focuses on content related to user experience, whether the user has used the product when using it, whether it is easy to understand, and whether it is standardized (users input invalid data unintentionally, of course, considering the experiential nature, warnings should not be too rude). When doing a certain performance test, it may be a function point first, and it must first ensure that its function is correct, and then consider the performance issue.

24. What do you think is the key to doing a good job in test case design?
  The key to white-box test case design is to cover as much internal program logic structure as possible with fewer use cases. The key to black-box test case design is also to cover module output and input interfaces with fewer use cases. It is impossible to test thoroughly to find the most problems in a reasonable amount of time with the fewest use cases. The black-box testing of software means that the test is carried out at the interface of the software. This method regards the test object as a black box, and the testers do not consider the logical structure and internal characteristics of the program at all, only according to the requirements specification of the program. Manual, to check that the program functions as it is described. Therefore, black box testing is also called functional testing or data-driven testing. Black box testing is mainly to find the following types of errors:

  1- Are there any incorrect or missing features

  2- On the interface, can the input be accepted correctly? Can the correct result be output.

  3- Whether there is a data structure error or an access error to external information (such as a data file)

  4-Whether the performance can meet the requirements

  5- Whether there is an initialization or termination error

  White box testing of software is a detailed inspection of the procedural details of the software. This method regards the test object as an open box, which allows testers to use the internal logical structure and related information of the program to design or select test cases and test all logical paths of the program. Determine whether the actual state is consistent with the expected state by examining the program state at various points. Therefore, white box testing is also called combined testing or logic-driven testing. White box testing mainly wants to check the program modules as follows:

  1-Test all independent execution paths of program modules at least once.

  2- For all logical judgments, the two situations of taking "true" and taking "false" can be tested at least once.

  3- Execute the loop body within the bounds of the loop and within the bounds of the run.

  4- Test the validity of internal data structures, etc.

25. Please introduce the meaning of various test types in detail
  1-Unit test (module test) is a small piece of code written by the developer to check whether a small and clear function of the tested code is correct. Generally speaking, a unit test is used to judge the behavior of a specific function under a specific condition (or scenario). Unit testing is done by the programmers themselves, and it is the programmers who ultimately benefit from it. It can be said that programmers are responsible for writing functional code, and at the same time they are also responsible for writing unit tests for their own code. Unit testing is performed to prove that the behavior of this code is consistent with our expectations.

  2- Integration testing (also called assembly testing, joint testing) is a logical extension of unit testing. In its simplest form, two tested units are combined into a component and the interface between them is tested. From this level, a component refers to the integrated aggregation of multiple units. In a real-world program, many units are combined into components, and these components are aggregated into larger parts of the program. The approach is to test combinations of fragments, and eventually extend the process, to test your module with other groups of modules. Finally, all the modules that make up the process are tested together.

  3- System testing is to assemble the tested subsystems into a complete system for testing. It is an effective method to verify whether the system can indeed provide the functions specified in the system scheme specification. (Common joint debugging test). The purpose of system testing is to conduct a comprehensive test on the final software system to ensure that the final software system meets the product requirements and follows the system design.

  4- Acceptance testing is the last testing operation before deploying the software. The purpose of acceptance testing is to ensure that the software is ready and ready for users to perform its intended functions and tasks. Acceptance testing demonstrates to future users that the system works as ordered. After the integration test, all the modules have been assembled into a complete software system according to the design, and the interface errors have been basically eliminated. Then, the validity of the software should be further verified. This is the task of the acceptance test, that is, the functions and functions of the software. Performance is as users can reasonably expect.

26. What is the purpose of the test planning work? What are the contents of the test planning work? Which of them are the most important? The software test plan
  is a programmatic document that knows the test process, including product overview, test strategy, test method, test Area, test configuration, test cycle, test resources, test communication, risk analysis, etc. With the help of the software test plan, the project members involved in the test, especially the test managers, can clarify the test tasks and test methods, maintain smooth communication in the test implementation process, track and control the test progress, and deal with various changes in the test process.

  There is a strategic and tactical relationship between the test plan and the test specification and test cases. The test plan mainly plans the scope, method and resource allocation of the test activity from a macro perspective, while the test specification and test cases are the specific tactics for completing the test task. So the most important ones are the test strategy and test method (it is best to review first).

27. What do you think is the key to doing a good job in the test plan?
  1- Clarify the goal of the test and enhance the practicability of the test plan

  The important purpose of writing a software test plan is to enable the testing process to discover more software defects, so the value of a software test plan depends on its ability to help manage test projects and find out potential software defects. Therefore, the test scope in the software test plan must highly cover the functional requirements, the test methods must be practical, the test tools must be highly practical, easy to use, and the test results generated are accurate

  2- Adhere to the "5W" rules, clarify the content and process

  The "5W" rule refers to "WHAT (what to do)", "WHY (why do it)", "WHEN (when to do it)", "WHERE (where)", "HOW (how to do it)". Using the "5W" rule to create a software test plan can help the test team understand the purpose of the test (WHY), clarify the scope and content of the test (WHAT), determine the start and end date of the test (WHEN), and point out the methods and tools of the test ( HOW), giving the location (WHERE) where the test documents and software are stored.

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

  After the test plan is completed, if it has not been reviewed, it will be sent directly to the test team. The content of the test plan may be inaccurate or omit the test content, or the test scope may increase or decrease due to changes in software requirements, and the content of the test plan is not updated in time, misleading the test. executive staff.

  4- Create test plan and test detailed specifications, test cases respectively

  The detailed test technical indicators should be included in the independently created test detailed specification document, and the test cases used to guide the test team's execution process should be placed in the independently created test case document or test case management database. There is a strategic and tactical relationship between the test plan and the test specification and test cases. The test plan mainly plans the scope, method and resource allocation of the test activity from a macro perspective, while the test specification and test cases are the specific tactics for completing the test task.

28. When the developer says it’s not a BUG, ​​how do you deal with it?
  The developer says it’s not a BUG. There are two situations. One is that the requirements are not determined, so I can do this. At this time, I can find a product manager to confirm whether it is necessary change. After the 3 parties discuss and confirm it, we will see whether to change it. The second is that this situation cannot happen, so there is no need to modify it. At this time, I can first say what is the BUG as much as possible? If it is discovered by the user or something goes wrong, what will be the bad result? The programmer may Will give you many reasons, and you can refute his explanation. If it still doesn't work, then I can raise this issue and confirm with the development manager and test manager. If you want to modify it, you can change it. If you don't want to modify it, don't change it. In fact, some of them are really not bugs, and I just write them into the test documents in the suggested way. If the developers don’t modify them, there is no big problem. If it is not a bug, you must stick to your position and let the problem be finally confirmed.

29. What do you think is the advantage of testing?
  The advantage lies in my unswerving confidence and enthusiasm for testing. Although I am not experienced enough, I am confident that the basic skills required by testing can be used in my work.

30. What is a system bottleneck?
  A bottleneck mainly refers to the fact that one or several aspects of the software system composed of the entire software and hardware cannot meet the specific business requirements of the user. "Specific" means that the bottleneck will appear under certain conditions, because After all, most systems are put into use before.

  Strictly speaking from a technical point of view, all systems will have bottlenecks, because the resource allocation of most systems is not coordinated. For example, when the CPU usage just reaches 100%, the memory is just exhausted. Therefore, we discuss system bottlenecks from the perspective of application: the key is to see whether the system can meet user needs. When the user uses the system to the limit, the response of the system is still normal. We can think that there is no bottleneck in the system or that the bottleneck will not affect the user's work.

  Therefore, we test the bottleneck of the system mainly to achieve the following two purposes:

  - Discovery of "surface" bottlenecks. It is mainly to simulate the user's operation, find out the bottleneck when the user uses the system to the limit, and then solve the bottleneck, which is the basic goal of performance testing.

  -Find and resolve potential bottlenecks to ensure long-term stability of the system. The main consideration is that when the user expands the system or the business changes in the future, the system can adapt to the change. The system that meets the current needs of users is not the best. The goal of our system design is to ensure that the entire software life cycle of the system can continuously adapt to user changes, or adapt to new changes by simply expanding the system.

Friends who are doing the test can come in and communicate. The group has compiled a lot of learning materials and interview questions, project resumes, etc....

Guess you like

Origin blog.csdn.net/xiao1542/article/details/131859372