diff --git a/cryptography/hazmat/backends/openssl/backend.py b/cryptography/hazmat/backends/openssl/backend.py
index 07ee58c..ee82ba7 100644
--- a/cryptography/hazmat/backends/openssl/backend.py
+++ b/cryptography/hazmat/backends/openssl/backend.py
@@ -37,6 +37,7 @@
     """
     OpenSSL API binding interfaces.
     """
+    name = "openssl"
 
     def __init__(self):
         self._binding = Binding()
diff --git a/tests/conftest.py b/tests/conftest.py
index 1d9f96e..5cc3042 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -5,7 +5,12 @@
     HMACBackend, CipherBackend, HashBackend
 )
 
-from .utils import check_for_iface, check_backend_support
+from .utils import check_for_iface, check_backend_support, modify_backend_list
+
+
+def pytest_generate_tests(metafunc):
+    name = metafunc.config.getoption("--backend")
+    modify_backend_list(name, _ALL_BACKENDS)
 
 
 @pytest.fixture(params=_ALL_BACKENDS)
@@ -19,3 +24,10 @@
     check_for_iface("cipher", CipherBackend, item)
     check_for_iface("hash", HashBackend, item)
     check_backend_support(item)
+
+
+def pytest_addoption(parser):
+    parser.addoption(
+        "--backend", action="store", metavar="NAME",
+        help="Only run tests matching the backend NAME."
+    )
diff --git a/tests/test_utils.py b/tests/test_utils.py
index e3e53d6..e8037c1 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,
-    check_backend_support
+    check_backend_support, modify_backend_list
 )
 
 
@@ -29,6 +29,27 @@
     pass
 
 
+def test_modify_backend_list_leave_one():
+    b1 = pretend.stub(name="b1")
+    b2 = pretend.stub(name="b2")
+    b3 = pretend.stub(name="b3")
+    backends = [b1, b2, b3]
+    name = "b2"
+    modify_backend_list(name, backends)
+    assert len(backends) == 1
+    assert backends[0] == b2
+
+
+def test_modify_backend_list_error_none():
+    b1 = pretend.stub(name="b1")
+    b2 = pretend.stub(name="b2")
+    b3 = pretend.stub(name="b3")
+    backends = [b1, b2, b3]
+    name = "back!"
+    with pytest.raises(ValueError):
+        modify_backend_list(name, backends)
+
+
 def test_check_for_iface():
     item = pretend.stub(keywords=["fake_name"], funcargs={"backend": True})
     with pytest.raises(pytest.skip.Exception) as exc_info:
diff --git a/tests/utils.py b/tests/utils.py
index 693a0c8..343f3ef 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -16,6 +16,16 @@
 import pytest
 
 
+def modify_backend_list(name, all_backends):
+    if name is not None:
+        backends = list(all_backends)
+        for backend in backends:
+            if backend.name != name:
+                all_backends.remove(backend)
+        if len(all_backends) == 0:
+            raise ValueError("No backends selected for testing")
+
+
 def check_for_iface(name, iface, item):
     if name in item.keywords and "backend" in item.funcargs:
         if not isinstance(item.funcargs["backend"], iface):
