KBTG: AUTOMATION TECH THE SERIES

[Automation Tech The Series] EP.3 Upscale E2E Test Automation Framework ด้วย “Automation Catalog”

มาทำความรู้จักกับ Dashboard ที่รวบรวมข้อมูล Automated Test Case ของแต่ละแอปพลิเคชันอย่าง “Automation Catalog” กันเถอะ

Arm Thanawat
KBTG Life

--

กลับมาพบกันอีกครั้งใน Automation Tech the Series EP.3 กับการผจญภัยของพวกเรา Test Automation Core Team 🚀 ในการสรรค์สร้าง Test Automation Framework และเพิ่ม Capability ของชาว KBTG ในการพัฒนา Test Automation ภายใต้โปรแกรม KBTG Transformation โดยในอีพีนี้จะว่าด้วยที่มาที่ไปของการสร้าง Automation Catalog และจุดเริ่มต้นของการ Upscale E2E Test Automation Framework นั่นเอง

Test Automation Adoption ใน KBTG Transformation

แน่นอนว่า Automation Core Team ถือเป็น Workstream หลักในการช่วยสร้าง Test Automation Capability ให้กับบ้านแอปพลิเคชันต่างๆ ใน KBTG โดยเน้นไปในรูปแบบของ “Coaching” ช่วยวางรากฐานในการพัฒนา Test Automation ที่แข็งแรงให้กับ Application Team ไม่ว่าจะเป็นในส่วนของ Project Structure ที่เป็นมาตรฐานในทุกแอปพลิเคชัน หรือการนำ Custom Library เข้าไปช่วยพัฒนา Automation Script ใน Domain ต่างๆ และอื่นๆ อีกมากมาย

ในส่วนของ Project Structure และ Custom Library สามารถอ่านย้อนหลังในบทความอีพีก่อนๆ ได้เลย

การสร้าง Test Automation Capability ให้กับพนักงาน ควบคู่ไปกับ Standard Framework ก็เปรียบเสมือนการเตรียมพร้อมลูกเรือก่อนออกผจญภัยควบคู่กับเรือที่ถูกประกอบขึ้นอย่างมั่นคงและเป็นมาตรฐานที่ทุกคนสามารถเข้าใจและพร้อมผจญภัยต่อด้วยตัวเอง

Test Automation ที่เพิ่มขึ้นย่อมมาพร้อมกับความท้าท้ายที่เพิ่มขึ้น

วันเวลาผ่านไป จำนวนแอปพลิเคชันที่เริ่มพัฒนา Test Automation มีจำนวนเพิ่มขึ้น ทุกคนเริ่มออกผจญภัยในเส้นทาง Automated Testing ของตัวเอง ส่งผลให้จำนวน Automated Test Case ในแอปพลิเคชันต่างๆ เพิ่มขึ้นอย่างมาก จึงมาถึงจุดที่เรา Automation Core Team เริ่มตั้งคำถามขึ้น

  • เราจะรู้ได้อย่างไรว่าตอนนี้มี Automated Test Case เกิดขึ้นที่แอปพลิเคชันไหนบ้าง และมี Scenario อะไรบ้าง❓
  • เราสามารถนำ Automated Test Case จากแอปพลิเคชันต่างๆ ไปใช้งานต่อได้อย่างไรบ้าง❓

นี่จึงเป็นจุดเริ่มต้นของความท้าทายใหม่ของการพัฒนา Test Automation Framework ในรูปแบบ Multi Level & Modular ที่จะทลายกำแพง E2E Test Automation แบบเดิมๆ หรือก็คือ M&M Framework นั่นเอง

สามาถติดตามเรื่องราวการเดินทางของ KBTG M&M Framework ได้ผ่าน Automation Tech The Series อีพีต่อๆ ไปนะครับ 💚

รวบรวมข้อมูล Automated Test Case ด้วย “Automation Catalog”

Automation Catalog (Demo)

ถ้าให้เปรียบ Automated Test Case เป็นเรื่องราวการผจญภัยของแต่ละแอปพลิเคชัน Automation Catalog คงเปรียบเสมือน “ศิลาจารึก” ที่บันทึกการผจญภัยของแอปพลิเคชันทั้งหมด!!!

Automation Catalog คือ Dashboard ที่รวบรวมข้อมูล Automated Test Case / Scenarios ที่ถูกพัฒนาขึ้นจากบ้านแอปพลิเคชันต่างๆ ใน KBTG โดยข้อมูลที่ถูกแสดงบน Catalog นั้นถูกดึงมาจาก Catalog Database ตาม Query Statement ก่อนแสดงผลบน Grafana Dashboard

