Software Engineering Quiz
Grade 12 · Technology · Quiz
Test your knowledge of SDLC models, design principles, testing, and professional development practices.
Questions
Which SDLC model is best suited for a project where requirements are expected to change frequently throughout development?
- Waterfall
- V-Model
- Agile/Scrum
- Big Bang
Show answer
Answer: Agile/Scrum
Agile/Scrum's iterative sprint model is designed to accommodate changing requirements through continuous feedback and backlog reprioritization.
The Open/Closed Principle states that software entities should be:
- Open for modification, closed for extension
- Open for extension, closed for modification
- Open for testing, closed for deployment
- Open to all developers, closed to external users
Show answer
Answer: Open for extension, closed for modification
The Open/Closed Principle means you extend behavior by adding new code (inheritance, composition) rather than modifying existing, tested code.
In Scrum, the Product Backlog contains every feature, bug fix, and enhancement needed in the product.
Show answer
Answer: True
The Product Backlog is the single authoritative source of everything that needs to be done on the product, ordered by priority.
The practice of automatically deploying every code change that passes all tests directly to production is called continuous ______.
Show answer
Answer: deployment
Continuous Deployment automatically ships every change that passes automated tests to production, eliminating manual release steps.
Which design principle states that high-level modules should not depend on low-level modules — both should depend on abstractions?
- Single Responsibility
- Liskov Substitution
- Interface Segregation
- Dependency Inversion
Show answer
Answer: Dependency Inversion
Dependency Inversion decouples high-level policy from low-level implementation by having both depend on a shared abstraction (interface).
A developer notices that changing one module always requires changes in five other unrelated modules. This is a symptom of:
- High cohesion
- Low coupling
- High coupling
- Low complexity
Show answer
Answer: High coupling
When changing one module forces unrelated cascading changes elsewhere, it indicates high coupling — modules know too much about each other's internals.
End-to-end tests are faster and cheaper to maintain than unit tests, making them the best first layer of a testing strategy.
Show answer
Answer: False
End-to-end tests are the slowest and most brittle layer of the testing pyramid. Unit tests are fastest, cheapest, and should form the largest portion of a test suite.
Which of the following best describes 'technical debt'?
- The cost of software licenses accumulated over time
- The future rework cost caused by choosing expedient shortcuts now
- The number of open bug tickets in a backlog
- Memory leaks caused by poor garbage collection
Show answer
Answer: The future rework cost caused by choosing expedient shortcuts now
Technical debt is the metaphorical debt incurred when shortcuts are taken; like financial debt, it accrues 'interest' as the codebase grows more complex to maintain.
Get a personalized course on Software Engineering built around your child.