…. กว่า Chatbot จะออกมาให้คนใช้ ต้องเทสอะไรกันก่อนบ้าง ?????

Thanaphat Thanawatpanya
ConvoLab
Published in
3 min readOct 22, 2019
Image Source : https://unsplash.com/photos/RLw-UC03Gwc

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

การที่มี Chatbot เกิดขึ้น จะทำให้อะไรดีขึ้นบ้าง

แต่กว่า Chatbot แต่ละตัวจะออกมาได้นั้น นอกจากเรื่องของการวาง Requirement และ กระบวนการพัฒนา Chatbot แล้ว มีอีกกระบวนการอีกอย่างนึงที่สำคัญเลย คือ การเทส เพราะถ้าไม่มีกระบวนการนี้อาจจะทำให้ Chatbot ที่ออกมาให้ผู้ใช้เล่นแล้วไม่มีคุณภาพและมีปัญหาตามมา

เกริ่นมาขนาดนี้ เชื่อว่าหลายๆ คน เริ่มน่าจะอยากรู้ว่าการเทส Chatbot จะต้องมีขั้นตอนยังไงบ้างแล้วแหละครับ ทางผู้เขียนขออนุญาตอธิบายการเทส Chatbot โดยจะขอแบ่งเป็นประเภทการเทส Chatbot โดยอิงจากประเภทการเทส Software ทั่วไป ซึ่งมีอยู่หลายๆประเภทและแบ่งประเภทไม่เหมือนกัน แต่ทางผู้เขียนขอสรุปเป็น 2 ประเภทง่ายๆ ละกัน คือ

Functional Testing และ Non-Functional Testing

เชื่อว่าพอหลายคนได้เห็นคำ 2 คำนี้ก็น่าจะร้องอ๋อขึ้นมาทันทีเลย เพราะน่าจะเป็นประเภทการเทส Software ที่คนน่ารู้จักมากที่สุดและเข้าใจง่ายที่สุด ไม่ให้เสียเวลา เรามาเริ่มขยายความกันแต่ละประเภทเลยครับ

  1. Function Testing
Image Source : https://blog.trello.com/3-ways-to-manage-feature-requests

Function Testing หมายถึง การเทส Function การทำงานว่าทำงานของ Software ถูกต้องตาม Requirement ที่กำหนดมาหรือไม่

ซึ่งถ้านำมาใช้ใน Chatbot ก็จะเป็นการเทสว่า ถ้าเราส่งอะไรเข้าไปใน Chatbot แล้วจะตอบถูกต้องตาม Requirement ที่กำหนดมาหรือเปล่า และแน่นอนว่าการเทสประเภทแบบนี้จะต้องมีสิ่งที่เรียกว่า Test Case เป็นตัวกำหนดว่าแต่ละ Function ใน Chatbot จะต้องมี การทำงานยังไง ซึ่ง Test Case ของ Chatbot ควรจะมี 2 สิ่งหลักๆที่จะใส่ลงไปใน Test Case คือ

Input คือ สิ่งที่ส่งเข้าไปหา Chatbot ไม่ว่าจะเป็น ข้อความ ภาพ เสียง หรือ แม้กระทั่งการกดปุ่มจาก Interface ต่างๆ ของ chat platform นั้นๆ

Output คือ ผลลัพธ์ที่ Chatbot แสดงออกมานั้นเองครับ

โดยเราจะต้องมีการทำเอกสาร Test Case ออกมา อาจจะทำลงใน Excel หรือ Google Sheet ก็ได้ โดยในเอกสารจะมี Case ของ Function ที่ Chatbot มีอยู่ ซึ่งจะต้องแจกแจงแต่ละ Function ว่ามีอะไรบ้าง มีกี่เคส ต้องกำหนดว่าใส่ Input ยังไง แล้วจะต้องออก Output อะไร และเป็น Output ประเภทอะไร ถึงจะถูกต้อง

