Automated Functional Testing

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 มาทำการทดสอบแทนคน

RPA-02

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 ขั้นตอนง่ายๆ

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

การทำ Automated Functional Testing แบ่งออกเป็นหลาย Use case ได้แก่