เมนู

การทดสอบช่องเลือกประเทศ: ค้นหา เรียงลำดับ และคีย์บอร์ด

ช่องเลือกประเทศดูเหมือนช่องกรอกง่าย ๆ แต่มีจุดทดสอบซ่อนอยู่หลายจุด ตั้งแต่การค้นหาด้วยชื่อหลายแบบ ไปจนถึงผลกระทบเมื่อผู้ใช้เปลี่ยนประเทศ

เผยแพร่เมื่อ

  • ช่องเลือก
  • การเข้าถึง

การทดสอบช่องเลือกประเทศเป็นงานที่มักถูกลดทอนเหลือเพียงการยืนยันว่าเลือกค่าได้และบันทึกสำเร็จ ซึ่งครอบคลุมเพียงส่วนเล็ก ๆ ของความเสี่ยงจริง เพราะช่องนี้เป็นจุดที่ผู้ใช้ทุกคนต้องผ่าน และเป็นจุดที่ความผิดพลาดเล็กน้อยส่งผลกับทุกคนพร้อมกัน

ช่องเลือกประเทศมีรูปแบบใดบ้าง?

รูปแบบแรกคือรายการแบบเลื่อนธรรมดา ซึ่งเหมาะเมื่อจำนวนรายการน้อย และทดสอบได้ง่ายที่สุด จุดที่ต้องทดสอบคือความสูงของรายการและพฤติกรรมเมื่อข้อความยาวเกินความกว้าง

รูปแบบที่สองคือรายการที่พิมพ์ค้นหาได้ ซึ่งเป็นรูปแบบที่พบบ่อยที่สุดในงานจริง จุดที่ต้องทดสอบคือการจับคู่คำค้น พฤติกรรมเมื่อไม่พบผลลัพธ์ และการคงค่าที่เลือกไว้เมื่อปิดรายการ

รูปแบบที่สามคือรายการที่จัดกลุ่มตามภูมิภาค ซึ่งช่วยให้หาเจอง่ายขึ้นแต่เพิ่มความเสี่ยงว่ารายการจะถูกซ่อนอยู่ใต้กลุ่มที่ผู้ใช้ไม่ทันสังเกต

รูปแบบที่สี่คือช่องพิมพ์อิสระที่ให้ระบบเดา ซึ่งเสี่ยงที่สุด เพราะผู้ใช้สามารถพิมพ์สิ่งที่ระบบไม่รู้จักได้ จุดที่ต้องทดสอบคือระบบตอบอย่างไรเมื่อเดาไม่ได้

รูปแบบ จุดเสี่ยงหลัก สิ่งที่ต้องทดสอบเพิ่ม
รายการเลื่อน ความยาวข้อความในตัวเลือก การตัดข้อความชื่อประเทศยาว
ค้นหาได้ การจับคู่คำค้น การไม่พบผลลัพธ์และการคงค่า
จัดกลุ่ม รายการที่ถูกซ่อน ความถึงได้ของทุกกลุ่ม
พิมพ์อิสระ การเดาที่ผิด พฤติกรรมเมื่อระบบไม่รู้จักค่า

การค้นหาควรจับคู่รูปแบบใดได้บ้าง

รูปแบบแรกคือชื่อที่เขียนในภาษาของผู้ใช้ ซึ่งเป็นสิ่งที่ผู้ใช้ส่วนใหญ่จะพิมพ์เป็นอย่างแรก

รูปแบบที่สองคือชื่อที่เขียนในภาษาอื่นที่ผู้ใช้คุ้นเคย ซึ่งมักเป็นภาษาที่ใช้กันกว้างในการติดต่อระหว่างประเทศ ความต้องการนี้จริงและไม่ควรถูกมองข้าม

รูปแบบที่สามคือรหัสอ้างอิงของประเทศ ซึ่งผู้ใช้ที่ทำงานกับข้อมูลเป็นประจำจะพิมพ์เข้ามาโดยตรง การรองรับรหัสทำให้ผู้ใช้กลุ่มนี้ทำงานเร็วขึ้นมาก

รูปแบบที่สี่คือชื่อเรียกอย่างไม่เป็นทางการและคำย่อ ซึ่งผู้ใช้พิมพ์บ่อยแต่ไม่ตรงกับชื่อทางการเลย

