เครื่องมือสร้างที่อยู่ตุรกีเป็นเครื่องมือที่ให้ระเบียนที่อยู่ครบตามลำดับชั้นที่ระบบไปรษณีย์ของตุรกีใช้จริง พร้อมรหัสไปรษณีย์ห้าหลักที่ผูกกับจังหวัด และหมายเลขโทรศัพท์ที่ตรงกับพื้นที่ สาเหตุที่ต้องมีเครื่องมือแบบนี้ก็เพราะที่อยู่ตุรกีไม่ได้พังแค่เรื่องการเรียงลำดับชั้น แต่ยังพังเรื่องตัวอักษรที่มีจุดกับไม่มีจุดซึ่งเป็นเอกลักษณ์ของภาษาตุรกีเอง อีกทั้งยังมีจังหวัดถึงแปดสิบเอ็ดแห่งและเขตย่อยอีกเกือบพันแห่งที่ทำให้การจับคู่ด้วยมือเป็นเรื่องที่ทำไม่ได้จริง บทความนี้จะอธิบายว่าที่อยู่ตุรกีเรียงจากหน่วยใดไปหน่วยใด รหัสไปรษณีย์ผูกกับจังหวัดอย่างไร ตัวอักษรแบบใดทำให้ข้อมูลพังเงียบ ๆ และมีกรณีทดสอบใดที่ทีมมักลืม เมื่ออ่านจบคุณจะออกแบบฟอร์มที่อยู่สำหรับผู้ใช้ตุรกีได้ถูกต้องขึ้น และรู้ว่าข้อมูลทดสอบที่สร้างขึ้นนั้นใช้ได้แค่ไหน
ที่อยู่ตุรกีเรียงลำดับชั้นอย่างไร?
ที่อยู่ตุรกีเขียนจากหน่วยใหญ่ไปหน่วยเล็ก ซึ่งเป็นธรรมเนียมเดียวกับหลายประเทศในยุโรปภาคพื้นทวีป ลำดับคือชื่อจังหวัด il ตามด้วยเขต ilçe ต่อด้วยมาฮัลเลหรือ mahalle แล้วจึงเป็นชื่อถนน sokak หรือ cadde ตามด้วยหมายเลขอาคาร bina no และหมายเลขห้อง daire ถ้าอาคารนั้นมีหลายหน่วย
ความต่างที่ทำให้คนนอกสับสนคือการที่ชื่อจังหวัดมักถูกเขียนไว้บนสุดหรือบรรทัดสุดท้ายก็ได้ ขึ้นอยู่กับว่าที่อยู่นั้นเขียนบนซองจดหมายหรือกรอกในระบบออนไลน์ ในระบบออนไลน์สมัยใหม่ ชื่อจังหวัดมักอยู่บรรทัดสุดท้ายก่อนรหัสไปรษณีย์ ส่วนบนซองจดหมายแบบเดิมมักเขียนชื่อจังหวัดไว้บรรทัดบนเพื่อให้เจ้าหน้าที่คัดแยกอ่านก่อน
การที่ระบบต้องรองรับทั้งสองแบบทำให้เกิดปัญหาการตีความ ช่องข้อความอิสระที่ให้ผู้ใช้พิมพ์ทั้งก้อนจึงต้องไม่ถูกแยกด้วยการเดาจากตำแหน่งบรรทัด เพราะลำดับบรรทัดของที่อยู่ตุรกีไม่ได้ตายตัวเท่าที่อยู่ของประเทศในระบบแองโกลแซกซอน ทางที่ปลอดภัยคือมีช่องแยกสำหรับจังหวัด เขต และมาฮัลเล ตั้งแต่ต้น
ชื่อมาฮัลเลและชื่อถนนในตุรกีมักเป็นคำที่มีความหมายว่าเพื่อนบ้าน สวน หรือเนินเขา และมักเป็นชื่อที่ซ้ำกันข้ามจังหวัด การตรวจสอบว่าชื่อมาฮัลเลนี้อยู่ในจังหวัดที่เลือกหรือไม่จึงต้องอ้างอิงชุดข้อมูลที่ผูกกันไว้ ไม่ใช่ตรวจแค่ว่ามีชื่อนั้นอยู่ในประเทศหรือไม่ แนวคิดนี้ใช้ได้กับทุกประเทศและอธิบายไว้ในบทความรูปแบบรหัสไปรษณีย์ของแต่ละประเทศ
รหัสไปรษณีย์ห้าหลักผูกกับจังหวัดอย่างไร?
รหัสไปรษณีย์ของตุรกีเป็นชุดตัวเลขห้าหลัก สองหลักแรกผูกกับจังหวัดตามรหัสจังหวัดที่ใช้ในทางราชการ ส่วนสามหลักหลังบอกพื้นที่นำจ่ายภายในจังหวัดนั้น การที่สองหลักแรกคือรหัสจังหวัดหมายความว่าความสอดคล้องระหว่างรหัสไปรษณีย์กับจังหวัดเป็นสิ่งที่ตรวจได้ด้วยตรรกะง่าย ๆ โดยไม่ต้องพึ่งบริการภายนอก
ความสอดคล้องนี้คือจุดที่ระบบมักปล่อยผ่าน เมื่อผู้ใช้เลือกจังหวัดอิสตันบูลแต่ใส่รหัสไปรษณีย์ของอังการา ระบบที่ไม่ตรวจจะบันทึกข้อมูลที่ผิดลงฐานข้อมูล และเมื่อถึงเวลาต้องคำนวณค่าส่งหรือคัดแยกพัสดุ ปัญหาจะโผล่ในที่ที่ไกลจากต้นเหตุมาก
อีกจุดที่ควรรู้คือรหัสไปรษณีย์หนึ่งชุดสามารถครอบคลุมพื้นที่ได้กว้างกว่าเขตเดียว และในเมืองใหญ่รหัสไปรษณีย์อาจเปลี่ยนทุกไม่กี่มาฮัลเล ระบบที่ดีจึงควรยอมให้ผู้ใช้แก้รหัสไปรษณีย์ได้เอง แต่ควรตรวจว่าสองหลักแรกตรงกับจังหวัดที่เลือกไว้หรือไม่
สำหรับนักทดสอบ นี่คือกรณีทดสอบที่ให้ผลตอบแทนสูง เพราะตรวจด้วยตัวเลขสองหลักแรกก็เจอข้อผิดพลาดได้ทันที และไม่ต้องมีชุดข้อมูลขนาดใหญ่ แค่มีตารางรหัสจังหวัดกับรหัสไปรษณีย์ที่ถูกต้องก็พอ
ตัวอักษรที่มีจุดกับไม่มีจุดสร้างปัญหาอย่างไร?
ภาษาตุรกีมีตัวอักษรสองคู่ที่เขียนต่างจากอักษรละตินทั่วไป นั่นคือ İ ตัวพิมพ์ใหญ่ที่มีจุดและ ı ตัวพิมพ์เล็กที่ไม่มีจุด ซึ่งไม่ได้เป็นคู่เดียวกันกับ I และ i ตามแบบอักษรละตินมาตรฐาน การแปลงตัวพิมพ์ด้วยฟังก์ชันมาตรฐานของภาษาโปรแกรมส่วนใหญ่จึงให้ผลลัพธ์ผิด เพราะฟังก์ชันเหล่านั้นถูกออกแบบตามกฎของภาษาอังกฤษ
อาการที่เกิดขึ้นจริงคือชื่อจังหวัดหรือชื่อมาฮัลเลที่ขึ้นต้นด้วยอักษรเหล่านี้จะกลายเป็นตัวอักษรที่ไม่ถูกต้องหลังการปรับให้เป็นตัวพิมพ์เดียว ข้อมูลทั้งชุดดูปกติเมื่ออ่านผ่าน ๆ แต่การเทียบในฐานข้อมูลจะไม่ตรงกันเลย เสียเวลาหาสาเหตุมากเพราะตาเปล่าไม่เห็นความต่าง
ปัญหาประเภทเดียวกันยังเกิดในขั้นตอนอื่นด้วย เช่นการทำดัชนีค้นหา การเรียงลำดับรายการ และการทำตัวพิมพ์สำหรับตรวจสอบว่าเท่ากันหรือไม่ เมื่อระบบใช้กฎการแปลงของภาษาอังกฤษกับข้อมูลตุรกี ความไม่ตรงกันจะเกิดเป็นระยะ ๆ เฉพาะกับระเบียนที่มีอักษรคู่นี้
วิธีรับมือที่ใช้ได้จริงมีสองข้อ ข้อแรกคือเก็บข้อความไว้ตามต้นฉบับและไม่แปลงเป็นการถาวร ข้อที่สองคือเมื่อจำเป็นต้องเทียบแบบไม่สนตัวพิมพ์ ให้ใช้การเทียบตามกฎของภาษาตุรกีโดยตรง ไม่ใช่การแปลงเป็นตัวพิมพ์เล็กด้วยฟังก์ชันทั่วไป แนวคิดเรื่องการเก็บข้อมูลตามต้นฉบับยังใช้กับโครงสร้างที่อยู่ของสหรัฐอเมริกา ในเรื่องการไม่ตัดเครื่องหมายวรรคตอนทิ้งเช่นกัน
หมายเลขโทรศัพท์จับคู่กับเมืองได้ไหม?
หมายเลขโทรศัพท์ของตุรกีมีรหัสประเทศบวกเก้าสิบตามด้วยรหัสพื้นที่สามหลัก แล้วต่อด้วยตัวเลขเจ็ดหลัก รหัสพื้นที่เหล่านี้ผูกกับจังหวัดตามการจัดสรรของผู้ให้บริการ และบางจังหวัดที่มีประชากรมากมีรหัสพื้นที่มากกว่าหนึ่งชุด
การจับคู่รหัสพื้นที่กับจังหวัดจึงตรวจได้ในระดับหนึ่ง แต่ไม่ละเอียดถึงระดับเขต เพราะพื้นที่หมายเลขโทรศัพท์ไม่ตรงกับเส้นแบ่งเขตการปกครอง ระบบที่ตรวจเข้มเกินไปจะปฏิเสธหมายเลขที่ถูกต้อง โดยเฉพาะหมายเลขที่ย้ายค่ายหรือหมายเลขที่โอนย้ายถิ่นฐาน
สิ่งที่ควรตรวจคือความยาวและรูปแบบเท่านั้น คือต้องมีรหัสประเทศที่ถูกต้อง มีรหัสพื้นที่ที่อยู่ในชุดที่รู้จัก และมีจำนวนหลักรวมตรงตามที่กำหนด ส่วนความสอดคล้องระหว่างรหัสพื้นที่กับจังหวัดควรใช้เป็นคำเตือนไม่ใช่การปฏิเสธ
อีกจุดที่ทีมมักลืมคือการรับหมายเลขในรูปแบบที่ผู้ใช้กรอกเอง ซึ่งอาจมีเครื่องหมายบวก มีช่องว่าง หรือมีเครื่องหมายขีดกลางคั่น ระบบควรตัดอักขระเหล่านี้ตอนตรวจ แต่ต้องเก็บรูปแบบที่ผู้ใช้กรอกไว้แสดงผลกลับให้เขายืนยันด้วย
ชุดอักขระและความยาวช่องมีผลต่อการทดสอบแค่ไหน?
ตุรกีใช้ชุดอักขระละตินแบบขยายที่มีอักษร Ç, Ğ, Ö, Ş และ Ü เพิ่มจากอักษรพื้นฐาน ชื่อจังหวัด ชื่อมาฮัลเล และชื่อถนนใช้ตัวอักษรเหล่านี้เป็นปกติ ถ้าฐานข้อมูลกำหนดชุดอักขระไม่ถูกต้องหรือตัดอักขระที่อยู่นอกช่วงเก็บ ข้อมูลจะเสียหายโดยไม่มีข้อผิดพลาดแสดงออกมา
ปัญหานี้มักปรากฏในงานนำเข้าข้อมูลจากไฟล์ CSV เพราะโปรแกรมตารางคำนวณจำนวนมากบันทึกไฟล์เป็นชุดอักขระพื้นฐานซึ่งแทนอักษรพิเศษเหล่านี้ไม่ได้ ข้อมูลที่นำเข้าจึงกลายเป็นอักษรเพี้ยน และไม่มีใครรู้จนกว่าจะมีคนสังเกตเห็นตอนอ่านรายงาน
การทดสอบที่ควรมีคือสร้างระเบียนที่มีอักษรพิเศษในทุกช่องที่เป็นชื่อ แล้วตรวจว่าข้อความที่ไหลผ่านทั้งระบบไม่ว่าจะเป็นหน้าจอ ไฟล์ส่งออก หรือไฟล์บันทึก ยังคงอักษรเดิมครบถ้วน ที่มักพลาดคือช่องหมายเหตุหรือช่องที่อยู่บรรทัดที่สองซึ่งถูกมองว่าไม่สำคัญ
ด้านความยาวช่อง ชื่อมาฮัลเลและชื่อถนนในตุรกีมักยาวกว่าที่คนออกแบบคาดไว้ และเมื่อรวมกับชื่ออาคารและหมายเลขห้องแล้ว ที่อยู่หนึ่งรายการอาจใช้หลายบรรทัดจริง ความยาวช่องที่พอดีกับตัวอย่างแรกจะตัดข้อมูลทิ้งเงียบ ๆ วิธีตรวจคือใช้ที่อยู่ยาวผิดปกติเป็นกรณีทดสอบประจำ
ควรทดสอบฟอร์มที่อยู่ตุรกีอย่างไร?
กรณีแรกคือจังหวัดที่ขึ้นต้นหรือลงท้ายด้วยตัวอักษรที่มีจุดหรือไม่มีจุด ใช้ตรวจว่าฟังก์ชันแปลงตัวพิมพ์ของระบบไม่ทำข้อมูลเสียหาย และตรวจว่าการเทียบชื่อจังหวัดยังทำงานถูกต้องหลังการปรับรูปแบบ
กรณีที่สองคือรหัสไปรษณีย์ที่สองหลักแรกไม่ตรงกับจังหวัดที่เลือก ต้องได้ข้อความแจ้งที่บอกชัดว่าช่องใดผิด ไม่ใช่แค่บอกว่าที่อยู่ไม่ถูกต้อง
กรณีที่สามคือหมายเลขโทรศัพท์ที่กรอกในรูปแบบที่ต่างกัน ทั้งแบบมีเครื่องหมายบวก แบบมีช่องว่าง และแบบมีขีดกลาง ทั้งหมดต้องผ่านและถูกเก็บในรูปแบบมาตรฐานเดียวโดยที่ผู้ใช้ยังเห็นสิ่งที่ตนพิมพ์
กรณีที่สี่คือพื้นที่ที่ตัวเลขรหัสไปรษณีย์ซ้ำกับจังหวัดอื่น หรือมาฮัลเลที่ชื่อซ้ำกันข้ามจังหวัด ใช้ตรวจว่าระบบตรวจความสอดคล้องจริงไม่ใช่แค่ตรวจว่ามีชื่อนั้นอยู่บ้าง
กรณีที่ห้าคือการทดสอบปริมาณ สร้างระเบียนทดสอบเป็นจำนวนมากแล้วเปิดหน้ารายการเพื่อดูว่าการเรียงลำดับชื่อที่มีอักษรพิเศษยังถูกต้องหรือไม่ ที่อยู่ตุรกีเป็นชุดข้อมูลที่ดีมากสำหรับทดสอบเรื่องนี้เพราะมีอักษรพิเศษอยู่ในตำแหน่งต่าง ๆ ของคำ
กรณีที่หกคือการส่งออกข้อมูลออกเป็นไฟล์แล้วนำเข้ากลับ ใช้ตรวจว่าอักษร Ç, Ğ, İ, Ö, Ş และ Ü รอดผ่านรอบการเดินทางนั้นครบถ้วนหรือไม่ ไฟล์ที่บันทึกด้วยชุดอักขระพื้นฐานจะทำให้อักษรเหล่านี้เพี้ยนทันที และความเสียหายจะไม่ปรากฏจนกว่าจะมีคนเปิดไฟล์อ่านด้วยตา นี่คือกรณีที่พบข้อบกพร่องจริงบ่อยกว่าที่ทีมคาด และแก้ได้ด้วยการกำหนดชุดอักขระตอนเขียนไฟล์ให้ชัดเจน
กรณีที่เจ็ดคือช่องที่อยู่บรรทัดที่สองและช่องหมายเหตุ ซึ่งเป็นสองช่องที่มักถูกลืมตรวจเรื่องชุดอักขระ ทั้งที่ผู้ใช้พิมพ์ชื่อถนนและคำอธิบายการส่งของไว้ในช่องเหล่านี้เป็นปกติ การทดสอบที่ครอบคลุมเฉพาะช่องบังคับจะไม่เจอปัญหาประเภทนี้เลย
ก้าวต่อไป
เริ่มจากตรวจสองข้อในระบบของคุณ ข้อแรกคือเวลาปรับข้อมูลให้เป็นตัวพิมพ์เดียว ระบบใช้กฎของภาษาตุรกีหรือใช้กฎของภาษาอังกฤษ ข้อที่สองคือการตรวจความสอดคล้องระหว่างรหัสไปรษณีย์กับจังหวัดทำได้หรือยัง เพราะสองข้อนี้คือจุดที่ได้ผลตอบแทนสูงที่สุด
ถ้าต้องการข้อมูลตั้งต้นสำหรับทดสอบ เครื่องมือสร้างที่อยู่ ของเว็บไซต์นี้ให้ที่อยู่ตุรกีพร้อมจังหวัด เขต มาฮัลเล รหัสไปรษณีย์ และหมายเลขโทรศัพท์ที่สอดคล้องกัน และถ้าคุณต้องรองรับหลายประเทศในระบบเดียว ลองดูแนวคิดเรื่องการทดสอบหน้าตัวเลือกประเทศ ควบคู่กัน
ที่อยู่ทุกชุดที่เครื่องมือสร้างให้เป็นข้อมูลที่สังเคราะห์ขึ้น ไม่ตรงกับที่พัก ผู้รับ หรือบัญชีจริงใด ไม่ได้จัดส่งได้จริง และไม่ควรนำไปใช้เพื่อยืนยันตัวตน เปิดบัญชี หรือหลบเลี่ยงข้อจำกัดใด ๆ แต่ใช้ได้เต็มที่กับงานทดสอบซอฟต์แวร์ของคุณเอง