wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

SQA final part 2

Total questions: 88

Worksheet time: 44mins

Name
Class
Date
1.

What is the purpose of code review or program inspection?

a)

a) To improve code quality

b)

b) To create a clear hierarchy of packages

c)

c) To manage relationships among software components

d)

d) To discover and fix errors

2.

What is reviewed and inspected as part of code review activities?

a)

a) Design

b)

b) Software product

c)

c) Documentation

d)

d) All of the above

3.

What are the objectives of code review?

a)

a) To improve code quality

b)

b) To make source code easier to understand

c)

c) To make software easier to maintain

d)

d) All of the above

4.

What is the high-level focus of code review?

a)

a) Code architecture

b)

b) Specific code

c)

c) Package/folder structure

d)

d) Managing relationships among software components

5.

What is the low-level focus of code review?

a)

a) Code architecture

b)

b) Specific code

c)

c) Package/folder structure

d)

d) Managing relationships among software components

6.

How can the organization of a software project be improved?

a)

a) Create a clear hierarchy of packages and resources folders

b)

b) Put relevant classes in the same package

c)

c) Put relevant resources in the same folder

d)

d) All of the above

7.

What is coupling between object classes?

a)

a) The measure of how many other classes rely on the class and vice versa

b)

b) The depth of inheritance tree

c)

c) The number of methods per class

d)

d) The method fan-in/fan-out

8.

What is the recommended size for classes?

a)

a) Small

b)

b) Large

c)

c) Medium

d)

d) Varies based on requirements

9.

What does depth of inheritance tree measure?

a)

a) The measure of how many other classes rely on the class and vice versa

b)

b) The depth of inheritance tree

c)

c) The number of methods per class

d)

d) The method fan-in/fan-out

10.

What does the number of methods per class indicate?

a)

a) The measure of how many other classes rely on the class and vice versa

b)

b) The depth of inheritance tree

c)

c) The number of methods per class

d)

d) The method fan-in/fan-out

11.

Why does clean code matter?

a)

a) It makes it easier to write more code

b)

b) It prevents software failure

c)

c) It saves time spent reading code

d)

d) All of the above

12.

What can a name be used for in programming?

a)

a) A variable

b)

b) A function

c)

c) A class

d)

d) All of the above

13.

What should functions (methods) generally be?

a)

a) Small

b)

b) Large

c)

c) Medium-sized

d)

d) Varies based on requirements

14.
  1. How many levels of nested structures should functions avoid having?

a)

a) No nesting is allowed

b)

b) Up to 1 level of nesting is allowed

c)

c) Up to 2 levels of nesting are allowed

d)

d) Up to 3 levels

15.

What is the approach to designing large software that is easy to understand?

a)

a) Scalability design

b)

b) Modularity design

c)

c) Dependency design

d)

d) Complexity design

16.

What are the characteristics of modular software?

a)

a) Irreducible and isolated

b)

b) Composable and error-free

c)

c) Decomposable and composable

d)

d) Scalable and independent

17.

Which design issue focuses on the dependency between components?

a)

a) Coupling

b)

b) Cohesion

c)

c) Abstraction

d)

d) Scalability

18.

What is the goal of increasing cohesion in software design?

a)

a) Decrease coupling

b)

b) Increase complexity

c)

c) Enhance teamwork

d)

d) Make components self-contained and independent

19.

How are modules dependent on one another in terms of coupling?

a)

a) Statically and dynamically

b)

b) Functionally and hierarchically

c)

c) Continuously and concurrently

d)

d) All of the above

20.

What does coupling lead to in software code?

a)

a) Reduced complexity

b)

b) Improved maintainability

c)

c) Spaghetti code

d)

d) Modularity and scalability

21.

What is the recommended approach for reducing coupling?

a)

a) Separation of concerns

b)

b) Combining modules

c)

c) Increasing dependencies

d)

d) Creating spaghetti code

22.

What should a class represent in class design?

a)

a) Multiple concepts

b)

b) Single responsibility

c)

c) Complexity and abstraction

d)

d) Complete implementation

23.

How should class documentation be separated?

a)

a) Internal and external

b)

b) Public and private

c)

c) Design and implementation

d)

d) Inheritance and polymorphism

24.

What is the principle of class cohesion?

a)

a) Do one thing

b)

b) Do multiple things simultaneously

c)

c) Combine unrelated functionalities

d)

d) Rely on other classes for operations

25.

What should methods avoid in terms of parameter lists?

a)

a) Long parameter lists

b)

b) Short parameter lists

c)

c) No parameter lists

d)

d) Dynamic parameter lists

26.

What does inconsistency in method design lead to?

