This paper denes three levels of requirements for adequate code-based class testing, examining the eectiveness of traditional testing criteria in the context of object-oriented (OO) programs. Our study indicates that none of the four widely-used traditional criteria satises the requirements that are considered essential for adequate class testing. A set of new testing criteria is proposed to solve this problem.