ใน Board จะมี Filter เพื่อแยกข้อมูลตามแต่ละแอปพลิเคชัน และยังประกอบไปด้วย Panel ต่างๆ เช่น

  • Number of Automated
  • Catalog Generated History
  • Catalog Automated Information

ไฮไลท์สำคัญ ⭐️ น่าจะเป็นในส่วนของ Catalog Automated Information ที่แสดงข้อมูลต่างๆของ Automated Test Case อาทิเช่น

  • Test Name
  • Function / Test Suite
  • Test Description
  • Tools
  • Tags
  • Script Type
  • Test Level

ข้อมูลใน Automation Catalog มาจากไหน?

Automation Catalog Diagram Flow

เรามาดูกันดีกว่า ว่าก่อนจะได้ข้อมูลมาแสดงใน Dashboard นั้นมีขั้นตอนและวิธีการอย่างไรบ้าง 👇

Automation Repository 📁

ข้อมูลของ Automated Test Case ในแต่ละแอปพลิเคชันที่แสดงบน Dashboard นั้นถูกรวบรวมขึ้นจาก Automation Repository (GitLab) ซึ่งเป็นที่จัดเก็บ Automation Script ของแต่ละ Application Team สาเหตุที่เราตัดสินใจเลือกดึงข้อมูลตรงจาก Automation Repository นั้นเป็นเพราะ…

  • Automation Script ถือเป็นต้นทางของข้อมูลการพัฒนา Test Automation ที่น่าเชื่อถือและมั่นใจได้ว่า Test Case นั้นถูกสร้างขึ้นแล้วจริงๆ รวมทั้งยังช่วยให้ Catalog นั้น Up-to-Date อีกด้วย
  • การดึงข้อมูลตรงจาก Repository จะช่วยลด Manual Effort ในการป้อนข้อมูลเข้า Automation Catalog ได้อย่างมาก (แค่มีการพัฒนาหรือแก้ไข Automation Script ก็เหมือนได้อัพเดตข้อมูลใน Catalog ไปด้วยในตัว 😍)

อย่างไรก็ตาม Repository ใน KBTG นั้นมีมากมายและไม่ได้มีเฉพาะ Test Automation เท่านั้น เราจึงจำเป็นที่จะต้องสร้าง List ของ Test Automation Repository สำหรับ Catalog โดยจะให้ Application Team ทำการ Register ผ่านทาง API ที่ทีมเตรียมไว้ โดยระบุข้อมูล Git Repository และ Git Branch เพียงเท่านี้ก็ถือว่า Repository นั้นอยู่ใน List ของ Automation Catalog เรียบร้อย

Catalog API Workflow: Add Repository Information

Information Gathering 🔍

จากที่ได้กล่าวไปตอนต้นว่าแต่ละ Application Team พัฒนา Test Automation ด้วย Project Structure และ Convention ที่เป็น Standard เดียวกัน จึงทำให้สามารถสร้างแพทเทิร์นที่จะช่วยในการดึงข้อมูลของ Automated Test Case ออกมาจาก Automation Script ได้ง่ายยิ่งขึ้น

ปัจจุบัน Test Automation Tools ที่ Catalog รองรับมีอยู่ด้วยกัน 2 ตัว ได้แก่

  • Robot Framework
  • Postman

โดยแต่ละ Tools ก็จะมีแพทเทิร์นในการดึงข้อมูลที่แตกต่างกันตามที่ได้ตั้งค่าไว้ใน Catalog Script ยกตัวอย่างเช่น ใน Robot Framework ส่วนของชื่อ Test Cases / Test Description / Tags จะถูกอ่านจากไฟล์ output.xml จากการ Dry Run ในขณะที่ส่วนอื่นๆ เช่น Tools / Test Level ก็จะถูกอ่านจาก Project Structure (ของ Postman ก็จะมีความคล้ายกัน โดยดึงข้อมูลจาก Postman Collection เป็นหลัก)

ตัวอย่างแพทเทิร์นในการดึงข้อมูลจาก Script/Project Structure ของ Robot Framework

Automation Catalog Batch ♻️

ในการเข้าไปกวาดข้อมูล Automated Test Case ของแต่ละ Automation Repository ข้อมูลจะถูก Process ให้อยู่ในรูปแบบของ Row & Column ก่อนนำขึ้นไปเก็บบน Table ของ Automation Catalog Database หลังจากนั้น Grafana Dashboard ก็จะดึงข้อมูลในส่วนนั้นออกมาแสดงผลตาม Filter ที่ระบุไว้เป็นอันเสร็จสิ้น 😙

