
“อีเมลมาถึง” ไม่ใช่ผลการทดสอบที่เพียงพอ.
ข้อความการสมัครอาจถึงกล่องขาเข้าโดยผู้รับผิดพลาด, ลิงก์ที่หมดอายุ, รูปแบบมือถือที่เสีย, ชื่อโฮสต์ของการผลิต, หรือหัวเรื่องที่ไม่มีความหมายในภาษาอื่น การทดสอบอีเมลที่ดีจะติดตามเส้นทางผู้ใช้ทั้งหมดและทิ้งหลักฐานเพียงพอเพื่อวินิจฉัยความล้มเหลว.
สร้างเมทริกซ์ขนาดเล็กและตั้งใจ
เริ่มต้นด้วยกระบวนการที่อาจบล็อกผู้ใช้:
- การยืนยันบัญชีใหม่;
- การรีเซ็ตรหัสผ่าน;
- การเชิญทีมหรือพื้นที่ทำงาน;
- การยืนยันการเปลี่ยนอีเมล;
- ลิงก์เข้าสู่ระบบหรือรหัสใช้ครั้งเดียว;
- การแจ้งเตือนความปลอดภัยหลังจากการกระทำที่สำคัญ.
สำหรับแต่ละกระบวนการ, ทดสอบเส้นทางที่สำเร็จ, หนึ่งกรณีที่ข้อมูลรับรองหมดอายุหรือใช้ซ้ำ, และหนึ่งข้อผิดพลาดจากฝั่งผู้รับ สิ่งนี้จะจับข้อบกพร่องจริงได้มากกว่าการส่งข้อความเส้นทางสำเร็จที่เหมือนกันหลายสิบฉบับ.
ใช้กล่องขาเข้าหนึ่งกล่องต่อสถานการณ์
การใช้ที่อยู่อีเมลเดียวซ้ำทำให้เกิดความคลุมเครือ ข้อความรีเซ็ตเก่าสามารถถูกสับสนกับข้อความใหม่ล่าสุด, และการทดสอบแบบขนานอาจใช้ลิงก์ของกันและกัน.
สร้างที่อยู่ที่ไม่ซ้ำกันสำหรับแต่ละกรณีทดสอบหรือการรันทดสอบ บันทึกไว้พร้อมกับหมายเลขบิลด์, สภาพแวดล้อม, ภูมิภาค, และสถานการณ์ หากการทดสอบล้มเหลว ที่อยู่นั้นจะเป็นส่วนหนึ่งของหลักฐานและสามารถตรวจสอบได้ก่อนที่ระยะเวลาการเก็บรักษาจะหมดอายุ.
ห้ามใช้ที่อยู่ของลูกค้าจริงในสเตจดิ้ง เพราะอาจทำให้เกิดข้อความที่ไม่ต้องการ, ทำให้ข้อมูลวิเคราะห์สกปรก, และทำให้การทำความสะอาดอัตโนมัติทำได้ยาก.
ตรวจสอบซองก่อนเนื้อหา
ก่อนคลิกอะไรใด, ตรวจสอบ:
- ข้อความถูกส่งไปยังที่อยู่ที่สร้างขึ้นสำหรับการทดสอบนี้โดยตรง
- โดเมนผู้ส่งเป็นโดเมนที่คาดหวังสำหรับสภาพแวดล้อมนั้น
- หัวเรื่องระบุการกระทำโดยไม่เปิดเผยข้อมูลที่สำคัญ
- มีจำนวนข้อความที่มาถึงตรงกับที่คาดหวังเท่านั้น
- เวลาตราประทับหลังจากการกระทำที่ทำให้เกิดข้อความ
การตรวจสอบเหล่านี้จะจับปัญหาการกำหนดเส้นทางและการซ้ำซ้อนก่อนที่ตัวแยกวิเคราะห์เนื้อหาจะซ่อนมัน.
ทดสอบเนื้อหาในมุมมองของผู้ใช้
เปิดข้อความในมุมมองแคบและกว้าง ตรวจสอบว่าการกระทำหลักมองเห็นได้, ตัวสำรองข้อความธรรมดาเข้าใจได้, และที่อยู่หรือ URL ยาวไม่ทำให้รูปแบบพัง.
สำหรับกระบวนการที่ใช้รหัส, ตรวจสอบว่ารหัสใหม่ทำงานได้หนึ่งครั้งและล้มเหลวหลังการใช้ สำหรับกระบวนการที่ใช้ลิงก์, ยืนยันโฮสต์และสภาพแวดล้อมก่อนเปิดลิงก์ ข้อความสเตจดิ้งที่ชี้ไปยังการผลิตเป็นอุปสรรคการปล่อยแม้ว่าลิงก์จะทำงานตามเทคนิค.
นอกจากนี้ตรวจสอบรายละเอียดที่ไม่โดดเด่น: พฤติกรรมการตอบกลับ, ช่องทางสนับสนุน, คำบรรยายการหมดอายุ, ภูมิภาค, และชื่อบัญชีหรือพื้นที่ทำงานที่แสดงในข้อความ.
กรณีเชิงลบที่มีคุณค่า
การทดสอบเชิงลบที่มีประโยชน์รวมถึง:
- ขอรหัสที่สองและยืนยันว่ารหัสแรกถูกทำให้ไม่ใช้ได้;
- เปิดลิงก์ที่หมดอายุ;
- เปิดลิงก์เดียวกันสองครั้ง;
- เปลี่ยนสถานะบัญชีก่อนใช้ข้อความ;
- เชิญที่อยู่ที่เป็นสมาชิกอยู่แล้ว;
- ป้อนที่อยู่ที่ไม่รองรับหรือรูปแบบผิด;
- หน่วงเวลาการจัดส่งจนเกินขอบเขตการหมดอายุ.
การทดสอบเหล่านี้เปิดเผยสภาวะการแข่งขันและข้อความแสดงข้อผิดพลาดที่ทำให้เข้าใจผิดซึ่งการตรวจสอบกล่องขาเข้าธรรมดาจะไม่พบ.
แยกความล้มเหลวของผลิตภัณฑ์จากความล่าช้าการจัดส่ง
เมื่อข้อความหายไป, เก็บรักษาเวลาตราประทับของการกระทำของผู้ใช้, การคิวของแอปพลิเคชัน, การส่งต่อของผู้ให้บริการ, และการมาถึงของกล่องขาเข้าเมื่อสัญญาณเหล่านั้นพร้อมใช้งาน ภาพหน้าจอของกล่องขาเข้าเปล่าแสดงเพียงว่าข้อความไม่ปรากฏในขณะนั้น.
ใช้ลำดับการวินิจฉัยใน อีเมลยืนยันไม่มาถึง: ค้นหาขั้นตอนที่ขัดข้อง ก่อนส่งรายงานปัญหา “อีเมลขัดข้อง” ที่คลุมเครือ.
สิ่งที่ควรทำอัตโนมัติ
ทำอัตโนมัติสัญญาที่มั่นคง:
- สร้างที่อยู่ที่ไม่ซ้ำกัน;
- กระตุ้นการกระทำของผลิตภัณฑ์;
- โพลด้วยเวลาจำกัดและการหน่วงเวลา;
- จับคู่ผู้ส่งและหัวเรื่องที่คาดหวัง;
- อ่านข้อความที่ตรงกันใหม่ล่าสุด;
- ตรวจสอบรหัสหรือ ลิงก์กับผลิตภัณฑ์;
- บันทึกหลักฐานความล้มเหลวที่เป็นประโยชน์;
- ทำความสะอาด.
เก็บการตรวจสอบภาพ, คุณภาพข้อความ, และพฤติกรรมลูกค้าที่ไม่ปกติในขั้นตอนตรวจสอบด้วยมือที่มุ่งเน้น การทำอัตโนมัติดีในเรื่องการทำซ้ำ ไม่ได้ดีในเรื่องรสชาติ.
การทำอัตโนมัติ API กล่องขาเข้าชั่วคราวที่เชื่อถือได้ ครอบคลุมด้าน API รวมถึงการโพลและการทำความสะอาด.
รายงานความล้มเหลวที่เป็นประโยชน์
รายงานที่นักพัฒนาสามารถดำเนินการได้ควรมีสถานการณ์, สภาพแวดล้อม, ที่อยู่, เวลาที่กระตุ้น, ผู้ส่งที่คาดหวัง, ข้อความที่สังเกต, เวลาการโพลครั้งสุดท้าย, สถานะการตอบกลับ, และภาพหน้าจอหรือส่วนข้อความที่ทำให้เป็นนิรภัย อย่าแนบความลับที่ใช้งานได้หรือลิงก์ยืนยันที่ใช้ซ้ำในปัญหาสาธารณะ.
เป้าหมายไม่ใช่การพิสูจน์ว่าอีเมลไม่น่าเชื่อถือ แต่เพื่อระบุสัญญาที่ล้มเหลวและทิ้งเส้นทางที่ทำซ้ำได้เพื่อแก้ไข.