diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
index c54ccf14e88cc1a0ab4b9b92d897522ca799184a..a568fadc5d649844ced02cc17e58def3ac8509b7 100644
--- a/cabal-install/cabal-install.cabal
+++ b/cabal-install/cabal-install.cabal
@@ -177,7 +177,9 @@ Test-Suite unit-tests
         filepath,
         test-framework,
         test-framework-hunit,
+        test-framework-quickcheck2,
         HUnit,
+        QuickCheck (>= 2.5),
         cabal-install,
         Cabal
   ghc-options: -Wall
diff --git a/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs b/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs
index 022ea979f1f85672e6b2979ccea42d19d7544d74..c3dc72eac114828fc1e8441d5e03d6c13f83ffee 100644
--- a/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs
+++ b/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs
@@ -4,12 +4,11 @@ module UnitTests.Distribution.Client.Dependency.Modular.PSQ (
 
 import Distribution.Client.Dependency.Modular.PSQ
 
-import Test.Framework                  as TF (Test)
-import Test.Framework.Providers.HUnit  (testCase)
-import Test.HUnit                      (Assertion, assertEqual)
+import Test.Framework as TF (Test)
+import Test.Framework.Providers.QuickCheck2
 
 tests :: [TF.Test]
-tests = [ testCase "splitsAltImplementation" splitsTest
+tests = [ testProperty "splitsAltImplementation" splitsTest
         ]
 
 -- | Original splits implementation
@@ -19,12 +18,5 @@ splits' xs =
     (PSQ [])
     (\ k v ys -> cons k (v, ys) (fmap (\ (w, zs) -> (w, cons k v zs)) (splits' ys)))
 
-splitsTest :: Assertion
-splitsTest = do
-  assertEqual "" (splits' psq1) (splits psq1)
-  assertEqual "" (splits' psq2) (splits psq2)
-  assertEqual "" (splits' psq3) (splits psq3)
-  where
-    psq1 = PSQ [ (1,2), (3,4), (5,6), (7,8) ] :: PSQ Int Int
-    psq2 = PSQ [ (1,2) ] :: PSQ Int Int
-    psq3 = PSQ [] :: PSQ Int Int
+splitsTest :: [(Int, Int)] -> Bool
+splitsTest psq = splits' (PSQ psq) == splits (PSQ psq)