Software Testing and Quality Assurance - Review and Interview Question Bank (from hitwh)

Software Testing and Quality Assurance

Peer evaluation questions

  1. Briefly describe the difference between software developers and quality assurance personnel.

    • Software developers are responsible for technical work, and quality assurance personnel are responsible for quality assurance planning, supervision, recording, analysis, and reporting.
    • Software developers ensure the quality of software products by adopting reliable technical methods and measures, conducting formal technical reviews, and executing well-planned software testing. Software quality assurance personnel assist the software development team in obtaining high-quality final products.
  2. Briefly describe the organizational structures of the three SQAs and their respective advantages and disadvantages.

    • Independent SQA department: Establish an independent functional and administrative department—SQA department—in the organizational structure of the entire enterprise, which is at the same level as other functional departments. Advantages: Protect the independence and objectivity of SQA engineers; facilitate resource sharing. Disadvantages: It is difficult for SQA to track and control the process in depth and is often formalistic, making it difficult to find key problems in the process; due to its independence from the project team, problems discovered by SQA engineers cannot be solved in a timely and effective manner.

    • Independent SQA engineer: In this organizational structure, the SQA engineer is a project member and reports to the project manager. Advantages: SQA engineers can go deep into the project and find substantive problems more easily; problems found by SQA engineers can be solved quickly and quickly. Disadvantages: Projects are independent of each other, and there is a lack of communication and exchange between SQA engineers, which is not conducive to the sharing of experience and the overall cultivation and development of SQA; because SQA engineers are affiliated with the project team, their independence and objectivity are lacking.

    • Independent SQA group: This organizational structure is the combined result of the previous two organizational structures. Features: Although the SQA group is not an administrative department, it is relatively independent. At the same time, SQA engineers belong to different project teams and report to the project manager at work. This structure combines the advantages of the above two structures, which not only facilitates the integration of QA into the project team, but also facilitates the sharing of experience between departments, and is also conducive to the improvement of QA capabilities.

  3. Briefly describe what a software defect is

    • From the inside of the product, software defects are various problems such as errors and problems that exist during the development or maintenance of software products;
    • From the outside, software defects are failures or violations of certain functions that the system needs to implement.
  4. Please point out the difference between the two peer review methods of walkthrough and review?

    • The difference between a walkthrough and an inspection is the level of formality. Of these, review is the more formal of the two.
    • The findings of the walkthrough are limited to comments on the document being reviewed, and the findings of the review are combined with efforts to improve the development method itself.
    • Therefore, reviews make a greater contribution to general SQA than walkthroughs.
  5. Briefly describe why you need to review

    • Measured from a cost perspective: the later a defect is discovered, the higher the cost of correction. The important purpose of software review is to reduce a large amount of late rework through software review of defects in the product as early as possible.
    • From a technical perspective: Errors in the previous stage will naturally lead to corresponding errors in the work results of the later stage, and errors will gradually accumulate and become more and more numerous.
    • Measured from the perspective of efficiency: Development engineer: Reduce the time to revise defects and improve programming efficiency; Reduce testing and debugging time. Project leader: Shorten the development cycle; Reduce maintenance costs; Project risks and quality issues are well controlled. Test engineer: Can update more Focus more on the design of test cases to improve testing efficiency. Maintenance personnel: Maintenance work is reduced; product maintainability is enhanced.
  6. Briefly describe the basic measurement principles.

    • Measurements should be based on correct theory for the application area, and the goals of the measurement should be identified in the definition of the measurement;
    • The definition of each technical measurement should be consistent, objective, and unambiguous;
    • Measurements should also be empirically and intuitively convincing;
    • The measurement method strives to be simple and calculable;
    • Measurements should be tailored to best suit specific products and processes, and collection and analysis should be automated whenever possible;
    • Proper statistical techniques should be used to establish relationships between internal product attributes and external characteristics to be measured;
    • The measurement results should be reliable and should not deviate greatly due to some technical problems;
    • Measurement should establish feedback mechanisms.
  7. What is quality management system

    • A quality management system is a management system that directs and controls an organization in terms of quality.
    • In order to achieve the determined quality policy and quality objectives, the organization organically integrates the interrelated or interactive processes such as management responsibilities, resource management, product realization, measurement, analysis and improvement through quality planning to form a quality management system.
  8. How to view the relationship between quality and customers dialectically?

    • The basic relationship between customers and quality is one of interdependence.
    • Customers are the recipients of quality and can directly observe or feel the existence of quality.
    • Quality exists relative to customers, serves customers, and is judged by customers.
  9. Simply evaluate three software quality models: ISO model, McCall model and Boehm model.

    • There are differences: the definitions of software quality characteristics, influencing factors or quality indicators are not completely consistent; the overall ideas to be expressed are very close;
    • The purpose is the same: to construct a software quality structural model integrating software quality factors, criteria, and metrics;
    • The relationship between the first layer (quality characteristics) and the second layer (criteria) of the ISO model is very clear, and there is no cross-relationship like the McCall model and the Boehm model.
  10. Please describe in detail the classic model of software quality costs?

    • In the classic software quality cost model, software quality costs can be divided into control costs and control failure costs.
    • Among them, control costs are further divided into prevention costs and evaluation costs;
    • Control failure costs are further divided into internal failure costs and external failure costs.
    • (1) Prevention costs include investments in establishing software quality infrastructure, updating and improving the infrastructure, and completing routine activities required for its operation.
    • (2) Evaluation costs are spent on the detection of software errors in a specific project or software system.
    • (3) Internal failure costs refer to the costs incurred in correcting errors detected during design review, software testing and acceptance testing before the software is installed at the customer site.
    • (4) External failure costs are limited to the costs of correcting failures detected by the customer or maintenance team after the software system is installed at the customer's site.
  11. What is the difference between software testing and debugging?

    • There are big differences between software testing and debugging in terms of purpose, technology and methods.
    • Testing is to find errors in the software; debugging is to prove the correctness of software development.
    • Testing starts with known conditions, uses predefined programs, and has predictable results. What is unforeseen is whether the program passes the test. Debugging generally starts with unknown internal conditions. Except for statistical debugging, the results are unpredictable. of
    • Testing is planned and requires test design; debugging is not time-constrained.
    • Testing goes through the process of finding errors, correcting them, and retesting; debugging is a process of reasoning.
    • The execution of tests is regulated; the execution of debugging often requires developers to make necessary reasoning and even a "leap" of perception.
    • Testing is often done by independent testing groups without knowledge of the software design; debugging must be done by developers who understand the detailed design.
    • The execution and design of most tests can be supported by tools; when debugging, the main tools developers can use are debuggers.
  12. What is regression testing? What is the purpose of regression testing?

    • Regression testing refers to re-testing the original test cases after modifying the source code to confirm that the modification did not introduce new errors or cause errors in other codes.
    • The purpose of regression testing is that the modifications achieve the intended purpose, such as errors being corrected, new functions being implemented, being able to adapt to the new operating environment, etc., without affecting the correctness of the original functions of the software.
  13. What is a test case

    • A test case is a set of test inputs, execution conditions, and expected results designed for a specific purpose.
    • A test case is the smallest entity for execution.
  14. What is a stub module and what is a driver module?

    • The stub module is an auxiliary test module set up during unit testing. It is used to simulate the modules called during the working process of the tested module.
    • Stub modules are called by the module under test, and they generally perform very little data processing in order to verify the interface between the module under test and its subordinate modules.
    • The driver module is an auxiliary test module set up during unit testing. It is used to simulate the upper-level module of the module under test and is equivalent to the main program of the module under test.
    • The driver module receives data during unit testing, transmits relevant data to the module under test, starts the module under test, and gives corresponding results.
  15. Briefly describe the main work content of quality assurance personnel.

    • Develop SQA plan for the project. This plan is formulated when formulating the project plan and is reviewed and approved by the relevant departments. It specifies the quality assurance activities that need to be performed by software development groups and quality assurance groups.
    • Description of the software process involved in developing this software project.
    • Review various software engineering activities to verify compliance with defined software processes.
    • Audit designated software work products to verify compliance with the corresponding parts of the defined software process.
    • Ensure that deviations in software work and work products are documented and handled according to predetermined procedures.
    • Record all non-conformances and report to higher management. Follow up on non-compliance until the issue is resolved.
    • Coordinates change control and management and helps collect and analyze software metrics information.
  16. What is performance testing? What does performance testing mainly include?

    • It refers to testing various performance indicators of the system through automated testing tools to simulate a variety of normal, peak and abnormal load conditions.
    • It mainly includes the following three aspects: testing of application performance on the client side, testing of application performance on the network, and testing of application performance on the server side.
  17. What is the focus of white box testing and the corresponding countermeasures?

    • Module interface testing, focusing on checking whether the data entering and exiting the module is correct
    • Module local data structure testing, focusing on checking whether the local data structure can maintain integrity
    • Module boundary condition testing, focusing on checking whether critical data is processed correctly
    • The module executes path testing independently, focusing on checking program errors caused by calculation errors, judgment errors, and control flow errors.
    • Internal error handling testing of the module, focusing on checking whether the internal error handling facilities are effective
  18. What is the relationship between software testing and software development process?

    • Software testing runs through the software development process and has different tasks at each development stage.
    • In the requirements analysis stage, it mainly analyzes test requirements and formulates system test plans.
    • In the detailed design and outline design phases, it is mainly to ensure that the integration test plan and unit test plan are completed.
    • During the coding phase, developers mainly test the code of the modules they are responsible for developing. For large projects, specialized personnel are required to perform testing tasks during the coding phase.
    • During the testing phase, the system is mainly tested and corresponding test result reports and test analysis reports are submitted.
  19. Briefly describe the differences between load testing, capacity testing and strength testing.

    • Load test: System load and response time under a certain workload.
    • Strength test: Under certain load conditions, the impact of continuous operation of the system over a long time span on system performance.
    • Capacity testing: It is to pre-analyze the limit value of a certain indicator that reflects the application characteristics of the software system through testing. The system does not have any software failures or can maintain normal operation of the main functions under its limit value state.
  20. What is software testing

    • Software testing is the process of executing a program to find errors.
    • Software testing is the process of carefully designing a batch of test cases (i.e. input data and its expected output results) based on the specifications of each stage of software development and the internal structure of the program, and using these test cases to run the program to find program errors. .
  21. What is the focus of unit testing, integration testing, and system testing?

    • Unit testing is the lowest level of testing activity to be performed during the software development process. In unit testing activities, independent units of the software are tested in isolation from other parts of the program.
    • The test focuses on the system modules, including the correctness verification of subroutines, etc.
    • Integration testing is also called assembly testing or joint testing. On the basis of unit testing, all modules are assembled into subsystems or systems according to design requirements for integration testing.
    • The focus of the test is the connection between modules and the transfer of parameters.
    • 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 solution specification.
    • The test focuses on the operation of the entire system and compatibility with other software.
  22. Test case design: There is a function f(x,y), where x∈[100,200], y∈[5,15].
    Please write a test case (Hint: 9 test cases in total) for this function using the general boundary value analysis method (your own Baidu).

    • (100,Y)
    • (200,Y)
    • (101,Y)
    • (199,Y)
    • (X,5)
    • (X,15)
    • (X,6)
    • (X,14)
    • (X,Y)
  23. A brief overview of drivers and how to build test drivers.

    • A test driver is a program that runs test cases and collects the results.
    • Test driver design should be relatively simple.
    • Test drivers must be rigorous, clearly structured, simple, and easy to maintain.
    • Highly adaptable to changes in the class specification being tested.
    • Ideally, when creating a new test driver, you should be able to reuse code from an existing driver
  24. A simple comparison between white box testing and black box testing

    • White box testing knows the internal working process of the product and can test every line of statement, condition or branch of the program.
    • White box testing is suitable for unit testing and integration testing
    • White box testing is not suitable for system testing
    • Black box testing does not consider the internal structure and internal characteristics of the program, but tests the program interface and user interface from the user's perspective.
    • Black box testing is suitable for functional testing, usability testing, acceptance testing, and confirmation testing;
    • Black box testing is not suitable for unit testing and integration testing
  25. A brief overview of drivers and how to build test drivers.

    • A test driver is a program that runs test cases and collects the results.
    • Test driver design should be relatively simple.
    • Test drivers must be rigorous, clearly structured, simple, and easy to maintain.
    • Highly adaptable to changes in the class specification being tested.
    • Ideally, when creating a new test driver, you should be able to reuse code from an existing driver