a)

a) Flexibility and reusability

b)

b) Separation of concerns

c)

c) Improved performance

d)

d) Confusion and errors

27.

Which type of message in a sequence diagram requires the caller to wait for the receiving object to finish executing?

a)

a) Synchronous message

b)

b) Asynchronous message

c)

c) Simple message

d)

d) Activation message

28.

What is the purpose of the vertical axis in a sequence diagram?

a)

a) Represent participating objects

b)

b) Depict time

c)

c) Show lifelines

d)

d) Display messages

29.

What does the horizontal axis in a sequence diagram represent?

a)

a) Objects

b)

b) Operations

c)

c) Time

d)

d) Participants

30.

What are represented by boxes at the top of a sequence diagram?

a)

a) Activation periods

b)

b) Messages

c)

c) Lifelines

d)

d) Interactions

31.

What is the time period during which an object performs an operation in a sequence diagram?

a)

a) Activation

b)

b) Interaction

c)

c) Lifeline

d)

d) Synchronous message

32.

What type of message in a sequence diagram transfers control without describing the details of communication?

a)

a) Synchronous message

b)

b) Asynchronous message

c)

c) Simple message

d)

d) Activation message

33.

What is the purpose of UML sequence diagrams?

a)

a) Describe software scalability

b)

b) Depict object interactions over time

c)

c) Analyze coupling and cohesion

d)

d) Visualize software architecture

34.

What is the characteristic of an asynchronous message in a sequence diagram?

a)

a) It requires the caller to wait for the recipient's response

b)

b) It transfers control from the sender to the recipient without describing the details of communication

c)

c) It represents a synchronous interaction between objects

d)

d) It does not require the sender to wait for the recipient to handle the message

35.

What are the goals of software testing?

a)

a) To demonstrate that the software meets its requirements.

b)

b) To discover incorrect implementation and defects.

c)

c) Both a) and b)

d)

d) None of the above

36.

What did Edsger Dijkstra say about program testing?

a)

a) Testing can show the absence of bugs.

b)

b) Testing is essential for proving program correctness.

c)

c) Testing can demonstrate the presence of bugs.

d)

d) None of the above

37.

Which technique covers approximately 97% of bugs according to James Wilcox?

a)

a) Tools such as error highlighting and code analysis.

b)

b) Inspection through peer code review.

c)

c) Testing

d)

d) Both a) and b)

38.

Why are programmers expected to test their code nowadays?

a)

a) It allows for easy product updates after release.

b)

b) Test-driven development has gained popularity.

c)

c) Both a) and b)

d)

d) None of the above

39.

What is a challenge in testing your own code?

a)

a) Confirmation bias

b)

b) Conflict in benefits of the programmer and tester

c)

c) Both a) and b)

d)

d) None of the above

40.

What are the different kinds of testing?

a)

a) Unit testing vs. Integration/System testing

b)

b) Specification testing vs. Implementation testing

c)

c) Development, Release, User testing

d)

d) All of the above

41.

What is the purpose of unit testing?

a)

a) To verify if each unit works as specified.

b)

b) To check if the units work together properly.

c)

c) To validate the system as a whole.

d)

d) None of the above

42.

What is black-box testing?

a)

a) Identifying test cases based on software specification.

b)

b) Identifying test cases from reading source code.

c)

c) Both a) and b)

d)

d) None of the above

43.

What is development testing?

a)

a) Testing done by designers and programmers during implementation.

b)

b) Testing done by testers to check for conformance to requirements.

c)

c) Testing done by end users.

d)

d) None of the above

44.

What is usability testing?

a)

a) To check if the user interface is easy to use and understand.

b)

b) To measure responsiveness and reliability under normal workload.

c)

c) To test system reliability under heavy workload.

d)

d) To ensure compatibility with other software applications, operating systems, or hardware.

45.

What is regression testing?

a)

a) Testing after major changes

b)

b) Testing under different environments to ensure compatibility.

c)

c) Testing to measure responsiveness and reliability.

d)

d) None of the above

46.

What is an error in the context of testing?

a)

a) A mistake made by a person while coding or documenting.

b)

b) The result of an error that exists in the code.

c)

c) The symptom that alerts users to the existence of a fault.

d)

d) None of the above

47.

What is a test case?

a)

a) The act of running software using test cases.

b)

b) A set of inputs and expected outputs associated with a program behavior.

c)

c) A required behavior that is not implemented.

d)

d) An unwanted behavior that is implemented.

48.

What does unit testing focus on?

a)

a) Testing a single unit in isolation from others

b)

b) Verifying the interaction between multiple units

c)

c) Validating the system as a whole

d)

