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