
ทำความรู้จัก user acceptance test (UAT) ทำไมการทดสอบกับผู้ใช้จึงสำคัญ
เมื่อมีการพัฒนาโปรดักต์ขึ้นมา ไม่ว่าจะเป็น ซอฟต์แวร์ แอปพลิเคชัน หรือเว็บไซต์ก็ตาม มีขั้นตอนสำคัญในการพัฒนาซอฟต์แวร์ให้ประสบความสำเร็จเดียวกัน นั่นก็คือ การทำ UAT หรือ การทดสอบโปรดักต์ก่อนใช้งานจริงนั่นเอง เพราะระบบนั้นมีความซับซ้อนและเกี่ยวข้องกับประสบการณ์การใช้งาน หากปล่อยโปรดักต์ที่มีข้อผิดพลาดไปก็คงไม่ดี ดังนั้น การทำ UAT จึงสำคัญกับการพัฒนาโปรดักต์และช่วยลด Cost ได้มากมายเลยล่ะ
วันนี้ Talance จะพาไปทำความรู้จักกับ UAT ว่าคืออะไร สำคัญอย่างไร และมีขั้นตอนอะไรบ้าง เพื่อการเปิดตัวที่ประสบความสำเร็จ!
UAT คืออะไร ?
User Acceptance Test (UAT) คือ กระบวนการทดสอบซอฟต์แวร์โดยผู้ใช้งานจริงหรือลูกค้า เป็นการตรวจสอบระบบขั้นสุดท้ายก่อนปล่อยโปรดักต์ เพื่อให้มั่นใจได้ว่าระบบที่พัฒนาขึ้นนี้พร้อมใช้งานและสามารถใช้งานได้ตรงตามความต้องการของธุรกิจและผู้ใช้งาน โดยจะต้องผ่านเกณฑ์การยอมรับที่เรียกว่า Acceptance Criteria ที่ผู้ใช้งานและทีมพัฒนาระบบได้กำหนดขึ้นร่วมกันเสียก่อน จึงจะสามารถปล่อยโปรดักต์นั้นออกไปใช้งานจริงได้
การทำ UAT สำคัญอย่างไร

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