d) None of the above

49.

What technique is used to identify test cases by dividing input values into partitions?

a)

a) Equivalence partitioning

b)

b) Boundary Value Analysis

c)

c) Decision Table-Based Testing

d)

d) Graph-Based Testing

50.

What is the rationale behind boundary value analysis?

a)

a) Errors tend to occur near the extreme values of an input variable

b)

b) Errors are more likely to occur in the middle range of an input variable

c)

c) Errors are evenly distributed throughout the input range

d)

d) None of the above

51.

What are some limitations of boundary value analysis?

a)

a) It is not suitable for boolean values

b)

b) It is not effective when parameters are dependent

c)

c) Both a) and b)

d)

d) None of the above

52.

What is the purpose of smoke/confidence testing?

a)

a) To check if the user interface is easy to use and understand

b)

b) To measure responsiveness and reliability under normal workload

c)

c) To find enough errors to reject a software release or cancel further testing

d)

d) To test system reliability under heavy workload

53.

What is compatibility testing?

a)

a) Testing after major changes (version)

b)

b) Testing under different environments to ensure compatibility with other software applications, operating systems, or hardware

c)

c) Testing to measure responsiveness and reliability

d)

d) None of the above

54.

What is security testing?

a)

a) Testing to see how well the system is protected against intruders/hackers

b)

b) Testing if the user interface is easy to use and understand

c)

c) Testing to measure responsiveness and reliability under normal workload

d)

d) Testing to ensure compatibility with other software applications, operating systems, or hardware

55.

What is the purpose of unit testing?

a)

a) To verify if each unit works as specified.

b)

b) To check if the units work together properly.

c)

c) To validate the system as a whole.

d)

d) None of the above.

56.

What is development testing?

a)

a) Testing done by designers and programmers during implementation.

b)

b) Testing done by testers to check for conformance to requirements.

c)

c) Testing done by end users.

d)

d) None of the above.

57.

What is an error in the context of testing?

a)

a) A mistake made by a person while coding or documenting.

b)

b) The result of an error that exists in the code.

c)

c) The symptom that alerts users to the existence of a fault.

d)

d) None of the above.

58.

What is a test case?

a)

a) The act of running software using test cases.

b)

b) A set of inputs and expected outputs associated with a program behavior.

c)

c) A required behavior that is not implemented.

d)

d) An unwanted behavior that is implemented.

59.

What are heuristics used for in software testing?

a)

a) To identify subdomains of inputs with the same behavior.

b)

b) To target different classes of errors.

c)

c) To combine multiple testing techniques.

d)

d) All of the above.

60.

Which heuristic targets common cases where bugs frequently happen?

a)

a) Special values testing.

b)

b) Statement coverage.

c)

c) Branch coverage.

d)

d) Mutation testing.

61.

What is decision table testing used for?

a)

a) Testing system behavior for different input combinations.

b)

b) Testing individual units of code.

c)

c) Testing performance and scalability.

d)

d) None of the above.

62.

Which code coverage metric measures the degree to which the source code has been tested?

a)

a) Statement coverage.

b)

b) Branch coverage.

c)

c) Condition coverage.

d)

d) Path coverage.

63.

What is the goal of statement coverage?

a)

a) To achieve 100% coverage of all statements.

b)

b) To detect unused statements in the code.

c)

c) To measure the degree to which the source code has been tested.

d)

d) To identify all possible outcomes of a decision.

64.

What is decision coverage also known as?

a)

a) Statement coverage.

b)

b) Branch coverage.

c)

c) Condition coverage.

d)

d) Path coverage.

65.

What is condition coverage?

a)

a) Measuring the number of executed decision outcomes over the total number of decision outcomes.

b)

b) Measuring the number of tested Boolean outcomes over all Boolean outcomes.

c)

c) Testing all execution paths in a program/module/function.

d)

d) Testing individual conditions in the code.

66.

What is basis path testing?

a)

a) A technique for testing procedural programs introduced in 1976.

b)

b) Analyzing execution paths in a program/module/function and testing all execution paths.

c)

c) Measuring the degree of code coverage based on decision outcomes.

67.

What is the difference between branch coverage and path coverage?

a)

a) Branch coverage measures the number of executed decision outcomes, while path coverage tests all execution paths.

b)

b) Branch coverage measures the number of tested Boolean outcomes, while path coverage measures the degree of code coverage.

c)

c) Branch coverage focuses on individual conditions, while path coverage targets decision outcomes.

d)

d) Branch coverage is a testing technique for procedural programs, while path coverage is used for object-oriented programs.

68.

What is regression testing?

a)

a) Testing the behavior of a system for different input combinations.

