diff --git a/Corona-Warn-App/build.gradle b/Corona-Warn-App/build.gradle
index a45a78f7566c2a5626e7356d4e5d39d8cee90818..23e83205b1d4198561b7e72f8a4d6d2197475b92 100644
--- a/Corona-Warn-App/build.gradle
+++ b/Corona-Warn-App/build.gradle
@@ -78,7 +78,6 @@ android {
     productFlavors {
         device {
             dimension "version"
-            buildConfigField "String", "BUILD_VARIANT", "\"device\""
             resValue "string", "app_name", "Corona-Warn"
 
             ext {
@@ -88,7 +87,6 @@ android {
         deviceForTesters {
             // Contains test fragments
             dimension "version"
-            buildConfigField "String", "BUILD_VARIANT", "\"deviceForTesters\""
             resValue "string", "app_name", "CWA TEST"
             applicationIdSuffix '.dev'
 
diff --git a/Corona-Warn-App/src/device/res/navigation/test_nav_graph.xml b/Corona-Warn-App/src/device/res/navigation/test_nav_graph.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ed1d8a66ba51ded503486da1ea7c56f82c0bfae6
--- /dev/null
+++ b/Corona-Warn-App/src/device/res/navigation/test_nav_graph.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/test_nav_graph">
+
+</navigation>
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForAPIFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForAPIFragment.kt
index 7acc24c296162b1ff94af0ebd3bf0c5350d5d2d9..92e6be5c83f319428b2baca75e9ac3ad10bb5172 100644
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForAPIFragment.kt
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/api/ui/TestForAPIFragment.kt
@@ -54,6 +54,7 @@ import de.rki.coronawarnapp.storage.AppDatabase
 import de.rki.coronawarnapp.storage.ExposureSummaryRepository
 import de.rki.coronawarnapp.storage.LocalData
 import de.rki.coronawarnapp.storage.tracing.TracingIntervalRepository
+import de.rki.coronawarnapp.test.menu.ui.TestMenuItem
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
 import de.rki.coronawarnapp.util.KeyFileHelper
 import de.rki.coronawarnapp.util.di.AppInjector
@@ -82,6 +83,11 @@ class TestForAPIFragment : Fragment(R.layout.fragment_test_for_a_p_i),
     private val vm: TestForApiFragmentViewModel by cwaViewModels { viewModelFactory }
 
     companion object {
+        val MENU_ITEM = TestMenuItem(
+            title = "Test for API",
+            description = "A mix of API related test options.",
+            targetId = R.id.test_for_api_fragment
+        )
         const val CONFIG_SCORE = 8
 
         fun keysToJson(keys: List<TemporaryExposureKey>): String {
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuAdapter.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuAdapter.kt
new file mode 100644
index 0000000000000000000000000000000000000000..246a6b59503db761c03b16f8f7bf911eb1905d65
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuAdapter.kt
@@ -0,0 +1,45 @@
+package de.rki.coronawarnapp.test.menu.ui
+
+import android.view.ViewGroup
+import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.databinding.FragmentTestMenuAdapterItemBinding
+import de.rki.coronawarnapp.ui.lists.BaseAdapter
+import javax.inject.Inject
+
+class TestMenuAdapter @Inject constructor() : BaseAdapter<TestMenuAdapter.VH>() {
+
+    private val internalData = mutableListOf<TestMenuItem>()
+
+    var data: List<TestMenuItem>
+        get() = internalData.toList()
+        set(value) {
+            internalData.clear()
+            internalData.addAll(value)
+            notifyDataSetChanged()
+        }
+
+    var onItemClickListener: (TestMenuItem) -> Unit = {}
+
+    override fun getItemCount(): Int = internalData.size
+
+    override fun onCreateBaseVH(parent: ViewGroup, viewType: Int): VH = VH(parent)
+
+    override fun onBindBaseVH(holder: VH, position: Int) {
+        holder.apply {
+            val item = internalData[position]
+            bind(item)
+            itemView.setOnClickListener { onItemClickListener(item) }
+        }
+    }
+
+    class VH(parent: ViewGroup) : BaseAdapter.VH(R.layout.fragment_test_menu_adapter_item, parent) {
+        private val viewBinding: FragmentTestMenuAdapterItemBinding =
+            FragmentTestMenuAdapterItemBinding.bind(itemView)
+
+        fun bind(item: TestMenuItem) = viewBinding.apply {
+            imageView.setImageResource(item.iconRes)
+            title.text = item.title
+            description.text = item.description
+        }
+    }
+}
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragment.kt
new file mode 100644
index 0000000000000000000000000000000000000000..8ccbcf5f5490cd8f634ad1780f7d1345b38592d6
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragment.kt
@@ -0,0 +1,41 @@
+package de.rki.coronawarnapp.test.menu.ui
+
+import android.os.Bundle
+import android.view.View
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
+import androidx.recyclerview.widget.LinearLayoutManager
+import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.databinding.FragmentTestMenuBinding
+import de.rki.coronawarnapp.util.di.AutoInject
+import de.rki.coronawarnapp.util.ui.observe2
+import de.rki.coronawarnapp.util.ui.viewBindingLazy
+import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider
+import de.rki.coronawarnapp.util.viewmodel.cwaViewModels
+import javax.inject.Inject
+
+class TestMenuFragment : Fragment(R.layout.fragment_test_menu), AutoInject {
+
+    @Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory
+    private val vm: TestMenuFragmentViewModel by cwaViewModels { viewModelFactory }
+
+    private val binding: FragmentTestMenuBinding by viewBindingLazy()
+
+    @Inject lateinit var menuAdapter: TestMenuAdapter
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+
+        binding.testMenuList.apply {
+            layoutManager = LinearLayoutManager(requireContext())
+            adapter = menuAdapter
+        }
+
+        vm.testMenuData.observe2(this) { menuAdapter.data = it }
+        menuAdapter.onItemClickListener = { vm.showTestScreen(it) }
+
+        vm.showTestScreenEvent.observe2(this) {
+            findNavController().navigate(it.targetId)
+        }
+    }
+}
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentModule.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentModule.kt
new file mode 100644
index 0000000000000000000000000000000000000000..caf82c2556ec48477edcee01578e088b678e96c5
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentModule.kt
@@ -0,0 +1,16 @@
+package de.rki.coronawarnapp.test.menu.ui
+
+import dagger.Binds
+import dagger.Module
+import dagger.multibindings.IntoMap
+import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
+import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
+import de.rki.coronawarnapp.util.viewmodel.CWAViewModelKey
+
+@Module
+abstract class TestMenuFragmentModule {
+    @Binds
+    @IntoMap
+    @CWAViewModelKey(TestMenuFragmentViewModel::class)
+    abstract fun testRiskLevelFragment(factory: TestMenuFragmentViewModel.Factory): CWAViewModelFactory<out CWAViewModel>
+}
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentViewModel.kt
new file mode 100644
index 0000000000000000000000000000000000000000..214735fd424d2efde9d88148f3fed4cbc2d1b8e8
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuFragmentViewModel.kt
@@ -0,0 +1,27 @@
+package de.rki.coronawarnapp.test.menu.ui
+
+import androidx.lifecycle.MutableLiveData
+import com.squareup.inject.assisted.AssistedInject
+import de.rki.coronawarnapp.test.api.ui.TestForAPIFragment
+import de.rki.coronawarnapp.test.risklevel.ui.TestRiskLevelCalculationFragment
+import de.rki.coronawarnapp.util.ui.SingleLiveEvent
+import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
+import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory
+
+class TestMenuFragmentViewModel @AssistedInject constructor() : CWAViewModel() {
+
+    val testMenuData by lazy {
+        listOf(
+            TestForAPIFragment.MENU_ITEM,
+            TestRiskLevelCalculationFragment.MENU_ITEM
+        ).let { MutableLiveData(it) }
+    }
+    val showTestScreenEvent = SingleLiveEvent<TestMenuItem>()
+
+    fun showTestScreen(it: TestMenuItem) {
+        showTestScreenEvent.postValue(it)
+    }
+
+    @AssistedInject.Factory
+    interface Factory : SimpleCWAViewModelFactory<TestMenuFragmentViewModel>
+}
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuItem.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuItem.kt
new file mode 100644
index 0000000000000000000000000000000000000000..765012f4817f7c57dceab48e7139555172aeffb0
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/menu/ui/TestMenuItem.kt
@@ -0,0 +1,12 @@
+package de.rki.coronawarnapp.test.menu.ui
+
+import androidx.annotation.DrawableRes
+import androidx.annotation.IdRes
+import de.rki.coronawarnapp.R
+
+data class TestMenuItem(
+    @DrawableRes val iconRes: Int = R.drawable.ic_bug,
+    val title: String,
+    val description: String,
+    @IdRes val targetId: Int
+)
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/risklevel/ui/TestRiskLevelCalculationFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/risklevel/ui/TestRiskLevelCalculationFragment.kt
index 710555ae5067a96f872f02cdb7ff3caaad3477dc..437122d7a6eb1f4b64fc3747eb2c518ab63f2bba 100644
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/risklevel/ui/TestRiskLevelCalculationFragment.kt
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/risklevel/ui/TestRiskLevelCalculationFragment.kt
@@ -13,6 +13,7 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentTestRiskLevelCalculationBinding
 import de.rki.coronawarnapp.server.protocols.AppleLegacyKeyExchange
 import de.rki.coronawarnapp.sharing.ExposureSharingService
+import de.rki.coronawarnapp.test.menu.ui.TestMenuItem
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.SubmissionViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
@@ -121,5 +122,10 @@ class TestRiskLevelCalculationFragment : Fragment(R.layout.fragment_test_risk_le
 
     companion object {
         val TAG: String = TestRiskLevelCalculationFragment::class.simpleName!!
+        val MENU_ITEM = TestMenuItem(
+            title = "Risklevel Calculation",
+            description = "Risklevel calculation related test options.",
+            targetId = R.id.test_risklevel_calculation_fragment
+        )
     }
 }
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt
index e4371986903d63f93649895ecb25372344ad7e2c..21917dcf8a13dfd56e5854c2fa98438030748dce 100644
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainActivityTestModule.kt
@@ -4,12 +4,17 @@ import dagger.Module
 import dagger.android.ContributesAndroidInjector
 import de.rki.coronawarnapp.test.api.ui.TestForAPIFragment
 import de.rki.coronawarnapp.test.api.ui.TestForApiFragmentModule
+import de.rki.coronawarnapp.test.menu.ui.TestMenuFragment
+import de.rki.coronawarnapp.test.menu.ui.TestMenuFragmentModule
 import de.rki.coronawarnapp.test.risklevel.ui.TestRiskLevelCalculationFragment
 import de.rki.coronawarnapp.test.risklevel.ui.TestRiskLevelCalculationFragmentModule
 
 @Module
 abstract class MainActivityTestModule {
 
+    @ContributesAndroidInjector(modules = [TestMenuFragmentModule::class])
+    abstract fun testMenuFragment(): TestMenuFragment
+
     @ContributesAndroidInjector(modules = [TestRiskLevelCalculationFragmentModule::class])
     abstract fun testRiskLevelCalculationFragment(): TestRiskLevelCalculationFragment
 
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainFragment.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
deleted file mode 100644
index e294c6778e3475ff9ebcf7887fad3904578a6074..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
+++ /dev/null
@@ -1,243 +0,0 @@
-package de.rki.coronawarnapp.ui.main
-
-import android.os.Bundle
-import android.view.View
-import android.view.accessibility.AccessibilityEvent
-import android.widget.PopupMenu
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.activityViewModels
-import androidx.lifecycle.lifecycleScope
-import androidx.navigation.fragment.findNavController
-import de.rki.coronawarnapp.R
-import de.rki.coronawarnapp.databinding.FragmentMainBinding
-import de.rki.coronawarnapp.risk.TimeVariables
-import de.rki.coronawarnapp.storage.LocalData
-import de.rki.coronawarnapp.timer.TimerHelper
-import de.rki.coronawarnapp.ui.doNavigate
-import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
-import de.rki.coronawarnapp.ui.viewmodel.SubmissionViewModel
-import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
-import de.rki.coronawarnapp.util.DialogHelper
-import de.rki.coronawarnapp.util.ExternalActionHelper
-import de.rki.coronawarnapp.util.di.AppInjector
-import de.rki.coronawarnapp.util.ui.viewBindingLazy
-import de.rki.coronawarnapp.util.errors.RecoveryByResetDialogFactory
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
-
-/**
- * After the user has finished the onboarding this fragment will be the heart of the application.
- * Three ViewModels are needed that this fragment shows all relevant information to the user.
- * Also the Menu is set here.
- *
- * @see tracingViewModel
- * @see settingsViewModel
- * @see submissionViewModel
- * @see PopupMenu
- */
-class MainFragment : Fragment(R.layout.fragment_main) {
-
-    private val tracingViewModel: TracingViewModel by activityViewModels()
-    private val settingsViewModel: SettingsViewModel by activityViewModels()
-    private val submissionViewModel: SubmissionViewModel by activityViewModels()
-    private val binding: FragmentMainBinding by viewBindingLazy()
-
-    private val errorResetTool by lazy {
-        AppInjector.component.errorResetTool
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        binding.tracingViewModel = tracingViewModel
-        binding.settingsViewModel = settingsViewModel
-        binding.submissionViewModel = submissionViewModel
-
-        setButtonOnClickListener()
-        setContentDescription()
-        checkShouldInteroperabilityBeOpened()
-        showOneTimeTracingExplanationDialog()
-    }
-
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
-        if (errorResetTool.isResetNoticeToBeShown) {
-            RecoveryByResetDialogFactory(this).showDialog(
-                detailsLink = R.string.errors_generic_text_catastrophic_error_encryption_failure,
-                onDismiss = {
-                    errorResetTool.isResetNoticeToBeShown = false
-                }
-            )
-        }
-    }
-
-    override fun onResume() {
-        super.onResume()
-        // refresh required data
-        tracingViewModel.refreshRiskLevel()
-        tracingViewModel.refreshExposureSummary()
-        tracingViewModel.refreshLastTimeDiagnosisKeysFetchedDate()
-        tracingViewModel.refreshIsTracingEnabled()
-        tracingViewModel.refreshActiveTracingDaysInRetentionPeriod()
-        TimerHelper.checkManualKeyRetrievalTimer()
-        submissionViewModel.refreshDeviceUIState()
-        tracingViewModel.refreshLastSuccessfullyCalculatedScore()
-        binding.mainScrollview.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT)
-    }
-
-    private fun setContentDescription() {
-        binding.mainHeaderShare.buttonIcon.contentDescription = getString(R.string.button_share)
-        binding.mainHeaderOptionsMenu.buttonIcon.contentDescription = getString(R.string.button_menu)
-        binding.mainAbout.mainCard.contentDescription = getString(R.string.hint_external_webpage)
-    }
-
-    private fun setButtonOnClickListener() {
-        binding.mainTestUnregistered.submissionStatusCardUnregistered.setOnClickListener {
-            toSubmissionIntro()
-        }
-        binding.mainTestUnregistered.submissionStatusCardUnregisteredButton.setOnClickListener {
-            toSubmissionIntro()
-        }
-        binding.mainTestDone.submissionStatusCardDone.setOnClickListener {
-            findNavController().doNavigate(
-                MainFragmentDirections.actionMainFragmentToSubmissionDoneFragment()
-            )
-        }
-        binding.mainTestResult.submissionStatusCardContent.setOnClickListener {
-            toSubmissionResult()
-        }
-        binding.mainTestResult.submissionStatusCardContentButton.setOnClickListener {
-            toSubmissionResult()
-        }
-        binding.mainTestPositive.submissionStatusCardPositive.setOnClickListener {
-            toSubmissionResult()
-        }
-        binding.mainTestPositive.submissionStatusCardPositiveButton.setOnClickListener {
-            toSubmissionResult()
-        }
-        binding.mainTracing.setOnClickListener {
-            findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToSettingsTracingFragment())
-        }
-        binding.mainRisk.riskCard.setOnClickListener {
-            findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToRiskDetailsFragment())
-        }
-        binding.mainRisk.riskCardButtonUpdate.setOnClickListener {
-            tracingViewModel.refreshDiagnosisKeys()
-            settingsViewModel.updateManualKeyRetrievalEnabled(false)
-        }
-        binding.mainRisk.riskCardButtonEnableTracing.setOnClickListener {
-            findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToSettingsTracingFragment())
-        }
-        binding.mainAbout.mainCard.setOnClickListener {
-            ExternalActionHelper.openUrl(this, requireContext().getString(R.string.main_about_link))
-        }
-        binding.mainHeaderShare.buttonIcon.setOnClickListener {
-            findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToMainSharingFragment())
-        }
-        binding.mainHeaderOptionsMenu.buttonIcon.setOnClickListener {
-            showPopup(it)
-        }
-    }
-
-    private fun toSubmissionResult() {
-        findNavController().doNavigate(
-            MainFragmentDirections.actionMainFragmentToSubmissionResultFragment()
-        )
-    }
-
-    private fun toSubmissionIntro() {
-        findNavController().doNavigate(
-            MainFragmentDirections.actionMainFragmentToSubmissionIntroFragment()
-        )
-    }
-
-    private fun showPopup(view: View) {
-        val popup = PopupMenu(requireContext(), view)
-        popup.inflate(R.menu.menu_main)
-        // TODO we shouldn't have to duplicate the whole fragment to add these items
-        // In the future we'd like a DI'ed class that changes the navigation for this MainFragment?
-        popup.setOnMenuItemClickListener {
-            return@setOnMenuItemClickListener when (it.itemId) {
-                R.id.menu_help -> {
-                    findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToMainOverviewFragment())
-                    true
-                }
-                R.id.menu_information -> {
-                    findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToInformationFragment())
-                    true
-                }
-                R.id.menu_settings -> {
-                    findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToSettingsFragment())
-                    true
-                }
-                R.id.menu_test_api -> {
-                    findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToTestForAPIFragment())
-                    true
-                }
-                R.id.menu_test_risk_level -> {
-                    findNavController().doNavigate(
-                        MainFragmentDirections.actionMainFragmentToTestRiskLevelCalculation(
-                            exampleArgument = null
-                        )
-                    )
-                    true
-                }
-                else -> super.onOptionsItemSelected(it)
-            }
-        }
-        popup.show()
-    }
-
-    private fun checkShouldInteroperabilityBeOpened() {
-        if (!LocalData.isInteroperabilityShownAtLeastOnce) {
-            navigateToInteroperabilityFeature()
-        }
-    }
-
-    private fun navigateToInteroperabilityFeature() {
-        findNavController().doNavigate(
-            MainFragmentDirections.actionMainFragmentToOnboardingDeltaInteroperabilityFragment()
-        )
-    }
-
-    private fun showOneTimeTracingExplanationDialog() {
-
-        // check if the dialog explaining the tracing time was already shown
-        if (!LocalData.tracingExplanationDialogWasShown()) {
-
-            val activity = this.requireActivity()
-
-            lifecycleScope.launch {
-
-                // get all text strings and the current active tracing time
-                val infoPeriodLogged =
-                    getString(R.string.risk_details_information_body_period_logged)
-                val infoPeriodLoggedAssessment =
-                    getString(
-                        R.string.risk_details_information_body_period_logged_assessment,
-                        (TimeVariables.getActiveTracingDaysInRetentionPeriod()).toString()
-                    )
-                val infoFAQ = getString(R.string.risk_details_explanation_dialog_faq_body)
-
-                withContext(Dispatchers.Main) {
-
-                    // display the dialog
-                    DialogHelper.showDialog(
-                        DialogHelper.DialogInstance(
-                            activity,
-                            getString(R.string.risk_details_explanation_dialog_title),
-                            "$infoPeriodLogged\n\n$infoPeriodLoggedAssessment\n\n$infoFAQ",
-                            getString(R.string.errors_generic_button_positive),
-                            null,
-                            null,
-                            {
-                                LocalData.tracingExplanationDialogWasShown(true)
-                            },
-                            {}
-                        ))
-                }
-            }
-        }
-    }
-}
diff --git a/Corona-Warn-App/src/deviceForTesters/res/drawable/ic_bug.xml b/Corona-Warn-App/src/deviceForTesters/res/drawable/ic_bug.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ed88658407baec3e8107d6281f279e9d0af2f86c
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/res/drawable/ic_bug.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="#000"
+        android:pathData="M14,12H10V10H14M14,16H10V14H14M20,8H17.19C16.74,7.22 16.12,6.55 15.37,6.04L17,4.41L15.59,3L13.42,5.17C12.96,5.06 12.5,5 12,5C11.5,5 11.04,5.06 10.59,5.17L8.41,3L7,4.41L8.62,6.04C7.88,6.55 7.26,7.22 6.81,8H4V10H6.09C6.04,10.33 6,10.66 6,11V12H4V14H6V15C6,15.34 6.04,15.67 6.09,16H4V18H6.81C7.85,19.79 9.78,21 12,21C14.22,21 16.15,19.79 17.19,18H20V16H17.91C17.96,15.67 18,15.34 18,15V14H20V12H18V11C18,10.66 17.96,10.33 17.91,10H20V8Z" />
+</vector>
diff --git a/Corona-Warn-App/src/deviceForTesters/res/drawable/ic_coffee.xml b/Corona-Warn-App/src/deviceForTesters/res/drawable/ic_coffee.xml
new file mode 100644
index 0000000000000000000000000000000000000000..95c65dbf1b3c2232925dc54ff1f98bc6e1c49567
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/res/drawable/ic_coffee.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="#000"
+        android:pathData="M2,21H20V19H2M20,8H18V5H20M20,3H4V13A4,4 0 0,0 8,17H14A4,4 0 0,0 18,13V10H20A2,2 0 0,0 22,8V5C22,3.89 21.1,3 20,3Z" />
+</vector>
diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_main.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_main.xml
deleted file mode 100644
index b2e40f739ec11bc85cb30a65eb8dbc5cad750f59..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_main.xml
+++ /dev/null
@@ -1,235 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <data>
-
-        <import type="de.rki.coronawarnapp.util.formatter.FormatterSettingsHelper" />
-
-        <import type="de.rki.coronawarnapp.util.formatter.FormatterSubmissionHelper" />
-
-        <variable
-            name="submissionViewModel"
-            type="de.rki.coronawarnapp.ui.viewmodel.SubmissionViewModel" />
-
-        <variable
-            name="tracingViewModel"
-            type="de.rki.coronawarnapp.ui.viewmodel.TracingViewModel" />
-
-        <variable
-            name="settingsViewModel"
-            type="de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel" />
-    </data>
-
-    <ScrollView
-        android:id="@+id/main_scrollview"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:contentDescription="@string/main_title"
-        android:fillViewport="true"
-        tools:context="de.rki.coronawarnapp.ui.main.MainFragment">
-
-        <!-- todo apply merge tags through xml when applicable (eod) -->
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/main_header"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="@dimen/header_main"
-                android:layout_margin="@dimen/spacing_small"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent">
-
-                <ImageView
-                    android:id="@+id/main_header_logo"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:importantForAccessibility="no"
-                    android:scaleType="fitStart"
-                    android:src="@drawable/ic_main_header"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toStartOf="@+id/main_header_share"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-                <include
-                    android:id="@+id/main_header_share"
-                    layout="@layout/include_button_icon"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    app:icon="@{@drawable/ic_main_share}"
-                    app:iconDescription="@{@string/main_share_title}"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toStartOf="@+id/main_header_options_menu"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-                <include
-                    android:id="@+id/main_header_options_menu"
-                    layout="@layout/include_button_icon"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    app:icon="@{@drawable/ic_main_settings}"
-                    app:iconDescription="@{@string/accessibility_menu}"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/main_tracing"
-                style="@style/buttonTracing"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:focusable="true"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintHorizontal_bias="0.0"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/main_header">
-
-                <TextView
-                    android:id="@+id/main_tracing_headline"
-                    style="@style/bodyButton"
-                    android:layout_width="@dimen/match_constraint"
-                    android:layout_height="wrap_content"
-                    android:layout_marginEnd="@dimen/spacing_small"
-                    android:focusable="false"
-                    android:contentDescription="@{FormatterSettingsHelper.formatTracingContentDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isLocationEnabled())}"
-                    android:text="@{FormatterSettingsHelper.formatTracingDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isLocationEnabled())}"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toStartOf="@id/main_tracing_icon"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-                <com.airbnb.lottie.LottieAnimationView
-                    android:id="@+id/main_tracing_icon"
-                    android:layout_width="@dimen/icon_size_main_card"
-                    android:layout_height="@dimen/icon_size_main_card"
-                    android:importantForAccessibility="no"
-                    app:animation="@{FormatterSettingsHelper.formatTracingIcon(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isLocationEnabled())}"
-                    app:animation_tint="@{FormatterSettingsHelper.formatTracingIconColor(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isLocationEnabled())}"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <include
-                android:id="@+id/main_tracing_divider"
-                layout="@layout/include_divider"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/main_tracing" />
-
-            <include
-                android:id="@+id/main_risk"
-                layout="@layout/include_risk_card"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterSubmissionHelper.formatShowRiskStatusCard(submissionViewModel.deviceUiState)}"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                app:layout_constraintTop_toBottomOf="@+id/main_tracing_divider"
-                app:settingsViewModel="@{settingsViewModel}"
-                app:showDetails="@{false}"
-                app:tracingViewModel="@{tracingViewModel}" />
-
-            <!-- submission status cards -->
-            <include
-                android:id="@+id/main_test_unregistered"
-                layout="@layout/include_submission_status_card_unregistered"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterSubmissionHelper.formatSubmissionStatusCardUnregisteredVisible(submissionViewModel.deviceRegistered)}"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                app:layout_constraintTop_toBottomOf="@id/main_risk" />
-
-            <include
-                android:id="@+id/main_test_result"
-                layout="@layout/include_submission_status_card_content"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterSubmissionHelper.formatSubmissionStatusCardContentVisible(submissionViewModel.deviceUiState)}"
-                app:deviceUIState="@{submissionViewModel.deviceUiState}"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                app:layout_constraintTop_toBottomOf="@id/main_test_unregistered" />
-
-            <include
-                android:id="@+id/main_test_fetching"
-                layout="@layout/include_submission_status_card_fetching"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterSubmissionHelper.formatSubmissionStatusCardFetchingVisible(submissionViewModel.deviceRegistered, submissionViewModel.uiStateState)}"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                app:layout_constraintTop_toBottomOf="@id/main_test_result" />
-
-            <include
-                android:id="@+id/main_test_positive"
-                layout="@layout/include_submission_status_card_positive"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterSubmissionHelper.formatShowSubmissionStatusPositiveCard(submissionViewModel.deviceUiState)}"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                app:layout_constraintTop_toBottomOf="@+id/main_test_fetching"
-                app:registerDate="@{submissionViewModel.testResultReceivedDate}" />
-
-            <include
-                android:id="@+id/main_test_done"
-                layout="@layout/include_submission_status_card_done"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterSubmissionHelper.formatShowSubmissionDoneCard(submissionViewModel.deviceUiState)}"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                app:layout_constraintTop_toBottomOf="@+id/main_test_positive" />
-
-            <androidx.constraintlayout.widget.Barrier
-                android:id="@+id/main_barrier"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                app:barrierDirection="bottom"
-                app:constraint_referenced_ids="main_test_done, main_risk" />
-
-            <include
-                android:id="@+id/main_about"
-                layout="@layout/include_main_faq_card"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                app:layout_constraintTop_toBottomOf="@+id/main_barrier"
-                app:layout_constraintBottom_toBottomOf="@+id/guideline_bottom"
-                app:layout_constraintVertical_bias="0.0"/>
-
-            <include layout="@layout/merge_guidelines_side" />
-
-            <androidx.constraintlayout.widget.Guideline
-                android:id="@+id/guideline_bottom"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                app:layout_constraintGuide_end="@dimen/spacing_small" />
-
-            <include layout="@layout/merge_guidelines_card" />
-
-        </androidx.constraintlayout.widget.ConstraintLayout>
-
-    </ScrollView>
-</layout>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu.xml
new file mode 100644
index 0000000000000000000000000000000000000000..32e387a62f941248a3155341818bf9ad30c82d6c
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <androidx.appcompat.widget.Toolbar
+        android:id="@+id/toolbar"
+        style="@style/Widget.AppCompat.Toolbar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:navigationIcon="@drawable/ic_coffee"
+        app:layout_constraintStart_toStartOf="parent"
+        app:subtitle="For testers ;)"
+        app:layout_constraintTop_toTopOf="parent"
+        app:title="Test Menu" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/test_menu_list"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/toolbar" />
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu_adapter_item.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu_adapter_item.xml
new file mode 100644
index 0000000000000000000000000000000000000000..52d7e53e0e39b5f4eea259031d559ecc58373d95
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu_adapter_item.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:background="?selectableItemBackground"
+    android:layout_height="wrap_content"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <ImageView
+        android:id="@+id/imageView"
+        android:layout_width="32dp"
+        android:layout_height="32dp"
+        android:layout_marginStart="16dp"
+        android:layout_marginTop="8dp"
+        style="@style/MaterialAlertDialog.MaterialComponents.Title.Icon"
+        android:layout_marginBottom="8dp"
+        tools:src="@drawable/circle"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:ignore="ContentDescription" />
+
+    <TextView
+        android:id="@+id/title"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:layout_marginTop="8dp"
+        style="@style/body1"
+        app:layout_constraintVertical_chainStyle="packed"
+        android:layout_marginEnd="16dp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@+id/imageView"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="Title" />
+
+    <TextView
+        android:id="@+id/description"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:layout_marginEnd="16dp"
+        style="@style/body2"
+        android:layout_marginBottom="8dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@+id/imageView"
+        app:layout_constraintTop_toBottomOf="@+id/title"
+        tools:text="Description" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/Corona-Warn-App/src/deviceForTesters/res/menu/menu_main.xml b/Corona-Warn-App/src/deviceForTesters/res/menu/menu_main.xml
deleted file mode 100644
index 680f4bd138172b7caab32caba8e1d768f73f43a1..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/deviceForTesters/res/menu/menu_main.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_help"
-        android:title="@string/menu_help" />
-    <item
-        android:id="@+id/menu_information"
-        android:title="@string/menu_information" />
-    <item
-        android:id="@+id/menu_settings"
-        android:title="@string/menu_settings" />
-
-    <!-- These are for testing  -->
-    <item
-        android:id="@+id/menu_test_api"
-        android:title="@string/menu_test_api" />
-    <item
-        android:id="@+id/menu_test_risk_level"
-        android:title="@string/menu_test_risk_level" />
-</menu>
diff --git a/Corona-Warn-App/src/deviceForTesters/res/navigation/nav_graph.xml b/Corona-Warn-App/src/deviceForTesters/res/navigation/nav_graph.xml
deleted file mode 100644
index 87acfaca254f416a611c92fda2aa4fcaa3f12370..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/deviceForTesters/res/navigation/nav_graph.xml
+++ /dev/null
@@ -1,377 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<navigation xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/nav_graph"
-    app:startDestination="@id/mainFragment">
-
-    <!-- Main -->
-    <fragment
-        android:id="@+id/mainFragment"
-        android:name="de.rki.coronawarnapp.ui.main.MainFragment"
-        android:label="MainFragment"
-        tools:layout="@layout/fragment_main">
-        <action
-            android:id="@+id/action_mainFragment_to_settingsTracingFragment"
-            app:destination="@id/settingsTracingFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_riskDetailsFragment"
-            app:destination="@id/riskDetailsFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_settingsFragment"
-            app:destination="@id/settingsFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_testForAPIFragment"
-            app:destination="@id/testForAPIFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_informationFragment"
-            app:destination="@id/informationFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_mainSharingFragment"
-            app:destination="@id/mainSharingFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_submissionIntroFragment"
-            app:destination="@id/submissionIntroFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_submissionResultFragment"
-            app:destination="@id/submissionResultFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_submissionDoneFragment"
-            app:destination="@id/submissionDoneFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_mainOverviewFragment"
-            app:destination="@id/mainOverviewFragment" />
-        <action
-            android:id="@+id/action_mainFragment_to_testRiskLevelCalculation"
-            app:destination="@id/testRiskLevelCalculation" />
-        <action
-            android:id="@+id/action_mainFragment_to_onboardingDeltaInteroperabilityFragment"
-            app:destination="@id/onboardingDeltaInteroperabilityFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/mainSharingFragment"
-        android:name="de.rki.coronawarnapp.ui.main.MainShareFragment"
-        android:label="@layout/fragment_main_share"
-        tools:layout="@layout/fragment_main_share" />
-
-    <fragment
-        android:id="@+id/mainOverviewFragment"
-        android:name="de.rki.coronawarnapp.ui.main.MainOverviewFragment"
-        android:label="@layout/fragment_main_overview"
-        tools:layout="@layout/fragment_main_overview" />
-
-    <!-- Settings -->
-    <fragment
-        android:id="@+id/settingsFragment"
-        android:name="de.rki.coronawarnapp.ui.settings.SettingsFragment"
-        android:label="@layout/fragment_settings"
-        tools:layout="@layout/fragment_settings">
-        <action
-            android:id="@+id/action_settingsFragment_to_settingsResetFragment"
-            app:destination="@id/settingsResetFragment" />
-        <action
-            android:id="@+id/action_settingsFragment_to_settingsTracingFragment"
-            app:destination="@id/settingsTracingFragment" />
-        <action
-            android:id="@+id/action_settingsFragment_self"
-            app:destination="@id/settingsFragment" />
-        <action
-            android:id="@+id/action_settingsFragment_to_settingsNotificationFragment"
-            app:destination="@id/settingsNotificationFragment" />
-        <action
-            android:id="@+id/action_settingsFragment_to_settingsBackgroundPriorityFragment"
-            app:destination="@id/settingsBackgroundPriorityFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/settingsTracingFragment"
-        android:name="de.rki.coronawarnapp.ui.settings.SettingsTracingFragment"
-        android:label="@layout/fragment_settings_tracing"
-        tools:layout="@layout/fragment_settings_tracing">
-        <action
-            android:id="@+id/action_settingsTracingFragment_to_interopCountryConfigurationFragment"
-            app:destination="@id/interopCountryConfigurationFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/onboardingDeltaInteroperabilityFragment"
-        android:name="de.rki.coronawarnapp.ui.onboarding.OnboardingDeltaInteroperabilityFragment"
-        android:label="OnboardingDeltaInteroperabilityFragment" >
-        <action
-            android:id="@+id/action_onboardingDeltaInteroperabilityFragment_to_informationTermsFragment"
-            app:destination="@id/informationTermsFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/interopCountryConfigurationFragment"
-        android:name="de.rki.coronawarnapp.ui.interoperability.InteroperabilityConfigurationFragment"
-        android:label="InteropCountryConfigurationFragment"
-        tools:layout="@layout/fragment_interoperability_configuration">
-        <action
-            android:id="@+id/action_interopCountryConfigurationFragment_to_settingTracingFragment"
-            app:destination="@id/settingsTracingFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/settingsNotificationFragment"
-        android:name="de.rki.coronawarnapp.ui.settings.SettingsNotificationFragment"
-        android:label="SettingsNotificationFragment"
-        tools:layout="@layout/fragment_settings_notifications" />
-
-    <fragment
-        android:id="@+id/settingsBackgroundPriorityFragment"
-        android:name="de.rki.coronawarnapp.ui.settings.SettingsBackgroundPriorityFragment"
-        android:label="SettingsBackgroundPriorityFragment"
-        tools:layout="@layout/fragment_settings_background_priority" />
-
-    <fragment
-        android:id="@+id/settingsResetFragment"
-        android:name="de.rki.coronawarnapp.ui.settings.SettingsResetFragment"
-        android:label="@layout/fragment_settings_reset"
-        tools:layout="@layout/fragment_settings_reset">
-        <action
-            android:id="@+id/action_settingsResetFragment_to_mainFragment"
-            app:destination="@id/mainFragment" />
-    </fragment>
-
-    <!-- Information -->
-    <fragment
-        android:id="@+id/informationFragment"
-        android:name="de.rki.coronawarnapp.ui.information.InformationFragment"
-        android:label="@layout/fragment_information"
-        tools:layout="@layout/fragment_information">
-        <action
-            android:id="@+id/action_informationFragment_to_informationLegalFragment"
-            app:destination="@id/informationLegalFragment" />
-        <action
-            android:id="@+id/action_informationFragment_to_informationTermsFragment"
-            app:destination="@id/informationTermsFragment" />
-        <action
-            android:id="@+id/action_informationFragment_to_informationPrivacyFragment"
-            app:destination="@id/informationPrivacyFragment" />
-        <action
-            android:id="@+id/action_informationFragment_to_informationAboutFragment"
-            app:destination="@id/informationAboutFragment" />
-        <action
-            android:id="@+id/action_informationFragment_to_informationContactFragment"
-            app:destination="@id/informationContactFragment" />
-        <action
-            android:id="@+id/action_informationFragment_to_informationTechnicalFragment"
-            app:destination="@id/informationTechnicalFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/informationAboutFragment"
-        android:name="de.rki.coronawarnapp.ui.information.InformationAboutFragment"
-        android:label="@layout/fragment_information_about"
-        tools:layout="@layout/fragment_information_about" />
-
-    <fragment
-        android:id="@+id/informationPrivacyFragment"
-        android:name="de.rki.coronawarnapp.ui.information.InformationPrivacyFragment"
-        android:label="@layout/fragment_information_privacy"
-        tools:layout="@layout/fragment_information_privacy" />
-
-    <fragment
-        android:id="@+id/informationTermsFragment"
-        android:name="de.rki.coronawarnapp.ui.information.InformationTermsFragment"
-        android:label="@layout/fragment_information_terms"
-        tools:layout="@layout/fragment_information_terms" />
-
-    <fragment
-        android:id="@+id/informationContactFragment"
-        android:name="de.rki.coronawarnapp.ui.information.InformationContactFragment"
-        android:label="@layout/fragment_information_contact"
-        tools:layout="@layout/fragment_information_contact" />
-
-    <fragment
-        android:id="@+id/informationLegalFragment"
-        android:name="de.rki.coronawarnapp.ui.information.InformationLegalFragment"
-        android:label="@layout/fragment_information_legal"
-        tools:layout="@layout/fragment_information_legal" />
-
-    <fragment
-        android:id="@+id/informationTechnicalFragment"
-        android:name="de.rki.coronawarnapp.ui.information.InformationTechnicalFragment"
-        android:label="InformationTechnicalFragment"
-        tools:layout="@layout/fragment_information_technical" />
-
-    <!-- Submission -->
-    <fragment
-        android:id="@+id/testForAPIFragment"
-        android:name="de.rki.coronawarnapp.test.api.ui.TestForAPIFragment"
-        android:label="@layout/fragment_test_for_a_p_i"
-        tools:layout="@layout/fragment_test_for_a_p_i" />
-
-    <fragment
-        android:id="@+id/riskDetailsFragment"
-        android:name="de.rki.coronawarnapp.ui.riskdetails.RiskDetailsFragment"
-        android:label="@layout/fragment_risk_details"
-        tools:layout="@layout/fragment_risk_details">
-        <action
-            android:id="@+id/action_riskDetailsFragment_to_settingsTracingFragment"
-            app:destination="@id/settingsTracingFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/submissionDispatcherFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionDispatcherFragment"
-        android:label="fragment_submission_dispatcher"
-        tools:layout="@layout/fragment_submission_dispatcher">
-        <action
-            android:id="@+id/action_submissionDispatcherFragment_to_submissionTanFragment"
-            app:destination="@id/submissionTanFragment" />
-        <action
-            android:id="@+id/action_submissionDispatcherFragment_to_submissionQRCodeScanFragment"
-            app:destination="@id/submissionQRCodeScanFragment" />
-        <action
-            android:id="@+id/action_submissionDispatcherFragment_to_submissionContactFragment"
-            app:destination="@id/submissionContactFragment" />
-    </fragment>
-    <fragment
-        android:id="@+id/submissionResultPositiveOtherWarningFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionResultPositiveOtherWarningFragment"
-        android:label="fragment_submission_result_positive_other_warning"
-        tools:layout="@layout/fragment_submission_positive_other_warning">
-        <action
-            android:id="@+id/action_submissionResultPositiveOtherWarningFragment_to_submissionResultFragment"
-            app:destination="@id/submissionResultFragment"
-            app:popUpTo="@id/submissionResultFragment"
-            app:popUpToInclusive="true" />
-        <action
-            android:id="@+id/action_submissionResultPositiveOtherWarningFragment_to_submissionDoneFragment"
-            app:destination="@id/submissionDoneFragment"
-            app:popUpTo="@id/submissionDoneFragment"
-            app:popUpToInclusive="true" />
-    </fragment>
-    <fragment
-        android:id="@+id/submissionResultFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionTestResultFragment"
-        android:label="fragment_submission_result"
-        tools:layout="@layout/fragment_submission_test_result">
-        <argument
-            android:name="skipInitialTestResultRefresh"
-            android:defaultValue="false"
-            app:argType="boolean" />
-        <action
-            android:id="@+id/action_submissionResultFragment_to_mainFragment"
-            app:destination="@id/mainFragment"
-            app:popUpTo="@id/mainFragment"
-            app:popUpToInclusive="true" />
-        <action
-            android:id="@+id/action_submissionResultFragment_to_submissionSymptomIntroductionFragment"
-            app:destination="@id/submissionSymptomIntroductionFragment" />
-    </fragment>
-
-    <fragment
-        android:id="@+id/submissionTanFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionTanFragment"
-        android:label="fragment_submission_tan"
-        tools:layout="@layout/fragment_submission_tan">
-        <action
-            android:id="@+id/action_submissionTanFragment_to_submissionResultFragment"
-            app:destination="@id/submissionResultFragment"
-            app:popUpTo="@id/submissionResultFragment"
-            app:popUpToInclusive="true">
-            <argument
-                android:name="skipInitialTestResultRefresh"
-                android:defaultValue="true"
-                app:argType="boolean" />
-        </action>
-    </fragment>
-
-    <fragment
-        android:id="@+id/submissionIntroFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionIntroFragment"
-        android:label="SubmissionIntroFragment">
-        <action
-            android:id="@+id/action_submissionIntroFragment_to_mainFragment"
-            app:destination="@id/mainFragment"
-            app:popUpTo="@+id/mainFragment"
-            app:popUpToInclusive="true" />
-        <action
-            android:id="@+id/action_submissionIntroFragment_to_submissionDispatcherFragment"
-            app:destination="@id/submissionDispatcherFragment" />
-    </fragment>
-    <activity
-        android:id="@+id/launcherActivity"
-        android:name="de.rki.coronawarnapp.ui.LauncherActivity"
-        android:label="LauncherActivity">
-        <deepLink
-            android:id="@+id/deepLink"
-            app:uri="coronawarnapp://launch" />
-    </activity>
-    <fragment
-        android:id="@+id/submissionQRCodeScanFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionQRCodeScanFragment"
-        android:label="SubmissionQRCodeScanFragment">
-        <action
-            android:id="@+id/action_submissionQRCodeScanFragment_to_submissionDispatcherFragment"
-            app:destination="@id/submissionDispatcherFragment"
-            app:popUpTo="@id/submissionDispatcherFragment"
-            app:popUpToInclusive="true" />
-        <action
-            android:id="@+id/action_submissionQRCodeScanFragment_to_submissionResultFragment"
-            app:destination="@id/submissionResultFragment"
-            app:popUpTo="@id/submissionResultFragment">
-            <argument
-                android:name="skipInitialTestResultRefresh"
-                android:defaultValue="true"
-                app:argType="boolean" />
-        </action>
-    </fragment>
-    <fragment
-        android:id="@+id/submissionDoneFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionDoneFragment"
-        android:label="SubmissionDoneFragment">
-        <action
-            android:id="@+id/action_submissionDoneFragment_to_mainFragment"
-            app:destination="@id/mainFragment"
-            app:popUpTo="@id/mainFragment"
-            app:popUpToInclusive="true" />
-    </fragment>
-    <fragment
-        android:id="@+id/submissionContactFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.fragment.SubmissionContactFragment"
-        android:label="SubmissionContactFragment">
-        <action
-            android:id="@+id/action_submissionContactFragment_to_submissionTanFragment"
-            app:destination="@id/submissionTanFragment" />
-    </fragment>
-    <fragment
-        android:id="@+id/testRiskLevelCalculation"
-        android:name="de.rki.coronawarnapp.test.risklevel.ui.TestRiskLevelCalculationFragment"
-        android:label="fragment_test_risk_level_calculation"
-        tools:layout="@layout/fragment_test_risk_level_calculation">
-        <argument
-            android:name="exampleArgument"
-            app:argType="string"
-            app:nullable="true" />
-    </fragment>
-    <fragment
-        android:id="@+id/submissionSymptomIntroductionFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.SubmissionSymptomIntroductionFragment"
-        android:label="SubmissionSymptomIntroductionFragment" >
-        <action
-            android:id="@+id/action_submissionSymptomIntroductionFragment_to_submissionSymptomCalendarFragment"
-            app:destination="@id/submissionSymptomCalendarFragment" />
-        <action
-            android:id="@+id/action_submissionSymptomIntroductionFragment_to_submissionResultFragment"
-            app:destination="@id/submissionResultFragment" />
-        <action
-            android:id="@+id/action_submissionSymptomIntroductionFragment_to_submissionResultPositiveOtherWarningFragment"
-            app:destination="@id/submissionResultPositiveOtherWarningFragment" />
-    </fragment>
-    <fragment
-        android:id="@+id/submissionSymptomCalendarFragment"
-        android:name="de.rki.coronawarnapp.ui.submission.SubmissionSymptomCalendarFragment"
-        android:label="SubmissionSymptomCalendarFragment" >
-        <action
-            android:id="@+id/action_submissionCalendarFragment_to_submissionSymptomIntroductionFragment"
-            app:destination="@id/submissionSymptomIntroductionFragment" />
-        <action
-            android:id="@+id/action_submissionSymptomCalendarFragment_to_submissionResultPositiveOtherWarningFragment"
-            app:destination="@id/submissionResultPositiveOtherWarningFragment" />
-    </fragment>
-</navigation>
diff --git a/Corona-Warn-App/src/deviceForTesters/res/navigation/test_nav_graph.xml b/Corona-Warn-App/src/deviceForTesters/res/navigation/test_nav_graph.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f4e587edd02f7688d7ef6b78a1793a60cabfcc33
--- /dev/null
+++ b/Corona-Warn-App/src/deviceForTesters/res/navigation/test_nav_graph.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/test_nav_graph"
+    app:startDestination="@id/test_menu_fragment">
+
+    <fragment
+        android:id="@+id/test_menu_fragment"
+        android:name="de.rki.coronawarnapp.test.menu.ui.TestMenuFragment"
+        android:label="TestMenuFragment">
+        <action
+            android:id="@+id/action_testMenuFragment_to_testForAPIFragment"
+            app:destination="@id/test_for_api_fragment" />
+        <action
+            android:id="@+id/action_testMenuFragment_to_testRiskLevelCalculation"
+            app:destination="@id/test_risklevel_calculation_fragment" />
+    </fragment>
+
+    <fragment
+        android:id="@+id/test_for_api_fragment"
+        android:name="de.rki.coronawarnapp.test.api.ui.TestForAPIFragment"
+        android:label="@layout/fragment_test_for_a_p_i"
+        tools:layout="@layout/fragment_test_for_a_p_i" />
+
+    <fragment
+        android:id="@+id/test_risklevel_calculation_fragment"
+        android:name="de.rki.coronawarnapp.test.risklevel.ui.TestRiskLevelCalculationFragment"
+        android:label="fragment_test_risk_level_calculation"
+        tools:layout="@layout/fragment_test_risk_level_calculation">
+        <argument
+            android:name="exampleArgument"
+            app:argType="string"
+            android:defaultValue="null"
+            app:nullable="true" />
+    </fragment>
+
+</navigation>
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/lists/BaseAdapter.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/lists/BaseAdapter.kt
new file mode 100644
index 0000000000000000000000000000000000000000..8cad45f7db98cddcafe6cd29c6955ab3f54e1d96
--- /dev/null
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/lists/BaseAdapter.kt
@@ -0,0 +1,32 @@
+package de.rki.coronawarnapp.ui.lists
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.annotation.CallSuper
+import androidx.annotation.LayoutRes
+import androidx.recyclerview.widget.RecyclerView
+
+abstract class BaseAdapter<T : BaseAdapter.VH> : RecyclerView.Adapter<T>() {
+
+    @CallSuper
+    final override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): T {
+        return onCreateBaseVH(parent, viewType)
+    }
+
+    abstract fun onCreateBaseVH(parent: ViewGroup, viewType: Int): T
+
+    @CallSuper
+    final override fun onBindViewHolder(holder: T, position: Int) {
+        onBindBaseVH(holder, position)
+    }
+
+    abstract fun onBindBaseVH(holder: T, position: Int)
+
+    abstract class VH(@LayoutRes layoutRes: Int, parent: ViewGroup) : RecyclerView.ViewHolder(
+        LayoutInflater.from(parent.context).inflate(layoutRes, parent, false)
+    ) {
+
+        val context: Context = parent.context
+    }
+}
diff --git a/Corona-Warn-App/src/device/java/de/rki/coronawarnapp/ui/main/MainFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
similarity index 93%
rename from Corona-Warn-App/src/device/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
rename to Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
index eace8dd5a4b3c93757e7f7dd1986ad0600143a63..db82cafc9c5b7084710bd046145f62b75eb560dd 100644
--- a/Corona-Warn-App/src/device/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
@@ -17,11 +17,12 @@ import de.rki.coronawarnapp.ui.doNavigate
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.SubmissionViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
+import de.rki.coronawarnapp.util.CWADebug
 import de.rki.coronawarnapp.util.DialogHelper
 import de.rki.coronawarnapp.util.ExternalActionHelper
