diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index 5ad1b39..69cfb5f 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -83,10 +83,12 @@ function simpletest_theme() {
     'simpletest_test_table' => array(
       'render element' => 'table',
       'file' => 'simpletest.pages.inc',
+      'template' => 'simpletest-test-table',
     ),
     'simpletest_result_summary' => array(
       'render element' => 'form',
       'file' => 'simpletest.pages.inc',
+      'template' => 'simpletest-result-summary',
     ),
   );
 }
diff --git a/core/modules/simpletest/simpletest.pages.inc b/core/modules/simpletest/simpletest.pages.inc
index 4fb908d..8c9ffe0 100644
--- a/core/modules/simpletest/simpletest.pages.inc
+++ b/core/modules/simpletest/simpletest.pages.inc
@@ -58,15 +58,15 @@ function simpletest_test_form($form, &$form_state) {
 }
 
 /**
- * Returns HTML for a test list generated by simpletest_test_form() into a table.
+ * Prepares variables for test list table templates.
  *
- * @param $variables
+ * Default template: simpletest-test-table.html.twig.
+ *
+ * @param array $variables
  *   An associative array containing:
  *   - table: A render element representing the table.
- *
- * @ingroup themeable
  */
-function theme_simpletest_test_table($variables) {
+function template_preprocess_simpletest_test_table(&$variables) {
   $table = $variables['table'];
 
   drupal_add_library('simpletest', 'drupal.simpletest');
@@ -81,8 +81,22 @@ function theme_simpletest_test_table($variables) {
   // Define the images used to expand/collapse the test groups.
   $js = array(
     'images' => array(
-      theme('image', array('uri' => 'core/misc/menu-collapsed.png', 'width' => 7, 'height' => 7, 'alt' => t('Expand'), 'title' => t('Expand'))) . ' <a href="#" class="simpletest-collapse">(' . t('Expand') . ')</a>',
-      theme('image', array('uri' => 'core/misc/menu-expanded.png', 'width' => 7, 'height' => 7, 'alt' => t('Collapse'), 'title' => t('Collapse'))) . ' <a href="#" class="simpletest-collapse">(' . t('Collapse') . ')</a>',
+      array(
+        '#type' => 'image',
+        '#uri' => 'core/misc/menu-collapsed.png',
+        '#width' => 7,
+        '#height' => 7,
+        '#alt' => t('Expand'),
+        '#title' => t('Expand'))) . ' <a href="#" class="simpletest-collapse">(' . t('Expand') . ')</a>',
+      ),
+      array(
+        '#type' => 'image',
+        '#uri' => 'core/misc/menu-expanded.png',
+        '#width' => 7,
+        '#height' => 7,
+        '#alt' => t('Collapse'),
+        '#title' => t('Collapse'))) . ' <a href="#" class="simpletest-collapse">(' . t('Collapse') . ')</a>',
+      ),
     ),
   );
 
@@ -139,15 +153,15 @@ function theme_simpletest_test_table($variables) {
       // Store test title and description so that checkbox won't render them.
       $title = $test['#title'];
       $description = $test['#description'];
+      unset($test['#description']);
 
       $test['#title_display'] = 'invisible';
-      unset($test['#description']);
 
       // Test name is used to determine what tests to run.
       $test['#name'] = $test_name;
 
       $row[] = array(
-        'data' => drupal_render($test),
+        'data' => $test,
         'class' => array('simpletest-test-select'),
       );
       $row[] = array(
@@ -168,12 +182,13 @@ function theme_simpletest_test_table($variables) {
   // Add js array of settings.
   drupal_add_js(array('simpleTest' => $js), 'setting');
 
-  if (empty($rows)) {
-    return '<strong>' . t('No tests to display.') . '</strong>';
-  }
-  else {
-    return theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'simpletest-form-table')));
-  }
+  $variables['table'] = array(
+    '#type' => 'table',
+    '#header' => $header,
+    '#rows' => $rows,
+    '#empty' => t('No tests to display.'),
+    '#attributes' => array('id' => 'simpletest-form-table'),
+  );
 }
 
 /**
@@ -274,7 +289,7 @@ function simpletest_result_form($form, &$form_state, $test_id) {
       $form['result']['summary']['#' . $assertion->status]++;
     }
     $form['result']['results'][$group]['table'] = array(
-      '#theme' => 'table',
+      '#type' => 'table',
       '#header' => $header,
       '#rows' => $rows,
     );
@@ -370,17 +385,18 @@ function simpletest_result_form_submit($form, &$form_state) {
 }
 
 /**
- * Returns HTML for the summary status of a simpletest result.
+ * Prepares variables for the summary status of a simpletest result.
  *
- * @param $variables
+ * Default template: simpletest-result-summary.html.twig.
+ *
+ * @param array $variables
  *   An associative array containing:
  *   - form: A render element representing the form.
- *
- * @ingroup themeable
  */
-function theme_simpletest_result_summary($variables) {
+function template_preprocess_simpletest_result_summary(&$variables) {
   $form = $variables['form'];
-  return '<div class="simpletest-' . ($form['#ok'] ? 'pass' : 'fail') . '">' . _simpletest_format_summary_line($form) . '</div>';
+  $variables['summary'] = _simpletest_format_summary_line($form);
+  $variables['status'] = $form['#ok'] ? 'pass' : 'fail';
 }
 
 /**
diff --git a/core/modules/simpletest/templates/simpletest-result-summary.html.twig b/core/modules/simpletest/templates/simpletest-result-summary.html.twig
new file mode 100644
index 0000000..e4f298a
--- /dev/null
+++ b/core/modules/simpletest/templates/simpletest-result-summary.html.twig
@@ -0,0 +1,16 @@
+{#
+/**
+ * @file
+ * Default theme implementation for the content of simpletest result summary.
+ *
+ * Available variables:
+ * - status: Pass or fail of test.
+ * - summary: Summary info of test.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_simpletest_result_summary()
+ *
+ * @ingroup themeable
+ */
+#}
+<div class="simpletest-{{ status }}">{{ summary }}</div>
diff --git a/core/modules/simpletest/templates/simpletest-test-table.html.twig b/core/modules/simpletest/templates/simpletest-test-table.html.twig
new file mode 100644
index 0000000..7c920e6
--- /dev/null
+++ b/core/modules/simpletest/templates/simpletest-test-table.html.twig
@@ -0,0 +1,15 @@
+{#
+/**
+ * @file
+ * Default theme implementation for the content of simpletest test table.
+ *
+ * Available variables:
+ * - table: A simpletest table.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_simpletest_test_table()
+ *
+ * @ingroup themeable
+ */
+#}
+{{ table }}
