UAT และการตรวจรับระบบ — ด่านสุดท้ายก่อนจ่ายเงินงวดใหญ่ ที่ธุรกิจส่วนมากตรวจผิดวิธี

ระบบที่ผ่านการทดสอบในห้องประชุมมักไปสอบตกหน้างานจริง บทความนี้อธิบายการทำ UAT อย่างมืออาชีพ ตั้งแต่การออกแบบชุดทดสอบจากเดือนที่ยากที่สุดของธุรกิจ การแบ่งระดับความรุนแรงของปัญหา จนถึงเกณฑ์เซ็นรับและช่วงประกันผลงาน
ในสัญญาพัฒนาซอฟต์แวร์เกือบทุกฉบับจะมีคำว่า UAT หรือ User Acceptance Testing เป็นเงื่อนไขก่อนจ่ายเงินงวดใหญ่ แต่ในทางปฏิบัติ การตรวจรับของธุรกิจจำนวนมากคือการนั่งดูผู้พัฒนาสาธิตระบบในห้องประชุม คลิกตามเส้นทางที่เตรียมมา เห็นทุกอย่างทำงาน แล้วเซ็นรับ ปัญหาคือเส้นทางที่สาธิตคือเส้นทางที่ผู้พัฒนารู้ว่าผ่าน ระบบไปพังเอาตอนเจอความจริงที่ไม่มีในเดโม ลูกค้าคืนของครึ่งบิล ส่งของงวดเดียวจากสองใบสั่ง หรือแก้ราคาหลังออกใบกำกับ การตรวจรับที่แท้จริงจึงไม่ใช่การดูว่าระบบทำอะไรได้ แต่คือการเอางานที่ยากที่สุดของธุรกิจคุณไปทดสอบว่าระบบรับได้จริงไหม ก่อนที่เงินงวดสุดท้ายและอำนาจต่อรองทั้งหมดจะออกจากมือ
ออกแบบชุดทดสอบจากเดือนที่ยากที่สุด ไม่ใช่จากเมนูของระบบ
วิธีสร้างชุดทดสอบที่ดีที่สุดไม่ต้องใช้ความรู้ทางเทคนิคเลย ให้เปิดข้อมูลจริงของเดือนที่วุ่นวายที่สุดในรอบปี แล้วคัดเหตุการณ์จริงมาเป็นข้อสอบ บิลที่มีส่วนลดซ้อนโปรโมชัน การคืนสินค้าบางรายการหลังจ่ายเงินแล้ว ใบสั่งซื้อที่ของมาไม่ครบและต้องรับเป็นสองรอบ ลูกหนี้ที่จ่ายรวมหลายบิลในโอนเดียว และการปิดยอดวันที่มีทั้งเงินสด โอน และบัตร ทดสอบด้วยข้อมูลจริงที่ปิดชื่อลูกค้า ไม่ใช่ข้อมูลตัวอย่างสวย ๆ ที่ผู้พัฒนาเตรียมให้ และให้คนที่ทำงานนั้นจริงทุกวันเป็นคนกดเอง ไม่ใช่ผู้จัดการที่นาน ๆ แตะระบบที เพราะคนหน้างานจะเจอสิ่งที่คนออกแบบไม่เคยคิดถึงภายในชั่วโมงแรกเสมอ
แจ้งผ่าน LINE
แนบรูป + จุดที่พบ
รับเรื่อง + มอบหมายช่าง
ภายใน 30 นาที
กำลังซ่อม
ช่างอัปเดตจากหน้างาน
เสร็จ + แจ้งผู้แจ้งอัตโนมัติ
พร้อมรูปหลังซ่อม
แบ่งระดับปัญหา และตั้งเกณฑ์ผ่านที่ยุติธรรมกับทั้งสองฝ่าย
ข้อผิดพลาดที่พบระหว่างทดสอบไม่เท่ากันทุกข้อ และการปฏิบัติกับมันเหมือนกันหมดคือสูตรของความขัดแย้ง ระดับวิกฤตคือสิ่งที่ทำให้ทำงานต่อไม่ได้หรือตัวเลขเงินผิด เช่น ภาษีคำนวณผิดหรือสต๊อกไม่ตัด ระบบจะผ่านการตรวจรับไม่ได้ถ้ายังมีข้อใดค้างอยู่ ระดับสำคัญคือสิ่งที่งานเดินได้แต่ต้องอ้อม อนุญาตให้ผ่านได้เมื่อมีทางเลี่ยงชัดเจนและกำหนดวันแก้เป็นลายลักษณ์อักษร ส่วนระดับเล็กน้อยอย่างข้อความหรือตำแหน่งปุ่ม รวบเป็นรายการแก้หลังเปิดใช้ได้ เกณฑ์แบบนี้ยุติธรรมกับทั้งสองฝ่าย ผู้ว่าจ้างไม่ต้องรับระบบที่เลขผิด และผู้พัฒนาไม่ถูกดึงงวดเงินค้างไว้ด้วยเรื่องสีปุ่ม ที่สำคัญ ควรตรวจรับเป็นรายโมดูลตามเฟส ไม่ใช่รอรับทั้งระบบทีเดียวตอนจบ เพราะปัญหาที่เจอเร็วแก้ถูกกว่าปัญหาเดียวกันที่เจอช้าเสมอ
หลังเซ็นรับ — ช่วงประกันผลงานและการวิ่งคู่
การเซ็นตรวจรับไม่ใช่จุดจบของการทดสอบ แต่คือจุดเริ่มของการทดสอบที่จริงที่สุด คือการใช้งานจริง สำหรับระบบที่แทนที่ระบบเดิม ช่วงวิ่งคู่ที่ให้ระบบเก่าและใหม่ทำงานขนานกันสักหนึ่งรอบปิดยอด แล้วเทียบผลลัพธ์กัน คือการทดสอบที่เชื่อถือได้ที่สุดเท่าที่มี ถ้าตัวเลขสองระบบตรงกันทั้งเดือน ความมั่นใจที่ได้มีค่ากว่าการทดสอบในห้องประชุมกี่รอบก็ตาม ส่วนช่วงประกันผลงานควรระบุในสัญญาให้ชัดว่านานเท่าไร ครอบคลุมอะไร และเวลาตอบสนองต่อปัญหาแต่ละระดับคือกี่ชั่วโมง พร้อมกันงวดเงินสุดท้ายส่วนหนึ่งไว้จ่ายเมื่อพ้นช่วงประกัน ข้อตกลงที่ชัดเจนแบบนี้ไม่ใช่ความไม่ไว้ใจ แต่คือสิ่งที่ทำให้ทั้งสองฝ่ายทำงานร่วมกันต่อได้อีกหลายปีโดยไม่ต้องเดาใจกัน
- ให้คนหน้างานจริงทดสอบด้วยข้อมูลจริงจากเดือนที่ยากที่สุด ระบบที่ผ่านข้อสอบชุดนี้ จะผ่านทุกเดือนหลังจากนั้น
- ลงทะเบียนทุกปัญหาในทะเบียนเดียวพร้อมระดับความรุนแรง ปัญหาที่อยู่ในแชทคือปัญหาที่จะหายไปก่อนถูกแก้
- เกณฑ์ผ่านที่ชัดเจนปกป้องทั้งสองฝ่าย วิกฤตต้องเป็นศูนย์ สำคัญต้องมีทางเลี่ยงและวันแก้ เล็กน้อยรวบไว้หลังเปิดใช้
Whale Task ยินดีให้ลูกค้าตรวจงานเราด้วยมาตรฐานนี้ทุกโปรเจกต์ เราส่งมอบเป็นเฟสพร้อมเกณฑ์ตรวจรับรายข้อตั้งแต่ใบเสนอราคา สนับสนุนการวิ่งคู่กับระบบเดิมก่อนตัดจริง และระบุช่วงประกันผลงานกับเวลาตอบสนองไว้ในสัญญาอย่างชัดเจน ถ้าคุณกำลังจะตรวจรับระบบจากผู้พัฒนารายใดอยู่ หรืออยากได้เกณฑ์ UAT ที่ยุติธรรมสำหรับโปรเจกต์ถัดไป ปรึกษาเราได้ฟรี
บริการที่เกี่ยวข้อง
รับพัฒนาระบบและซอฟต์แวร์เฉพาะทาง
ออกแบบและวางระบบตามความต้องการเฉพาะของธุรกิจคุณ ตั้งแต่ต้นจนใช้งานจริง
WhaleScope
ดูโครงสร้างตลาดของทุกหมวดธุรกิจไทย บน WhaleScope
รายชื่อบริษัท ผู้เล่นรายใหญ่ และอัตราคงอยู่ของแต่ละหมวด — จากข้อมูลจดทะเบียน 2 ล้านนิติบุคคล
อ่านต่อ

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

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

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

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