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