Software Engineering Quiz

Grade 12 · Technology · Quiz

Test your knowledge of SDLC models, design principles, testing, and professional development practices.

Questions

  1. Which SDLC model is best suited for a project where requirements are expected to change frequently throughout development?

    1. Waterfall
    2. V-Model
    3. Agile/Scrum
    4. 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.

  2. The Open/Closed Principle states that software entities should be:

    1. Open for modification, closed for extension
    2. Open for extension, closed for modification
    3. Open for testing, closed for deployment
    4. 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.

  3. 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.

  4. 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.

  5. Which design principle states that high-level modules should not depend on low-level modules — both should depend on abstractions?

    1. Single Responsibility
    2. Liskov Substitution
    3. Interface Segregation
    4. 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).

  6. A developer notices that changing one module always requires changes in five other unrelated modules. This is a symptom of:

    1. High cohesion
    2. Low coupling
    3. High coupling
    4. 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.

  7. 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.

  8. Which of the following best describes 'technical debt'?

    1. The cost of software licenses accumulated over time
    2. The future rework cost caused by choosing expedient shortcuts now
    3. The number of open bug tickets in a backlog
    4. 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.