diff --git a/tests/transformation/test_conv_lowering.py b/tests/transformation/test_conv_lowering.py
index cac027bdfc7a55dd1ceb563e637d14fa5fa102cd..c06a9a2c9def44b5384d6a87935e0ce85ede1bb2 100644
--- a/tests/transformation/test_conv_lowering.py
+++ b/tests/transformation/test_conv_lowering.py
@@ -26,6 +26,7 @@
 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+import pytest
 import os
 from onnx import helper, TensorProto
 import pkg_resources as pk
@@ -72,14 +73,22 @@ def test_conv_lowering_cnv_w1a1():
     os.remove(export_onnx_path)
 
 
-def test_depthwise_conv_lowering():
-    idt = odt = wdt = DataType.INT4
-    k = 3
-    stride = 1
-    ifm_dim = 4
-    ifm_ch = 2
+# input datatype
+@pytest.mark.parametrize("idt", [DataType.INT2, DataType.INT4])
+# kernel size
+@pytest.mark.parametrize("k", [2, 4])
+# input dimension
+@pytest.mark.parametrize("ifm_dim", [4, 6])
+# input channels
+@pytest.mark.parametrize("ifm_ch", [2, 3])
+# stride
+@pytest.mark.parametrize("stride", [1, 2])
+# padding
+@pytest.mark.parametrize("padding", [[0, 0, 0, 0], [1, 1, 1, 1]])
+def test_depthwise_conv_lowering(idt, k, ifm_dim, ifm_ch, stride, padding):
+    odt = wdt = idt
     ofm_ch = ifm_ch
-    ofm_dim = compute_conv_output_dim(ifm_dim, k, stride)
+    ofm_dim = compute_conv_output_dim(ifm_dim, k, stride, pad=padding[0])
 
     # set up onnx model
     inp = helper.make_tensor_value_info(
@@ -96,7 +105,7 @@ def test_depthwise_conv_lowering():
         inputs=["inp", "W"],
         outputs=["outp"],
         kernel_shape=[k, k],
-        pads=[0, 0, 0, 0],
+        pads=padding,
         strides=[stride, stride],
         group=ifm_ch,
     )
@@ -115,6 +124,7 @@ def test_depthwise_conv_lowering():
     model.set_tensor_datatype("W", wdt)
     w_tensor = gen_finn_dt_tensor(wdt, [ofm_ch, 1, k, k])
     model.set_initializer("W", w_tensor)
+    model = model.transform(InferShapes())
 
     input_tensor = gen_finn_dt_tensor(idt, [1, ifm_ch, ifm_dim, ifm_dim])
     input_dict = {"inp": input_tensor}