diff --git a/tools/test/bin/onos-activate-all-scenario-default-app-list b/tools/test/bin/onos-activate-all-scenario-default-app-list
new file mode 100644
index 0000000..217f780
--- /dev/null
+++ b/tools/test/bin/onos-activate-all-scenario-default-app-list
@@ -0,0 +1,181 @@
+cpr
+mappingmanagement
+yang
+yang-gui
+config
+restconf
+protocols.restconfserver
+faultmanagement
+netconf
+netconfsb
+models.common
+models.l3vpn
+tunnel
+bgpcep
+l3vpn
+models.huawei
+drivers.huawei
+models.microsemi
+drivers.netconf
+netcfglinksprovider
+openflow-message
+cpman
+protocols.grpc
+protocols.p4runtime
+hostprovider
+ovsdb-base
+drivers.ovsdb
+openstacknode
+openstacknetworking
+models.ietf
+kafka-integration
+inbandtelemetry
+configsync
+models.tapi
+models.openconfig
+models.openconfig-infinera
+models.openconfig-odtn
+odtn-api
+restsb
+optical-model
+drivers.optical
+drivers.odtn-driver
+configsync-netconf
+# crashes in Atomix
+#odtn-service
+vtn
+loadtest
+protocols.gnmi
+generaldeviceprovider
+p4runtime
+drivers.p4runtime
+pipelines.basic
+pipelines.fabric
+events
+intentsynchronizer
+route-service
+fpm
+dhcprelay
+metrics
+fwd
+proxyarp
+models.polatis
+drivers.polatis.netconf
+lldpprovider
+openflow-base
+openflow
+drivers.corsa
+network-troubleshoot
+drivers.mellanox
+drivermatrix
+messaging-perf
+hostprobingprovider
+pcep-api
+distributedprimitives
+openstackvtap
+virtual
+models.openroadm
+openroadm
+tetopology
+tetunnel
+ovsdbhostprovider
+ovsdb
+drivers.barefoot
+influxdbmetrics
+evpn-route-service
+gluon
+evpnopenflow
+drivers.juniper
+pathpainter
+simplefabric
+flowanalyzer
+null
+# throws rejected execution exception
+#transaction-perf
+drivers.server
+drivers.gnmi
+drivers.stratum
+workflow
+fibinstaller
+vrouter
+sdnip
+artemis
+flow-perf
+# app crashes on startup
+#lisp
+#drivers.lisp
+rabbitmq
+snmp
+newoptical
+linkdiscovery
+drivers.arista
+pim
+routescale
+mcast
+segmentrouting
+# crashes during shutdown
+#bgprouter
+protocols.xmpp
+openstacktelemetry
+# crashes during shutdown
+#castor
+drivers.ciena.c5162
+netcfg-monitor
+xmpp.device
+flowspec-api
+routeradvertisement
+packet-stats
+mlb
+drivers.flowspec
+pcep
+ofagent
+demo
+t3
+virtualbng
+gangliametrics
+drivers.ciena.c5170
+drivers.oplink
+# missing dependency on startup
+# isis
+drivers.hp
+drivers.cisco.rest
+roadm
+drivers.bmv2
+vpls
+p4tutorial.pipeconf
+p4tutorial.mytunnel
+openstacktroubleshoot
+models.ciena.waveserverai
+drivers.ciena.waveserverai
+drivers.fujitsu
+drivers.polatis.openflow
+layout
+# missing a dependency
+#graphitemetrics
+powermanagement
+optical-rest
+tl1
+drivers.lumentum
+acl
+cord-support
+intentperf
+mfwd
+drivers.ciena.waveserver
+imr
+dhcp
+drivers.cisco.netconf
+openstacknetworkingui
+cfm
+scalablegateway
+cluster-ha
+drivers.microsemi.ea1000
+reactive-routing
+nodemetrics
+mobility
+bgp
+linkprops
+cip
+election
+primitiveperf
+protocols.xmpp.pubsub
+netcfghostprovider
\ No newline at end of file
diff --git a/tools/test/bin/onos-generate-activate-all-scenario b/tools/test/bin/onos-generate-activate-all-scenario
new file mode 100755
index 0000000..c12400b
--- /dev/null
+++ b/tools/test/bin/onos-generate-activate-all-scenario
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+
+import sys, os
+
+SCENARIO_HEADER = '''
+<!--
+  ~ Copyright 2019-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+  
+  <!--
+     This scenario is auto generated by onos-generate-activate-all-scenario. DO NOT EDIT
+  -->
+  <scenario name="app-activate-all" description="Tests that all apps can be activated by themselves">
+    <group name="App-Activate-All">
+       <step name="App-Activate-All.Minimal-Apps"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+'''
+
+SCENARIO_FOOTER = '''
+    </group>
+  </scenario>
+'''
+
+ACTIVATE_GROUP_TEMPLATE = '''
+        <group name="App-Activate-All.%(app_id)s" %(requires)s>
+           <step name="App-Activate-All.Activate-%(app_id)s"
+                 exec="onos ${OCI} app activate org.onosproject.%(app_id)s" %(requires)s/>
+           <group name="App-Activate-All.App-Check-%(app_id)s" requires="App-Activate-All.Activate-%(app_id)s">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.App-Check-${#}-%(app_id)s"
+                       exec="onos-check-apps ${OC#} %(app_id)s includes"/>
+                 <step name="App-Activate-All.Check-Logs-${#}-%(app_id)s" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.App-Deactivate-%(app_id)s"
+                 exec="onos ${OCI} app deactivate org.onosproject.%(app_id)s" requires="App-Activate-All.App-Check-%(app_id)s"/>
+           <step name="App-Activate-All.Wait-For-Deactivate-%(app_id)s"
+                 exec="onos-check-apps ${OCI} org.onosproject.drivers" requires="App-Activate-All.App-Deactivate-%(app_id)s"/>      
+           <group name="App-Activate-All.App-Check-After-%(app_id)s" requires="App-Activate-All.Wait-For-Deactivate-%(app_id)s">
+              <parallel var="${OC#}">
+                 <step name="App-Activate-All.Check-Logs-After-${#}-%(app_id)s" exec="onos-check-logs ${OC#}"/>
+              </parallel>
+           </group>
+           <step name="App-Activate-All.Minimal-Apps-%(app_id)s" requires="App-Activate-All.App-Deactivate-%(app_id)s"
+                 exec="onos-set-up-minimal-apps ${OCI}"/>
+        </group>
+
+'''
+
+app_list = []
+app_list_file = ""
+
+if len(sys.argv) > 1:
+    app_list_file = sys.argv[1]
+else:
+    print "Usage: onos-generate-activate-all-scenario file-name-of-app-list"
+    sys.exit()
+
+with open(app_list_file) as apps:
+    for app in apps:
+        if not "#" in app:
+            normalized_app = app.strip(" \n")
+            if not normalized_app == "":
+                app_list.append(normalized_app)
+
+scenario = SCENARIO_HEADER + "\n"
+
+app_group_requires = 'requires="App-Activate-All.Minimal-Apps"'
+for app_id in app_list:
+    parameters = {
+        'requires': app_group_requires,
+        'app_id': app_id,
+    }
+    scenario = scenario + (ACTIVATE_GROUP_TEMPLATE % parameters)
+    app_group_requires = 'requires="App-Activate-All.' + app_id + '"'
+
+scenario = scenario + SCENARIO_FOOTER
+
+print scenario
+
diff --git a/tools/test/bin/onos-set-up-minimal-apps b/tools/test/bin/onos-set-up-minimal-apps
new file mode 100755
index 0000000..666c96c
--- /dev/null
+++ b/tools/test/bin/onos-set-up-minimal-apps
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+import subprocess, sys, json, os
+
+REQUIRED_APPS = ["org.onosproject.drivers"]
+
+
+def _main():
+    # Get the ONOS node address
+    onos_node = ""
+
+    if len(sys.argv) > 1:
+        onos_node = sys.argv[1]
+    else:
+        onos_node = os.environ["OCI"]
+
+    # Get a JSON representation of the apps that are currently running
+    current_apps_json = subprocess.check_output(["onos", onos_node, "onos:apps", "-a", "-s", "-j"])
+
+    # Determine which apps need to be deactivated
+    apps_to_deactivate = []
+    config = json.loads(current_apps_json)
+
+    for app_description in config:
+        apps_to_deactivate.append(app_description["name"])
+
+    # Deactivate all apps
+    if len(apps_to_deactivate) > 0:
+        deactivate_command = ["onos", onos_node, "onos:app", "deactivate"]
+        for app_to_deactivate in apps_to_deactivate:
+            deactivate_command.append(app_to_deactivate)
+        subprocess.check_output(deactivate_command)
+
+    # Activate apps that are part of the base set
+    if len(REQUIRED_APPS) > 0:
+        activate_command = ["onos", onos_node, "onos:app", "activate"]
+        for app_to_activate in REQUIRED_APPS:
+            activate_command.append(app_to_activate)
+        subprocess.check_output(activate_command)
+
+
+
+if __name__ == "__main__":
+    _main()
