Our research in the past has been focused on the use of database/knowledge base technologies to automate software testing tasks in order to provide a more cost-effective approach to managing software faults. Our recent interest is to build a knowledge-based T&E environment such that tests, faults, and diagnosis associated with a program at different levels of abstraction over the time are presented and stored as objects. These objects can be automatically tracked and analyzed so that patterns and knowledge can be extracted to facilitate test and evaluation of future software products and to facilitate the maintenance of existing products.