Chapter 1 Quality

7 Summary

  1. Quality must meet not only stated needs but also implied needs;
  2. Quality has social attributes, cost attributes, predictability and measurability;
  3. Different perspectives on quality, including the manufacturer's perspective, the market's perspective, the user's perspective, the value perspective, etc.
  4. Three levels of quality concept, and how the narrow concept of quality develops into the broad concept of quality.

8 After-class exercises

  1. fill in the blank

    • Concepts related to quality include:Organization, process, product, service, customer, system
    • Quality issystems, componentsor processes that satisfy customers or varying degrees of user explicit needs or expectations
    • The attributes of quality include:Customer attributes, cost attributes, social attributes, measurability, predictability
  2. choose

    • Quality management refers to the coordinated activities of the organization in terms of quality (command) and (control)
    • The quality management system can (help the organization achieve customer satisfaction, provide the organization with a framework for continuous improvement, and provide trust to customers)
    • The management of the entire process of total quality management must embody the ideas of (prevention first, continuous improvement; serving customers)
    • Committed to setting quality goals and specifying the necessary operating processes and related resources to achieve quality goals, this is called (quality planning)
    • Quality policy is the overall quality purpose and direction of an organization and should be approved by the organization's top management.
    • Since the requirements of the organization's customers and other relevant parties for the organization's products, processes and systems are constantly changing over time, this reflects quality (timeliness).
    • The three steps of quality management proposed by the famous quality management expert Zhu Lan refer to (quality planning, quality control, quality improvement).
    • The objects covered by the quality concept are (products, services, processes (all of the above)).
    • Defining product quality from the perspective of suitability for customer needs is called (suitability quality).
    • Quality is the degree to which a set of inherent characteristics (characteristics) meet requirements.
  3. judgment

    • Quality inspection is a management inspection activity that tests product quality characteristics to determine the compliance of each quality characteristic.
    • Continuous improvement of overall performance should be the goal that organizations should pursue
    • Quality improvement is a part of quality management dedicated to enhancing the ability to meet quality requirements
    • Quality control is the implementation of inspections according to a set standard
    • A service is a category within a product category
    • Quality characteristics refer to the inherent characteristics of a product, process or system related to standards.
    • "Conforming to standards" means qualified product quality
    • When controlling non-conforming products, ask the leader to decide whether they can be used
    • Quality management system is a management work system established to achieve quality policy and quality objectives.
    • Value customer complaints and use them as a source of motivation for us to develop products, improve quality, and improve services.
    • Quality improvement and quality control are both to maintain stable product quality
    • When the production process is under control, product quality does not fluctuate
    • Quality control is the elimination of occasional problems so that product quality remains at a specified level
    • Quality management refers to the coordinated activities of an organization that directs and controls quality

