diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/pom.xml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/pom.xml
index 8cff61b..7e40bc7 100644
--- a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/pom.xml
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/pom.xml
@@ -65,7 +65,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/pom.xml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/pom.xml
index efd493f..48a16a3 100644
--- a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/pom.xml
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/pom.xml
@@ -44,7 +44,7 @@
         <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
-            <version>6.8.8</version>
+            <scope>compile</scope>
         </dependency>
     <dependency>
         <groupId>junit</groupId>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java
index b11c33e..c8a915d 100644
--- a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java
@@ -134,7 +134,7 @@
 
                     if (baseResourceWidgetModelElements.getModelElement().size() !=
                         groupIdTypeStore.size()) {
-                        org.testng.Assert.fail("Missing VFModule in VF model.xml");
+                        Assert.fail("Missing VFModule in VF model.xml");
                     }
 
                     for (String key : groupIdTypeStore.keySet()) {
@@ -285,11 +285,11 @@
                 ModelElements containedModelElements = modelVersion.getModelElements().getModelElement().
                     get(0).getModelElements();
 
-                org.testng.Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+                Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
                      .getRelationship().get(0).getRelationshipData().get(0).getRelationshipValue(),
                         providingServiceDetails.get("providing_service_uuid"));
 
-                org.testng.Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+                Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
                     .getRelationship().get(0).getRelationshipData().get(1).getRelationshipValue(),
                         providingServiceDetails.get("providing_service_invariant_uuid"));
 
@@ -363,7 +363,7 @@
 
         ToscaTemplate serviceTosca = getServiceTosca(toscas);
         if (serviceTosca == null) {
-            org.testng.Assert.fail("Service Tosca not found");
+            Assert.fail("Service Tosca not found");
         }
         serviceTosca.getMetadata().put("version", SampleJUnitTest.additionalParams.get(
             AdditionalParams
@@ -404,11 +404,11 @@
                     }
 
                     //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
-                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+                    Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
                         .getRelationship().get(0)
                         .getRelationshipData().get(0).getRelationshipValue(),entry.getKey());
 
-                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+                    Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
                         .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
                         .get(entry.getKey()+ INV_UID));
                 } else if(entry.getValue().contains("org.openecomp.resource.vl")){
@@ -418,11 +418,11 @@
                     validateMatchedModelElementsInService(matchedResourceElements,
                         Widget.getWidget(Widget.Type.L3_NET).getName());
                     //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
-                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+                    Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
                         .getRelationship().get(0)
                         .getRelationshipData().get(0).getRelationshipValue(),entry.getKey());
 
-                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+                    Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
                         .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
                         .get(entry.getKey() + INV_UID));
                 }
@@ -432,12 +432,12 @@
 
     private static void validateWidgetIds(List<ModelElement> matchedServiceBaseWidgetElements,
                                           String widgetName, String widgetInvUuId) {
-        org.testng.Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+        Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
             .getRelationshipData().get(0).getRelationshipValue(), properties.getProperty(
             ArtifactType.AAI.name()
             + ".model-version-id."+ widgetName));
 
-        org.testng.Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+        Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
             .getRelationshipData().get(1).getRelationshipValue(), widgetInvUuId);
     }
 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/SampleJUnitTest.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/SampleJUnitTest.java
index 9c4def4..6b59e2e 100644
--- a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/SampleJUnitTest.java
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/SampleJUnitTest.java
@@ -31,7 +31,6 @@
 import org.onap.sdc.generator.aai.model.Widget;
 import org.onap.sdc.generator.aai.tosca.ToscaTemplate;
 import org.onap.sdc.generator.aai.xml.Model;
-import org.onap.sdc.generator.data.*;
 
 import junit.framework.TestCase;
 import org.junit.Assert;
diff --git a/common/pom.xml b/common/pom.xml
index e2dad0e..65a6c07 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -79,7 +79,7 @@
         <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
