diff --git a/test/sumfact/poisson/CMakeLists.txt b/test/sumfact/poisson/CMakeLists.txt
index 062fc23d1d26a03922ec30a8f32164c5c344eda2..23d7c96dee1472273146d3023c926c1f6e84912e 100644
--- a/test/sumfact/poisson/CMakeLists.txt
+++ b/test/sumfact/poisson/CMakeLists.txt
@@ -1,45 +1,54 @@
-# 1. Poisson Test Case in 2D
+#====================
+# Poisson CG in 2D/3D
+#====================
 dune_add_formcompiler_system_test(UFLFILE poisson_2d.ufl
                                   BASENAME sumfact_poisson_2d
                                   INIFILE poisson_2d.mini
                                   )
-
-# 2. Poisson Test case in 3D
 dune_add_formcompiler_system_test(UFLFILE poisson_3d.ufl
                                   BASENAME sumfact_poisson_3d
                                   INIFILE poisson_3d.mini
                                   )
 
-# Operator counting test
+#================
+# Opcounter tests
+#================
 dune_add_formcompiler_system_test(UFLFILE opcount_poisson_2d_order2.ufl
                                   BASENAME opcount_sumfact_poisson_2d_order2
                                   INIFILE opcount_poisson_2d_order2.mini
                                   )
-
 dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl
                                   BASENAME opcount_sumfact_poisson_dg_2d_vec
                                   INIFILE opcount_sumfact_poisson_dg_2d_vec.mini
                                   )
 
-# 3. Poisson Test Case: DG in 2D
+#====================
+# Poisson DG in 2D/3D
+#====================
 dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl
                                   BASENAME sumfact_poisson_dg_2d
                                   INIFILE poisson_dg_2d.mini
                                   )
-
-# 4. Poisson Test Case: DG in 3D
 dune_add_formcompiler_system_test(UFLFILE poisson_dg_3d.ufl
                                   BASENAME sumfact_poisson_dg_3d
                                   INIFILE poisson_dg_3d.mini
                                   )
 
-# Poisson DG using FastDGGridOperator
+#=============================================
+# Poisson DG using FastDGGridOperator in 2D/3D
+#=============================================
 dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl
-                                  BASENAME sumfact_poisson_fastdg
-                                  INIFILE poisson_fastdg.mini
+                                  BASENAME sumfact_poisson_fastdg_2d
+                                  INIFILE poisson_fastdg_2d.mini
+                                  )
+dune_add_formcompiler_system_test(UFLFILE poisson_dg_3d.ufl
+                                  BASENAME sumfact_poisson_fastdg_3d
+                                  INIFILE poisson_fastdg_3d.mini
                                   )
 