Chapter 2 Software Quality

6 After-class exercises

  1. fill in the blank
    • Watts Humphrey of SEI believes that software quality is in terms of **practicability, requirements, reliability** andmaintainability, etc. Reach an excellent level.
    • What quality features do users require in terms of performance:Efficiency, correctness, security, interoperability
    • What quality features do users require in terms of functionality:Completeness, reliability, survivability, availability, convenience
    • The three-dimensional characteristics of software quality refer to:Functionality, reliability, and performance
    • The 3A characteristics of software quality refer to:Accountability, effectiveness, and ease of use
    • The definition of software quality includes three aspects: the quality of softwareproduct and the softwaredevelopment process< /span>business environment quality, the quality of the software in its
    • ANSI/IEEE STD729 gives the definition of software quality: software products meet all specified and implicit characteristics related to required capabilities and characteristics.
    • From the outside, a software defect is a failure of a certain function that the system needs to implement or Violation.
    • Extreme Programming is suitable for small teams, high risks, rapidly changing or unstable requirements, and emphasis on testability
  2. choose
    • According to statistics from authoritative departments, in the distribution chart of the causes of software errors, the following (Software Requirements Specification Error) options are the main causes of software errors.
    • The V model is a representative test model. The following understanding is correct (the V model causes hidden problems in the requirements analysis stage to be discovered until the later acceptance test).
    • Which of the following statements about software quality is incorrect (The correctness of the program is sufficient to reflect the value of the software)
    • The following (Product Abnormalities) are descriptions of software defects.
    • The particularities of quality that do not belong to software products are: (The types of software are different, but the focus of the software quality measurement standards is the same)
    • Which of the following statements about software design is incorrect: (The more complex the software design, the better)
    • Which of the following options is not a software defect (the software implements the functions required by the product specifications but does not consider portability issues due to performance limitations)
    • Which of the following statements about software defects is incorrect (a defect is an error that causes a system program to crash).
    • The main features of Extreme Programming are (simple analysis and design, frequent customer communication, incremental development and continuous testing) (all of the above)
    • Among the following statements about the main differences between software reliability and hardware reliability, the correct statement is (each copy of the software is exactly the same, while hardware of the same specifications produced according to the design always has slight differences).
    • The meaning of software quality is (the totality of characteristics that can meet given needs; the degree to which it has the desired combination of attributes; the degree to which customers or users believe that their comprehensive expectations can be met; the combination characteristics of software, which determine the performance of the software in use The degree to which the customer's expected requirements will be met)

Chapter 3 Software Quality Engineering System

7 After-class exercises

  1. Fill in the blanks:
    • ISO9126 summarizes various qualitative attributes into 6 quality characteristics, includingFunctionality, reliability, usability, efficiency, maintainability, and portability a>.
    • The Six Sigma model is divided into 5 stages: define, measure, analyze, improve, and control.
    • The IDEAL model divides the quality improvement process into five stages:initialization, diagnosis, establishment, action, and learning.
    • Using quantitative software engineering and formulating measurement criteria for software product quality can improve the visibility of the software development processmanagement and reduce a>Inferior quality cost, improve thequality of software products.
    • The quality factors of McCall model product revision dimension includemaintainabilityand flexibility ness, testabilityness.
    • Software quality engineering includes software qualitypolicy, software qualitycontrol, software qualityguarantee and software qualitymanagement in four major aspects.
    • The six quality factors of software include:Correctness, reliability, ease of use, efficiency, maintainability, and portability
  2. Multiple choice questions:
    • The concept of software engineering was proposed due to (the emergence of software crisis)
    • The evaluation indicators of system maintainability do not include (portability)
    • Software portability is one of the important measures used to measure software (quality).
  3. True or False:
    • Software reliability refers to the ability of a system or component to complete the required functions during a specific period and under specific conditions.

Chapter 4 Software Quality Measurement

7 Summary

20230715084907-1.png

8 After-class exercises

  1. fill in the blank
    • Language construction method Calculation rate formula: 0.15 + 0.23< a i=4> DO WHILE+ 0.22 SELECT+ 0.07 IF-THEN-ELSE
    • Complexity calculation: number of lines - number of nodes + 2, the result of this quiz is 4
    • The main contents of software project measurement include: Scale measurement, Complexity< a i=4> metrics, Defects metrics, Progress metrics, metrics a> metrics, and other metrics. Effort metrics, Risk
    • Software quality measurement can be divided into 3 categories according to its research objects: Project Quality measurement, Product quality measures, Process quality measures
    • Validity and Reliability are the most important indicators in measurement standards.
    • The measurement scales mentioned in class include categorization scale, sequence scale, interval scale, ratio scale.
    • Metrics are a broad range of measurements of software products that give the degree of a given attribute of a system, component or process Quantitative measurement
    • Measurement is the provision of a quantitative indication of the range, quantity, dimension, capacity, or size of an attribute of a product process.
    • Includes product quality Dimensional size , Product quality , design special expedition , performance and more Quality level horizontal.
    • Metrics are a broad range of measurements of software products that give a quantitative measure of the degree of a given attribute of a system, component, or process.
  2. choose
    • Assuming that there are 14 edges and 10 nodes in the program control flow graph, the loop complexity V(G) of the control flow graph is equal to (6).
    • The most expensive part of fixing software defects is the (release) stage.
  3. judgment
    • Quality is an indicator that reflects the degree to which software meets requirements, while defects are considered to be some manifestation of inconsistency between software and requirements.
    • McCabe measurement and syntax construction methods are only suitable for measurements within independent modules and cannot consider the mutual coupling relationship between various modules of the system.
    • Software measurement should be based on analysis models, design models, or the structure of the program itself, independent of the syntax and syntax of the programming language.
    • The goal of measurement is to continuously improve validity and reliability, and measurement can avoid bias or error.
    • Poor reliability generally means that the measurement method needs to be technically improved.
    • Poor validity generally means that the measurement method is fundamentally wrong.
    • Measurement is an important means and method to obtain quantitative results of indicator evaluation.
    • Software metrics have the characteristics of strong relative nature and weak absolute nature.
    • Software quality metrics are used to measure the process and results of software quality control and assurance.

Chapter 5 Software Quality Standards

3 After-class exercises

  1. fill in the blank
    • CMMI content mainly has three levels: Required, Expected< a i=4> andproviding information.
    • CMM provides a framework for software process improvement, dividing the entire software improvement process into 5 (please fill in Arabic numerals) maturity levels grade.
    • The significance of CMM is not only process control of software development, but also an efficient management method that helps enterprises to reduce costs to the greatest extent< a i=2>, Improving quality and User satisfaction.
    • According to the organization and scope of application of software engineering standards, they can be divided into 5 levels, namelyInternational standards, < /span> . Project Specifications and Enterprise Specifications, Industry Standards, National Standards
    • CMM divides the entire software improvement process into initial level and repeatable level , Defined Level, Managed Level, Optimization level and other 5 maturity levels.
  2. choose
    • What issues need to be paid attention to in software design: (reduce coupling; code reuse; functional decomposition)
    • According to the CMMI specification, every software company has (Level 1) maturity.
    • The cmm model divides the maturity of the software process into 5 levels. At the (management level), quantitative analysis is used to continuously improve and manage the software process.
  3. judgment
    • Software process capability maturity refers to the degree to which a specific process is clearly defined, managed, measured, controlled, and effective.
    • In order to achieve a maturity level, all critical process areas at that level must be achieved.
    • The optimization level describes the managed process and defines the metrics for evaluating software process and product quality. Use this measure to make inferences and control about software processes and products.

Chapter 6 Software Review

6 Summary

  1. This chapter introduces the basic situation of software review, including the maturity level of review, review methods, review technology and review process.
  2. For software review, the more formal the review process, the higher the efficiency of the review. Review is the most formal, rigorous and effective review method among review methods.

7 After-class exercises

Fill in the blanks
  1. Comprehensive method of learning 临时评审 , 轮查 , running test , 小组评审 , 审查
  2. Management review requires each department to evaluate the current status of the management system, including suitability, effectiveness< /span> sex, etc. will be reviewed. adequacy sex,
  3. Management review initiated by top management
Multiple choice questions
  1. The main steps of the review meeting are as follows: (The reviewer/author will give a demonstration or explanation; the reviewer will communicate with the author on any unclear or doubtful points; the coordinator or recorder will complete the meeting minutes during the meeting)
  2. Which of the following materials should be reviewed: (Basic and early-stage documents; Documents related to major decisions; Documents related to parts that are not sure what to do; Documents related to parts that are constantly being reused)
  3. The requirements for the review team leader are as follows: (Be good at formulating and executing review plans; the review is fair and impartial; have rich technical skills and knowledge; actively lead the review team members to complete review tasks on time and with high quality)
  4. The functions of process review are as follows: (evaluate the main quality assurance processes; consider how to handle and solve non-conformance issues found during the review process; summarize and share good experiences; point out parts that need further improvement and improvement)
  5. Process review is (a review of the software development process; through monitoring the process, ensuring that the software process defined by the SQA organization is followed in the project; ensuring that the quality assurance policy can be implemented faster and better)
  6. As a software quality assurance activity, technical review has the following functions: (revealing errors in software logic, execution, and functionality; verifying whether the software meets requirements; ensuring software consistency)
  7. The review team generally consists of the following roles (coordinator; author; reviewer)
  8. Reviews can help development engineers (reduce time to fix defects; improve programming efficiency; reduce testing and debugging time)
  9. As an important means of quality control, software review has been widely used in the industry. Review is divided into internal review and external review. A narrative about the internal review, including if appropriate. ① Each development stage of the software must be reviewed internally ② The reviewers are composed of software development team, quality management and configuration management personnel, and users can be invited to participate ③ The number of reviewers is determined based on the actual situation, such as the scale, level and security of the software Depends on the level and other indicators ④The internal review is hosted by the user unit and organized by the information system construction unit. A review committee should be established (①②③)
  10. In software design, design review is as important as the software design itself. Its main purpose and function is to (avoid paying high costs later)
  11. Who needs to participate in the software testing plan review meeting? (Project manager; SQA leader; configuration leader; test team)
  12. In software design, design review is as important as the software design itself. Its main purpose and function is to (avoid paying high costs later)
True or False
  1. The average cost of discovering a defect should not exceed the business cost of the defect to the customer.
  2. The review report can be seen as a sign of the end of the review meeting.
  3. The ruleset lists typical mistakes that can occur and is an important part of the review.
  4. Process reviews review quality assurance processes, as well as product quality or other forms of work output.
  5. Document review is divided into format review and content review.
  6. Management review is the evaluation of the product and the output content of each stage.
  7. Managers, developers, and customers sometimes object to reviews because they waste time and slow down the project.
  8. Review is a means of evaluating software elements or project status.
  9. Reviews are a very effective method of quality control.
  10. The main goal of peer review is to detect errors and verify deviations from standards.
  11. Code review is to check whether the source code meets the requirements of the module design.
  12. Technical review is both a technical means and a quality management means.

Chapter 7 SQA Organization

5 Summary

  • This chapter introduces several basic SQA organizational structures, explains the advantages and disadvantages of various structures, and explains how to choose the most suitable organizational structure based on reality.
  • At the same time, the responsibilities of members within the SQA organization and personnel training are introduced.
  • The fundamental purpose of selecting an appropriate SQA organization and training personnel is to ensure the quality of software products

6 After-class exercises

Fill in the blanks
  1. In order to ensure that the project team can use appropriate technologies and tools, we should conduct software tool evaluation
  2. The Six Sigma organizational structure is divided from top to bottom into advocates , black belt supervisors (masters), Black belt, Green belt.
  3. Project progress management is a dynamic process that requires constant scheduling and coordination to ensure the balanced development of the project.
Multiple choice questions
  1. The first step in the implementation of the SQA plan is (understand the needs of the project and clarify the requirements and scope of the project SQA plan)
  2. Which of the following three organizational structures is relatively complete (independent SQA engineer (independent SQA team))
  3. The following are the advantages of an independent SQA department: (Protect the independence and objectivity of SQA engineers; facilitate the sharing of resources)
  4. In enterprises, the most common quality assurance organizations are (software testing department; software quality assurance organization)
True or False
  1. An audit is a review of the work process, while the review focuses primarily on the product itself.
  2. SQA people and development engineers are essentially at odds with each other.
  3. In order for SQA personnel to devote themselves to their jobs, SQA personnel must be full-time.
  4. When creating an SQA department, it is more important to refer to various popular standards in the industry (such as ISO, CMMI, etc.) than the actual situation of the company itself.
  5. The Software Engineering Process Group is similar to a "legislative" body, while SQA is similar to a "supervisory" body.
  6. Anything that doesn't meet the customer's needs can be considered a defect.
  7. All SQA activities occur simultaneously with the completion of project milestones or the verification of project milestones.
  8. The primary goal of using Infrastructure Protection and Improvement components throughout an organization is to eliminate or at least reduce error rates based on the organization's accumulated SQA experience.
  9. Software quality systems vary, indicating that there is inherent flexibility in building an organization's SQA system.
  10. The SQA organization is responsible for producing high-quality software products and formulating quality plans. It is responsible for auditing the quality activities of software managers and software engineering groups and identifying deviations that occur in the activities.
  11. During the production planning stage of software products, there is no need to conduct major SQA activities.

Chapter 8 Improving Software Design Quality

7 Summary

  • The software design stages are explained from the aspects of software system structure design, data design, design model, etc., and the design requirements and design evaluation criteria of each stage are briefly introduced.
  • Software design is at the technical core of software engineering.
  • Design models can easily reuse successful architectures and help designers better complete system design.

8 After-class exercises

Multiple choice questions
  1. Converting software requirements into data structures and software system structures, and defining subsystems and the communication or interfaces between them is the task of which stage (outline design)
  2. Basic tasks of software architecture design (data structure and database design; writing outline design documents; reviewing outline design documents; designing software system structure)
  3. Which of the following coupling degrees is correctly arranged from low to high (data coupling, control coupling, public environment coupling, content coupling)
  4. The closed principle of the open-closed principle refers to (the modification of the original code is closed, that is, the original code should not be modified.)
  5. Technical principles of software design include (Open-Closed Principle; Interface Isolation Principle; Demeter's Law; Single Responsibility Principle)
  6. Use some existing objects in a new object to make them part of the new object. New objects achieve the purpose of reusing existing functions by delegating to these objects. What is this principle (composition/aggregation reuse principle)
  7. The models of the architecture include (structural model; functional model; dynamic model; process model)
  8. The basic elements of a design pattern include (problem; effect; solution; pattern name)
  9. The functions of design patterns include (helping to make choices that are conducive to system reuse and avoiding designs that damage system reusability; helping designers complete system design faster and better; making it easier and more convenient to reuse successful designs and Architecture; provides common semantics among engineering team members)
  10. The interface design criteria include (whether hardware interface design is included, and whether the hardware interface design is correct and comprehensive; whether software interface design is included, and whether the software interface design is correct and comprehensive; whether the functions of various interfaces are described; whether each interface and other interfaces are described Interfaces or relationships between modules)
  11. The target tasks of detailed design include (determine the data structure used by each module; determine the details of the module interface; design a set of test cases for each module)
  12. User interface design principles include (must maintain consistency; should have self-service functions; the interface is easy to understand)
True or False
  1. Requirements analysis is the only way to accurately transform user needs into software systems.
  2. The basic principle of software design is that the simpler the design, the better
  3. The guiding ideology of software design is to reduce module cohesion and improve module coupling.
  4. Any architecture has its own advantages and disadvantages, so we must choose to use it in a targeted manner.
  5. When designing software, technology is far more important than user needs.
  6. Verify often and verify early is one of the principles of software design
  7. The Liskov Substitution Principle says that wherever a base class can appear, a subclass may not necessarily appear.
  8. The framework model mainly targets some special problems and establishes a structure that is only targeted and adapted to the problem.
  9. Compared with the C/S and B/S software architecture, except for the different implementation methods of the user interface, there is no other difference.
  10. The multi-layer distributed architecture of the middleware separates clients and resources, reducing the load on the server.
  11. Design patterns make it easier and more convenient for people to reuse successful software designs and architectures, thereby helping designers complete system design faster and better.
  12. UML language models first and then writes code to ensure that the system structure is reasonable from the beginning.
  13. The data dictionary refers to the definition and description of data items, data structures, data flows, data storage, processing logic, external entities, etc. Its purpose is to provide a detailed explanation of each element in the data flow diagram.

Chapter 9 High Quality Programming

11 After-class exercises

Fill in the blanks
  1. The recommended file structure contains three parts, including: Copyright and Version at the beginning of the definition file Declaration; references to some header files; the implementation body of the program (including data and code).
  2. The normal value is obtained byoutput parameter, and the error flag is obtained by return statement Return.
Multiple choice questions
  1. The following are excellent coding styles: (If (j= =1); If (i〉MAX_NUM))
  2. The following Windows program naming rules are (global function names should use "verb" or "verb + noun"; static variables are prefixed with s_. If a global variable must be defined and used, g_ is added before the global variable; constants are all capitalized letters, using underscores to separate words)
  3. The following function processing rules are (if the parameter is a pointer and is only used for input, you should add const in front of the type to prevent the pointer from being accidentally modified in the function body; if the input parameter is passed by value, you should use Pass it in "const &" mode, which can save the construction and destruction process of temporary objects, thereby improving efficiency; do not mix normal values ​​and error flags and return them. Normal values ​​are obtained with output parameters, and error flags are returned with the return statement ;Do not return normal values ​​and error flags together. Normal values ​​are obtained with output parameters, and error flags are returned with the return statement)
  4. The following are in compliance with the program layout rules: (try to initialize the variable when defining it; long expressions should be split into new lines at low-priority operators, and the operators should be placed at the beginning of the new line; try to avoid them in comments Use abbreviations, especially uncommon abbreviations)
  5. The following are in line with the basic statement rules: if statements cannot use "==" or "!=" to compare floating-point variables with any number; loop variables cannot be modified in the for loop body; it is recommended that the value of the loop control variable of the for statement be used "Half-open and half-closed interval" writing method; the if statement cannot directly compare Boolean variables with TRUE, FALSE or 1, 0)
  6. The following are in compliance with the memory usage specifications (the program uses malloc or new to apply for dynamic memory allocation when it is running, and the lifetime of the dynamic memory is determined by us; the static storage area exists throughout the entire running period of the program)
  7. The following are in compliance with the memory usage specifications: (When using malloc or new to apply for memory, you should use if(p==NULL) or if(p!=NULL) for error prevention; after the memory allocation is successful, it should be initialized as soon as possible; The number of uses of malloc and free in the program must be the same; free and delete only release the memory pointed to by the pointer, but do not destroy the pointer itself)
  8. The following statement is correct (const can modify the parameters, return value, function definition body, etc. of the function. The modified things are forcibly protected and can prevent unexpected changes; the form of void Func (const A &a) can effectively prevent the parameters from changing. a was accidentally modified; if the input parameter is passed by "pointer", then adding const modification can prevent the pointer from being accidentally modified, which plays a protective role)
True or False
  1. The position of the comment should be adjacent to the code being described. It can be placed above or to the right of the code, but not below.
  2. Comment while writing code, modify the code and modify the corresponding comments at the same time
  3. It is recommended to compare floating point variables with numbers using "==" or "!=".

Chapter 10 Software Testing

7 Summary

  • This chapter introduces the tasks and goals of software testing, the reality and principles of testing, and on this basis, discusses the application of testing methods.
  • For different stages of testing, the corresponding requirements, best practices and methods are introduced to achieve the testing goals completely and effectively.
  • Methods for testing process review and quality assurance are introduced.
  • Finally, the principles of software testing organization and management are introduced, including reasonable allocation of testing resources, control of schedule and cost, and management of testing risks.

8 After-class exercises

Fill in the blanks
  1. According to whether it is necessary to know the internal structure of the program under test, testing methods can be divided into: Black box testing and White box testing.
  2. The two basic elements of dynamic testing arethe program under test and test cases ;
  3. The main analysis methods used in dynamic testing technology include: White box testing, Black box a> testing and grey box testing.
  4. The purpose of regression testing is that the modificationsachieve the intended purpose and at the same timedo not affect The correctness of the software's original functions.
  5. The main analysis methods used in dynamic testing technology include: White box testing, Black box a> testing and grey box testing.
Multiple choice questions
  1. There are many reasons for software defects, ①-④ are possible reasons, the main reasons include (①The software requirements specification is not comprehensive, incomplete, inaccurate, and frequently changed; ④Developers cannot understand it well Insufficient requirements specification and communication)
  2. A bug record should include (① number; ② Bug description; ③ Bug level; ④ Module to which the bug belongs; ⑤ Discoverer)
  3. The following ①–④ are descriptions of the working principles of software reviewers. The correct judgment is (none) ( ① Programs submitted by developers must be fully tested to ensure that Ensure the quality of the program‌‌; ② Test tasks must be reasonably arranged, careful test plans must be made, and the testing time of each module of the software must be evenly allocated‌‌; ‌ It is necessary to conduct detailed communication with developers before testing to clarify the developers' program design ideas. , and use this as a basis to carry out software testing work, to discover errors in the program that are inconsistent with its design ideas to the greatest extent; ④ Be responsible for the problems you find, and ensure that every problem can be understood and modified by developers. )
  4. Test records include (① test plan or test specification containing test cases.; ③ all results related to test cases, including all failures that occurred during the test.; ④ identities of people involved in the test. )
  5. Among the following statements, (white box testing is also called logic-driven testing) is correct.
  6. The main method of quality control in the software design stage is (review)
  7. The following items (test expected output) are not what a test plan should contain.
  8. The following are not testing principles (the more defects found, the fewer defects will remain in the software)
  9. Regarding the description of the limitations of automated testing, which of the following statements is incorrect (automated testing finds fewer defects than manual testing)
  10. Defect tracking is to ensure that every discovered defect can eventually be closed (closed) instead of leaving it alone.
  11. (Software Test Documentation) is any written or graphical information that describes, defines, specifies, and reports the software tests to be performed and the results of the tests.
  12. Software testing is the process of discovering software errors according to specific procedures.
  13. The basic qualities required by software quality assurance and testers are (all options are) (industry knowledge, testing professional skills, computer professional skills)
  14. The job responsibilities of software testers do not include (fixing software defects)
  15. Regarding the description of the limitations of automated testing, which of the following statements is incorrect (automated testing finds fewer defects than manual testing)
  16. Through the inheritance mechanism, subclasses can inherit the characteristics and functions of the parent class. This feature provides a way for the spread of defects.
  17. The feature of encapsulation simplifies the use of objects, but it also brings difficulties to the test structure (analysis), the selection of test paths, and the generation of test data.
  18. There are three methods of incremental integration testing: top-down incremental testing method, (bottom-up incremental testing method) and mixed incremental testing method.
  19. Code inspection methods include desktop inspection, walkthrough and (code review)
  20. The basis for classifying software testing as white box testing or black box testing is (whether the source program under test can be seen)
  21. Limitations of software testing do not include (Software testing will lead to increased costs and reduced overall project benefits.)
  22. A more practical stopping criterion for software testing is (analyze the number of defects found and the testing investment cost curve to determine whether to continue testing or stop testing.)
  23. Which of the following is not a testing principle (the more defects found, the fewer defects remain in the software)
  24. Experience shows that in program testing, if a module has found and corrected more errors than other modules, the number of remaining errors in the module should usually be (more) compared to other modules.
  25. Which of the following types of personnel is not relevant to software quality assurance and testing? (Software salesperson)
  26. Software test cases mainly consist of two parts: input data and (expected output results).
  27. Documents not related to designing test cases are (Project Development Plan)
  28. In the process of determining the test objectives, testers mainly complete the following (determine the standards and specifications of the test; determine the test environment; determine the required test resources; determine the special requirements of the user)
  29. Which of the following stages in the software life cycle should testers best intervene at (requirements stage)
  30. The objects of software testing include (all of the above) (requirements analysis, outline design and detailed design; program source code; requirements specification)
  31. From the perspective of testing requirements, if you want to achieve better testing results, the best relationship between the testing department and the development department is one of the following four (the testing organization and the development organization are different companies.)
  32. The following security testing methods are (① security function verification; ② security vulnerability scanning; ③ simulated attack experiment; ④ data interception)
  33. The purpose of writing a test plan is to (① make the testing work go smoothly; ② make the project participants communicate more comfortably; ③ make the testing work more systematic)
  34. The content of the evaluation of the requirements statement includes (1) whether the goals defined by the system are consistent with the user's requirements; 2) whether the data flow and data structure of the project being developed are sufficient and certain; 3) whether the important interfaces that interact with all other systems have been described; 4) Whether the main functions are included in the specified software scope and whether they are fully explained)
  35. The following understanding of white box testing and black box testing is correct (white box testing finds problems by analyzing and detecting the internal structure of the program)
  36. In order to make software testing more efficient, the principles that should be followed include (1) All software testing should be traced back to user needs and pay full attention to the phenomenon of defect clusters; 2) Software testing and regression testing should be carried out as early as possible and continuously; 4) Different tests should be conducted Personnel confirm the defects found in the test; ⑤ Incremental testing, from small to large)
  37. (Designing a good test case to cover 100% of user requirements) is not the correct purpose of software testing.
  38. The fundamental basis for designing functional test cases is (User Requirements Specification).
  39. The purpose of using software testing tools does not include (improving design quality)
  40. Which of the following statements about software testing principles is incorrect (the more errors found in a module during the testing process, the fewer errors remain in the module)
  41. In order to improve testing efficiency, you should (select data with a high probability of finding errors as test data)
  42. The test engineer's work scope will include inspecting code and reviewing development documents, which belongs to (static testing)
  43. The responsibilities of software testing are: (Write a reasonable test plan and organically integrate it with the overall project plan; conduct research on relevant testing technologies based on testing requirements; conduct defect tracking and analysis; write test cases with high coverage)
  44. Software testing can be divided into (unit testing, integration testing and system testing) according to the testing level.
  45. When a software company recruits software reviewers, Applicant A makes the following guarantees to the company: ① The software he has tested will not have problems in the future; ② All programmers will be treated equally at work, and he will not treat a certain programmer just because he is If there are many problems found in the written program, focus on reviewing the program to avoid being detrimental to unity; ③ Promise that you can independently conduct testing work without the need for other personnel; ④ Carry forward the spirit of never relaxing and not look for all problems. Come out and never give up; What do you think of Applicant A’s guarantee (both are incorrect).
  46. The misunderstanding of software testing steps is: (The white box method considers the degree of coverage of the external logic of the program by the test cases)
  47. The advantage of not being a testing tool is (we can achieve 100% test coverage through tools)
  48. The following (the more defects found, the fewer defects the software will have) are not part of the testing principles.
  49. Software testing types are divided by development stages (unit testing, integration testing, confirmation testing, system testing, acceptance testing)
  50. (The error intensity curve drops to a predetermined level) can be used as a sign of the end of software testing.
  51. The incorrect description of test cases is (the test cases are the same for different categories of software)
  52. Who needs to participate in the software testing plan review meeting? (Project manager; SQA leader; Configuration leader; Test team)
  53. What steps does the software testing process include (unit testing; integration testing; acceptance testing; confirmation testing)
  54. The responsibilities of the test designer are: (Design test cases; design test process and scripts)
  55. What is incorrect about the general statement about software testing is that (writing programs in better programming languages ​​can avoid errors; software testing should account for the lowest proportion of the total software development workload)
  56. What is wrong with the understanding of software testing is (the purpose of software testing is to correct software errors; after the application system is developed, it is then tested)
