Automated Functional Testing
ปัจจุบัน การทดสอบซอฟต์แวร์ถือเป็นเรื่องที่สำคัญมากในธุรกิจ ไม่ว่าจะเพื่อประสิทธิภาพในการทำงานของระบบ หรือเพื่อการส่งมอบซอฟต์แวร์ การทดสอบซอฟต์แวร์นั้นถือเป็นกระบวนการอย่างหนึ่งในการพัฒนาซอฟต์แวร์ เพื่อหาข้อผิดพลาดและป้องกันข้อผิดพลาดที่จะเกิดขึ้น และช่วยให้ซอฟต์แวร์ที่พัฒนานั้น มีประสิทธิภาพในการทำงานด้านต่าง ๆ มากขึ้น ในการทดสอบ Software (Software Testing) จึงจำเป็นที่จะต้องคำนึงถึง SDLC (Software Development Life Cycle) ซึ่งเป็นหัวใจในการพัฒนา Software/ Application ในการทำ Software/Application Testing ก็เป็นหนึ่งในขั้นตอนที่จำเป็นและสามารถเพิ่มคุณภาพ ประสิทธิภาพ และความรวดเร็วในการพัฒนา Software
Automated Functional Testing จึงเป็นทางเลือกในการทดสอบประสิทธิภาพในการทำงานของ 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 Test 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 สามารถส่งผ่านข้อมูลต่างๆตามฟังก์ชั่นการทำงานทั้งภายในระบบและระบบที่เกี่ยวข้อง
การทำ Automated Functional Testing แบ่งออกเป็นหลาย 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 ซึ่งประกอบด้วยระบบหลายๆ ที่มีความซับซ้อน เช่น ระบบ 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 ทำให้ผู้ใช้งานได้มีเวลาไปทำงานในส่วนที่สำคัญต่อองค์กรมากขึ้น