ระบบที่รองรับเพียงรูปแบบเดียวจะดูเหมือนทำงานได้ในการทดสอบ แต่จะล้มเหลวกับผู้ใช้จริงกลุ่มอื่นอย่างสม่ำเสมอ การทดสอบจึงต้องมีกรณีอย่างน้อยหนึ่งกรณีต่อรูปแบบ และชุดประเทศที่ใช้ทดสอบควรถูกเลือกอย่างมีหลักการ ไม่ใช่หยิบชื่อที่ทีมคุ้นเคย ซึ่งวิธีเลือกอธิบายไว้ในบทความวิธีเลือกประเทศ สำหรับข้อมูลทดสอบ

ทำไมการเรียงชื่อจึงต้องใช้กฎของภาษา

การเรียงตามลำดับรหัสอักขระให้ผลที่ผิดสำหรับหลายภาษา เพราะภาษาที่มีเครื่องหมายกำกับเสียงหรือรูปเขียนพิเศษจะถูกรวมกลุ่มผิด และผู้ใช้จะหาชื่อที่ต้องการไม่เจอแม้จะเลื่อนผ่านไปแล้ว

กฎการเรียงของแต่ละภาษาถูกกำหนดไว้แล้วในมาตรฐานสากลด้านการเรียงลำดับ จึงไม่ต้องคิดขึ้นเอง สิ่งที่ต้องทำคือเลือกใช้กฎให้ตรงกับภาษาที่กำลังแสดงอยู่

เมื่อมีการจัดกลุ่มตามภูมิภาค ลำดับของกลุ่มเองก็ต้องมีเหตุผลที่อธิบายได้ และกลุ่มที่รวบรวมรายการที่จัดกลุ่มไม่ได้ต้องเข้าถึงได้เสมอ ไม่ควรถูกซ่อนไว้ท้ายรายการจนหายไป

การทดสอบที่จับปัญหานี้ได้คือการเลือกคู่ชื่อที่ต่างกันเฉพาะเครื่องหมายกำกับเสียง แล้วตรวจว่าลำดับที่ได้ไม่ขึ้นกับรูปแบบการเขียนของผู้ใช้

คีย์บอร์ดและโปรแกรมอ่านหน้าจอต้องทดสอบอย่างไร?

ต้องทดสอบการเข้าถึงช่องด้วยปุ่มเดียวโดยไม่ใช้เมาส์ ซึ่งเป็นเส้นทางที่ผู้ใช้บางกลุ่มใช้ตลอดเวลา และเป็นเส้นทางที่พังบ่อยเมื่อมีการเพิ่มชั้นขององค์ประกอบ

ต้องทดสอบการกระโดดไปยังรายการที่ขึ้นต้นด้วยตัวอักษรที่กด ซึ่งช่วยลดจำนวนครั้งที่ต้องกดปุ่มลงอย่างมากเมื่อรายการยาว แต่ต้องตรวจว่าการกระโดดยังทำงานถูกต้องเมื่อมีการจัดกลุ่ม

ต้องทดสอบการปิดรายการด้วยปุ่มยืนยันและปุ่มยกเลิก และตรวจว่าค่าที่เลือกไว้ไม่เปลี่ยนเมื่อปิดรายการโดยไม่ได้เลือกอะไร

ต้องทดสอบการอ่านผลลัพธ์ด้วยโปรแกรมอ่านหน้าจอ ทั้งจำนวนผลลัพธ์ที่พบและสถานะเมื่อไม่พบผลลัพธ์ เพราะข้อความเหล่านี้มักถูกละไว้และทำให้ผู้ใช้ไม่รู้ว่าเกิดอะไรขึ้น

เมื่อเปลี่ยนประเทศแล้วช่องใดต้องคำนวณใหม่?

เมื่อผู้ใช้เปลี่ยนประเทศ ค่าของช่องที่ผูกกับพื้นที่เดิมต้องถูกจัดการอย่างใดอย่างหนึ่ง ไม่ใช่ปล่อยค้างไว้ เพราะค่าที่ค้างจะขัดกับประเทศใหม่และทำให้การบันทึกล้มเหลวโดยไม่บอกสาเหตุ

ช่องกลุ่มแรกคือช่องที่ต้องล้างทิ้ง เพราะค่าเดิมไม่มีความหมายกับประเทศใหม่ การล้างต้องแจ้งให้ผู้ใช้รู้ ไม่ใช่ทำเงียบ ๆ เพราะผู้ใช้อาจกรอกข้อมูลไปมากแล้ว

ช่องกลุ่มที่สองคือช่องที่ต้องคำนวณใหม่จากตัวเลือกที่ระบบมี ซึ่งทำได้ทันทีโดยไม่ต้องรอผู้ใช้ และควรทำให้เสร็จก่อนที่ผู้ใช้จะกดบันทึก

