Software Engineering——Chapter 7 Realizing Knowledge Points

This column is the blogger's personal notes, the main purpose is to use the fragmented time to memorize the knowledge points of soft engineering, hereby declare!

Article directory

 1. What two parts does the implementation consist of?

2. What is encoding? Which features of the program does the programming language chosen have a profound effect on?

3. Which two phases does software testing span in the software life cycle?

4. What is the proportion of the workload of testing to the total workload of software development?

5. What is an important job before coding?

6. What aspects should be considered in the coding rules?

7. What are the two main aspects of efficiency?

8. The principle of efficiency?

9. What is the fundamental purpose of the testing phase?

10. What is the purpose or definition of software testing?

11. What are the criteria for testing?

12. According to the order of test time, what are the test steps?

13. What is parallel operation?

14. Which two parts are included in the information flow in the testing phase, and what parts are they composed of?

15. What is unit testing? Which testing techniques are mainly used?

16. What is the focus of unit testing?

17. What makes code review superior to computer testing?

18. Which two virtual programs need to be developed for unit testing?

19. What benefits does a high degree of module cohesion bring to unit testing?

20. What is integration testing? What is the main goal?

21. What are the two ways to assemble modules into programs?

22. What are the two strategies of the incremental testing method for incorporating modules into a program?

23. What is the comparison between top-down and bottom-up strategies? (The disadvantage of one strategy is the advantage of the other)

24. What is a mixed strategy?

 25. What is regression testing?

26. What is the goal of validation testing? What is the difference between verification and confirmation?

27. What is the definition of software effectiveness?

28. What is the basis for confirmatory testing?

29. What is the main object of the confirmation test? What kind of test method is usually used?

30. What is the difference between Alpha testing and Beta testing?

31. What is a test case?

32. What does white box testing technology include?

33. What is logical coverage?

34. What is logical coverage from weak to strong?

35. What does the control structure test include?

36. The basic path test is a kind of control structure test. What are the specific steps?

37. What is the difference between white box testing and black box testing?

38. What are the black box testing techniques?

39. What are the steps of equivalence class division method?

40. What are the characteristics of wrong guessing method?

41. What are effective ways to choose input combinations?

42. What is debugging?

43. What are the ways of debugging?

44. What is the difference between software reliability and software availability?

45. What are the methods for estimating the total number of errors?

46. ​​What is software review?

47. What types of software review are divided according to different review stages?

48. Why is software review extremely important? (Significance of software review)

Summary at the end of the chapter


 1. What two parts does the implementation consist of?

An implementation consists of coding and testing , which are collectively referred to as the implementation

2. What is encoding? Which features of the program does the programming language chosen have a profound effect on?

The so-called coding is to translate the software design results into programs written in a certain programming language.

The characteristics of the selected programming language and coding style will have a profound impact on the reliability, readability, testability and maintainability of the program

3. Which two phases does software testing span in the software life cycle?

Unit testing phase: module writer and tester are the same person

Comprehensive testing phase: undertaken by dedicated testers

4. What is the proportion of the workload of testing to the total workload of software development?

40% or more

5. What is an important job before coding?

Choose an appropriate programming language , high-level languages ​​are significantly better than assembly languages

6. What aspects should be considered in the coding rules?

  1. Documentation inside the program
  2. Data description
  3. statement construction
  4. input Output
  5. efficiency

7. What are the two main aspects of efficiency?

Time and Capacity Space

8. The principle of efficiency?

  1. Efficiency is a performance requirement
  2. Efficiency is improved by good design
  3. The efficiency of the program is consistent with the simplicity of the program , do not sacrifice the clarity and readability of the program to increase efficiency unnecessarily

9. What is the fundamental purpose of the testing phase?

The fundamental purpose of the testing phase is to find and eliminate         as many potential errors in the software as possible , and finally deliver a high- quality software system to users .

        Exposing problems is not the ultimate goal of software testing, finding problems is to solve them.

10. What is the purpose or definition of software testing?

  1. Testing is the process of executing a program in order to find bugs in it (Definition)
  2. A good test plan is one that has a high probability of uncovering hitherto undiscovered bugs
  3. A successful test is one that finds a hitherto undiscovered bug

11. What are the criteria for testing?

  1. All tests should be traceable to user requirements
  2. A test plan should be developed long before testing begins
  3. Apply the Pareto principle to software testing, that is, 80% of the errors may be caused by 20% of the modules in the program
  4. Should start with " small scale " testing and work your way up to " large scale " testing
  5. Exhaustive testing is impossible
  6. In order to achieve the best testing results, an independent third party should be engaged in the testing work

12. According to the order of test time, what are the test steps?

  1. unit test
  2. Integration Testing
  3. System test
  4. Acceptance testing (confirmation testing)

13. What is parallel operation?

        Parallel operation means that important software products are often not put into productive operation immediately after acceptance , but will go through a period of parallel operation time with the old system.

14. Which two parts are included in the information flow in the testing phase, and what parts are they composed of?

  1. Software configuration : requirements specification, design specification, source program list
  2. Test configuration : test scheme and plan, etc.

