Software Engineering

Written Test on Code Complete


Three hours, open-book test. Email your answers as an attachment of a Word document or a plain text file.


Imagine you are applying for a position of software engineer, and in the interview they ask you to (i) describe your understanding of the key software engineering principles or issues listed below and (ii) in the context of programming projects you have done, demonstrate evidence of your software engineering practices using the software engineering principles and addressing the software engineering issues. 


Do not just copy what you have read from the books, but speak out your understanding in your own words and examples. Make your answers succinct (definitely no more than half a page per question) and as concrete as possible (how you do it in your programming projects, for example).



  1. Testing
  2. Debugging
  3. Refactoring and fine tuning of code
  4. Integration of modules
  5. Naming convention
  6. Documentation and layout styles of code