หลังจากนั้น Tester จะลองเล่น Chatbot ในแต่ละเคส Function ของ Chatbot จากเอกสาร และเช็คผลลัพธ์ที่ออกมาว่าถูกต้องตามเอกสารหรือเปล่า และ Tester ควรจะใส่ผลลัพธ์ที่ Tester เจอด้วย เพื่อให้ทางผู้พัฒนาทราบว่า เมื่อ Tester ลองเล่นแล้วผลลัพธ์ถูกต้องตามที่กำหนดจริงๆหรือเปล่า หรือถ้าไม่ถูกต้องทางผู้พัฒนาสามารถนำผลลัพธ์ที่ Tester เจอไปลองหาสาเหตุว่าทำไมถึงมีผลลัพธ์ไม่ถูกต้องตามเอกสาร

ตัวอย่างการเขียนเอกสาร Test Case ง่ายๆ

อีกจุดนึงที่สำคัญ สำหรับการเทสประเภทนี้ คือถ้า Function ของ Chatbot บางตัว มีการไปเชื่อมต่อและรับส่งข้อมูลกันกับระบบภายนอก ควรจะมีการเทสประเภท Integration Testing หรือ System Integration Test (SIT) เพิ่มเติมเข้าไปด้วย เพื่อเช็คว่า Chatbot สามารถไปเชื่อมต่อและรับส่งข้อมูลกันไปมาระหว่าง Platform ทำ Chatbot และ ระบบภายนอกได้ปกติครับ

หลายคนที่อ่านมาถึงตรงนี้ น่าจะเริ่มเข้าใจกระบวนการเทส Functional Testing สำหรับ Chatbot ขึ้นแล้ว และก็คงเริ่มมีคำถามในใจว่า

ถ้าเทสเคสมีเป็นพันหรือเป็นหมื่นจะเทสกันให้หมดยังไง ????

บางคน น่าจะตอบว่า “ก็แบ่งกันเทสหลายๆคนสิ”

มันก็เป็นคำตอบที่ ก็จริงนะ …………………

แต่ๆ เรามาหาวิธีที่มันสบายกว่านี้กันดีกว่า

เชื่อกันว่าหลายคนที่เข้ามาอ่านน่าจะเคยได้ยิน เรื่อง Automate Tester กันมาบ้างแล้วและน่าจะเริ่มนำไปใช้เป็นส่วนนึงในการพัฒนา Software กัน ซึ่งสำหรับ Chatbot นั้น เคยมีผู้พัฒนาได้นำ Automate Tester Framework ไปใช้ร่วมกับ Platform ในการทำ Chatbot ในบางตัว หรือ Platform ในการทำ Chatbot บางตัวก็มี Function นี้ สำเร็จรูปใน Platform มาให้อยู่แล้ว

ซึ่งนอกจากนี้ยังสามารถนำ Automate Tester ไปใช้ในการเทสประเภท Regression Testing ได้ เพื่อเช็คว่าเมื่อมีการพัฒนา Chatbot เพิ่มขึ้นไปไม่ว่าจะเป็นการเพิ่มประโยคเพื่อให้ AI เรียนรู้หรือมีการเพิ่ม Function ใหม่ให้ Chatbot แม้กระทั่ง Platform ที่ใช้ในการทำ Chatbot มีการแก้ Bug หรือ เพิ่ม Feature เข้าไปใหม่แล้ว ในแล้ว Function ของ Chatbot ทั้งหมดจะใช้ได้และไม่มีปัญหาครับ

ตรงนี้ก็จะช่วยลดระยะเวลาในการเทส และ เพิ่มความสะดวกในการเทส Function ของ Chatbot ภายในทีม และสุดท้ายก็จะไปถึงการเทสที่เรียกว่าสำคัญอีกอย่างนึงเลยคือ คือ Acceptance Testing หรือ User Acceptance Test (UAT) เพื่อให้ลูกค้าได้ลองเล่น Chatbot แล้วยืนยันว่า Function ของ Chatbot ใช้ได้ปกติและมีความพึงพอใจจริงๆ

2. Non-Functional Testing