True or False
  1. Requirements analysis - design - implementation - testing, software testing is a task that needs to be done at the end of software development.
  2. Using automated testing tools will definitely find more defects than manual testing.
  3. Testers must adhere to the principle and will not pass the test if the defects are not repaired.
  4. Bottom-up integration requires testers to write drivers.
  5. Modules with many errors are found to have more errors remaining in the module.
  6. Developers and users have the same position as to what defects a software has.
  7. Software testing is aimed at programs written by junior programmers, and programs written by senior programmers do not need to be tested.
  8. Good testers relentlessly pursue perfection and ensure that the software that passes the test will not have defects again. ‍
  9. Testing is to verify that the software has correctly implemented the user's requirements.
  10. Code reviewers are generally testers.
  11. Testing is to verify that the software has correctly implemented the user's requirements.
  12. In software testing, a test oracle is a method of verifying whether the system under test operates correctly under specific executions.
  13. Tester says: I can't test without a runnable program.
  14. Testers do not need to submit any artifacts before the project is approved.
  15. Modules with many errors are found to have more errors remaining in the module.
  16. As long as 100% logic coverage can be achieved, the correctness of the program can be guaranteed.
  17. Testers must adhere to the principle and will not pass the test if the defects are not repaired.
  18. Software testing tools can replace software testers.
  19. Software testing equals program testing.
  20. The most important user interface element is that the software conforms to current standards and specifications.
  21. Software testing is a risky activity, and not all software defects can be fixed.
  22. The purpose of traditional testing is to find errors, but now testing has expanded to the scope of error prevention.
  23. We have reason to believe that as long as we can design the best possible test plan, the software after rigorous testing can be defect-free.
  24. Design-implementation-testing, software testing is a stage in the later stages of development.
  25. There are always defective types that will be discovered at one level of testing and able to evade detection at another level.
  26. Programmers who double as testers can improve their work efficiency.

