diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_generation.py
index ea391c3..896f86e 100644
--- a/scripts/mbedtls_dev/test_generation.py
+++ b/scripts/mbedtls_dev/test_generation.py
@@ -24,7 +24,7 @@
 import posixpath
 import re
 
-from abc import abstractmethod
+from abc import ABCMeta, abstractmethod
 from typing import Callable, Dict, Iterable, List, Type, TypeVar
 
 from mbedtls_dev import test_case
@@ -32,7 +32,7 @@
 T = TypeVar('T') #pylint: disable=invalid-name
 
 
-class BaseTarget:
+class BaseTarget(metaclass=ABCMeta):
     """Base target for test case generation.
 
     Attributes:
@@ -93,13 +93,12 @@
     def generate_tests(cls):
         """Generate test cases for the target subclasses.
 
-        Classes will iterate over its subclasses, calling this method in each.
-        In abstract classes, no further changes are needed, as there is no
+        During generation, each class will iterate over any subclasses, calling
+        this method in each.
+        In abstract classes, no tests will be generated, as there is no
         function to generate tests for.
-        In classes which do implement a test function, this should be overrided
-        and a means to use `create_test_case()` should be added. In most cases
-        the subclasses can still be iterated over, as either the class will
-        have none, or it may continue.
+        In classes which do implement a test function, this should be overridden
+        and a means to use `create_test_case()` should be added.
         """
         for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__):
             yield from subclass.generate_tests()
diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py
index 7a8ebd1..3f556ce 100755
--- a/tests/scripts/generate_bignum_tests.py
+++ b/tests/scripts/generate_bignum_tests.py
@@ -48,7 +48,7 @@
 import itertools
 import sys
 
-from abc import abstractmethod
+from abc import ABCMeta, abstractmethod
 from typing import Callable, Dict, Iterator, List, Optional, Tuple, TypeVar
 
 import scripts_path # pylint: disable=unused-import
@@ -64,12 +64,12 @@
     return "\"{}\"".format(val)
 
 
-class BignumTarget(test_generation.BaseTarget):
+class BignumTarget(test_generation.BaseTarget, metaclass=ABCMeta):
     """Target for bignum (mpi) test case generation."""
     target_basename = 'test_suite_mpi.generated'
 
 
-class BignumOperation(BignumTarget):
+class BignumOperation(BignumTarget, metaclass=ABCMeta):
     """Common features for test cases covering binary bignum operations.
 
     This adds functionality common in binary operation tests. This includes
@@ -118,7 +118,7 @@
         return super().description()
 
     @abstractmethod
-    def result(self) -> Optional[str]:
+    def result(self) -> str:
         """Get the result of the operation.
 
         This may be calculated during initialization and stored as `_result`,
@@ -131,7 +131,7 @@
         """Generate a description of the argument val.
 
         This produces a simple description of the value, which are used in test
-        case naming, to avoid most generated cases only being numbered.
+        case naming, to add context to the test cases.
         """
         if val == "":
             return "0 (null)"
