diff --git a/pvmfw/avb/tests/api_test.rs b/pvmfw/avb/tests/api_test.rs
index b48ea8b..a4e890e 100644
--- a/pvmfw/avb/tests/api_test.rs
+++ b/pvmfw/avb/tests/api_test.rs
@@ -21,6 +21,7 @@
 
 const MICRODROID_KERNEL_IMG_PATH: &str = "microdroid_kernel";
 const INITRD_NORMAL_IMG_PATH: &str = "microdroid_initrd_normal.img";
+const INITRD_DEBUG_IMG_PATH: &str = "microdroid_initrd_debuggable.img";
 const TEST_IMG_WITH_ONE_HASHDESC_PATH: &str = "test_image_with_one_hashdesc.img";
 const UNSIGNED_TEST_IMG_PATH: &str = "unsigned_test.img";
 
@@ -31,19 +32,27 @@
 /// This test uses the Microdroid payload compiled on the fly to check that
 /// the latest payload can be verified successfully.
 #[test]
-fn latest_valid_payload_passes_verification() -> Result<()> {
-    let kernel = load_latest_signed_kernel()?;
-    let initrd_normal = fs::read(INITRD_NORMAL_IMG_PATH)?;
-    let public_key = fs::read(PUBLIC_KEY_RSA4096_PATH)?;
+fn latest_normal_payload_passes_verification() -> Result<()> {
+    assert_payload_verification_succeeds(
+        &load_latest_signed_kernel()?,
+        &load_latest_initrd_normal()?,
+        &load_trusted_public_key()?,
+    )
+}
 
-    assert_eq!(Ok(()), verify_payload(&kernel, Some(&initrd_normal[..]), &public_key));
-    Ok(())
+#[test]
+fn latest_debug_payload_passes_verification() -> Result<()> {
+    assert_payload_verification_succeeds(
+        &load_latest_signed_kernel()?,
+        &load_latest_initrd_debug()?,
+        &load_trusted_public_key()?,
+    )
 }
 
 #[test]
 fn payload_expecting_no_initrd_passes_verification_with_no_initrd() -> Result<()> {
     let kernel = fs::read(TEST_IMG_WITH_ONE_HASHDESC_PATH)?;
-    let public_key = fs::read(PUBLIC_KEY_RSA4096_PATH)?;
+    let public_key = load_trusted_public_key()?;
 
     assert_eq!(Ok(()), verify_payload(&kernel, None, &public_key));
     Ok(())
@@ -87,7 +96,7 @@
     assert_payload_verification_fails(
         &fs::read(UNSIGNED_TEST_IMG_PATH)?,
         &load_latest_initrd_normal()?,
-        &fs::read(PUBLIC_KEY_RSA4096_PATH)?,
+        &load_trusted_public_key()?,
         AvbSlotVerifyError::Io,
     )
 }
@@ -100,7 +109,7 @@
     assert_payload_verification_fails(
         &kernel,
         &load_latest_initrd_normal()?,
-        &fs::read(PUBLIC_KEY_RSA4096_PATH)?,
+        &load_trusted_public_key()?,
         AvbSlotVerifyError::Verification,
     )
 }
@@ -114,7 +123,7 @@
     assert_payload_verification_fails(
         &kernel,
         &load_latest_initrd_normal()?,
-        &fs::read(PUBLIC_KEY_RSA4096_PATH)?,
+        &load_trusted_public_key()?,
         AvbSlotVerifyError::InvalidMetadata,
     )
 }
@@ -129,6 +138,15 @@
     Ok(())
 }
 
+fn assert_payload_verification_succeeds(
+    kernel: &[u8],
+    initrd: &[u8],
+    trusted_public_key: &[u8],
+) -> Result<()> {
+    assert_eq!(Ok(()), verify_payload(kernel, Some(initrd), trusted_public_key));
+    Ok(())
+}
+
 fn load_latest_signed_kernel() -> Result<Vec<u8>> {
     Ok(fs::read(MICRODROID_KERNEL_IMG_PATH)?)
 }
@@ -136,3 +154,11 @@
 fn load_latest_initrd_normal() -> Result<Vec<u8>> {
     Ok(fs::read(INITRD_NORMAL_IMG_PATH)?)
 }
+
+fn load_latest_initrd_debug() -> Result<Vec<u8>> {
+    Ok(fs::read(INITRD_DEBUG_IMG_PATH)?)
+}
+
+fn load_trusted_public_key() -> Result<Vec<u8>> {
+    Ok(fs::read(PUBLIC_KEY_RSA4096_PATH)?)
+}
