16
ทดสอบซอฟต์แวร์ต่างประเทศ
ผมมีเพื่อนหลายคนที่เป็น STEs (Software Test Engineers วิศวกรทดสอบซอฟต์แวร์) ซึ่งขอไม่ให้ใส่บทนี้ไว้ท้ายสุดสงสัยว่าทำไมผมจึงนำเรื่องนักทดสอบซอฟต์แวร์ไว้ “ท้ายสุด” อย่างที่เป็นอยู่ มีเหตุผลอยู่ 2 ข้อคือ
ดังนั้นบทนี้จึงเป็นศูนย์รวม สำหรับผู้ที่ทำหน้าที่เป็นนักทดสอบแต่ไม่เคยทำเรื่อง i18N มาก่อนจะได้ไม่ต้องข้ามบทนี้ไป ถ้าคุณเป็นนักพัฒนา คุณก็ควรจะอ่านด้วยเผื่อนักทดสอบซอฟต์แวร์ของคุณตัดสินใจซื้อหนังสือเล่มนี้และคุณต้องการตัดค่าใช้จ่ายจากการนับ bug!
จุดเริ่มต้นที่น่าจะดีที่สุดคือต้องตัดสินใจว่าจะทดสอบอะไร
วางแผนว่าจะทดสอบอะไรบ้าง?
สิ่งที่ผมหยิบยกขึ้นมาข้างต้นเป็นการพูดเพียงเล็กน้อยเท่านั้นเนื่องจากการทดสอบไม่จำเป็นต้องรอจนทำผลิตภัณฑ์เสร็จ แต่เริ่มจากจุดเริ่มต้นเมื่อนักทดสอบซอฟต์แวร์ตรวจสอบข้อกำหนดต่างๆ และกะว่าจะทดสอบเสร็จเมื่อไร ซึ่งเป็นปัจจัยที่สำคัญอย่างยิ่งในการกำหนดว่า จะตัดคุณสมบัติส่วนใดออกบ้าง และอาจจะดีขึ้นสำหรับเวอร์ชั่นใหม่ซึ่งมีเวลาเพิ่มขึ้น บทนี้จึงเป็นประเด็นที่ต้องระลึกถึง
การปรับแต่งคุณสมบัติ (configurations) เพื่อทำการทดสอบทำได้มากมายหลายวิธีผมจะพยายามสรุปวิธีเหล่านี้ไว้ในตารางที่ 16.1
ตารางที่ 16.1 สภาพแวดล้อมที่ใช้ในการทดสอบที่ต้องพิจารณา
แบบ |
ระบบปฏิบัติการ |
การกำหนดค่า |
ฮาร์ดแวร์ |
1 |
NT/Win2K |
การกำหนดค่าตามภูมิภาค ให้กำหนดไปที่อื่น |
U.S./Any |
2 |
NT/Win2K |
ประเภท 1 บวกคีย์บอร์ดในท้องถิ่นนั้นที่ติดตั้งไว้ |
U.S./Any |
3 |
Win2K |
ประเภท 2 บวกภาษาของระบบที่มีค่าเริ่มต้นเปลี่ยนไป |
U.S./Any |
4 |
ทั้งหมด |
OS ที่ปรับเป็นภาษาท้องถิ่นหมดแล้ว(บน Win2K ให้เปลี่ยนภาษาทาง MUI) |
U.S./Any |
5 |
ทั้งหมด |
OS ที่ปรับเป็นภาษาท้องถิ่นหมดแล้ว |
ท้องถิ่นเฉพาะที่ |
เห็นได้ชัดว่าการทดสอบแบบที่ 5ในตารางที่ 16.1 จะพบ bug จำนวนมากที่เกี่ยวข้องกับ i18N แต่ไม่จำเป็นต้องติดตั้งระบบปฏิบัติการเวอร์ชั่นหลายภาษาในการจัดการเรื่องที่คุณต้องระลึกไว้เสมอมี 3 ข้อคือ
เมื่อพูดถึงทั้งหมดแล้วตอนนี้ผมจะมาดูทีละแบบ การตัดสินใจว่าจะต้องทำการทดสอบครอบคลุมมากน้อยแค่ไหน ไม่ได้ขึ้นอยู่กับนักทดสอบซอฟต์แวร์โดยตรงแต่สิ่งสำคัญอยู่ที่งานว่าจะต้องทำมากแค่ไหน จึงจะครอบคลุมผลิตภัณฑ์ทั้งหมดได้ดังนั้นจึงต้องพิจารณาข้อมูลอย่างรอบคอบ และชั่งน้ำหนักกับปัจจัยด้านอื่น เช่นความต้องการของตลาด ให้ดี
แบบที่ 1: การตั้งค่าตามภูมิภาค
Bugs สำคัญที่สุดที่พบสัมพันธ์กับ i18N พื้นฐาน ในส่วนที่ 1 ของหนังสือเล่มนี้ การใส่ข้อมูลถูกต้องไหม และข้อมูลที่ใส่ตามมามีการจัดการและแสดงผลถูกต้องหรือไม่? เรื่องนี้เอาไปใช้กับปัญหาอื่นๆ และเรื่องค่าของวัน/เวลา ค่าตัวเลขและเงินตราได้หรือไม่? จะเกิดอะไรขึ้นเมื่อการตั้งค่าปฏิทินเปลี่ยนไป ?
การทดสอบนี้ควรจะเน้นกับแผงควบคุม (control panel) บ่อยครั้งที่การทดสอบแอปพลิเคชั่นที่ดีที่สุดคือเลือกภาษาเฉเพาะและแปลกในการตั้งค่าภูมิภาค - อาจจะกำหนดรูปแบบขึ้นเองเป็นบางครั้ง เมื่อจะรายงาน bugs จงตรวจสอบให้มั่นใจว่าได้ระบุค่าที่คุณใช้ตั้งไปแล้ว เพราะมันยากที่จะจำได้เมื่อต้องตั้งค่าบ่อยๆไม่มีเรื่องใดที่จะกวนใจนักทดสอบซอฟต์แวร์มากไปกว่า การหา bug พบแล้วและกลับไม่เจอตอนกลับมาหาใหม่อีก!
นอกเหนือจากการทดสอบตั้งค่าที่ต่างกันแล้วการเลือกเน้นค่าซึ่งคุณรู้ว่าจะมีผู้ใช้บางครั้งก็มีประโยชน์แต่อย่าคิดว่าการทดสอบทั่วไปเป็นการเสียเวลา ที่ที่จะพบ bug ได้ดีที่สุดคือในอักขระภาษาถิ่น(locales) ซึ่งไม่มีใครคิดถึงไม่ว่าจะเป็นนักพัฒนาหรือนักทดสอบซอฟต์แวร์นอกจากนั้นยังทำให้คุณมั่นใจมากขึ้นเมื่อพิจารณาตลาดใหม่ๆ
แบบที่ 2: ใส่ค่าท้องถิ่นและเก็บข้อมูล
อาจจะหาบัคทั้งหมดที่พบในแบบที่ 1 ได้นอกจากนั้นคุณยังหาบัคที่สัมพันธ์กับการใส่ตัวอักขระในภาษาถิ่น และการเก็บไว้ตลอดกล่าวโดยทั่วไปแล้วปริมาณงานที่ทำตามแบบที่ 2 ได้ใช้ไปแล้วในแบบที่ 1 ดังนั้นน่าจะพิจารณาให้ครอบคลุมมากขึ้นด้วยค่าใช้จ่ายที่เท่ากันในแง่ของการวางแผน
แน่นอนว่าภาพจำลองสถานการณ์จริงนี้จะเพิ่มขึ้นเป็นทวีคูณ ทันทีที่คุณตกลงจะทดสอบเพิ่มขึ้น คุณจึงต้องแน่ใจว่ามีคนพร้อมและสามารถเปลี่ยน settings ได้สม่ำเสมอ - ในลักษณะงานที่ยุ่งยากกว่าแบบที่ 1
แบบที่ 3: Default System Language
อาจจะหาบัคทั้งหมดที่พบในแบบที่ 1 และ 2 ได้ และอาจจะพบบัคใหม่ๆได้เมื่อหาบัคที่สัมพันธ์กับตัวอักขระในภาษาถิ่นบนหน้ารหัสอื่นๆและเมื่อหาว่าแอปพลิเคชั่นที่ทดสอบนั้น (application under test – AUT) ทำงานอย่างไรกับอักขระในภาษาถิ่นเหล่านี้
การวางแผนทดสอบภาษาในตระกูลเฉพาะดูจะมีเหตุผลดังจะกล่าวต่อไปด้านล่าง(แต่ละเรื่องจะประกอบด้วยประเภทของบัคที่พบในภาษาตระกูลอื่นๆ)
คุณไม่จำเป็นต้องเลือกทุกแบบ เช่นถ้าคุณไม่ได้วางแผนใช้เวลาไปกับส่วนที่ 2ของหนังสือเล่มนี้ และสนับสนุนแอปพลิเคชั่นมัลติมีเดียมากนักคุณก็ต้องใช้เวลากับภาษาแบบ Unicode ให้มาก (อาจสรุปว่าใช้ไม่ได้ผล!)
แบบที่ 4: ระบบปฏิบัติการแบบ Faux-Localized
การทดสอบแบบนี้จะหาบัคทั้งหมดในแบบที่1 2 และ 3 ได้ (แม้ว่าจำนวนบัคที่หาได้ในแบบที่ 3 จะมากเท่าไรนั้นขึ้นอยู่กับภาษาที่เลือกใช้)โดยทั่วไปแล้วจะเป็นบัคเพิ่มเติมประเภทอื่น ที่คุณพบว่าสัมพันธ์องค์ประกอบ (รวมทั้งdialog ทั่วไป และ localized components เช่น Internet Explorer หรือ Microsoft Office) ที่มีในระบบปฏิบัติการซึ่งจะแตกต่างกันไปแล้วแต่ภาษา
Windows 2000 Multilanguage User Interface (MUI) และ Office 2000 Language Packs คือวิธีที่เหมาะสมที่สุด (และเป็นเพียงวิธีเดียวเท่านั้น) ที่จะใช้ทดสอบแบบนี้ได้แต่ก็ต้องพิจารณาให้ดีว่าต้องใช้องค์ประกอบเหล่านั้นใน AUT ของคุณหรือไม่
แบบที่ 5: ระบบปฏิบัติการแบบปรับเป็นภาษาถิ่นหมด
การทดสอบแบบนี้เป>็นเป็นการทดสอบขั้นสูงสุดซึ่งจะพบบัคในแบบอื่นๆได้ทั้งหมด (แม้ว่าจำนวนบัคที่หาได้ในแบบที่ 2 จะมากเท่าไรนั้นขึ้นอยู่กับภาษาที่เลือกใช้)ทรัพยากรที่จำเป็นต้องใช้ในการทดสอบแบบนี้มักจะใหญ่เกินกว่าจะพิจารณาในแง่ความเป็นจริงได้แม้คุณจะผลิตภัณฑ์ที่มีขนาดใหญ่มากพอและกำลังวางแผนใช้ระบบอัตโนมัติในการทดสอบก็ตาม
คุณจำเป็นต้องเป็นสมาชิกของ MSDN Universal หรือสมาชิกในสมาคมวิชาชีพเนื่องจากวิธีนี้จะทำให้คุณได้ระบบปฏิบัติการเวอร์ชั่นในภาษาถิ่นต่างๆทั้งหมดการใช้เวลาไปกับการเรียนรู้วิธีตั้งค่าแบบอัตโนมัติเป็นความคิดที่ดีสำหรับภาษาที่คุณไม่รู้จัก เพราะไม่ต้องใช้เวลากังวลมากนักกับ error messages ที่คุณไม่เข้าใจระหว่างการติดตั้ง (เป็นสิ่งที่ผมเรียนรู้จากประสบการณ์!)
เลือกใช้แบบใดแบบหนึ่งจากตารางที่ 16.1
การเลือกว่าจะใช้การทดสอบแบบใดนั้นนับเป็นเรื่องที่ซับซ้อนทีเดียวและคุณแทบจะไม่เจอปัญหา ซึ่งต้องวิเคราะห์ต้นทุน/กำไร ที่ซับซ้อนกว่านี้อีกแล้วโดยทั่วไปการทดสอบส่วนใหญ่ตามแบบที่ 2 ควบคู่ไปกับการเช็คบางจุดตามแบบที่ 3 ก็สมดุลดีแล้วเมื่อคุณเริ่มมีประสบการณ์กับนักพัฒนาและนักทดสอบซอฟต์แวร์ในองค์กรของคุณมากขึ้นคุณจะเริ่มทดสอบผลิตภัณฑ์ได้ล้ำลึกยิ่งขึ้น แต่นักพัฒนาจะต้องเข้าใจเรื่องนี้ด้วยและต้องสร้างบัค i18N ให้น้อยลงด้วย
การติดตั้งแอปพลิเคชั่นที่จะทดสอบ (AUT)
แม้ว่าขั้นตอนนี้จะดูเหมือนเป็นเรื่องซ้ำซากแต่ผมรับรองกับคุณได้เลยว่าไม่ใช่การติดตั้งระบบปฏิบัติการในภาษาถิ่นและการจัดการกับสถานการณ์ต่างๆ เช่นไดเรกทอรี่ปกติ (เช่น Program Files) ซึ่งอาจมีชื่อเป็นภาษาถิ่นเป็นเรื่องสำคัญ
มีเรื่องหลายๆแบบที่คุณทดสอบได้ในการติดตั้งแต่ละครั้ง
สำหรับสภาพแวดล้อมในการทดสอบขณะติดตั้งแอปพลิเคชั่นที่ใช้ SQL Server นั้น Test Server ของคุณควรจะแยกตัวอักษรเล็กใหญ่ได้เพราะจะช่วยให้เจอปัญหา เช่น อักษร ในภาษาเตอร์กี ซึ่งผมพูดไว้ในบทที่ 4 “เรื่อง User Interface” และบทที่ 12 “Jet, SQL Server และฐานข้อมูลอื่นๆ” การเลือกเซิร์ฟเวอร์ต่างกันอาจพบปัญหาได้เช่นกันการติดตั้ง Test SQL Server ให้เหมาะสมอาจทำให้ไม่พบปัญหาหลายอย่างที่ลูกค้าของคุณอาจจะพบได้ การติดตั้ง SQL Server ใหม่ด้วยประเภทต่างๆเป็นวิธีที่จะหาบัคซึ่งอาจไม่พบได้อย่างดี
การใช้กรณีทดสอบจากต่างประเทศ
เรื่องการทำรายการภาพจำลองการทดสอบ (หรือที่เรียกว่า test breakout ซึ่งมีกรณีทดสอบมากมายนั้น) ไม่รวมอยู่ในหนังสือเล่มนี้ แต่ผมจะคิดเรื่องนี้ไว้ในใจตอนที่คุณสร้างกรณีทดสอบสำหรับ AUT
สิ่งที่ต้องระลึกไว้ในเรื่อง i18N
สำหรับแอปพลิเคชั่นที่ทำใช้ทั่วโลกนั้นคุณควรจะพิจารณาตัวอย่างด้านล่างนี้
สิ่งที่ต้องระลึกไว้เกี่ยวกับ L10N
ในแอปพลิเคชั่นที่ทำเป็นภาษาถิ่นจะมีกรณีทดสอบจำนนมากที่ต้องพิจารณา ดังนี้
สิ่งที่ต้องระลึกถึงสำหรับคำที่ซับซ้อนทั่วไป
ที่ที่เราอยู่...
บทนี้มีการพูดหลายเรื่องที่เกิดขึ้นในการทดสอบแอปพลิเคชั่นที่ใช้ทั่วโลกประเด็นต่างๆที่จะต้องพิจารณาอย่างรอบคอบถ้าคุณต้องการขยายตลาดไปทั่วโลกเป็นเรื่องสำคัญที่นักทดสอบซอฟต์แวร์จะต้องระลึกไว้ว่าตนเองคิอคนสำคัญที่สุดในบริษัทที่กำลังขยายตลาดของสินค้า นักทดสอบซอฟต์แวร์คือคนที่จะช่วยประเมินตลาดที่จะเข้าไปบนพื้นฐานความเป็นจริงและความสำเร็จหรือล้มเหลวในตลาดโลกส่วนใหญ่จะอยู่ที่นักทดสอบเหล่านี้ว่าทำงานได้ดีแค่ไหนในการช่วยให้นักพัฒนาทำงานได้อย่างดี
เป็นการปิดท้ายเล่มที่ดี - ด้วยผลิตภัณฑ์ที่นักทดสอบซอฟต์แวร์เซ็นปิดงานนักพัฒนาภูมิใจ และเป็นที่ยอมรับจากลูกค้าทั่วโลกแม้ว่าบางครั้งในความเป็นจริงจะไม่เป็นเช่นนั้นในมุมมองระดับโลกนั้นคุณรับรองได้ว่าคุณจะทำสินค้าที่เข้าใกล้เป้าหมายของคุณมากที่สุด