15. What is unit testing? Which testing techniques are mainly used?

        Unit testing focuses on detecting the smallest unit of software design—— module , which mainly uses " white box testing technology "

        The testing of multiple modules can be carried out in parallel, and two different methods of manual testing and computer testing are used to complete the work, complementing each other and complementing each other

16. What is the focus of unit testing?

  1. module interface
  2. local data structure
  3. important execution pathway
  4. error handling path
  5. Boundary conditions (most important)

17. What makes code review superior to computer testing?

Many errors         can be found in a code review meeting , and after the error is found by computer testing, it is usually necessary to correct the error before continuing the test, that is, the errors are found and corrected one by one .

18. Which two virtual programs need to be developed for unit testing?

Driver software (main program)

Stub software (stub modules, dummy subroutines)

19. What benefits does a high degree of module cohesion bring to unit testing?

        A high degree of module cohesion simplifies the unit testing process . If each module only completes one function, the number of test plans required will be significantly reduced , and errors in the modules are easy to predict and find

20. What is integration testing? What is the main goal?

Integration testing is a systematic technique for testing and assembling software whose main goal is to find problems related to interfaces .

21. What are the two ways to assemble modules into programs?

There are non-incremental testing methods and incremental testing methods when         modules are assembled into programs , and incremental testing methods are generally used in integration testing

22. What are the two strategies of the incremental testing method for incorporating modules into a program?

top-down and bottom-up strategies

23. What is the comparison between top-down and bottom-up strategies? (The disadvantage of one strategy is the advantage of the other)

The main disadvantages of the top-down testing approach are:

  1. need a stub
  2. May encounter testing difficulties associated with this
  3. Bugs in low-level critical modules are found late
  4. With this method, manpower cannot be fully developed in the early stage

The main advantages of the top-down testing approach:

  1. No test driver required
  2. Ability to implement and verify the main functionality of the system early in the testing phase
  3. Ability to detect interface errors in upper-level modules at an early stage

 

24. What is a mixed strategy?

Mixed strategy = improved top-down testing method + hybrid method

[Note]: The hybrid method is also called the "sandwich method", that is, the top-down testing method is used for the upper layer of the software structure, and the bottom-up testing method is used for the lower layer

 25. What is regression testing?

Regression testing refers to re-executing a subset of tests that have already been done

26. What is the goal of validation testing? What is the difference between verification and confirmation?

Confirmation testing is also known as acceptance testing , the goal of which is to verify the effectiveness of the software

Verification refers to the series of activities that ensure that software correctly implements a specified requirement

Validation refers to the series of activities performed to ensure that the software actually meets the user's needs

27. What is the definition of software effectiveness?

Software effectiveness means that software is effective if its functions and performance are consistent with what users reasonably expect

28. What is the basis for confirmatory testing?

Software Requirements Specification

29. What is the main object of the confirmation test? What kind of test method is usually used?

Confirmation testing is user- centric, usually using black-box testing . The problems found at this stage are usually related to the errors in the requirements analysis stage , which involve a wide range of areas and are difficult to solve

30. What is the difference between Alpha testing and Beta testing?

Alpha testing is conducted in a controlled environment , usually with developers directing user testing

Beta testing is performed by software end users at one or more customer sites , and developers are not at the testing site

31. What is a test case?

The test data and expected output results are called test cases, the most difficult problem is designing the input data for testing

32. What does white box testing technology include?

Logic coverage and control structure testing

33. What is logical coverage?

Logic coverage is the general term for progressively more and more complete path testing processes

34. What is logical coverage from weak to strong?

  1. Statement coverage (point coverage): Select enough test data so that each statement in the program under test is executed at least once
  2. Decision coverage (edge ​​coverage): Not only must each statement be executed at least once, each branch of each decision must be executed at least once
  3. Condition coverage : not only execute each statement at least once, but also make each condition in the decision expression obtain various possible results
  4. Judgment/Condition Coverage : Each condition in the judgment expression can take various possible values, and each judgment expression can also take various possible results
  5. Condition combination coverage : select enough test data so that each possible combination of conditions in each decision expression occurs at least once

【Note】:

  1. Decision coverage >= statement coverage
  2. conditional coverage >= statement coverage
  3. Condition coverage is usually stronger than decision coverage, there is no specific inclusion relationship
  4. Decision/Condition Override >= Decision Override
  5. Judgment/Condition Override >= Condition Override
  6. The strongest criterion is path coverage

35. What does the control structure test include?

Basic path test, conditional test, loop test

36. The basic path test is a kind of control structure test. What are the specific steps?

  1. Draw the corresponding flow diagram according to the process design results
  2. Calculate the circular complexity of the flow graph , there are as many independent paths as there are numbers, and the independent path results are not unique
  3. Determine the basic set of linearly independent paths (an independent path contains at least one edge that was not used before defining the path )
  4. Design test cases that enforce each path in the base set

37. What is the difference between white box testing and black box testing?

  1. The logical structure of white box testing and detection software , the function of black box testing and detection software
  2. The premise of white-box testing is that the tester fully knows the structure and processing algorithm of the program , while black-box testing regards the program as a black box without considering the internal and processing of the program.
  3. White box testing is done in the early stage of testing while black box testing is mainly used in later stages of the testing process
  4. The technical methods used by the two are different . White-box testing techniques mainly include logic coverage and path testing , while black-box testing techniques mainly include equivalence class division and boundary value analysis.