-# Poisson DG with a full tensor
+#================================
+# 'Poisson' DG with a full tensor
+#================================
 dune_add_formcompiler_system_test(UFLFILE poisson_dg_tensor.ufl
                                   BASENAME sumfact_poisson_dg_tensor
                                   INIFILE poisson_dg_tensor.mini
diff --git a/test/sumfact/poisson/poisson_2d.mini b/test/sumfact/poisson/poisson_2d.mini
index 6f70b71dae74402374423f4fc7518f92031300a6..572837d1101f3204c9b7002e13d07f2609899a36 100644
--- a/test/sumfact/poisson/poisson_2d.mini
+++ b/test/sumfact/poisson/poisson_2d.mini
@@ -1,9 +1,9 @@
 __name = sumfact_poisson_2d_{__exec_suffix}
-__exec_suffix = {deg_suffix}_{diff_suffix}_{vec_suffix}
+__exec_suffix = {deg_suffix}_{diff_suffix}_{gradvec_suffix}
 
-diff_suffix = numdiff, symdiff | expand num
-vec_suffix = vec, nonvec | expand vec
 deg_suffix = deg{formcompiler.ufl_variants.degree}
+diff_suffix = numdiff, symdiff | expand num
+gradvec_suffix = gradvec, nongradvec | expand grad
 
 cells = 8 8
 extension = 1. 1.
@@ -16,9 +16,9 @@ extension = vtu
 [formcompiler]
 numerical_jacobian = 1, 0 | expand num
 exact_solution_expression = g
-compare_l2errorsquared = 1e-4
+compare_l2errorsquared = 4e-5, 4e-9 | expand deg
 sumfact = 1
-vectorize_quad = 1, 0 | expand vec
+vectorize_grads = 1, 0 | expand grad
 
 [formcompiler.ufl_variants]
 degree = 1, 2 | expand deg
diff --git a/test/sumfact/poisson/poisson_3d.mini b/test/sumfact/poisson/poisson_3d.mini
index a5e2d647fe524bdb2ecd8855869ca1bb2c8e7bfa..b1cc845d5e6cb11687f38ec823faa3427237b808 100644
--- a/test/sumfact/poisson/poisson_3d.mini
+++ b/test/sumfact/poisson/poisson_3d.mini
@@ -1,10 +1,10 @@
 __name = sumfact_poisson_3d_{__exec_suffix}
-__exec_suffix = {deg_suffix}_{diff_suffix}_{vecq_suffix}_{vecg_suffix}
+__exec_suffix = {deg_suffix}_{diff_suffix}_{quadvec_suffix}_{gradvec_suffix}
 
-diff_suffix = numdiff, symdiff | expand num
-vecq_suffix = quadvec, nonquadvec | expand vec_q
-vecg_suffix = gradvec, nongradvec | expand vec_g
 deg_suffix = deg{formcompiler.ufl_variants.degree}
+diff_suffix = numdiff, symdiff | expand num
+quadvec_suffix = quadvec, nonquadvec | expand quad
+gradvec_suffix = gradvec, nongradvec | expand grad
 
 cells = 8 8 8
 extension = 1. 1. 1.
@@ -17,10 +17,10 @@ extension = vtu
 [formcompiler]
 numerical_jacobian = 1, 0 | expand num
 exact_solution_expression = g
-compare_l2errorsquared = 2e-4
+compare_l2errorsquared = 1e-4, 1e-8 | expand deg
 sumfact = 1
-vectorize_quad = 1, 0 | expand vec_q
-vectorize_grads = 1, 0 | expand vec_g
+vectorize_quad = 1, 0 | expand quad
+vectorize_grads = 1, 0 | expand grad
 
 [formcompiler.ufl_variants]
 degree = 1, 2 | expand deg
diff --git a/test/sumfact/poisson/poisson_dg_2d.mini b/test/sumfact/poisson/poisson_dg_2d.mini
index ed6b6795cb4d720560b6761adcee293b70ab98e3..8785a3b157f0b756d31101ea837ac201d84ceda1 100644
--- a/test/sumfact/poisson/poisson_dg_2d.mini
+++ b/test/sumfact/poisson/poisson_dg_2d.mini
@@ -17,7 +17,7 @@ extension = vtu
 numerical_jacobian = 1, 0 | expand num
 sumfact = 1
 exact_solution_expression = g
-compare_l2errorsquared = 1e-4
+compare_l2errorsquared = 5e-5, 5e-7 | expand deg
 vectorize_quad = 1, 0 | expand quad
 vectorize_grads = 1, 0 | expand grad
 
diff --git a/test/sumfact/poisson/poisson_dg_2d.ufl b/test/sumfact/poisson/poisson_dg_2d.ufl
index 5ef70869cb556cb6ed3d31ae736a7abd31919edf..19ac68ee0a4b1b8e2ae7b93908aef3208e7acdc2 100644
--- a/test/sumfact/poisson/poisson_dg_2d.ufl
+++ b/test/sumfact/poisson/poisson_dg_2d.ufl
@@ -12,18 +12,21 @@ v = TestFunction(V)
 
 n = FacetNormal(cell)('+')
 
+# penalty factor
 gamma = 1.0
+
+# SSIP: -1.0, IIPG: 0.0, NIPG: 1.0
 theta = 1.0
 
 r = inner(grad(u), grad(v))*dx \
   + inner(n, avg(grad(u)))*jump(v)*dS \
   + gamma*jump(u)*jump(v)*dS \
-  + theta*jump(u)*inner(avg(grad(v)), n)*dS \
+  - theta*jump(u)*inner(avg(grad(v)), n)*dS \
   - inner(n, grad(u))*v*ds \
   + gamma*u*v*ds \
-  - theta*u*inner(grad(v), n)*ds \
+  + theta*u*inner(grad(v), n)*ds \
   - f*v*dx \
-  + theta*g*inner(grad(v), n)*ds \
+  - theta*g*inner(grad(v), n)*ds \
   - gamma*g*v*ds
 
 forms = [r]
diff --git a/test/sumfact/poisson/poisson_dg_3d.mini b/test/sumfact/poisson/poisson_dg_3d.mini
index 7bab7f81c1e5a946738540a9ee0b903e38f22140..6d7d2e7561d2b26553d180c81a75bfb01a5972b5 100644
--- a/test/sumfact/poisson/poisson_dg_3d.mini
+++ b/test/sumfact/poisson/poisson_dg_3d.mini
@@ -17,7 +17,7 @@ extension = vtu
 numerical_jacobian = 1, 0 | expand num
 sumfact = 1
 exact_solution_expression = g
-compare_l2errorsquared = 1e-4
+compare_l2errorsquared = 1e-4, 5e-6 | expand deg
 vectorize_quad = 1, 0 | expand quad
 vectorize_grads = 1, 0 | expand grad
 
diff --git a/test/sumfact/poisson/poisson_dg_3d.ufl b/test/sumfact/poisson/poisson_dg_3d.ufl
index d9172368b8c8a4c0d8ab81afe3778dbd2af5075f..00a17a02bea0b104f8332de62ffc9432285c3c62 100644
--- a/test/sumfact/poisson/poisson_dg_3d.ufl
+++ b/test/sumfact/poisson/poisson_dg_3d.ufl
@@ -12,18 +12,21 @@ v = TestFunction(V)
 
 n = FacetNormal(cell)('+')
 
+# penalty factor
 gamma = 1.0
+
+# SSIP: -1.0, IIPG: 0.0, NIPG: 1.0
 theta = 1.0
 
 r = inner(grad(u), grad(v))*dx \
   + inner(n, avg(grad(u)))*jump(v)*dS \
   + gamma*jump(u)*jump(v)*dS \
-  + theta*jump(u)*inner(avg(grad(v)), n)*dS \
+  - theta*jump(u)*inner(avg(grad(v)), n)*dS \
   - inner(n, grad(u))*v*ds \
   + gamma*u*v*ds \
-  - theta*u*inner(grad(v), n)*ds \
+  + theta*u*inner(grad(v), n)*ds \
   - f*v*dx \
-  + theta*g*inner(grad(v), n)*ds \
+  - theta*g*inner(grad(v), n)*ds \
   - gamma*g*v*ds
 
 forms = [r]
diff --git a/test/sumfact/poisson/poisson_dg_tensor.ufl b/test/sumfact/poisson/poisson_dg_tensor.ufl
index ceecebc5eba11f95b7bac462631e61955d4ab69a..8ef34003fe4bc956299826942a1d98f95fb48562 100644
--- a/test/sumfact/poisson/poisson_dg_tensor.ufl
+++ b/test/sumfact/poisson/poisson_dg_tensor.ufl
@@ -15,18 +15,21 @@ v = TestFunction(V)
 
 n = FacetNormal(cell)('+')
 
+# penalty factor
 gamma = 1.0
-theta = -1.0
+
+# SSIP: -1.0, IIPG: 0.0, NIPG: 1.0
+theta = 1.0
 
 r = (inner(A*grad(u), grad(v)) + c*u*v)*dx \
   + inner(n, A*avg(grad(u)))*jump(v)*dS \
   + gamma*jump(u)*jump(v)*dS \
-  + theta*jump(u)*inner(A*avg(grad(v)), n)*dS \
+  - theta*jump(u)*inner(A*avg(grad(v)), n)*dS \
   - inner(n, A*grad(u))*v*ds \
   + gamma*u*v*ds \
-  - theta*u*inner(A*grad(v), n)*ds \
+  + theta*u*inner(A*grad(v), n)*ds \
   - f*v*dx \
-  + theta*g*inner(A*grad(v), n)*ds \
+  - theta*g*inner(A*grad(v), n)*ds \
   - gamma*g*v*ds
 
 forms = [r]
diff --git a/test/sumfact/poisson/poisson_fastdg.mini b/test/sumfact/poisson/poisson_fastdg_2d.mini
similarity index 88%
rename from test/sumfact/poisson/poisson_fastdg.mini
rename to test/sumfact/poisson/poisson_fastdg_2d.mini
index e0cf2f268ddb66f043503e0ca00c1112b369884f..2aebce291d498eaa49829285d9af0a528bd2cc86 100644
--- a/test/sumfact/poisson/poisson_fastdg.mini
+++ b/test/sumfact/poisson/poisson_fastdg_2d.mini
@@ -1,4 +1,4 @@
-__name = sumfact_poisson_fastdg_{__exec_suffix}
+__name = sumfact_poisson_fastdg_2d_{__exec_suffix}
 __exec_suffix = {quadvec_suffix}_{gradvec_suffix}
 
 quadvec_suffix = quadvec, nonquadvec | expand quadvec
@@ -21,4 +21,4 @@ vectorize_grads = 1, 0 | expand gradvec
 fastdg = 1
 
 [formcompiler.ufl_variants]
-degree = 1
+degree = 2
\ No newline at end of file
diff --git a/test/sumfact/poisson/poisson_fastdg_3d.mini b/test/sumfact/poisson/poisson_fastdg_3d.mini
new file mode 100644
index 0000000000000000000000000000000000000000..aa4ff193652269570d0f686898371274bdbdadbe
--- /dev/null
+++ b/test/sumfact/poisson/poisson_fastdg_3d.mini
@@ -0,0 +1,24 @@
+__name = sumfact_poisson_fastdg_3d_{__exec_suffix}
+__exec_suffix = {quadvec_suffix}_{gradvec_suffix}
+
+quadvec_suffix = quadvec, nonquadvec | expand quadvec
+gradvec_suffix = gradvec, nongradvec | expand gradvec
+
+cells = 8 8 8
+extension = 1. 1. 1.
+
+[wrapper.vtkcompare]
+name = {__name}
+extension = vtu
+
+[formcompiler]
+numerical_jacobian = 0
+sumfact = 1
+exact_solution_expression = g
+compare_l2errorsquared = 1e-4
+vectorize_quad = 1, 0 | expand quadvec
+vectorize_grads = 1, 0 | expand gradvec
+fastdg = 1
+
+[formcompiler.ufl_variants]
+degree = 2