ที่มา : calibraint
Black Box Testing
การทดสอบแบบ Black Box มักจัดอยู่ในประเภทการทดสอบการทำงาน แต่อาจมองว่าเป็นการทำ UAT ได้ด้วย เพราะมีหลักการเดียวกัน โดยจะเป็นการทดสอบที่อยู่ในช่วง Alpha Testing ที่จะทดสอบฟังก์ชันต่าง ๆ เพื่อมองภาพรวมว่าเป็นไปตามที่กำหนดในช่วง Pre-alpha แล้วหรือยัง โดยไม่จำเป็นต้องเห็นโครงสร้างภายในหรือโค้ด มุ่งเน้นให้ตรงตามความต้องการ ข้อดีคือ ทดสอบได้เร็วและมีประสิทธิภาพ ไม่จำเป็นต้องมีความรู้เรื่องโค้ด หาข้อผิดพลาดที่ไม่ได้รับการสังเกตได้ดี ส่วนข้อเสียก็เพราะการไม่ได้ดูโค้ดนี่แหละ ทำให้ค้นหาข้อผิดพลาดที่เกิดขึ้นในโค้ดไม่ได้ จึงไม่เหมาะกับซอฟต์แวร์ที่โค้ดซับซ้อน
Beta Testing
เป็นการทดสอบโดยผู้ใช้งานจริงและประเมินตามจุดประสงค์ที่ตั้งไว้ พร้อมทั้งให้ Feedback แก่ผู้พัฒนาปรับปรุงต่อไป เป็นขั้นตอนต่อจาก Alpha Testing ที่ผ่านการแก้ไขข้อผิดพลาดมาแล้ว ตามจริงแล้ว Beta Testing ก็ถือเป็นการทดสอบแบบ Black Box Testing รูปแบบหนึ่ง แต่ซอฟต์แวร์จะอยู่ในขั้นที่ใกล้เคียงกับเวอร์ชันสมบูรณ์แล้ว และมีข้อดี คือ ใช้เวลาไม่นานในการทดสอบ เพราะต้องการแก้ไขให้ได้ระบบที่สมบูรณ์ออกมาให้เร็วที่สุดนั่นเอง
Operational Acceptance Testing (OAT)
การทดสอบการยอมรับการดำเนินงาน การทดสอบแบบนี้แตกต่างจากการทดสอบแบบอื่นตรงที่ผู้ดูแลระบบจะเป็นผู้ทดสอบเอง และทดสอบในสภาพแวดล้อมจำลอง โดยการทดสอบแบบนี้จะเน้นด้านการปฏิบัติงานตามที่กำหนดไว้และความพร้อมในการดำเนินงานของระบบ เช่น ความเข้ากันได้ของโปรดักต์ ความน่าเชื่อถือ และความมั่นคง ซึ่งควรรวมถึงเวิร์กโฟลว์สำหรับแผนสำรองข้อมูล การฝึกอบรมผู้ใช้ กระบวนการบำรุงรักษาต่าง ๆ และการตรวจสอบความปลอดภัย เพื่อให้มั่นใจว่าผู้ดูแลสามารถทำให้ระบบทำงานได้อย่างถูกต้องสำหรับผู้ใช้งานจริง
ข้อดี คือ ได้ Feedback เร็ว มีเวลาแก้ไขเพิ่มคุณภาพมากขึ้น แถมยังจำลองสถานการณ์และสภาพแวดล้อมขึ้นเองได้ แม้จะเป็นโอกาสที่เกิดขึ้นได้ยากในการใช้ของผู้ใช้งานจริงก็ตาม ทำให้ได้ทดสอบกรณีหลากหลายกว่า
Contract Acceptance Testing (CAT)
การทดสอบการยอมรับตามสัญญา เป็นการทดสอบที่มุ่งเน้นตามข้อกำหนดที่ผู้ใช้งานและทีมพัฒนากำหนดไว้ร่วมกันในสัญญา และทดสอบโดยผู้ใช้จริงหรือผู้ทดสอบอิสระ
Regulation Acceptance Testing (RAT)
การทดสอบการยอมรับตามกฎข้อบังคับ เป็นการทดสอบที่มุ่งเน้นรับประกันซอฟต์แวร์ให้เป็นไปตามกฎและข้อบังคับทางกฎหมาย ทดสอบโดยผู้ใช้จริงหรือผู้ทดสอบอิสระ แต่ในบางครั้งอาจมีการตรวจสอบผลโดยหน่วยงานกำกับดูแลด้วย
ทั้งนี้ การทดสอบการยอมรับตามสัญญาและการทดสอบการยอมรับตามกฎข้อบังคับ มีจุดประสงค์เดียวกัน คือ เพื่อสร้างความเชื่อมั่นว่าระบบปฏิบัติตามสัญญาและข้อบังคับเรียบร้อยแล้ว
5 ขั้นตอนในการทำ UAT
1. วิเคราะห์ Business Requirements
แน่นอนว่าการจะทำ UAT ให้ได้มีประสิทธิภาพ ส่วนสำคัญที่ขาดไม่ได้คือ Business Requirements หรือ ความต้องการเชิงธุรกิจ เพื่อนำไปวางแผนการทดสอบต่อไป ทีมทดสอบ UAT จึงควรเริ่มจากทำความเข้าใจเป้าหมายทางธุรกิจ ความต้องการของผู้ใช้ และขอบเขตของโปรเจกต์ให้ชัดเจนก่อนเป็นอันดับแรก
2. สร้างแผนการทำ UAT
ในขั้นตอนนี้ เรียกได้ว่าแทบจะเหมือนกันกับแผนการทดสอบปกติตามขั้นตอนของระบบเลย เพราะทีมทดสอบนั้นจะร่วมกันกำหนดแผนงานและขั้นตอนการดำเนินงาน ว่าต้องการทดสอบอะไรบ้าง มีไทม์ไลน์การทำงาน รวมถึงแบ่งหน้าที่ผู้รับผิดชอบงานในส่วนต่าง ๆ ไปจนถึงจัดการข้อกำหนดหรือข้อตกลงให้เรียบร้อย ให้เกิดความเข้าใจที่ตรงกัน เพื่อให้มั่นใจว่าการทำ UAT นี้จะเป็นไปตามแผนและตอบโจทย์ความต้องการเชิงธุรกิจของผู้ใช้งาน
3. กำหนดสถานการณ์และกรณีที่จะทดสอบ
เพื่อให้ได้ผลการทดสอบที่มีความน่าเชื่อถือมากที่สุด ทีมทดสอบควรกำหนดสถานการณ์ (Test Scenarios) และกรณีทดสอบที่ใช้ในการทดสอบ (Test Cases) ไปจนถึงข้อมูลทดสอบ (Test Data) บนสถานการณ์จริงหรือใกล้เคียงกับสถานการณ์การใช้งานจริงมากที่สุด เช่น ใช้ทรัพยากรบนเครื่องที่ใกล้เคียงกับเครื่องที่จะใช้งานจริง, ตรวจสอบประสิทธิภาพการใช้งาน ซึ่งการทดสอบสามารถทำได้หลายรูปแบบ เช่น การทดสอบซอฟต์แวร์ แอปพลิเคชัน หรือเว็บไซต์ ก็จะสามารถทำผ่านโปรแกรม Live Streaming ได้
อธิบายง่าย ๆ สถานการณ์ ก็คือสถานการณ์สมมติที่ผู้ใช้อาจพบได้เมื่อใช้งานโปรดักต์ โดยปกติแล้ว สถานการณ์การทดสอบควรสื่อถึงแนวคิดง่าย ๆ ของสิ่งที่จะทดสอบ
ยกตัวอย่างเช่น ตรวจสอบการทำงานของระบบตะกร้าสินค้า โดยแต่ละสถานการณ์ต้องเชื่อมโยงกับข้อกำหนดของผู้ใช้งานอย่างน้อย 1 – 2 ข้อ เพื่อตรวจสอบว่าระบบใช้งานได้
ส่วนกรณีในการทดสอบ คือ ชุดการดำเนินการที่ใช้เพื่อทดสอบและตรวจสอบลักษณะการทำงาน คุณลักษณะ หรือฟังก์ชันการทำงานของระบบ เป็นส่วนที่ลงรายละเอียดมากและต้องสอดคล้องกับสถานการณ์การทดสอบทั้งหมด โดยสามารถแปลงเรื่องราวของผู้ใช้และธุรกิจ เพื่อให้ได้กรณีทดสอบที่มีประสิทธิภาพได้ด้วย ยกตัวอย่างเช่น
- ตรวจสอบผู้ใช้ที่ไม่ได้ลงทะเบียนเพิ่มสินค้าลงในตะกร้าสินค้า
- ตรวจสอบการกรองตะกร้าสินค้า
- ทำเครื่องหมายที่ปุ่ม “Shopping ต่อ”
กรณีในการทดสอบจะมีประสิทธิภาพมากขึ้นเมื่อมีจุดประสงค์ที่ชัดเจน และผู้ทดสอบเข้าใจได้ว่าควรทำอย่างไรเพื่อให้ผลสำเร็จ ตัวอย่างคู่มือผู้ใช้สำหรับกรณีทดสอบ เช่น
- เปิดแอปพลิเคชัน
- เพิ่มสินค้าลงในตะกร้าสินค้า
- ไปที่ตะกร้าสินค้า
รวมถึงอาจรวมผลลัพธ์ที่คาดการณ์ไว้ในกรณีทดสอบด้วย เพื่อให้ผู้ทดสอบรู้ว่ากำลังจะเกิดอะไรขึ้น เช่น
- สินค้าจะปรากฏในตะกร้าสินค้า
- ระบบจะขอให้คุณอนุญาตในฐานะผู้ใช้ที่ลงทะเบียน
4. ลงมือตามแผนและบันทึกข้อมูล
เริ่มทำการทดสอบตามแผนที่วางไว้ จดบันทึกผลลัพธ์ ปัญหา และข้อผิดพลาดต่าง ๆ ที่เกิดขึ้น และทางที่ดีควรจะบันทึกหมายเหตุเกี่ยวกับวิธีการแก้ไขข้อผิดพลาด นอกจากนี้ยังต้องมีการสื่อสารที่ดีระหว่างผู้ทดสอบ ผู้พัฒนา และผู้ใช้งาน เพื่อให้การทดสอบดำเนินไปได้อย่างมีประสิทธิภาพและราบรื่น
5. ประเมินผลที่ได้
เมื่อได้ข้อมูลจากการทำ UAT แล้ว ก็มาถึงขั้นตอนการประเมินผลการทดสอบ ว่ามีปัญหาอะไรบ้าง มีแนวทางการแก้ไขอย่างไร หากไม่ตรงตามข้อกำหนดหรือพบข้อผิดพลาด จะต้องนำกลับไปแก้ไขและทดสอบใหม่อีกครั้งจนกว่าจะผ่าน ทั้งนี้ การประเมินควรทำทั้งเชิงปริมาณและเชิงคุณภาพ เช่น ปริมาณของปัญหา รายละเอียดของปัญหา แนะนำว่าควรทำ Feedback กันภายในทีมทดสอบและทีมพัฒนาด้วย เพื่อให้มีข้อสรุปที่ตรงกันซึ่งจะทำให้ดำเนินงานได้เป็นระบบมากขึ้น
หากผลการทดสอบไม่พบข้อผิดพลาดและผ่านเกณฑ์การยอมรับแล้ว จะมีการลงนามอนุมัติจากเจ้าของโครงการเป็นลายลักษณ์อักษร (UAT Sign Off) เพื่ออนุญาตให้นำระบบไปใช้งานจริง
เพียงเท่านี้ การทำ UAT ก็เสร็จสิ้น พร้อมปล่อยออกไปใช้งานจริงแล้ว!
การทำ UAT มีประโยชน์อย่างไรบ้าง
การทำ UAT เป็นการตรวจสอบว่าซอฟต์แวร์ตรงตามความต้องการของผู้ใช้งานหรือไม่ ซึ่งผู้ใช้งานจะให้ Feedback เพื่อปรับปรุงแก้ไขต่อไป ในเมื่อเป็นการทดสอบก่อนปล่อยโปรดักต์ออกไปใช้งานจริง ประโยชน์มีแน่นอน แต่จะมีอะไรบ้างนั้น เราได้สรุปข้อดีที่สำคัญมาไว้ให้แล้ว ดังนี้
ลดการเกิดข้อผิดพลาดของระบบในขณะที่ใช้งานจริง
การทำ UAT ช่วยระบุปัญหาและข้อผิดพลาดที่อาจเกิดขึ้นกับผู้ใช้งาน และอาจพบข้อผิดพลาดที่ทีมพัฒนาอาจพลาดไป เพราะไม่สามารถพบได้ในการทดสอบอื่น จึงช่วยลดโอกาสการเกิดปัญหาต่าง ๆ ที่เกิดขึ้นหลังการปล่อยโปรดักต์ออกไปใช้งานได้
และเมื่อรู้ถึงปัญหาและข้อผิดพลาดที่เกิดขึ้นแล้ว การกลับมาแก้ไขส่วนนั้น ๆ ทำให้ทีมพัฒนาเองได้กลับมาปรับปรุงซอฟต์แวร์ให้ดียิ่งขึ้น ยิ่งไปกว่านั้นการรู้สาเหตุของปัญหาที่ชัดเจนจากผู้ใช้งานจริง ทำให้สามารถแก้ไขข้อผิดพลาดต่าง ๆ ได้ง่ายขึ้นอีกด้วย
เพิ่มพูนความพอใจของลูกค้า
การทำ UAT นั้น เกี่ยวข้องกับผู้ใช้งานโดยตรง ทำให้ทีมพัฒนาเข้าใจความต้องการของผู้ใช้มากขึ้น นำไปสู่การพัฒนาโปรดักต์ที่ตรงกับความคาดหวังของผู้ใช้งานให้ได้มากที่สุด การทำ UAT ส่งเสริมให้คุณภาพของซอฟต์แวร์ดีขึ้นและออกมาเป็นโปรดักต์ที่ดี ลดความเสี่ยงที่จะพบปัญหาโดยผู้ใช้งานจริง ลูกค้าถูกใจแน่นอน
ประหยัดเวลาและทรัพยากร
เนื่องจากการทำ UAT ช่วยลดความเสี่ยงที่จะเกิดปัญหาในการใช้งานจริง ไม่เพียงแต่ทำให้ซอฟต์แวร์ให้มีคุณภาพและเหมาะสมกับการใช้งานจริง แต่ยังช่วยประหยัดเวลาและทรัพยากรในการแก้ไขปัญหาหลังการปล่อยโปรดักต์ออกมาได้ดีเลยทีเดียวล่ะ
ทีมพัฒนาได้พัฒนาตนเอง
นอกจากนี้ การทำ UAT ยังเป็นประโยชน์ต่อทีมพัฒนาเองด้วย เพราะถือเป็นการให้ Feedback ระหว่างการพัฒนาเกี่ยวกับการแก้ไข และขั้นตอนต่าง ๆ ช่วยให้ภายในทีมเกิดความเข้าใจในตัวโปรดักต์ตรงกัน การสื่อสารกันภายในทีมก็จะมีประสิทธิภาพขึ้นด้วยเช่นกัน

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