38. What are the black box testing techniques?

Equivalence class partitioning, boundary value analysis, error guessing

39. What are the steps of equivalence class division method?

  Equivalence division first divides the equivalence classes of the input data , so as to determine the effective equivalence classes and invalid equivalence classes of the input data , and also needs to analyze the equivalence classes of the output data , so as to derive the corresponding equivalence classes of the input data according to the equivalence classes of the output data. equivalence class

[Note]: The program is most prone to errors when dealing with boundary conditions. Usually , the two techniques of equivalence division and boundary value analysis are always used in combination when designing a test plan.

40. What are the characteristics of wrong guessing method?

Error guessing relies heavily on intuition and experience

41. What are effective ways to choose input combinations?

  1. Use decision tables or decision trees as tools
  2. Combining computer testing and human inspection

42. What is debugging?

Debugging is the process of eliminating errors after testing finds errors , and is the most difficult mental work in the software development process

43. What are the ways of debugging?

  1. brute force
  2. Backtracking
  3. Cause elimination method (including binary search method, induction method, deductive method)

44. What is the difference between software reliability and software availability?

Software reliability refers to the probability that a program will run successfully within a given time interval in accordance with the specifications.

Software availability refers to the probability that a program will run successfully according to the specifications at a given point in time

45. What are the methods for estimating the total number of errors?

  1. Implantation errors
  2. separate test

46. ​​What is software review?

        A software review is a means of evaluating the status of a software element or project to determine whether it is consistent with planned results and to allow for improvement

47. What types of software review are divided according to different review stages?

  1. needs review
  2. functional review
  3. quality review
  4. cost review
  5. maintenance review

48. Why is software review extremely important? (Significance of software review)

Software review can organize the collective strength of         the project team , conduct reasonable analysis on software-related content , and find and solve problems as much as possible in the early stage of software life, so software review is extremely important

Summary at the end of the chapter

        Implementation includes two phases of coding and testing .

        According to the traditional software engineering methodology, coding is carried out after the overall design and detailed design of the software. It just translates the result of software design into a program written in a certain programming language . Therefore, the quality of the program Basically it depends on the quality of the design. However, the language used for coding, and especially the style of writing programs, also has a considerable impact on program quality.

        A large number of practical results show that high-level programming language has many advantages over assembly language. Therefore, unless it is very necessary, generally do not use assembly language to write programs. As for which high-level programming language to choose, not only the characteristics of the language itself, but also a series of practical factors such as the use environment should be considered.

        Good documentation inside the program, regular data description format, simple and clear statement structure and input and output format, etc., all have a great effect on improving the readability of the program, and also improve the readability of the program to a considerable extent . maintainability .

At present, software testing is still the main means         to ensure software reliability . The fundamental task of the testing phase is to find and correct bugs in the software.

        Software testing is the most arduous and arduous task in the software development process. Large-scale software testing should be carried out in stages, usually at least divided into three basic stages: unit testing, integration testing and acceptance testing .

        Designing a test plan is a key technical issue in the testing phase. The basic goal is to select the least amount of efficient test data to achieve as perfect a test as possible, so as to find as many problems in the software as possible.

        It should be recognized that software testing does not only refer to testing using computers, but also includes testing performed by humans (eg, code review). The two testing methods have their own advantages and disadvantages, and they complement each other, and both are indispensable.

        White-box testing and black-box testing are two basic methods of software testing. These two methods have their own strengths and complement each other. Usually, the white-box approach is mostly used in the early stages of the testing process , while the black-box approach is mostly used in the later stages of the testing process . In order to design effective test solutions, software engineers should deeply understand and adhere to the basic principles of software testing.

        The techniques for designing white-box testing schemes mainly include logic coverage and control structure testing ; the techniques for designing black-box testing schemes mainly include equivalence partitioning, boundary value analysis, and error speculation .

        The software errors found in the testing process must be corrected in time, which is the task of debugging. In order to correct the error, the exact location of the error must first be determined, which is the most difficult task in the debugging process and requires careful and careful thinking and reasoning. In order to correct errors, it is often necessary to correct the original design, and it is necessary to consider overall considerations, instead of "treating the head when the head hurts, and treating the foot when the foot hurts", and should try to avoid introducing new errors during the debugging process.

        Testing and debugging are two very closely related processes in the software testing phase, and they are often carried out alternately .

The number of hidden errors         in the program directly determines the reliability of the software . The number of bugs remaining in the program can be estimated by testing. According to the number of errors that have been found and corrected in the process of testing and debugging, the average time between failures of the software can be estimated; on the contrary, according to the required average time between failures of the software, the number of errors that should be corrected can be estimated, so as to be able to judge the test stage. can end.

Next chapter : Software Engineering—Chapter 8 Maintenance Knowledge Points

 

 Repeatedly, down-to-earth; never forgetting, there will be echoes!

Guess you like

Origin blog.csdn.net/qq_52487066/article/details/131519742