ฉะนั้นแล้ว Automation Catalog จะมีรอบในการกวาดข้อมูลเป็นรายวันโดย Integrate เข้ากับ CI/CD (Jenkins) เพื่อ Execute Catalog Batch ซึ่งในแต่ละรอบก็จะเข้าไปใน Automation Repository ตาม List ที่มีอยู่ และทำการกวาดข้อมูล Automated Test Case ก่อนแปลงเป็นรูปแบบที่เหมาะสม และอัพเดตขึ้น Database

เราได้อะไรจากการรวบรวม Automated Test Case ?

ถ้ามองแบบตรงไปตรงมา Automation Catalog นั้นช่วยให้ข้อมูล Automated Test Case ที่ถูกพัฒนาขึ้นใน Area หรือแอปพลิเคชันต่างๆ ผนวกกับ Information อื่นๆ นับเป็นข้อมูลที่มีประโยชน์ทั้งในงาน Testing และอื่นๆ

ข้อมูล Automated Test Case ใน Catalog

ในอีกมุมหนึ่ง เรายังสามารถดู Automation Growth ในแต่ละ Application Team ในเชิงของจำนวน Automation Test Case ที่เพิ่มขึ้นได้อีกด้วย

กราฟ (Time Series) แสดงจำนวน Automated Test Case ที่ถูก Generate ในแต่ละ Batch

หรือถ้าอยากเห็นภาพที่กว้างขึ้นอีก… ข้อมูลใน Database ยังสามารถนำมาสรุปเป็น Catalog Summary เพื่อช่วยในการสรุปข้อมูล Automated Test Case ของทุกๆ แอปพลิเคชันไม่ว่าจะเป็น…

  • จำนวน Automated Test Case ทั้งหมด
  • จำนวน Automated Test Case ทั้งหมด แยกตาม Automation Tools (%)
  • จำนวน Automated Test Case ทั้งหมด แยกตาม Scripting Type (%)
Test Automation Catalog Summary

อีกหนึ่งส่วนสำคัญของการทำ Automation Catalog ขึ้นมานั้นก็เพื่อเป็นส่วนประกอบในการ Upscale E2E Automation Testing

ทั้งนี้ต้องเกริ่นก่อนว่าแอปพลิเคชันภายใต้การดูแลของ KBTG นั้นมีอยู่เป็นจำนวนมาก และแต่ละแอปยังมี Dependency ต่อกันอีกด้วย Scenarios ต่างๆ ที่เกิดขึ้นจริง อาทิเช่น การทำธุรกรรมออนไลน์ การขอสินเชื่อ หรือการอนุมัติผลต่างๆ ล้วนมีระบบที่เกี่ยวข้องมากกว่า 1 ระบบทั้งสิ้น ดังนั้นการทำ E2E Testing จึงเป็นสิ่งที่ไม่ควรมองข้ามเช่นกัน ดังนั้นข้อมูลใน Automation Catalog จึงเป็นอีกหนึ่งตัวช่วยในการเลือกหยิบ Automated Test Case จากแอปพลิเคชันต่างๆ มาร้อยต่อกัน เพื่อทำเป็น End-to-End Automation Testing ได้นั่นเอง

นำข้อมูล Automated Test Case จาก Automation Catalog มาร้อยต่อกับเป็น E2E Scenarios

และนี่คือเรื่องราวความเป็นมาของ Dashboard ที่รวบรวมข้อมูล Automated Test Case ของแต่ละแอปพลิเคชันอย่าง “Automation Catalog” ซึ่งถือเป็นอีกหนึ่งก้าวสำคัญในการ Upscale Test Automation Framework ของชาว KBTG

อย่างไรก็ตามด้วยตัว Catalog เพียงอย่างเดียวอาจจะยังไม่เพียงพอในการสร้าง E2E Test Automation Framework ฉะนั้นอีกส่วนสำคัญที่จะมาช่วยประกอบร่างสิ่งต่างๆ เข้าด้วยกันนั่นก็คือ DevOps ❗️ ❕ ❗️

มารอติดตามกันต่อไปว่าพวกเรา Test Automation Core Team จะนำ DevOps หรือเทคโนโลยีอะไรมาประกอบกันจนเกิดเป็น M&M Framework … แล้วพบกันใหม่ใน Automation Tech the Series ตอนต่อไปนะครับ

สำหรับชาวเทคคนไหนที่สนใจเรื่องราวดีๆแบบนี้ หรืออยากเรียนรู้เกี่ยวกับ Product ใหม่ๆ ของ KBTG สามารถติดตามรายละเอียดกันได้ที่เว็บไซต์ www.kbtg.tech

--

--