Chapter 11 White Box Testing

3 Summary

  • This chapter mainly explains the basic concepts and techniques of white box testing, including the basic concepts and classification of white box testing, boundary value technology in white box testing, statement coverage testing, branch coverage testing, condition coverage testing, branch-condition coverage testing, Conditional combination coverage testing and path coverage testing.
  • White box testing allows you to observe the inside of the "box". Unlike black box testing, which understands the system as an "internally invisible box", there is no need to understand the internal structure.
  • In order to completely test a software, both tests are indispensable. A product often goes through various static, dynamic, white-box and black-box tests from its concept analysis stage until it is finally delivered to users.

4 After-class exercises

Fill in the blanks
  1. The judgment-condition coverage method requires that all possible values ​​ of each condition in the judgment be executed at least once.
  2. White box testing is suitable for unit testing, integration testing .
  3. Test data that meets the condition combination coverage standard may not necessarily enable every path in the program to be executed.
Multiple choice questions
  1. Among the following logical coverage standards, the one with the strongest error checking capability is (conditional combination coverage)

  2. The number of paths contained in a program is directly related to (the complexity of the program)

  3. The purpose of condition coverage is (to make every possible value of each condition in each decision in the program satisfied at least once)

  4. White box testing is to design test cases based on the program (internal logic), and black box testing is to design test cases based on the software specifications.

  5. Read the following program and use the logic coverage method to test it. Which set of input values ​​​​for (a, b, c) can achieve decision coverage. ((a,b,c) = (4,-9,-2), (-4,8,3) )

    int func(int a,b,c)
    {
         int k=1;
         if ( (a>0) &&(b<0) && (a+c>0) )   
              k=k+a;
         else
              k=k+b;
         if (c>0) 
              k=k+c;
         return k;
    }
    
  6. If a test case set realizes the path coverage of a certain software, then it must also realize the path coverage of the software (decision coverage)

  7. Which of the following testing methods does not belong to white-box testing technology (boundary value analysis testing)

  8. To perform a basic path coverage test on a program, the minimum number of test cases required is (the cycle complexity of the program)

  9. If the compound conditional expression in a decision is (A > 1) or (B <= 3), in order to achieve 100% condition coverage, at least how many test cases need to be designed (2)

  10. In the following program for calculating personal income tax, the test case that meets the judgment coverage is (income=(799, 1500, 1999, 2000))

    if (income<800) taxrate=0; 
       else if (income<=1500) taxrate=0.05;
          else if (income<2000) taxrate=0.08;
             else taxrate=0.1;
    
  11. For the following program segment:

    if  ((M>0) && (N = = 0))          FUCTION1;
    if ((M = = 10)|| (P > 10))         FUCTION2;
    

    Among them, FUCTION1 and FUCTION2 are statement blocks.
    Now select the test case: M=10 N=0 P=3, this test case satisfies (statement coverage)

  12. The number of paths contained in a program is directly related to the complexity of the program.

  13. If a certain test case set achieves decision coverage, then it must also implement the software's (statement coverage)

  14. The following techniques that are not white box testing are (boundary value analysis)

  15. The weakest ability to find errors is (statement coverage)

  16. What is incorrectly stated in the white-box testing method is (combination coverage requires the design of enough test cases so that all possible combinations of condition results in each decision occur at most once.)

