2MARKS (FIRST 20 QUESTIONS)
1. List out the different types of patterns:
- Creational patterns
- Structural patterns
- Behavioral patterns
2. Organize the limitations of Factory Pattern:
- Lack of flexibility in adding new product types
- Can lead to complex hierarchies of factories
3. Define Design Pattern:
- Design patterns are reusable solutions to common problems in software
design and development.
4. Organize the limitations of Factory Pattern:
- Lack of flexibility in adding new product types
- Can lead to complex hierarchies of factories
5. “A system must be loosely coupled and highly cohesive” - Justify:
- Loose coupling reduces dependencies between components, making the
system easier to maintain and modify.
- High cohesion ensures that components within a module are closely related
and focused on a specific task, improving clarity and maintainability.
6. Describe Model-view-controller (MVC):
- MVC is a software architectural pattern where Model represents data, View
displays the user interface, and Controller handles user input and updates the
Model and View accordingly.
7. Define Observer Pattern:
- Observer pattern is a behavioral design pattern where an object (subject)
maintains a list of its dependents (observers) and notifies them of any state
changes, enabling them to update automatically.
8. “A system must be loosely coupled and highly cohesive” - Justify:
- Loose coupling reduces dependencies between components, making the
system easier to maintain and modify.
- High cohesion ensures that components within a module are closely related
and focused on a specific task, improving clarity and maintainability.
9. Characteristics of a good user interface:
- Intuitiveness
- Consistency
- Responsiveness
- Clarity
- Accessibility
10. Benefits of Low Coupling:
- Easier maintenance and modification
- Increased reusability
- Better encapsulation and abstraction
11. Various types of system testing:
- Unit testing
- Integration testing
- System testing
- Acceptance testing
12. Basis Path Testing:
- Basis path testing is a white-box testing technique that systematically tests all
possible paths through a program's control flow graph.
13. Differentiate verification and validation:
- Verification ensures that the software meets specified requirements.
- Validation ensures that the software meets the customer's needs and
expectations.
14. Various approaches of debugging:
- Print debugging
- Breakpoint debugging
- Step debugging
- Remote debugging
15. White box testing methods:
- Statement coverage
- Branch coverage
- Path coverage
- Condition coverage
16. Comparison of black box and white box testing:
- Black box testing focuses on functional aspects without knowing internal code
structure.
- White box testing examines internal code structure and logic for thorough
testing.
17. Advantages of Equivalence Class Partitioning:
- Efficient test case coverage
- Identifies representative inputs for testing
- Reduces redundancy in test cases
18. Symbolic Execution:
- Symbolic execution is a white-box testing technique that analyzes a
program's code paths symbolically to detect errors and generate test cases.
19. Debugging and its strategies:
- Debugging is the process of identifying and resolving defects or errors in
software.
- Strategies include step-by-step execution, code inspection, and using
debugging tools.
20. Calculation of Cyclometric Complexity:
- Cyclometric complexity is calculated using the formula: M = E - N + 2P, where E
is the number of edges, N is the number of nodes, and P is the number of
connected components.