-            <version>6.8.8</version>
+            <version>${testng.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/onboarding/pom.xml b/onboarding/pom.xml
index 0f14239..2887780 100644
--- a/onboarding/pom.xml
+++ b/onboarding/pom.xml
@@ -132,6 +132,12 @@
                 <version>1.16.20</version>
                 <scope>provided</scope>
             </dependency>
+            <dependency>
+                <groupId>org.testng</groupId>
+                <artifactId>testng</artifactId>
+                <scope>test</scope>
+                <version>${testng.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml
index f6f1a79..6114876 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml
@@ -50,6 +50,10 @@
 			<artifactId>httpcore</artifactId>
 			<version>${http.core.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>org.testng</groupId>
+			<artifactId>testng</artifactId>
+		</dependency>
 
 		<!-- Java Stuff -->
 		<dependency>
diff --git a/openecomp-be/backend/openecomp-sdc-item-permissions-manager/pom.xml b/openecomp-be/backend/openecomp-sdc-item-permissions-manager/pom.xml
index 8b2b6ac..6fddbe4 100644
--- a/openecomp-be/backend/openecomp-sdc-item-permissions-manager/pom.xml
+++ b/openecomp-be/backend/openecomp-sdc-item-permissions-manager/pom.xml
@@ -59,7 +59,7 @@
         <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
-            <version>RELEASE</version>
+            <version>${testng.version}</version>
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml
index 0b32076..7d16e82 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml
@@ -29,7 +29,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
@@ -38,12 +38,6 @@
             </exclusions>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>${junit.version}</version>
-        </dependency>
-        <dependency>
             <groupId>javax.el</groupId>
             <artifactId>javax.el-api</artifactId>
             <version>${javax.el-api.version}</version>
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml
index 0cb874d..aea348f 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml
@@ -36,7 +36,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml
index 0130c0a..9d621b4 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml
@@ -69,7 +69,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/pom.xml b/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/pom.xml
index 0623879..e6922e7 100644
--- a/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/pom.xml
+++ b/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/pom.xml
@@ -54,6 +54,7 @@
         <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
+            <scope>test</scope>
             <version>${testng.version}</version>
         </dependency>
 
diff --git a/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/test/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImplTest.java b/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/test/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImplTest.java
similarity index 87%
rename from openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/test/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImplTest.java
rename to openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/test/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImplTest.java
index 0a87c29..a4fcd24 100644
--- a/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/main/test/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImplTest.java
+++ b/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-core/src/test/java/org/openecomp/sdc/itempermissions/dao/impl/PermissionsServicesImplTest.java
@@ -1,5 +1,6 @@
 package org.openecomp.sdc.itempermissions.dao.impl;
 
+import java.util.Optional;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
@@ -7,6 +8,7 @@
 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
 import org.openecomp.sdc.itempermissions.PermissionsRules;
 import org.openecomp.sdc.itempermissions.dao.ItemPermissionsDao;
+import org.openecomp.sdc.itempermissions.dao.UserPermissionsDao;
 import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
 import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
@@ -35,12 +37,14 @@
   private static final String CHANGE_PERMISSIONS = "Change_Item_Permissions";
 
   static {
-    SessionContextProviderFactory.getInstance().createInterface().create("testUser1");
+    SessionContextProviderFactory.getInstance().createInterface().create("testUser1", "dox");
   }
 
   @Mock
   private ItemPermissionsDao permissionsDaoMock;
   @Mock
+  private UserPermissionsDao userPermissionsDao;  // do not delete. needed for permissionService
+  @Mock
   private PermissionsRules permissionsRules;
   @InjectMocks
   @Spy
@@ -75,7 +79,7 @@
 
   @Test
   public void testIsAllowed(){
-    when(permissionsDaoMock.getUserItemPermiission(ITEM1_ID,USER1_ID)).thenReturn(PERMISSION);
+    when(permissionsDaoMock.getUserItemPermission(ITEM1_ID,USER1_ID)).thenReturn(Optional.of(PERMISSION));
     when(permissionsRules.isAllowed(PERMISSION,ACTION_SUBMIT)).thenReturn(true);
 
     Boolean result = permissionsServices.isAllowed(ITEM1_ID,USER1_ID,ACTION_SUBMIT);
@@ -86,16 +90,15 @@
   @Test
   public void testUpdatePermissions(){
 
-    Set<String> addedUsers = new HashSet<String>();
+    Set<String> addedUsers = new HashSet<>();
     addedUsers.add(USER2_ID);
 
-    permissionsServices.updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers,
-        new HashSet<String>());
+    permissionsServices.updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers, new HashSet<>());
 
     verify(permissionsRules).executeAction(ITEM1_ID,USER1_ID,CHANGE_PERMISSIONS);
-    verify(permissionsRules).updatePermission(ITEM1_ID,USER1_ID,PERMISSION,addedUsers,new HashSet<String>());
+    verify(permissionsRules).updatePermission(ITEM1_ID,USER1_ID,PERMISSION,addedUsers, new HashSet<>());
     verify(permissionsDaoMock).updateItemPermissions(ITEM1_ID,PERMISSION,addedUsers,new
-        HashSet<String>());
+        HashSet<>());
   }
 
 
diff --git a/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-impl/pom.xml b/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-impl/pom.xml
index 6935d5a..3d80461 100644
--- a/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-item-permissions-lib/openecomp-item-permissions-impl/pom.xml
@@ -23,5 +23,11 @@
             <version>${project.version}</version>
             <scope>runtime</scope>
         </dependency>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <scope>test</scope>
+            <version>${testng.version}</version>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml
index 9b7c210..9ec8041 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml
@@ -28,7 +28,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
index ab15802..1a4c06e 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml
@@ -29,7 +29,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml
index fdceed6..a05fb01 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml
@@ -28,12 +28,6 @@
             <scope>runtime</scope>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>${junit.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.openecomp.sdc.core</groupId>
             <artifactId>openecomp-utilities-lib</artifactId>
             <version>${project.version}</version>
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml
index 90c14b4..be55d2f 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml
@@ -24,7 +24,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml
index 75b766d..603aa62 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml
@@ -40,7 +40,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml
index ea12a86..88002d9 100644
--- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml
@@ -68,7 +68,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml
index 0b7264d..8affe11 100644
--- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml
@@ -41,7 +41,7 @@
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
-            <version>6.8.5</version>
+            <version>${testng.version}</version>
             <exclusions>
                 <exclusion>
                     <artifactId>snakeyaml</artifactId>
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml b/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml
index 0914ed2..14fba4f 100644
--- a/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/pom.xml
@@ -83,6 +83,12 @@
             <version>1.2.3</version>
             <scope>runtime</scope>
         </dependency>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <scope>test</scope>
+            <version>${testng.version}</version>
+        </dependency>
     </dependencies>
 
 </project>