True or False
  1. Base path testing gives an upper bound on the testing that must be done.
  2. The base path refers to selecting a minimum set of paths from all program paths. Other paths in the program can be obtained by addition and multiplication of this set of paths.
  3. Beta testing is a type of acceptance testing.
  4. White-box testing can result in severe redundancy and untested functional vulnerabilities between test cases.
  5. In white-box testing, if the coverage reaches 100%, it is basically guaranteed that all hidden program defects have been exposed.
  6. In white-box testing, if the coverage reaches 100%, it is basically guaranteed that all hidden program defects have been exposed.

Chapter 12 Black Box Testing

8 Summary

  • This chapter mainly explains the equivalence class division method, boundary value analysis method, cause-and-effect diagram method, function diagram analysis method, comprehensive case analysis, and compares several methods of black box testing. Finally, it introduces several commonly used black box testing methods. Tools for box testing.
  • This chapter is highly practical, and I hope to draw inferences from one example and combine these testing technologies with daily software development and testing work.

9 exercises after class

Multiple choice questions
  1. Use the equivalence class division method to design a test case for the 8-digit long numeric user name login operation, which should be divided into (4) equivalence intervals.

  2. A system calculates and stores each employee's attendance days in a year (22 working days per month, maximum attendance 12*22=264 days in a year), and uses a text box to fill it in. The equivalence class division method was used in writing the test case of this text box, so the following division is inaccurate (effective equivalence class, 0<Attendance Day<264)

  3. Black box testing is called functional testing, and black box testing cannot detect (whether there is redundant code)

  4. Regarding the method of equivalence class division, the statement is correct (equivalence class division can have two different situations: valid equivalence class and invalid equivalence class)

  5. After dividing the equivalence classes, you first need to design a case to cover (as many as possible) valid equivalence classes.

  6. If an employee of a company works for more than one year and reaches the previously agreed goals, the employee can receive a bonus.
    These facts can be shown in the following table: ‌‎ ‌

    image-20230315144902907

    Which of the following test cases would happen in real life but is missing from the decision table above? (Condition 1=No, Condition 2=Yes, Condition 3=No, Action=No)

  7. A video application has the following requirements: The application should allow video playback at the following display resolutions:

    1.640*480 ‌
    2.1280*720 ‌
    3.1600*1200 ‌
    4.1920*1080‌
    Which of the following set of test cases is the result of equivalence class division testing technology for this requirement? (Verify that the application can play video at every display size in the requirement (4 test cases))

  8. Needs to calculate employee bonuses. The bonus cannot be negative, but can be at least 0.
    Bonuses are based on length of employment: ‏

    • Less than or equal to 2 years
    • ‏‏More than 2 years but less than 5 years
    • 5 years to 10 years (inclusive), or more than 10 years

    ‏‏What is the minimum number of test cases required to cover all valid equivalence classes for bonus calculations? (4)

  9. You are testing an unattended gas pump that only accepts credit cards. Once the credit card is verified, the pump nozzle is placed in the tank, and the desired grade is selected, the customer can use the keypad to enter the desired amount of fuel in gallons. The keyboard only allows entering numbers. Fuel is sold in increments starting at tenths (0.1) of a gallon and up to a maximum of 50.0 gallons. Which of the following is the smallest set of equivalent partitions covering the input quantity? (0.0, 20.0, 60.0)

  10. A program has only one input S, and its value range is -60≤S≤60. Now a set of test data is designed from the perspective of input: -200, 20, 200. The method of designing this set of test cases (equivalence class division)

  11. If there is a calculation type program, its input is only one 1.001. The method for designing this set of test cases is (boundary value analysis method)

  12. White box testing, gray box testing and black box testing are all commonly used system testing methods. Among them, (black box testing) is also called functional testing or data-driven testing. It is a function that a known product should have, and testing is used to detect whether each function can be used normally.

  13. Using boundary value analysis, assuming 1<X<100, then the boundary value that the integer X should take in the test does not include (X=0, X=101)

  14. When determining the black box testing strategy, the preferred method is (equivalence class division)

  15. (Cause-and-effect diagram) method designs test cases based on the dependence of outputs on inputs.

  16. In automated black box testing tools, after the script is recorded, the test process can be redone as long as the script is executed. This is called (playback)

  17. In automated black-box testing tools, recording (test script) can reduce workload.

  18. (Recording technology) allows software testers who are not familiar with scripting languages ​​to easily obtain test scripts.

  19. For systems with clear business flow, (scenario method) can be used throughout the entire test case design process and various testing methods can be comprehensively used in the use cases.

  20. Not included in black box testing techniques (logic coverage)

  21. Infer possible errors based on experience or intuition, list possible errors in the program and special situations where errors are prone to occur, and select test cases. The testing method is called (error speculation method)

  22. When determining the black box testing strategy, the preferred method is (equivalence class division)

  23. In a university's student status management information system, assuming that the input range of student age is 16-40, according to the equivalence class division technology in the black box test, the following divisions are correct: (can be divided into 1 valid equivalence class, 2 invalid equivalence class)

  24. The black box testing method is to design test cases based on the product (function).

  25. (Causal diagram method) method is to design test cases based on the dependence of output on input.

  26. Black box testing is a testing method that discovers software defects and errors through the external performance of the software. Specifically, black box test case design techniques include (equivalence class division method, cause and effect diagram method, boundary value analysis method, error speculation method, Decision table driven method), etc.

  27. Which of the following statements is incorrect (the decision table-driven method is a white-box testing method)

  28. The statement describing black box testing is wrong (the cause-and-effect diagram method is not a black box test case design method)

  29. When designing test cases, (boundary value analysis) is the most commonly used black box testing method.

  30. Dynamic black box testing (testing the actual behavior of the software during use)

  31. The following are not black box testing methods (mutation testing)

