Software Engineering Practices

Engineering

Explore professional software development — from choosing the right development model to testing strategies, version control, and managing technical debt over time.

55 XP
Reward
12
Questions
5–10 min
Time
Q1 Question 1 of 12

A government agency is building a safety-critical air traffic control system with fully specified requirements that will not change. Which software development model is most appropriate?

Q2 Question 2 of 12

A start-up is building a consumer app where users provide feedback after each release and requirements change frequently. Which development model is most appropriate?

Q3 Question 3 of 12

A developer writes a function that converts temperature from Celsius to Fahrenheit. Using test-driven development (TDD), what should she do first?

Q4 Question 4 of 12

A team uses Git and makes a change that accidentally breaks a feature. What Git capability allows them to quickly restore the codebase to the last working state?

Q5 Question 5 of 12

Two developers both modify the same file simultaneously on different branches. When they merge, Git reports a conflict. What is the correct approach?

Q6 Question 6 of 12

A unit test for a payment function passes in isolation, but the payment system fails when integrated with the user-authentication module. Which level of testing would have caught this failure?

Q7 Question 7 of 12

Technical debt is accumulating in a codebase because developers take shortcuts to meet deadlines. Which analogy best describes the long-term consequence?

Q8 Question 8 of 12

A developer uses the 'rubber duck debugging' technique. What does this involve, and why does it work?

Q9 Question 9 of 12

A pull request in Git is created by a developer before merging feature work into the main branch. What is its primary purpose in a professional engineering team?

Q10 Question 10 of 12

Acceptance testing is the final level of testing before software is delivered. Who typically performs it, and what does it verify?

Q11 Question 11 of 12

A developer bisects a bug using Git's binary search capability: she tests the midpoint commit, determines the bug is not present, and then tests a commit halfway between the midpoint and the latest. What debugging strategy is she applying?

Q12 Question 12 of 12

A software system works correctly and all tests pass, but the code is difficult to understand and modify. A developer refactors it — rewriting the internal structure without changing external behaviour. Why is this valuable?