b)

b) Testing the same set of test cases multiple times.

c)

c) Testing after making changes to ensure that existing functionality is not affected.

d)

d) Testing the performance and scalability of a system.

69.

What is mutation testing?

a)

a) A technique for measuring code coverage.

b)

b) Testing the system for special cases and boundary values.

c)

c) Introducing small changes in the code to see if the tests can detect them.

d)

d) Testing the system with a large number of random inputs.

70.

What should be included in any testing process?

a)

a) Thorough inspection of the results of each test.

b)

b) Test cases for invalid and unexpected input conditions.

c)

c) Avoiding assumptions that no errors will be found.

d)

d) All of the above.

71.

When should test cases be written?

a)

a) Before coding.

b)

b) After coding.

c)

c) Both before and after coding.

d)

d) It depends on the specific project.

72.

What should test code focus on?

a)

a) Writing code that is obviously correct.

b)

b) Repeating code in tests is acceptable.

c)

c) Verifying the correctness of the program.

d)

d) All of the above.

73.

What should be done with a test that succeeded to begin with?

a)

a) Store it for future reference.

b)

b) Verify that it is correct.

c)

c) Add it to the test suite.

d)

d) Don't add it to the test suite.

74.

What is an important aspect of testing?

a)

a) Trying to put bugs in the code to see if the tests can catch them.

b)

b) Writing tests for input conditions that are invalid and unexpected.

c)

c) Testing with the assumption that no errors will be found.

d)

d) Testing is a creative and intellectually challenging task.

75.

Software measurement aims to:

a)

a) Increase the complexity of software.

b)

b) Accurately measure the quality of software.

c)

c) Reduce the number of software metrics used.

d)

d) Speed up the software development process.

76.

Control metrics are metrics that:

a)

a) Assess the quality of software products.

b)

b) Measure the effectiveness of software testing.

c)

c) Evaluate the process and project of software development.

d)

d) Calculate the maintainability of software.

77.

Dynamic metrics are measurements made:

a)

a) During software execution.

b)

b) Before the software development process.

c)

c) After software deployment.

d)

d) While writing the source code.

78.

Which of the following is an example of a dynamic metric?

a)

a) Cyclomatic complexity of a module.

b)

b) Number of bugs discovered by users.

c)

c) Depth of inheritance tree.

d)

d) Length of the user manual.

79.

Static product metrics are measurements made of:

a)

a) System representations like design and source code.

b)

b) The behavior of the software during execution.

c)

c) The response time of the software.

d)

d) User feedback and satisfaction.

80.

Fan-in and fan-out are static product metrics that measure:

a)

a) Software efficiency and reliability.

b)

b) The complexity and error-proneness of code.

c)

c) The maintainability of software.

d)

d) The execution time of certain software features.

81.

Cyclomatic complexity is a static product metric that measures:

a)

a) The average length of identifiers in the code.

b)

b) The control complexity of a method or program.

c)

c) The number of methods in a class.

d)

d) The number of immediate subclasses in a class.

82.

Which of the following is an example of a static product metric?

a)

a) Number of bugs discovered by users.

b)

b) Execution time of certain software features.

c)

c) Depth of conditional nesting in code.

d)

d) Number of error messages in the software.

83.

Code coverage is a static product metric that measures:

a)

a) The extension of testing done on the software program.

b)

b) The complexity of the design.

c)

c) The length of the user manual.

d)

d) The efficiency and reliability of the software.

84.

The process of software product measurement includes:

a)

a) Analyzing anomalous components before measuring component characteristics.

b)

b) Choosing measurements after analyzing anomalous components.

c)

c) Measuring component characteristics before selecting components to be assessed.

d)

d) Selecting components to be assessed before measuring component characteristics.

85.

The SQA Plan provides a road map for:

a)

a) Conducting software testing.

b)

b) Designing software architecture.

c)

c) Ensuring software quality assurance.

d)

d) Managing software development tasks.

86.

Configuration management in the SQA Plan involves:

a)

a) Describing the versioning scheme.

b)

b) Assigning tasks to development team members.

c)

c) Performing audits and code inspections.

d)

d) Analyzing user data and source code.

87.

What is one of the best practices for software quality assurance?

a)

a) Keeping team progress updated.

b)

b) Building a product without a plan.

c)

c) Ignoring member roles and responsibilities.

d)

d) Avoiding code reviews and inspections.

88.

What should be the focus when developing quality software in small, inexperienced teams?

a)

a) Putting efforts into functionality first.

b)

b) Prioritizing security and performance over functionality.

c)

c) Relying solely on experienced software engineers.

d)

d) Ignoring code reviews and inspections.