True or False
  1. Since function coverage is based on code, function coverage can also be classified into the category of black box testing.
  2. The test cases of black box testing are designed based on the internal logic of the program.

Chapter 13 Integration Testing

4 Summary

  • Integration testing is an important step after unit testing and before system testing. In a sense, integration testing is the most critical step among the three stages.
  • Integration testing is best completed by developers. If the task is reported to the testing department for completion, it will easily lead to repeated testing and delay the progress.
  • Integration testing strategies are mainly designed around the coverage of a single integration test case and the traversal path of the entire integration tree. Each strategy has its own merits in terms of the size of the test cases, the workload of the driver and stub modules, and defect location. It should be used flexibly according to the actual situation.

Chapter 14 System Testing

4 Summary

  1. System testing is to use the software system that has been well integrated and tested as part of the entire computer system.
  2. Combined with other system elements such as computer hardware, external equipment, support software, data, and personnel, a series of rigorous tests are conducted on the computer system in the actual use (operation) environment to discover potential defects in the software and ensure The system can be used normally after being delivered to the user.
  3. Generally, system testing is the last testing link before product delivery and occupies an important position. The ultimate goal of system testing is to ensure that the software products delivered to users by developers can meet user needs. Therefore, test cases for system testing should be executed in the actual user environment.

