The invention is a method for interacting with a test subject with respect
to knowledge or functionality characterized by a plurality of states in
one or more domains. A domain is a set of facts, a set of values, or a
combination of a set of facts and a set of values. The set of facts for a
knowledge domain is any set of facts. The set of facts for a functionality
domain is a set of facts relating to the functionality of a test subject.
A state is denoted as a fact state, a value state, or a combination state,
a fact state being characterized by a subset of facts, a value state being
characterized by a subset of values, and a combination state being
characterized by a combination of a subset of facts and a subset of
values. The method consists of specifying one or more domains, specifying
a domain pool for each domain comprising a plurality of test item blocks
consisting of one or more test items, specifying a class conditional
density for each test item in each test item block for each state in each
domain, selecting one or more test item blocks from the one or more domain
pools to be administered to a test subject, and processing the responses
of the test subject to the one or more test item blocks administered to
the test subject.