Functional Automated Test
ปัจจุบัน การทดสอบซอฟต์แวร์ถือเป็นเรื่องที่สำคัญมากในธุรกิจ ไม่ว่าจะเพื่อประสิทธิภาพในการทำงานของระบบ เพื่อการส่งมอบซอฟต์แวร์การทดสอบซอฟต์แวร์นั้นถือเป็นกระบวนการอย่างหนึ่งในการพัฒนาซอฟต์แวร์ เพื่อหาข้อผิดพลาดและป้องกันข้อผิดพลาดที่จะเกิดขึ้น และช่วยให้ซอฟต์แวร์ที่พัฒนานั้น มีประสิทธิภาพในการทำงานด้านต่าง ๆ มากขึ้น ในการทดสอบ Software (Software Testing) จึงจำเป็นที่จะต้องคำนึงถึง SDLC (Software Development Life Cycle) ซึ่งเป็นหัวใจในการพัฒนา Software/ Application ในการทำ Software/Application Testing ก็เป็นหนึ่งในขั้นตอนที่จำเป็นและสามารถเพิ่มคุณภาพ ประสิทธิภาพ และความรวดเร็วในการพัฒนา Software Automated Test Function จึงเป็นทางเลือกในการทดสอบประสิทธิภาพในการทำงานของ Software/Application ช่วยให้ Software Developer ทราบถึงประสิทธิภาพในการทำงานของ Software/Application ที่ได้มีการพัฒนาขึ้นมา ไม่ว่าจะเป็นในเรื่องของ
1. Accuracy ความถูกต้องแม่นยำของ Software/Application ในการทำงานตามความต้องการของ USER
2. Reliability ความหน้าชื่อถือของ Software/ Application ที่ผ่านการทดสอบอย่างถูกต้อง
3. Predictability การป้องกันความผิดพลาดที่จะเกิดขึ้นในอนาคต
Software Testing หรือ Functional Testing ในปัจจุบันทำได้ 2 วิธีคือ
Manual Testing คือ การใช้คนในทดสอบระบบตามการทำงานที่เตรียมไว้
Automate testing คือ การใช้ เครื่องมือหรือ AI มาทำการทดสอบแทนคน