Chapter 15 Acceptance Test

8 bars

  • Acceptance testing is a software testing activity performed after the software product has completed functional testing and system testing and before product release. It is the last stage of technical testing. After passing acceptance testing, the product will enter the release stage.
  • Acceptance testing is generally based on the product specifications, strictly inspecting the product, and comparing the various requirements for the software product in the instructions line by line to ensure that the developed software product meets the requirements expected by the user.

Test related uncategorized exercises

Fill in the blanks

  1. Comprehensive Power Test, Capacity Test, Performance Tests, Safety Tests, etc.
  2. Unit testing is a test of the basic components of the software. It is usually completed by developers after the code is completed, < a i=3>SQA Personnel Assistance.
  3. In order to optimize database performance, application and system parameters, database application servers are often tested.
  4. The recovery test mainly checks the system's fault tolerance.
  5. Fault tolerance Testing is a means of checking whether the software itself has protective measures or some kind of disaster recovery under abnormal conditions.
  6. Acceptance testing is completed on the software productFunctional Testing andSystem Software testing activities conducted after testing and before product release are the last stage of technical testing, also called delivery testing.
  7. Security is divided into two levels, namely application level security and system< /span> level of security.
  8. Performance The purpose of the test: to verify whether the system meets the performance indicators proposed by the user, and to discover performance bottlenecks in the system for the purpose of optimizing the system.
  9. The main analysis methods used in static testing technology include: Walkthrough, Review , Review .

Multiple choice questions

  1. The following description of system testing is correct: (not only perform functional testing, but also consider non-functional testing; mainly use black box testing technology; participants may include project team members, marketing personnel, customer representatives, etc.; need to be in a variety of Test in operating environment)
  2. Which of the following descriptions is correct: (The driver module is a simulation of the functionality of the original module)
  3. For software beta testing, the following description is correct (beta testing is testing carried out outside the software company and can be performed by non-professional testers)
  4. System testing is to combine the software system with other factors such as hardware, peripherals, and networks to test the entire software system. (Path test) is not part of the system test.
  5. Both white box testing and black box testing can be used to test the internal structure of a program. Among them, (white box testing method) regards the program as a collection of paths.
  6. Which of the following descriptions of the relationship between statement coverage and decision coverage is correct? (100% decision coverage guarantees 100% statement coverage)
  7. The purpose of program mutation does not include (reduce the workload of testing)
  8. Integration testing in the software testing process is mainly to find errors in the (outline design) stage.
  9. Configuration testing refers to (the process of testing software using various hardware or parameters)
  10. Under the guidance of (mutation testing), testers can evaluate the error detection ability of the test case set and create a test data set with stronger error detection ability.
  11. The criteria for passing the software acceptance test do not include (at least one software function exceeds the definition in the software requirements analysis specification and is a software feature.)
  12. Almost all performance tests will involve (concurrency testing)
  13. Program instrumentation is generally used to obtain program execution (process status) information.
  14. The following correct statements about integration testing are (all correct).
    ‏①Integration testing is also called assembly testing or joint testing;
    ‏②When connecting various modules, will the data passing through the module interface be lost?
    ‏③Whether the function of one module will have an adverse impact on the function of another module;
    ‏④Can the combination of each sub-function meet the expected requirements? The parent function of ;

  15. Testing of a class should be performed before the class is used in other parts of the software. Preventing the use of untested classes (defect conduction and diffusion)
  16. Object-oriented software testing is proposed based on the object-oriented software development process combined with object-oriented characteristics. It does not include: (Object Encapsulation Testing)
  17. If the parent class is defective, the derived (subclass) will also be defective. Inheritance improves code reuse, but it also increases the probability of defect propagation.
  18. Which of the following descriptions about alpha testing is correct (alpha testing is a type of acceptance testing)
  19. It is used to examine the maximum load that a software system can withstand under the current software and hardware environment and to help identify system bottlenecks (stress testing)
  20. The basic idea of ​​the error speculation method is: (List all possible errors in the program and special situations where errors are prone to occur, and select test cases based on them)
  21. The following are not integration tests (whether the value of the local variable within the function is the expected value)
  22. Common coverage criteria do not include (function coverage)
  23. Locating and determining the nature of errors that have been discovered, correcting these errors, and modifying related documents at the same time, this behavior belongs to (debugging)
  24. (Data flow testing) is a structural test that focuses on the variable definition assignment points (statements) and the points (statements) that reference or use these values. It is mainly used as a plausibility check for path testing.
  25. On the basis of unit testing, all modules need to be assembled according to the requirements of the outline design and detailed design instructions. There are two ways to assemble modules into a system, namely (one-time assembly and proliferative assembly)

True or False

  1. Functional testing is the main content of system testing, checking whether the functions and performance of the system are consistent with the requirements specifications.
  2. Functional testing is the main content of system testing, checking whether the functions and performance of the system are consistent with the requirements specifications.
  3. Software testers can perform white-box testing of product specifications.
  4. Stress testing usually requires the support of auxiliary tools.
  5. Automated testing can delay project progress.
  6. Acceptance testing is end-user focused testing.
  7. Bottom-up integration requires testers to write drivers.

Guess you like

Origin blog.csdn.net/m0_56942491/article/details/131734756