Image Source : https://vinahost.vn/en/Optimize-Server-VN-Performance

Non-Functional Testing หมายถึง การเทส Software ในส่วนของเรื่องที่ไม่ใช่ Function การทำงานของ Software เช่น ประสิทธิภาพ (Load Testing, Stress Testing), ความปลอดภัย (Penetration Testing) เป็นต้น

จากความหมายแล้วหลายคนอาจจะยังงงอยู่ ดังนั้นผมขออนุญาตยกตัวอย่างเป็นสถานการณ์จริงๆ ที่มีต้องมีการเทสประเภทนี้ครับ เช่น ……

Chatbot เมื่อมีการปล่อยให้ผู้ใช้ทั่วไปเข้ามาเล่นแล้ว จำนวนผู้ใช้ก็จะเข้ามาใช้กันเยอะมาก ซึ่งตรงนี้ในเคสของ Platform สำเร็จรูปบางตัวจะมีการให้เลือก Package ว่า ข้อความที่คิดว่าจะเข้ามาใน Account ที่ต่อกับ Chatbot นั้นจะมากี่ข้อความต่อนาที หรืออาจต่อหน่วยเวลาอื่นก็ได้ ซึ่งถ้าเลือก Package ที่สูงมากหรือก็คือมีจำนวนข้อความที่เข้ามาต่อนาทีเยอะมาก การรองรับ User เข้ามาก็จะดียิ่งขึ้น แต่ถ้าเป็นเคสที่ Platform ต้องไปลงในเครื่อง Server ของลูกค้าหรือเครื่อง Server อื่นๆที่ไม่ได้การรับรองมาตั้งแต่ต้น จะต้องมีการทำ Load Testing, Stress Testing เป็นต้น เพื่อให้เป็นการยืนยันว่าถ้าเกิดมี User เข้ามาตามจำนวนที่ Requirement กำหนดแล้วจะไม่เกิดปัญหาอะไรกับ Server และ ระบบ Platform เด็ดขาดครับ

หรืออีกสถานการณ์นึงที่ต้องมีการเทสประเภทนี้ คือ …..

กรณีที่ Platform ต้องไปลงในเครื่อง Server ของลูกค้าหรือเครื่อง Server อื่นๆที่ไม่ได้การรับรองมาตั้งแต่ต้นหรือแม้กระทั่งตัว Function ใน Chatbot ที่มีการต่อระบบภายนอก ย่อมมีสิทธิ์ที่จะเกิดปัญหาล่มได้ ซึ่งจะต้องมีการทำ Recovery Testing เพื่อเช็คว่าถ้าเกิดปัญหาดังกล่าวจะสามารถกู้คืนระบบหรือ Function ใน Chatbot ที่มีการต่อระบบภายนอก กลับมาให้เป็นปกติได้มั้ย เพื่อไม่ให้เกิดปัญหา User Experience ที่ไม่ดีต่อผู้ใช้งานครับ

จากทั้งกระบวนการเทส ทั้ง 2 ประเภทที่ได้พูดถึงมา จะพบว่าการเทส Chatbot จะมีกระบวนการที่บางคนอาจจะบอกว่าเยอะและวุ่นวายและมีซอยย่อยๆเข้าไปอีก แต่นั้นก็เพื่อให้ Chatbot ที่ปล่อยออกมานั้นมีคุณภาพทื่ดี และมีประสิทธิภาพด้วยครับ และนี่คือข้อมูลทั้งหมดที่ว่า กว่า Chatbot จะออกมาให้คนใช้ ต้องเทสอะไรกันก่อนบ้าง ครับ :)

ป.ล. บทความนี้เป็นบทความที่เขียนโดยใช้ความรู้และประสบการณ์จากผู้เขียนโดยตรง หากมีข้อมูลส่วนไหนที่ผิดไปหรือขาดตกบกพร่องไป ต้องขออภัยมา ณ ที่นี้ด้วยครับ และ

โปรดใช้วิจารณญาณในการอ่านนะครับ :)

--

--