diff --git a/check/check_test.go b/check/check_test.go
index e6244085f3a109b177c2cefe33cf986c4a8a605d..df681970659d51a9123174b95041b608aae23f99 100644
--- a/check/check_test.go
+++ b/check/check_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2017-2019 Aqua Security Software Ltd. <info@aquasec.com>
+// Copyright © 2017-2020 Aqua Security Software Ltd. <info@aquasec.com>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -53,8 +53,8 @@ func TestCheck_Run(t *testing.T) {
 				Tests: &tests{TestItems: []*testItem{{
 					Flag: "hello",
 					Set:  false,
-				}},
-				}},
+				}}},
+			},
 			Expected: FAIL,
 		},
 		{
@@ -70,97 +70,58 @@ func TestCheck_Run(t *testing.T) {
 			Expected: PASS,
 		},
 	}
-	for _, testCase := range testCases {
-
-		testCase.check.run()
 
-		if testCase.check.State != testCase.Expected {
-			t.Errorf("%s: expected %s, actual %s\n", testCase.name, testCase.Expected, testCase.check.State)
-		}
+	for _, testCase := range testCases {
+		t.Run(testCase.name, func(t *testing.T) {
+			testCase.check.run()
+			if testCase.check.State != testCase.Expected {
+				t.Errorf("expected %s, actual %s", testCase.Expected, testCase.check.State)
+			}
+		})
 	}
 }
 
 func TestCheckAuditConfig(t *testing.T) {
 
-	cases := []struct {
-		*Check
-		expected State
-	}{
-		{
-			controls.Groups[1].Checks[0],
-			"PASS",
-		},
-		{
-			controls.Groups[1].Checks[1],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[2],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[3],
-			"PASS",
-		},
-		{
-			controls.Groups[1].Checks[4],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[5],
-			"PASS",
-		},
-		{
-			controls.Groups[1].Checks[6],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[7],
-			"PASS",
-		},
-		{
-			controls.Groups[1].Checks[8],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[9],
-			"PASS",
-		},
-		{
-			controls.Groups[1].Checks[10],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[11],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[12],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[13],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[14],
-			"FAIL",
-		},
-		{
-			controls.Groups[1].Checks[15],
-			"PASS",
-		},
-		{
-			controls.Groups[1].Checks[16],
-			"FAIL",
-		},
+	passingCases := []*Check{
+		controls.Groups[1].Checks[0],
+		controls.Groups[1].Checks[3],
+		controls.Groups[1].Checks[5],
+		controls.Groups[1].Checks[7],
+		controls.Groups[1].Checks[9],
+		controls.Groups[1].Checks[15],
+	}
+
+	failingCases := []*Check{
+		controls.Groups[1].Checks[1],
+		controls.Groups[1].Checks[2],
+		controls.Groups[1].Checks[4],
+		controls.Groups[1].Checks[6],
+		controls.Groups[1].Checks[8],
+		controls.Groups[1].Checks[10],
+		controls.Groups[1].Checks[11],
+		controls.Groups[1].Checks[12],
+		controls.Groups[1].Checks[13],
+		controls.Groups[1].Checks[14],
+		controls.Groups[1].Checks[16],
 	}
 
-	for _, c := range cases {
-		c.run()
-		if c.State != c.expected {
-			t.Errorf("%s, expected:%v, got:%v\n", c.Text, c.expected, c.State)
-		}
+	for _, c := range passingCases {
+		t.Run(c.Text, func(t *testing.T) {
+			c.run()
+			if c.State != "PASS" {
+				t.Errorf("Should PASS, got: %v", c.State)
+			}
+		})
+	}
+
+	for _, c := range failingCases {
+		t.Run(c.Text, func(t *testing.T) {
+			c.run()
+			if c.State != "FAIL" {
+				t.Errorf("Should FAIL, got: %v", c.State)
+			}
+		})
 	}
 }
 
diff --git a/check/test_test.go b/check/test_test.go
index 4521a99c33bab3a4c20457fa3d3a20919c71013b..c191637f5ac9251d2e96cd5ca5c758e92c597c85 100644
--- a/check/test_test.go
+++ b/check/test_test.go
@@ -1,4 +1,4 @@
-// Copyright © 2017 Aqua Security Software Ltd. <info@aquasec.com>
+// Copyright © 2017-2020 Aqua Security Software Ltd. <info@aquasec.com>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
 package check
 
 import (
+	"fmt"
 	"io/ioutil"
 	"os"
 	"strings"
@@ -216,15 +217,17 @@ func TestTestExecute(t *testing.T) {
 	}
 
 	for _, c := range cases {
-		c.Check.AuditOutput = c.str
-		c.Check.AuditConfigOutput = c.strConfig
-		res, err := c.Check.execute()
-		if err != nil {
-			t.Errorf(err.Error())
-		}
-		if !res.testResult {
-			t.Errorf("%s, expected:%v, got:%v\n", c.Text, true, res)
-		}
+		t.Run(c.Text, func(t *testing.T) {
+			c.Check.AuditOutput = c.str
+			c.Check.AuditConfigOutput = c.strConfig
+			res, err := c.Check.execute()
+			if err != nil {
+				t.Errorf(err.Error())
+			}
+			if !res.testResult {
+				t.Errorf("expected:%v, got:%v", true, res)
+			}
+		})
 	}
 }
 
@@ -257,14 +260,16 @@ func TestTestExecuteExceptions(t *testing.T) {
 	}
 
 	for _, c := range cases {
-		c.Check.AuditConfigOutput = c.str
-		res, err := c.Check.execute()
-		if err != nil {
-			t.Errorf(err.Error())
-		}
-		if res.testResult {
-			t.Errorf("%s, expected:%v, got:%v\n", c.Text, false, res)
-		}
+		t.Run(c.Text, func(t *testing.T) {
+			c.Check.AuditConfigOutput = c.str
+			res, err := c.Check.execute()
+			if err != nil {
+				t.Errorf(err.Error())
+			}
+			if res.testResult {
+				t.Errorf("expected:%v, got:%v", false, res)
+			}
+		})
 	}
 }
 
@@ -318,17 +323,19 @@ apiVersion: kubelet.config.k8s.io/v1beta
 		},
 	}
 
