diff --git a/tests/conftest.py b/tests/conftest.py
index d8ab581..0ddc333 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -4,7 +4,7 @@
     HMACBackend, CipherBackend, HashBackend
 )
 
-from .utils import check_for_iface, supported_by_backend_skip
+from .utils import check_for_iface, check_backend_support
 
 
 def pytest_generate_tests(metafunc):
@@ -19,4 +19,4 @@
     check_for_iface("hmac", HMACBackend, item)
     check_for_iface("cipher", CipherBackend, item)
     check_for_iface("hash", HashBackend, item)
-    supported_by_backend_skip(item)
+    check_backend_support(item)
diff --git a/tests/test_utils.py b/tests/test_utils.py
index b347efd..32daff7 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -21,7 +21,7 @@
 from .utils import (
     load_nist_vectors, load_vectors_from_file, load_cryptrec_vectors,
     load_openssl_vectors, load_hash_vectors, check_for_iface,
-    supported_by_backend_skip
+    check_backend_support
 )
 
 
@@ -42,34 +42,34 @@
     check_for_iface("fake_name", FakeInterface, item)
 
 
-def test_supported_by_backend_skip():
+def test_check_backend_support_skip():
     supported = pretend.stub(
         kwargs={"only_if": lambda backend: False, "skip_message": "Nope"}
     )
     item = pretend.stub(keywords={"supported": supported},
                         funcargs={"backend": True})
     with pytest.raises(pytest.skip.Exception) as exc_info:
-        supported_by_backend_skip(item)
+        check_backend_support(item)
     assert exc_info.value.args[0] == "Nope"
 
 
-def test_supported_by_backend_no_skip():
+def test_check_backend_support_no_skip():
     supported = pretend.stub(
         kwargs={"only_if": lambda backend: True, "skip_message": "Nope"}
     )
     item = pretend.stub(keywords={"supported": supported},
                         funcargs={"backend": True})
-    assert supported_by_backend_skip(item) is None
+    assert check_backend_support(item) is None
 
 
-def test_supported_by_backend_skip_no_backend():
+def test_check_backend_support_no_backend():
     supported = pretend.stub(
         kwargs={"only_if": "notalambda", "skip_message": "Nope"}
     )
     item = pretend.stub(keywords={"supported": supported},
                         funcargs={})
     with pytest.raises(TypeError):
-        supported_by_backend_skip(item)
+        check_backend_support(item)
 
 
 def test_load_nist_vectors():
diff --git a/tests/utils.py b/tests/utils.py
index 113488d..7ae2eb8 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -24,7 +24,7 @@
             ))
 
 
-def supported_by_backend_skip(item):
+def check_backend_support(item):
     supported = item.keywords.get("supported")
     if supported and "backend" in item.funcargs:
         if not supported.kwargs["only_if"](item.funcargs["backend"]):