Automated VS Manual Test
Reusability สามารถนำ Robot หรือ AI กลับมาทดสอบหลายๆ รอบโดยสามารถลดแรงงานคและนำคนไปทำงานอื่นๆ ที่มีประโยชน์และประสิทธิภาพ ประสิทธิผลต่อองค์กรและธุรกิจ
- Consistency การใช้คนทำงานอย่างไรก็ตามมีโอกาสที่จะเกิด Human Error ได้เนื่องจากคนถ้าทำงานติดต่อกันเป็นเวลานานจะเกิดความเหนื่อยล้าจะทำให้เกิดความผิดพลาดเล็กๆ น้อยๆ ได้ และ อีกสิ่งหนึ่งคือรายงานที่เกิดขึ้นจากคนจะมีการผิดพลาดหรือเจตนาใส่ผลลัพธ์ที่ผิดได้ ซึ่งต่างจาก AI แม่นยำและเที่ยงตรง
- Productivity ทำงานได้เร็วและต่อเนื่องเป็นเวลานานมากกว่าคนจึงทำให้ผลผลิตที่ได้มากขึ้นต่อวัน
ประเภทในการใช้งาน Automated Test tools
- Functional testing: การทดสอบซอฟต์แวร์ว่าทำงานได้ถูกต้องตามสิ่งคาดหวังไว้
- Regression testing: การทดสอบระบบในการทำงานซ้ำๆ กันโดยใช้ข้อมูลที่ต่างกันในจำนวนมากเพื่อทำให้มั่นใจว่าข้อมูลที่จะเกิดหรือได้ระบบเข้าในระบบจะไม่ทำให้ระบบทำงานผิดพลาด
- Increase Test Coverage: เครื่องมือหรือ AI สามารถทำงานได้ 7×24 โดยไม่หยุดพักจะทำให้เราสามารถทดสอบระบบได้ครอบคลุมและมั่นใจว่าระบบถูกต้องในระยะวันเวลาที่จำกัด
- User acceptance test (UAT): การทดสอบระบบในส่วนนี้จะต้องใช้ผู้ใช้งานจริงมาทดสอบระบบในบางครั้งระยะเวลาที่จำกัดทำให้ผู้ใช้ทดสอบระบบได้ไม่ครอบคลุมตามข้อฒุลที่ต้องการ Automated test หรือ AI จะเข้ามาช่วยทดสอบและบันทึก VDO และผลลัพธ์ในการทดสอบเก็บไว้ผู้ใช้งานสามารถตรวจสอบความถูกต้องจาก VDO และ Excel ที่เก็บผลลัพธ์ไว้
- Amount of Data Being Tested: การทดสอบในระบบที่ต้องใช้จำนวนข้อมูลเยอะๆ ในการทำงานเดิมๆ ซ้ำแล้วซ้ำอีก AI มาลดระยะเวลาและเพิ่มความถูกต้องได้มาก
- Test Maintenance: มีหลายๆ องค์กรจะใช้พนักงานในการทดสอบระบบทุกๆ เช้าก่อนที่ผู้ใช้งานจะเข้ามาใช้ว่าระบบยังทำงานได้หรือไม่เราสามารถใช้ AI ตั้งเวลาให้ทำงานแทนคนในทุกวันได้
- Data Entry: การทำงานบางครั้งเราอาจจะต้องการข้อมูลเริ่มจำนวนมากมายมหาศาลในการทำงานต่อไปการใช้แรงงานคนใส่ข้อมูลเข้าในระบบเป็นอะไรเสียเวลาและกำลังคนอย่างมากเราสามารถใช้ AI เข้ามาทำงานแทน
- Replace Human activity: ในการทำงานที่มีขั้นตอนชัดเจนซ้ำๆ กันเป็นประจำทุกครั้งเราสามารถให้ AI เข้ามาทำงานแทนได้
- Data reconciliation: สามารถใช้ AI ในการตรวจสอบข้อมูลจาก 2 แหล่งที่มาว่าเหมือนกันหรือไม่
- Data migration: ใช้ automated test tools ในการย้าย Data ข้อมูลจากระบบหนึ่งไปอีกระบบหนึ่ง

มีเพียง 4 ขั้นตอนง่ายๆ
- Prepare: ทางบริษัทสามารถแนะนำขั้นตอนการจัดเตรียมข้อมูลและตรวจสอบระบบก่อนการทำงาน Automated หรือวิธีจัดเตรียม Data
- Create: บริษัทมีผู้เชี่ยวชาญในการสร้าง AI ให้ท างานตามขั้นตอน
- Verify: ปรับปรุง AI ที่เราสร้างไว้ให้สามารถทำงานตามเงื่อนไขของระบบได้
- Integrate: ทำให้ AI สามารถส่งผ่านข้อมูลต่างตามฟังก์ชั่นการทำงานทั้งภายในระบบและระบบที่เกี่ยวข้อง