-	for _, c := range cases {
-		err := unmarshal(c.content, &c.jsonInterface)
-		if err != nil {
-			if !c.expectedToFail {
-				t.Errorf("%s, expectedToFail:%v, got:%v\n", c.content, c.expectedToFail, err)
-			}
-		} else {
-			if c.expectedToFail {
-				t.Errorf("%s, expectedToFail:%v, got:Did not fail\n", c.content, c.expectedToFail)
+	for id, c := range cases {
+		t.Run(fmt.Sprintf("%d", id), func(t *testing.T) {
+			err := unmarshal(c.content, &c.jsonInterface)
+			if err != nil {
+				if !c.expectedToFail {
+					t.Errorf("should pass, got error:%v", err)
+				}
+			} else {
+				if c.expectedToFail {
+					t.Errorf("should fail, but passed")
+				}
 			}
-		}
+		})
 	}
 }
 
@@ -339,13 +346,14 @@ func TestExecuteJSONPath(t *testing.T) {
 		Address    string
 	}
 	cases := []struct {
+		name           string
 		jsonPath       string
 		jsonInterface  kubeletConfig
 		expectedResult string
 		expectedToFail bool
 	}{
 		{
-			// JSONPath parse works, results don't match
+			"JSONPath parse works, results don't match",
 			"{.Kind}",
 			kubeletConfig{
 				Kind:       "KubeletConfiguration",
@@ -356,7 +364,7 @@ func TestExecuteJSONPath(t *testing.T) {
 			true,
 		},
 		{
-			// JSONPath parse works, results match
+			"JSONPath parse works, results match",
 			"{.Kind}",
 			kubeletConfig{
 				Kind:       "KubeletConfiguration",
@@ -367,7 +375,7 @@ func TestExecuteJSONPath(t *testing.T) {
 			false,
 		},
 		{
-			// JSONPath parse fails
+			"JSONPath parse fails",
 			"{.ApiVersion",
 			kubeletConfig{
 				Kind:       "KubeletConfiguration",
@@ -379,13 +387,15 @@ func TestExecuteJSONPath(t *testing.T) {
 		},
 	}
 	for _, c := range cases {
-		result, err := executeJSONPath(c.jsonPath, c.jsonInterface)
-		if err != nil && !c.expectedToFail {
-			t.Fatalf("jsonPath:%q, expectedResult:%q got:%v\n", c.jsonPath, c.expectedResult, err)
-		}
-		if c.expectedResult != result && !c.expectedToFail {
-			t.Errorf("jsonPath:%q, expectedResult:%q got:%q\n", c.jsonPath, c.expectedResult, result)
-		}
+		t.Run(c.name, func(t *testing.T) {
+			result, err := executeJSONPath(c.jsonPath, c.jsonInterface)
+			if err != nil && !c.expectedToFail {
+				t.Fatalf("jsonPath:%q, expectedResult:%q got:%v", c.jsonPath, c.expectedResult, err)
+			}
+			if c.expectedResult != result && !c.expectedToFail {
+				t.Errorf("jsonPath:%q, expectedResult:%q got:%q", c.jsonPath, c.expectedResult, result)
+			}
+		})
 	}
 }
 
@@ -438,10 +448,12 @@ func TestAllElementsValid(t *testing.T) {
 			valid: false,
 		},
 	}
-	for _, c := range cases {
-		if !allElementsValid(c.source, c.target) && c.valid {
-			t.Errorf("Not All Elements in %q are found in %q \n", c.source, c.target)
-		}
+	for id, c := range cases {
+		t.Run(fmt.Sprintf("%d", id), func(t *testing.T) {
+			if !allElementsValid(c.source, c.target) && c.valid {
+				t.Errorf("Not All Elements in %q are found in %q", c.source, c.target)
+			}
+		})
 	}
 }
 
@@ -478,16 +490,17 @@ func TestSplitAndRemoveLastSeparator(t *testing.T) {
 		},
 	}
 
-	for _, c := range cases {
-		as := splitAndRemoveLastSeparator(c.source, defaultArraySeparator)
-		if len(as) == 0 && c.valid {
-			t.Errorf("Split did not work with %q \n", c.source)
-		}
-
-		if c.elementCnt != len(as) {
-			t.Errorf("Split did not work with %q expected: %d got: %d\n", c.source, c.elementCnt, len(as))
-		}
+	for id, c := range cases {
+		t.Run(fmt.Sprintf("%d", id), func(t *testing.T) {
+			as := splitAndRemoveLastSeparator(c.source, defaultArraySeparator)
+			if len(as) == 0 && c.valid {
+				t.Errorf("Split did not work with %q", c.source)
+			}
 
+			if c.elementCnt != len(as) {
+				t.Errorf("Split did not work with %q expected: %d got: %d", c.source, c.elementCnt, len(as))
+			}
+		})
 	}
 }
 
@@ -743,15 +756,16 @@ func TestCompareOp(t *testing.T) {
 	}
 
 	for _, c := range cases {
-		expectedResultPattern, testResult := compareOp(c.op, c.flagVal, c.compareValue)
-
-		if expectedResultPattern != c.expectedResultPattern {
-			t.Errorf("'expectedResultPattern' did not match - label: %q op: %q expected 'expectedResultPattern':%q  got:%q\n", c.label, c.op, c.expectedResultPattern, expectedResultPattern)
-		}
+		t.Run(c.label, func(t *testing.T) {
+			expectedResultPattern, testResult := compareOp(c.op, c.flagVal, c.compareValue)
+			if expectedResultPattern != c.expectedResultPattern {
+				t.Errorf("'expectedResultPattern' did not match - op: %q expected:%q  got:%q", c.op, c.expectedResultPattern, expectedResultPattern)
+			}
 
-		if testResult != c.testResult {
-			t.Errorf("'testResult' did not match - label: %q op: %q expected 'testResult':%t  got:%t\n", c.label, c.op, c.testResult, testResult)
-		}
+			if testResult != c.testResult {
+				t.Errorf("'testResult' did not match - lop: %q expected:%t  got:%t", c.op, c.testResult, testResult)
+			}
+		})
 	}
 }
 
@@ -778,14 +792,16 @@ func TestToNumeric(t *testing.T) {
 		},
 	}
 
-	for _, c := range cases {
-		f, s, err := toNumeric(c.firstValue, c.secondValue)
-		if c.expectedToFail && err == nil {
-			t.Errorf("TestToNumeric - Expected error while converting %s and %s", c.firstValue, c.secondValue)
-		}
-
-		if !c.expectedToFail && (f != 5 || s != 6) {
-			t.Errorf("TestToNumeric - Expected to return %d,%d , but instead got %d,%d", 5, 6, f, s)
-		}
+	for id, c := range cases {
+		t.Run(fmt.Sprintf("%d", id), func(t *testing.T) {
+			f, s, err := toNumeric(c.firstValue, c.secondValue)
+			if c.expectedToFail && err == nil {
+				t.Errorf("Expected error while converting %s and %s", c.firstValue, c.secondValue)
+			}
+
+			if !c.expectedToFail && (f != 5 || s != 6) {
+				t.Errorf("Expected to return %d,%d - got %d,%d", 5, 6, f, s)
+			}
+		})
 	}
 }
diff --git a/makefile b/makefile
index 35bfb3bf7b64905dac4567611de95f0534741069..e343a2757fea21f83373d808e5676645a495266c 100644
--- a/makefile
+++ b/makefile
@@ -33,7 +33,7 @@ build-docker:
              -t $(IMAGE_NAME) .
 
 tests:
-	GO111MODULE=on go test -v -short -race -timeout 30s -coverprofile=coverage.txt -covermode=atomic ./...
+	GO111MODULE=on go test -short -race -timeout 30s -coverprofile=coverage.txt -covermode=atomic ./...
 
 integration-tests: build-docker
 	GO111MODULE=on go test ./integration/... -v -tags integration -timeout 1200s -args -kubebenchImg=$(IMAGE_NAME)
@@ -58,7 +58,7 @@ kind-run: KUBECONFIG = "$(shell kind get kubeconfig-path --name="$(KIND_PROFILE)
 kind-run: ensure-stern
 	sed "s/\$${VERSION}/$(VERSION)/" ./hack/kind.yaml > ./hack/kind.test.yaml
 	-KUBECONFIG=$(KUBECONFIG) \
-		kubectl delete job kube-bench 
+		kubectl delete job kube-bench
 	KUBECONFIG=$(KUBECONFIG) \
 		kubectl apply -f ./hack/kind.test.yaml
 	KUBECONFIG=$(KUBECONFIG) \