อีเมลชั่วคราวฟรีคือบริการที่ให้ที่อยู่รับข้อความโดยไม่ต้องจ่ายเงินและมักไม่ต้องสมัครอะไร เหมาะกับงานทดสอบที่ต้องการเพียงที่อยู่สำหรับรับข้อความยืนยันครั้งเดียว แต่เมื่อทีมนำมันไปใช้เป็นฐานของชุดทดสอบอัตโนมัติที่ต้องรันต่อเนื่อง ปัญหาจะเริ่มปรากฏทีละอย่าง ตั้งแต่ข้อความมาช้า ข้อความหาย และโดเมนที่ถูกปลายทางปิดกั้นโดยไม่มีคำอธิบาย ปรากฏการณ์เหล่านี้ทำให้ทีมเข้าใจผิดว่าโค้ดของตัวเองมีข้อบกพร่อง ทั้งที่ปัญหาอยู่ที่โครงสร้างของบริการที่เลือกใช้ บทความนี้จะอธิบายว่าคำว่าฟรีในบริบทของงานทดสอบหมายถึงอะไร โดเมนสาธารณะถูกปิดกั้นเพราะเหตุใด วิธีที่ทีมงบประมาณจำกัดยังจัดชุดทดสอบที่เชื่อถือได้ และเส้นแบ่งที่ชัดเจนว่าอะไรที่อีเมลชั่วคราวฟรีทำได้กับสิ่งที่มันทำไม่ได้เลย เมื่ออ่านจบคุณจะประเมินได้ว่าควรใช้บริการฟรีกับงานแบบใด และควรลงแรงตั้งช่องทางของตัวเองเมื่อใด
คำว่าฟรีในงานทดสอบหมายถึงอะไรกันแน่?
บริการฟรีในโลกของงานทดสอบไม่ได้แปลว่าไม่มีต้นทุน แต่แปลว่าต้นทุนถูกย้ายไปอยู่ในรูปอื่นแทน ต้นทุนที่ทีมต้องจ่ายคือความไม่แน่นอนของอายุการเก็บ ความเร็วของการรับข้อความ และการที่บริการอาจเปลี่ยนนโยบายเมื่อใดก็ได้โดยไม่แจ้งล่วงหน้า
เรื่องอายุการเก็บคือความไม่แน่นอนที่อันตรายที่สุด ข้อความทดสอบที่ถูกลบก่อนที่ระบบอัตโนมัติจะดึงไปใช้ทำให้การทดสอบล้มเหลวเป็นครั้งคราว และความล้มเหลวประเภทนี้หายากพอที่จะทำให้ทีมไม่เชื่อว่ามีอยู่จริง ต้องเสียเวลาหลายรอบกว่าจะยอมรับว่าเป็นปัญหาที่โครงสร้าง
เรื่องข้อจำกัดอัตราคือความไม่แน่นอนเรื่องที่สอง บริการฟรีมักจำกัดจำนวนครั้งที่เรียกข้อมูลต่อช่วงเวลา ถ้างานทดสอบของคุณรันรอบทดสอบพร้อมกันหลายสิบรอบในหนึ่งนาที ระบบจะถูกจำกัดและเริ่มได้รับคำตอบที่ว่างเปล่า ซึ่งอ่านดูเหมือนข้อความไม่มา ทั้งที่จริงคือถูกปฏิเสธ
เรื่องการเปลี่ยนแปลงโดยไม่แจ้งคือเรื่องที่สาม บริการฟรีไม่มีข้อผูกมัดต่อทีมของคุณ โดเมนที่ใช้อยู่เมื่อวานอาจถูกถอดออกจากบริการวันนี้ และไม่มีใครต้องแจ้งคุณล่วงหน้า ความเสี่ยงนี้ต้องถูกประเมินไว้ตั้งแต่วันที่เลือกใช้
นอกจากต้นทุนที่มองเห็น ยังมีต้นทุนแฝงในรูปของเวลาของทีมด้วย ทุกครั้งที่การทดสอบล้มเหลวเพราะข้อความไม่มา วิศวกรจะต้องเปิดดูไฟล์บันทึก ไล่ดูว่าโค้ดส่งข้อความทำงานหรือไม่ และตรวจว่าที่อยู่ผู้รับถูกต้องหรือเปล่า งานไล่หาสาเหตุนี้กินเวลาเป็นชั่วโมงต่อครั้ง และเมื่อเกิดซ้ำหลายครั้ง ต้นทุนรวมจะสูงกว่าค่าบริการที่มีข้อผูกมัดไปแล้ว ไม่มีทีมใดตั้งใจเลือกแนวทางนี้ แต่ทีมจำนวนมากมาถึงจุดนั้นโดยไม่ทันรู้ตัว เพราะช่วงแรกที่เริ่มใช้บริการฟรี ทุกอย่างทำได้ดี และไม่มีสัญญาณเตือนอะไรเลย
อีกต้นทุนหนึ่งที่ต้องคิดคือเรื่องการย้ายข้อมูลย้อนหลัง ระบบทดสอบที่ผูกกับโดเมนใดโดเมนหนึ่งไว้แล้วจะย้ายไปช่องทางใหม่ได้ยาก เพราะที่อยู่ผู้รับถูกฝังไว้ในกรณีทดสอบจำนวนมากและในระเบียนที่บันทึกไว้แล้ว การเลือกใช้บริการฟรีโดยไม่มีแผนสำรองตั้งแต่วันแรกจึงมักลงเอยด้วยการย้ายที่ต้องแก้ไฟล์ทดสอบทั้งชุด
ทำไมโดเมนฟรีจึงถูกปิดกั้นบ่อยกว่าที่คิด?
โดเมนของบริการอีเมลชั่วคราวสาธารณะถูกใช้โดยคนจำนวนมากพร้อมกัน และในจำนวนนั้นมีส่วนที่ใช้สร้างบัญชีเพื่อกระทำการที่ไม่ควร ทั้งการสร้างบัญชีหลายบัญชีเพื่อใช้สิทธิ์ทดลองซ้ำ การส่งข้อความโฆษณาที่ไม่พึงประสงค์ และการหลบเลี่ยงข้อจำกัดของบริการปลายทาง เมื่อปัญหาสะสม ผู้ให้บริการปลายทางจึงเลือกวิธีที่ได้ผลที่สุดคือปิดกั้นทั้งโดเมน
การปิดกั้นทั้งโดเมนทำให้ผู้ใช้ที่ตั้งใจทำงานทดสอบอย่างสุจริตได้รับผลกระทบไปด้วย และผลกระทบนั้นแสดงออกในรูปที่อ่านยาก เพราะระบบปลายทางอาจแจ้งว่าอีเมลไม่ถูกต้องทั้งที่รูปแบบถูกต้อง หรือไม่แจ้งอะไรเลยแล้วไม่ส่งข้อความมา ทีมจึงมักเสียเวลาไล่หาสาเหตุในโค้ดของตัวเองก่อน
ปัญหานี้ถูกอธิบายไว้ในบทความทำไมหลายเว็บไซต์จึงปิดกั้นโดเมนอีเมลชั่วคราว ซึ่งชี้ว่าการปิดกั้นไม่ได้เป็นเรื่องของเทคโนโลยีอีเมล แต่เป็นเรื่องของ reputational risk ที่ผู้ให้บริการต้องจัดการ
สำหรับทีมทดสอบ ข้อสรุปเชิงปฏิบัติคืออย่าใช้โดเมนสาธารณะเป็นฐานของงานทดสอบที่ต้องรันซ้ำ เพราะความล้มเหลวที่เกิดขึ้นจะไม่ใช่สัญญาณเตือนเรื่องคุณภาพของระบบ แต่เป็นสัญญาณของปัญหาที่โครงสร้างการทดสอบ ซึ่งเป็นสัญญาณที่ทีมควรกำจัดทิ้งตั้งแต่ต้น
ความไม่แน่นอนของโดเมนสาธารณะทำลายชุดทดสอบอย่างไร?
ชุดทดสอบที่พึ่งพาโดเมนสาธารณะจะมีความล้มเหลวที่เกิดเป็นครั้งคราว ปรากฏการณ์นี้แพงกว่าความล้มเหลวถาวร เพราะทีมจะเริ่มมองว่าความล้มเหลวบางอย่างเป็นเรื่องปกติ และเมื่อเริ่มมองแบบนั้น สัญญาณเตือนจริงก็จะถูกมองข้ามไปด้วย
อาการที่เกิดซ้ำบ่อยที่สุดคือข้อความมาช้ากว่าเวลาที่ระบบรอ ระบบทดสอบที่มีขอบเขตเวลารอสั้นจะรายงานว่าไม่พบข้อความ ทั้งที่ข้อความมาถึงภายหลังไม่กี่วินาที ทางแก้ที่ถูกคือตั้งขอบเขตเวลารอที่สอดคล้องกับความจริงของช่องทางที่ใช้ ไม่ใช่ปรับให้สั้นลงเพื่อให้ชุดทดสอบรันเร็วขึ้น
อาการที่เกิดซ้ำเป็นอันดับสองคือการค้นข้อความผิดรอบ เมื่อรอบทดสอบหลายรอบใช้ที่อยู่ต่างกันแต่ระบบค้นจากกล่องเดียวกัน ก็จะหยิบข้อความของอีกรอบหนึ่งขึ้นมา วิธีที่ป้องกันได้คือผูกที่อยู่ผู้รับกับรอบทดสอบเสมอ และค้นด้วยที่อยู่ผู้รับนั้นโดยตรง
อาการที่ต้องระวังที่สุดคือการที่ชุดทดสอบเริ่มถูกข้ามไปเงียบ ๆ เมื่อความล้มเหลวเกิดบ่อย ทีมมักตั้งค่าให้ข้ามกรณีทดสอบที่ล้มเหลวบ่อยเพื่อให้ไปต่อได้ ซึ่งเท่ากับยอมรับว่าขั้นตอนยืนยันอีเมลไม่ถูกทดสอบอีกต่อไปตั้งแต่เวลานั้น แนวทางแก้ที่ยั่งยืนคือทำให้ช่องทางรับข้อความเสถียรขึ้น ไม่ใช่ทำให้การทดสอบอ่อนลง
ทีมงบประมาณศูนย์จะจัดชุดทดสอบอีเมลที่เชื่อถือได้อย่างไร?
ทางออกแรกที่ไม่ต้องใช้เงินคือการเก็บข้อความไว้ในเครื่องเองระหว่างงานทดสอบ มีเครื่องมือสำหรับรับข้อความในเครื่องที่ทำหน้าที่เป็นเซิร์ฟเวอร์รับข้อความชั่วคราวในสภาพแวดล้อมทดสอบ วิธีนี้ทำให้ทีมเห็นข้อความทั้งหมดได้ทันที ไม่ต้องรอเครือข่าย และไม่ต้องกังวลเรื่องโดเมนถูกปิดกั้น บทความการรับอีเมลในเครื่องระหว่างงานทดสอบ อธิบายวิธีการนี้ไว้พร้อมข้อจำกัด
ทางออกที่สองคือใช้กล่องจดหมายแลกเปลี่ยนของทีมโดยตั้งกฎกรองอัตโนมัติ ที่อยู่ทางการหนึ่งชุดที่รับข้อความทดสอบทั้งหมด แล้วแยกโฟลเดอร์ด้วยกฎตามหัวเรื่องหรือผู้รับ วิธีนี้ใช้บริการอีเมลที่มีอยู่แล้วในทีม ไม่ต้องซื้ออะไรเพิ่ม แต่ต้องมีวินัยในการตั้งชื่อเรื่อง
ทางออกที่สามคือใช้โดเมนที่ทีมมีอยู่แล้วร่วมกับที่อยู่แบบบวก ที่อยู่ผู้รับสามารถมีส่วนต่อท้ายที่บอกว่ารอบทดสอบใดได้ ซึ่งช่วยให้แยกรอบทดสอบได้โดยไม่ต้องมีโดเมนเพิ่ม และใช้งานได้ทันทีกับกล่องจดหมายปัจจุบัน
ทั้งสามทางมีจุดร่วมกันคือทีมควบคุมช่องทางเองทั้งหมด ไม่ต้องพึ่งพาบริการที่ไม่มีข้อผูกมัด และทำให้ชุดทดสอบพึ่งพาปัจจัยที่ทีมกำหนดได้เอง ซึ่งเป็นเงื่อนไขจำเป็นของการทดสอบอัตโนมัติที่รันต่อเนื่อง
ควรใช้บริการฟรีกับงานแบบใด?
งานที่เหมาะกับบริการฟรีคืองานสำรวจระยะสั้น ตรวจว่าฟอร์มทำงานอย่างไร ข้อความที่ส่งออกมามีเนื้อความแบบใด และการยืนยันทำงานครบขั้นตอนหรือไม่ งานประเภทนี้ต้องการผลลัพธ์ครั้งเดียวและไม่ต้องรันซ้ำ จึงไม่ต้องแบกความไม่แน่นอนในระยะยาว
งานสาธิตให้ผู้มีส่วนได้ส่วนเสียดูก็เข้าข่ายนี้เช่นกัน เพราะจุดประสงค์คือแสดงให้เห็นว่ากระบวนการทำงานได้ ไม่ใช่การยืนยันความเสถียร อย่างไรก็ดี ควรเลือกสาธิตด้วยช่องทางเดียวกับที่ทีมจะใช้จริง มิฉะนั้นผลสาธิตจะไม่สะท้อนความจริง
งานทดสอบครั้งเดียวเพื่อตรวจว่าไลบรารีที่เลือกใช้ทำงานถูกต้องก็เหมาะ ตัวอย่างเช่นการตรวจว่าตัวอ่านไฟล์อีเมลดึงลิงก์ออกมาได้จริง งานแบบนี้ไม่ต้องเก็บข้อความไว้นานและไม่ต้องการความแน่นอนสูง
งานที่ไม่ควรใช้บริการฟรีคือทุกงานที่รันในระบบอัตโนมัติต่อเนื่อง งานที่ต้องเก็บข้อความไว้เป็นหลักฐาน และงานที่ต้องทดสอบนโยบายความปลอดภัยของอีเมล เพราะทั้งสามงานต้องการช่องทางที่ทีมควบคุมได้จริงและเสถียรในระยะยาว
ขอบเขตของอีเมลชั่วคราวฟรีคืออะไร?
ขอบเขตสำคัญที่สุดคือผู้ใช้ต้องไม่ใช้ที่อยู่ของผู้อื่นไม่ว่ากรณีใด การสมัครบริการด้วยที่อยู่ที่คนอื่นเป็นเจ้าของเป็นการใช้ข้อมูลส่วนบุคคลของผู้อื่นโดยไม่ได้รับอนุญาต และไม่เกี่ยวกับงานทดสอบเลยแม้แต่ข้อเดียว
ขอบเขตข้อที่สองคือต้องไม่ใช้เพื่อหลบเลี่ยงข้อจำกัดของบริการใด การสร้างบัญชีหลายบัญชีเพื่อใช้สิทธิ์ทดลองซ้ำหรือเพื่อข้ามข้อจำกัดที่ผู้ให้บริการกำหนดเป็นพฤติกรรมที่ผิดวัตถุประสงค์ของงานทดสอบโดยตรง และมักเป็นสาเหตุที่ทำให้โดเมนสาธารณะถูกปิดกั้นสำหรับทุกคน
ขอบเขตข้อที่สามคือต้องไม่ใช้ส่งข้อความถึงผู้อื่น การทดสอบที่มีการส่งอีเมลออกไปยังบุคคลภายนอกโดยไม่ได้รับความยินยอมเป็นความเสี่ยงทั้งทางกฎหมายและทางชื่อเสียงของทีม ข้อความทดสอบต้องอยู่ในวงของทีมเท่านั้น
ขอบเขตข้อที่สี่คือต้องไม่เก็บข้อมูลจริงไว้ในช่องทางสาธารณะ ถ้าข้อความทดสอบมีข้อมูลของลูกค้าจริงปนอยู่แม้ชั่วคราว วิธีที่ปลอดภัยคือล้างข้อมูลนั้นออกจากบททดสอบตั้งแต่ต้น ซึ่งเป็นหลักการเดียวกับที่ใช้กับชุดข้อมูลทดสอบโดยทั่วไปและอธิบายไว้ในบทความอีเมลชั่วคราวกับอีเมลแทน
ก้าวต่อไป
เริ่มจากนับว่าชุดทดสอบของคุณมีกรณีทดสอบกี่กรณีที่พึ่งพาช่องทางอีเมลและต้องรันซ้ำ ถ้าจำนวนนี้มากกว่าสิบกรณีในหนึ่งรอบ ให้ถือว่าควรจัดช่องทางที่ทีมควบคุมเองก่อน ส่วนบริการฟรียังใช้ได้กับงานสำรวจและงานสาธิตตามเดิม
ถ้าต้องการที่อยู่สำหรับทดสอบ ลองใช้เครื่องมือสร้างอีเมลชั่วคราว ของเว็บไซต์นี้ ซึ่งให้ที่อยู่ที่ใช้ได้ทันทีโดยไม่ต้องตั้งค่า และถ้าคุณสนใจว่าอีเมลใช้แล้วทิ้งทำงานอยู่เบื้องหลังอย่างไร มีคำอธิบายไว้ในบทความกล่องจดหมายใช้แล้วทิ้งคืออะไร
อีเมลและข้อมูลทุกชุดที่กล่าวถึงในบทความนี้เป็นข้อมูลที่สร้างขึ้นเพื่อการทดสอบ ไม่ผูกกับบุคคลหรือบัญชีจริงใด และไม่ควรนำไปใช้กับบัญชีจริง หากต้องการนำไปทดสอบกับระบบจริงควรได้รับอนุญาตจากเจ้าของระบบนั้นก่อนเสมอ