diff --git a/tests/funcs/test_functions.py b/tests/funcs/test_functions.py
index 8812569ae3b584983e3e41f1d5266994458341ab..e567835680c85db4f5b1cedc6abbc227fa32ede6 100644
--- a/tests/funcs/test_functions.py
+++ b/tests/funcs/test_functions.py
@@ -243,11 +243,10 @@ def test_flagManual(data, field):
                 assert ~unflagged.all()
 
 
-@pytest.mark.parametrize("dat", [pytest.lazy_fixture("course_1")])
-def test_flagDriftFromNorm(dat):
-    data = dat(periods=200, peak_level=5, name="field1")[0]
-    data["field2"] = dat(periods=200, peak_level=10, name="field2")[0]["field2"]
-    data["field3"] = dat(periods=200, peak_level=100, name="field3")[0]["field3"]
+def test_flagDriftFromNorm(course_1):
+    data = course_1(periods=200, peak_level=5, name="field1")[0]
+    data["field2"] = course_1(periods=200, peak_level=10, name="field2")[0]["field2"]
+    data["field3"] = course_1(periods=200, peak_level=100, name="field3")[0]["field3"]
 
     fields = ["field1", "field2", "field3"]
 
@@ -261,11 +260,10 @@ def test_flagDriftFromNorm(dat):
     assert all(qc._flags["field3"] > UNFLAGGED)
 
 
-@pytest.mark.parametrize("dat", [pytest.lazy_fixture("course_1")])
-def test_flagDriftFromReference(dat):
-    data = dat(periods=200, peak_level=5, name="field1")[0]
-    data["field2"] = dat(periods=200, peak_level=10, name="field2")[0]["field2"]
-    data["field3"] = dat(periods=200, peak_level=100, name="field3")[0]["field3"]
+def test_flagDriftFromReference(course_1):
+    data = course_1(periods=200, peak_level=5, name="field1")[0]
+    data["field2"] = course_1(periods=200, peak_level=10, name="field2")[0]["field2"]
+    data["field3"] = course_1(periods=200, peak_level=100, name="field3")[0]["field3"]
 
     fields = ["field1", "field2", "field3"]
 
diff --git a/tests/funcs/test_outlier_detection.py b/tests/funcs/test_outlier_detection.py
index c8a2a97f7a3d9391e48aa228f50f07b2b2143b90..b2f7ca4581c62cd125b950d9312bd9349dc753ea 100644
--- a/tests/funcs/test_outlier_detection.py
+++ b/tests/funcs/test_outlier_detection.py
@@ -54,16 +54,10 @@ def test_flagSpikesBasic(spiky_data):
 
 @pytest.mark.slow
 @pytest.mark.parametrize(
-    "dat",
-    [
-        # see test/functs/fixtures.py for the 'course_N'
-        pytest.lazy_fixture("course_1"),
-        pytest.lazy_fixture("course_2"),
-        pytest.lazy_fixture("course_3"),
-        pytest.lazy_fixture("course_4"),
-    ],
+    "dat", ["course_1", "course_2", "course_3", "course_4"]
 )
-def test_flagSpikesLimitRaise(dat):
+def test_flagSpikesLimitRaise(dat, request):
+    dat = request.getfixturevalue(dat)
     data, characteristics = dat()
     field, *_ = data.columns
     flags = initFlagsLike(data)
@@ -80,8 +74,7 @@ def test_flagSpikesLimitRaise(dat):
 
 
 # see test/functs/fixtures.py for the 'course_N'
-@pytest.mark.parametrize("dat", [pytest.lazy_fixture("course_3")])
-def test_flagMVScores(dat):
+def test_flagMVScores(course_3):
     def _check(fields, flags, characteristics):
         for field in fields:
             isflagged = flags[field] > UNFLAGGED
@@ -89,10 +82,10 @@ def test_flagMVScores(dat):
             assert not isflagged[characteristics["return"]].any()
             assert not isflagged[characteristics["drop"]].any()
 
-    data1, characteristics = dat(
+    data1, characteristics = course_3(
         periods=1000, initial_level=5, final_level=15, out_val=50
     )
-    data2, characteristics = dat(
+    data2, characteristics = course_3(
         periods=1000, initial_level=20, final_level=1, out_val=30
     )
     fields = ["field1", "field2"]
@@ -111,9 +104,8 @@ def test_flagMVScores(dat):
     _check(fields, qc.flags, characteristics)
 
 
-@pytest.mark.parametrize("dat", [pytest.lazy_fixture("course_3")])
-def test_grubbs(dat):
-    data, char_dict = dat(
+def test_grubbs(course_3):
+    data, char_dict = course_3(
         freq="10min",
         periods=45,
         initial_level=0,
@@ -127,12 +119,11 @@ def test_grubbs(dat):
     assert np.all(qc.flags["data"][char_dict["drop"]] > UNFLAGGED)
 
 
-@pytest.mark.parametrize("dat", [pytest.lazy_fixture("course_2")])
 @pytest.mark.parametrize(
     "parameters",
     [("standard", 1), ("modified", 1), ("modified", 3), ("standard", "3h")],
 )
-def test_flagCrossStatistics(dat, parameters):
+def test_flagCrossStatistics(parameters):
     fields = [f"data{i}" for i in range(6)]
     data = pd.DataFrame(
         0, columns=fields, index=pd.date_range("2000", freq="1h", periods=10)
diff --git a/tests/requirements.txt b/tests/requirements.txt
index a167f2b1a0b1383cb6775a62fd6a6b835c0236df..af4cf289db422bccb9129207a9640cd64cce6ac4 100644
--- a/tests/requirements.txt
+++ b/tests/requirements.txt
@@ -2,9 +2,8 @@
 #
 # SPDX-License-Identifier: GPL-3.0-or-later
 
-beautifulsoup4==4.12.2
-hypothesis==6.92.2
-Markdown==3.5.1
+beautifulsoup4==4.12.3
+hypothesis==6.98.15
+Markdown==3.5.2
 pytest==8.0.2
-pytest-lazy-fixture==0.6.3
 requests==2.31.0