This paper describes a Knowledge-based Assisted Training and Testing System (KATTS) developed to address some deficiencies in conventional CAI. These deficiencies include inadequate reasoning and explanation provided to assist student learning, inability to generate different forms of the same problem and difficulties in accepting approximate matches to the expected solutions. KATTS can provide students with feedback by describing the lines of reasoning used by the knowledge-based inference engine. KATTS allows the instructor to design problems by embedding variables in the problems and KATTS uses those different variables to generate different forms of the same problem. KATTS can evaluate different answers to the different forms of the same problem by employing a knowledge-based induction technique. Management facilities for monitoring students' performance and recording their assessment scores are also provided. KATTS has been field tested in a second year accounting course in the last twelve months with successful results.