-import de.rki.coronawarnapp.util.ui.viewBindingLazy
 import de.rki.coronawarnapp.util.di.AppInjector
 import de.rki.coronawarnapp.util.errors.RecoveryByResetDialogFactory
+import de.rki.coronawarnapp.util.ui.viewBindingLazy
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
@@ -87,12 +88,10 @@ class MainFragment : Fragment(R.layout.fragment_main) {
     }
 
     private fun setContentDescription() {
-        val shareButtonString: String = getString(R.string.button_share)
-        val menuButtonString: String = getString(R.string.button_menu)
-        val mainCardString: String = getString(R.string.hint_external_webpage)
-        binding.mainHeaderShare.buttonIcon.contentDescription = shareButtonString
-        binding.mainHeaderOptionsMenu.buttonIcon.contentDescription = menuButtonString
-        binding.mainAbout.mainCard.contentDescription = mainCardString
+        binding.mainHeaderShare.buttonIcon.contentDescription = getString(R.string.button_share)
+        binding.mainHeaderOptionsMenu.buttonIcon.contentDescription =
+            getString(R.string.button_menu)
+        binding.mainAbout.mainCard.contentDescription = getString(R.string.hint_external_webpage)
     }
 
     private fun setButtonOnClickListener() {
@@ -155,10 +154,10 @@ class MainFragment : Fragment(R.layout.fragment_main) {
         )
     }
 
