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. การทดสอบบน Windows 2000 เป็นวิธีที่ฉลาดและประหยัดที่สุดในการทดสอบพฤติกรรมภายใต้แอปพลิเคชั่นอื่นเนื่องจากคุณสามารถเปลี่ยนตัวเลือกภูมิภาค และภาษาระบบที่เป็นดีฟอล์ทได้ง่ายคุณอาจจะเพิ่มขีดความสามารถในการเปรียบเทียบภาษากับ terminal services ของ Windows 2000
  2. เมื่อดูสภาพแวดล้อมแบบอื่นๆอีก 4 แบบในตารางที่ 16.1 จะเห็นว่าจำนวนงานที่ต้องทดสอบมีเพิ่มขึ้นมาก (สิบเท่าหรือมากกว่านั้นกว่าจะถึงแบบที่ 5)
  3. จำนวน bug ที่พบ ซึ่งคุณจะหาไม่เจอในการกำหนดค่าแบบอื่น จะลดลงมาก (ปกติจะพบข้อบกพร่องน้อยกว่า 1% ในแบบที่ 5)

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

แบบที่ 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

ในแอปพลิเคชั่นที่ทำเป็นภาษาถิ่นจะมีกรณีทดสอบจำนนมากที่ต้องพิจารณา ดังนี้

สิ่งที่ต้องระลึกถึงสำหรับคำที่ซับซ้อนทั่วไป

ที่ที่เราอยู่...

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

เป็นการปิดท้ายเล่มที่ดี - ด้วยผลิตภัณฑ์ที่นักทดสอบซอฟต์แวร์เซ็นปิดงานนักพัฒนาภูมิใจ และเป็นที่ยอมรับจากลูกค้าทั่วโลกแม้ว่าบางครั้งในความเป็นจริงจะไม่เป็นเช่นนั้นในมุมมองระดับโลกนั้นคุณรับรองได้ว่าคุณจะทำสินค้าที่เข้าใกล้เป้าหมายของคุณมากที่สุด