diff --git a/core/modules/simpletest/drupal_web_test_case.php b/core/modules/simpletest/drupal_web_test_case.php
index 9d993d4..3666375 100644
--- a/core/modules/simpletest/drupal_web_test_case.php
+++ b/core/modules/simpletest/drupal_web_test_case.php
@@ -12,6 +12,21 @@
  */
 global $drupal_test_info;
 
+interface DrupalTestCaseInferface {
+  /**
+   * Returns meta information about the test case.
+   *
+   * @return array
+   *   An associative array containing:
+   *   - name: The title of the test case.
+   *   - description: The description of the test case.
+   *   - group: The group name of the test case.
+   *   Do NOT use t() for these properties.
+   */
+  public static function getInfo();
+
+}
+
 /**
  * Base class for Drupal tests.
  *
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index eb33d1b..d632047 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -318,12 +318,9 @@ function simpletest_test_get_all() {
       // Select all clases in files ending with .test.
       $classes = db_query("SELECT name FROM {registry} WHERE type = :type AND filename LIKE :name", array(':type' => 'class', ':name' => '%.test'))->fetchCol();
 
-      // Check that each class has a getInfo() method and store the information
-      // in an array keyed with the group specified in the test information.
       $groups = array();
       foreach ($classes as $class) {
-        // Test classes need to implement getInfo() to be valid.
-        if (class_exists($class) && method_exists($class, 'getInfo')) {
+        if (in_array('DrupalTestCaseInferface', class_implements($class))) {
           $info = call_user_func(array($class, 'getInfo'));
 
           // If this test class requires a non-existing module, skip it.
diff --git a/core/modules/system/system.test b/core/modules/system/system.test
index 4e3761d..c38490a 100644
--- a/core/modules/system/system.test
+++ b/core/modules/system/system.test
@@ -129,7 +129,7 @@ class ModuleTestCase extends DrupalWebTestCase {
 /**
  * Test module enabling/disabling functionality.
  */
-class EnableDisableTestCase extends ModuleTestCase {
+class EnableDisableTestCase extends ModuleTestCase implements DrupalTestCaseInferface {
   protected $profile = 'testing';
 
   public static function getInfo() {
