Consider the development of a two-pass assembler. Outline its functions and describe how you might test it so that each function is tested thoroughly before the next function is examined. Suggest a build plan for the development, and explain how the build plan and testing must be designed together.