-    private fun showPopup(view: View) {
-        val popup = PopupMenu(requireContext(), view)
-        popup.inflate(R.menu.menu_main)
-        popup.setOnMenuItemClickListener {
+    private fun showPopup(view: View) = PopupMenu(requireContext(), view).apply {
+        inflate(R.menu.menu_main)
+        menu.findItem(R.id.menu_test).isVisible = CWADebug.isDeviceForTestersBuild
+        setOnMenuItemClickListener {
             return@setOnMenuItemClickListener when (it.itemId) {
                 R.id.menu_help -> {
                     findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToMainOverviewFragment())
@@ -172,11 +171,14 @@ class MainFragment : Fragment(R.layout.fragment_main) {
                     findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToSettingsFragment())
                     true
                 }
+                R.id.menu_test -> {
+                    findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToTestNavGraph())
+                    true
+                }
                 else -> super.onOptionsItemSelected(it)
             }
         }
-        popup.show()
-    }
+    }.show()
 
     private fun checkShouldInteroperabilityBeOpened() {
         if (!LocalData.isInteroperabilityShownAtLeastOnce) {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt
index 66d4d98b7646c6adee562607df4ef475e6feda3a..8efb6c14888cb3fb0193da546f7ea5f9cf7566d4 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CWADebug.kt
@@ -23,7 +23,9 @@ object CWADebug {
         get() = BuildConfig.DEBUG || buildFlavor == BuildFlavor.DEVICE_FOR_TESTERS
 
     val buildFlavor: BuildFlavor
-        get() = BuildFlavor.values().single { it.rawValue == BuildConfig.BUILD_VARIANT }
+        get() = BuildFlavor.values().single { it.rawValue == BuildConfig.FLAVOR }
+
+    val isDeviceForTestersBuild: Boolean = buildFlavor == BuildFlavor.DEVICE_FOR_TESTERS
 
     enum class BuildFlavor(val rawValue: String) {
         DEVICE("device"),
diff --git a/Corona-Warn-App/src/main/res/menu/menu_main.xml b/Corona-Warn-App/src/main/res/menu/menu_main.xml
index 73c8756d988fe004d10977a42833f5c804d99f0b..811d32f472235221f4f0022d1c690fe4883b126b 100644
--- a/Corona-Warn-App/src/main/res/menu/menu_main.xml
+++ b/Corona-Warn-App/src/main/res/menu/menu_main.xml
@@ -1,4 +1,5 @@
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:tools="http://schemas.android.com/tools"
+    xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_help"
         android:title="@string/menu_help" />
@@ -8,4 +9,9 @@
     <item
         android:id="@+id/menu_settings"
         android:title="@string/menu_settings" />
+    <item
+        android:id="@+id/menu_test"
+        android:visible="false"
+        android:title="Test Menu"
+        tools:ignore="HardcodedText" />
 </menu>
diff --git a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
index f3b8b1a429b87429d14b4081f1970abfc44d95c3..ac0bff96c293d40617e2417b5314444020403fc9 100644
--- a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
+++ b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
@@ -5,6 +5,8 @@
     android:id="@+id/nav_graph"
     app:startDestination="@id/mainFragment">
 
+    <include app:graph="@navigation/test_nav_graph" />
+
     <!-- Main -->
     <fragment
         android:id="@+id/mainFragment"
@@ -41,6 +43,9 @@
         <action
             android:id="@+id/action_mainFragment_to_onboardingDeltaInteroperabilityFragment"
             app:destination="@id/onboardingDeltaInteroperabilityFragment" />
+        <action
+            android:id="@+id/action_mainFragment_to_test_nav_graph"
+            app:destination="@id/test_nav_graph" />
     </fragment>
 
     <fragment
diff --git a/Corona-Warn-App/src/main/res/values-bg/strings.xml b/Corona-Warn-App/src/main/res/values-bg/strings.xml
index 841858a14775e4b1c09a3913440d3dc3fc9835be..424f8bf9eeabc4c9c9f12683d1812d23bb0d82e8 100644
--- a/Corona-Warn-App/src/main/res/values-bg/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-bg/strings.xml
@@ -1188,10 +1188,6 @@
     <!-- NOTR -->
     <string name="lorem_ipsum">"Lorem Ipsum"</string>
     <!-- NOTR -->
-    <string name="menu_test_api">"Test API"</string>
-    <!-- NOTR -->
-    <string name="menu_test_risk_level">"Test Risk Level"</string>
-    <!-- NOTR -->
     <string name="menu_test_notification">"Test Notification"</string>
     <!-- NOTR -->
     <string name="test_api_button_api_launch">"Android API Test(Manual Test)"</string>
diff --git a/Corona-Warn-App/src/main/res/values-de/strings.xml b/Corona-Warn-App/src/main/res/values-de/strings.xml
index 84632073164e6618fb2e20ce609cc95ebc93e04e..11c8210444042f6a074bdc4fe0595c6152d0e4b9 100644
--- a/Corona-Warn-App/src/main/res/values-de/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/strings.xml
@@ -1188,10 +1188,6 @@
     <!-- NOTR -->
     <string name="lorem_ipsum">"Lorem Ipsum"</string>
     <!-- NOTR -->
-    <string name="menu_test_api">"Test API"</string>
-    <!-- NOTR -->
-    <string name="menu_test_risk_level">"Test Risk Level"</string>
-    <!-- NOTR -->
     <string name="menu_test_notification">"Test Notification"</string>
     <!-- NOTR -->
     <string name="test_api_button_api_launch">"Android API Test(Manual Test)"</string>
diff --git a/Corona-Warn-App/src/main/res/values-en/strings.xml b/Corona-Warn-App/src/main/res/values-en/strings.xml
index 2810d7243367918a1624e6873a41f510b4a18fdf..67d99bbf967a13b9a4d572af1c724a237fd3e714 100644
--- a/Corona-Warn-App/src/main/res/values-en/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-en/strings.xml
@@ -1188,10 +1188,6 @@
     <!-- NOTR -->
     <string name="lorem_ipsum">"Lorem Ipsum"</string>
     <!-- NOTR -->
-    <string name="menu_test_api">"Test API"</string>
-    <!-- NOTR -->
-    <string name="menu_test_risk_level">"Test Risk Level"</string>
-    <!-- NOTR -->
     <string name="menu_test_notification">"Test Notification"</string>
     <!-- NOTR -->
     <string name="test_api_button_api_launch">"Android API Test(Manual Test)"</string>
diff --git a/Corona-Warn-App/src/main/res/values-pl/strings.xml b/Corona-Warn-App/src/main/res/values-pl/strings.xml
index eb3ce0de59b1c33216e9e13a45226fb7021a7bef..681113024f7f608c3defc6bdda967babfebf0cd8 100644
--- a/Corona-Warn-App/src/main/res/values-pl/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-pl/strings.xml
@@ -1188,10 +1188,6 @@
     <!-- NOTR -->
     <string name="lorem_ipsum">"Lorem Ipsum"</string>
     <!-- NOTR -->
-    <string name="menu_test_api">"Test API"</string>
-    <!-- NOTR -->
-    <string name="menu_test_risk_level">"Test Risk Level"</string>
-    <!-- NOTR -->
     <string name="menu_test_notification">"Test Notification"</string>
     <!-- NOTR -->
     <string name="test_api_button_api_launch">"Android API Test(Manual Test)"</string>
diff --git a/Corona-Warn-App/src/main/res/values-ro/strings.xml b/Corona-Warn-App/src/main/res/values-ro/strings.xml
index 5d077c7223767dbbc620596050b47a64d2b886ea..8d437d7bd55b61c5ca0e170db1ab08355b23a23f 100644
--- a/Corona-Warn-App/src/main/res/values-ro/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-ro/strings.xml
@@ -1188,10 +1188,6 @@
     <!-- NOTR -->
     <string name="lorem_ipsum">"Lorem Ipsum"</string>
     <!-- NOTR -->
-    <string name="menu_test_api">"Test API"</string>
-    <!-- NOTR -->
-    <string name="menu_test_risk_level">"Test Risk Level"</string>
-    <!-- NOTR -->
     <string name="menu_test_notification">"Test Notification"</string>
     <!-- NOTR -->
     <string name="test_api_button_api_launch">"Android API Test(Manual Test)"</string>
diff --git a/Corona-Warn-App/src/main/res/values-tr/strings.xml b/Corona-Warn-App/src/main/res/values-tr/strings.xml
index bb836d6bb461e19b8c03d93d5ae80409f6173fc3..d073615dc2ef932f4807d44f32dac5faa7d55571 100644
--- a/Corona-Warn-App/src/main/res/values-tr/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-tr/strings.xml
@@ -1180,10 +1180,6 @@
     <!-- NOTR -->
     <string name="lorem_ipsum">"Lorem Ipsum"</string>
     <!-- NOTR -->
-    <string name="menu_test_api">"Test API"</string>
-    <!-- NOTR -->
-    <string name="menu_test_risk_level">"Test Risk Level"</string>
-    <!-- NOTR -->
     <string name="menu_test_notification">"Test Notification"</string>
     <!-- NOTR -->
     <string name="test_api_button_api_launch">"Android API Test(Manual Test)"</string>
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index b5ac77afed96aedb566897c308c25438930f50cd..aa0181ac17062aaf217af880346759c173286d82 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -1194,10 +1194,6 @@
     <!-- NOTR -->
     <string name="lorem_ipsum">"Lorem Ipsum"</string>
     <!-- NOTR -->
-    <string name="menu_test_api">"Test API"</string>
-    <!-- NOTR -->
-    <string name="menu_test_risk_level">"Test Risk Level"</string>
-    <!-- NOTR -->
     <string name="menu_test_notification">"Test Notification"</string>
     <!-- NOTR -->
     <string name="test_api_button_api_launch">"Android API Test(Manual Test)"</string>