ช่องกลุ่มที่สามคือช่องที่ต้องถามผู้ใช้ใหม่ เพราะระบบไม่สามารถเดาได้อย่างปลอดภัย ช่องกลุ่มนี้ควรถูกทำเครื่องหมายให้ชัดว่าต้องกรอกใหม่

การทดสอบที่สำคัญที่สุดของหัวข้อนี้คือการเปลี่ยนประเทศไปกลับหลายครั้ง แล้วตรวจว่าไม่มีค่าของประเทศก่อนหน้าหลงเหลืออยู่ และไม่มีค่าที่ขัดกันเองถูกบันทึก

การจัดการค่าที่ค้างอยู่ในบริบทของหลายประเทศพร้อมกันมีอธิบายไว้ในบทความสถานการณ์ที่อยู่ข้ามพรมแดน และการแยกให้ชัดว่าค่าที่ค้างนั้นควรถูกล้างหรือควรถูกคำนวณใหม่เป็นสิ่งที่ต้องตัดสินใจไว้ล่วงหน้า ไม่ใช่ปล่อยให้เป็นพฤติกรรมที่เกิดจากลำดับการทำงานของโค้ด

สำหรับนักพัฒนา: เก็บชื่อที่แสดงกับรหัสแยกกัน

ข้อแรกคือให้ช่องนี้เก็บรหัสของประเทศเป็นค่าหลักเสมอ และใช้ชื่อเพื่อการแสดงผลเท่านั้น การเก็บชื่อเป็นค่าหลักจะทำให้ข้อมูลเสียหายเมื่อชื่อเปลี่ยนหรือเมื่อระบบแสดงผลด้วยอีกภาษา

ข้อที่สองคือให้ทุกจุดที่ต้องใช้ค่าประเทศอ่านจากรหัสเดียวกัน ไม่ว่าจะเป็นแบบฟอร์ม เอกสารส่งออก หรือส่วนเชื่อมต่อกับระบบภายนอก การมีค่าที่ต่างกันตามจุดคือสาเหตุที่ทำให้ข้อมูลไม่ตรงกัน

ข้อที่สามคือทำตารางเทียบระหว่างรหัสกับชื่อที่แสดงให้เป็นข้อมูล ไม่ใช่เงื่อนไขในโค้ด เพราะเมื่อมีภาษาใหม่หรือชื่อใหม่ ต้องแก้ที่เดียว

ข้อที่สี่คือทดสอบการค้นหาด้วยชุดคำค้นที่รวบรวมจากผู้ใช้จริง ไม่ใช่จากรายการที่ระบบมี เพราะความต่างระหว่างสองชุดนี้คือส่วนที่ระบบยังรองรับไม่ได้

จะตรวจช่องนี้ให้ครบได้อย่างไร

เริ่มจากการนับว่าช่องเลือกประเทศของทีมรองรับการค้นหาด้วยกี่รูปแบบ และเพิ่มกรณีทดสอบสำหรับรูปแบบที่ยังขาด โดยเริ่มจากชื่อเรียกอย่างไม่เป็นทางการซึ่งมักเป็นรูปแบบที่ถูกลืม และควรตรวจด้วยว่าการสมมติว่าประเทศกับภาษาไปด้วยกันเสมอทำให้การค้นหาผิดพลาดตรงจุดใด ซึ่งอธิบายไว้ในบทความประเทศกับภาษาไม่เหมือนกัน

ถ้าต้องการเทียบรายการประเทศที่จะใช้เป็นข้อมูลตั้งต้น หน้าประเทศและภูมิภาคบนเว็บไซต์นี้รวมรายการประเทศและภูมิภาคไว้พร้อมข้อมูลของแต่ละแห่ง และดูตัวอย่างหน้าประเทศเดี่ยวได้ที่หน้าประเทศสหรัฐอเมริกา

รายการตัวเลือก ชื่อเรียกอื่น และข้อความที่ผู้ใช้พิมพ์ซึ่งยกมาในบทความนี้เป็นตัวอย่างที่ผู้เขียนสร้างขึ้น ไม่ได้มาจากการส่งข้อมูลจริงของผู้ใช้กลุ่มใด

อ่านต่อ

บทความเกี่ยวกับ รูปแบบที่อยู่และข้อมูลตัวตนตามประเทศ

บทความเกี่ยวกับ รูปแบบที่อยู่และข้อมูลตัวตนตามประเทศ

รายการนี้แสดงเฉพาะบทความในหัวข้อของหน้านี้