การทำ Automate Test แบ่งออกเป็นหลาย Use case ได้แก่
Use case1: ลูกค้าได้เปลี่ยน Core Banking ซึ่งประกอบด้วยหลายระบบๆ ที่มีความซับซ้อน เช่น ระบบ Loan origination system, Baht net และระบบอื่นๆ ซึ่งการฟังก์ชั่นการทำงานที่ซับซ้อนและเชื่อมโยง ข้อมูลกับหลายๆ ระบบ จึงทำเป็นต้องทดสอบ การทำงานหลายเงื่อนไข และจำนวนข้อมูลหลายๆ ชุดจึงทำให้ต้องใช้ Tester จำนวนมาก และเมื่อมีการแก้ไขระบบจากข้อผิดพลาดก็จะต้องนำ Tester กลุ่มเดิมมาทำการทดสอบอีกหลายๆ รอบจึงทำให้เสียทั้งกำลังคนและใช้เวลานานทาง บริษัทได้เข้าไปเป็นที่ปรึกษาทางด้านการทดสอบระบบ จึงได้นำ Automated test tools ไปช่วยในการทดสอบระบบทั้งโครงการ โดยทางบริษัทได้สร้าง Script Robot ตามเงื่อนไข Test case ทั้งหมดแล้วจัดอบรมการใช้งาน Script Robot รวมไปถึงการแก้ไขให้กับลูกค้า เมื่อลูกค้านำไปใช้ ROI ที่เกิดขึ้นเมื่อลูกค้ามีการแก้ไขระบบและจะต้องทำการทดสอบใหม่ Test Engineer เพียง 1-2 คนในการทดสอบระบบและได้ผลลัพธ์ในเวลาอันสั้น
Use case 2: ธนาคารได้ให้บริการเป็นที่ปรึกษาด้านการลงทุนให้กับลูกค้าของธนาคาร โดยการฝาก พอร์ต การลงทุนให้ธนาคารเป็นผู้ดูแล ขั้นตอนการจัดการของธนาคารคือพนักงานธนาคารจะต้องช่วยกัน Login เข้าพอร์ต และ อ่านข้อมูลทั้งหมดใน พอร์ต ของลูกค้า เพื่อนำ พอร์ต ของลูกค้าทั้งหมด ป้อนข้อมูลเข้าไป ในระบบวิเคราะห์ เพื่อธนาคารจะรู้ว่าควรจะลงทุนอะไรให้ลูกค้าต่อไป ซึ่งการทำงานขั้นตอนทั้งหมดนี้ต้องใช้พนักงานจำนวนมากและระยะเวลานาน ทางบริษัทจึงช่วยเหลือ ลูกค้าโดยการใช้ UFT Automation เข้ามาช่วยลูกค้าโดยการให้ สร้าง Robot มาช่วยอ่านข้อมูลจาก พอร์ต ของลูกค้า แล้วให้ Robot ส่งข้อมูลทั้งหมดเข้าระบบวิเคราะห์
Use case 3: ลูกค้าได้เปลี่ยน Core Banking ซึ่งประกอบด้วยระบบหลายๆ ที่มีความซับซ้อน เช่น ระบบ Loan origination system, Banking System Management (BSM) และระบบอื่นๆ ซึ่งทางธนาคาร จำเป็นต้องเตรียมข้อมูลสำหรับการทดสอบใน หลายๆ และในส่วนของการทดสอบของผู้ใช้งาน UAT (User Acceptance Test) จะต้องมีการเตรียมข้อมูลเบื้องต้องให้กับผู้ใช้งานจะได้นำมาทดสอบในการทำงานต่างๆ ลูกค้าจึงนำ UFT มาทำ Data Entry ซึ่งลดระยะ เวลาในการทำ Data preparation ไปอย่างมาก
Use case1: ลูกค้าเปลี่ยน core retail จากระบบที่ internal Development และใช้มามากกว่า 10 ปีได้เปลี่ยนมาใช้ Oracle retail มาแทนระบบเก่า ซึ่งมีจำนวนระบบย่อย ๆ และ ฟังก์ชั่นจำนวนมาก และ มี Test Case มากกว่า 3,000 Test case และ Test Scenario ซึ่งตอนทดสอบระบบการทำงานของแต่ละฟังก์ชั่นว่าทำงานได้ถูกต้องไหม ได้ใช้ Automated Test Tools เป็นตัวช่วยการทำสอบแล้วส่ง ข้อมูลไปยังส่วนกลางเพื่อสรุปภาพรวมของการท าการทดสอบ และที่สำคัญในการทดสอบของผุ้ใช้งาน (ใช้ Head of Department และ Manager มาทดสอบ) User Acceptance test ผู้ใช้สุ่มทดสอบบ้างส่วน และใช้ Automated Test tools ในการทดสอบแล้วตรวจสอบผลลัพธ์ผ่าน Report ทำให้ผู้ใช้งานได้มีเวลาไปทำงานในส่วนที่สำคัญต่อองค์กรมากขึ้น