KBTG: AUTOMATION TECH THE SERIES
[Automation Tech the Series] Ep.7 Test Automation Ecosystem
พามารู้จักเพื่อนบ้านที่ดีของ Test Automation กัน!
หลังจากห่างหายกันไปนาน เรากลับมาแล้วครับ กับ Automation Tech the Series 🕺 Blog นี้เราจะพาไปดูระบบนิเวศรอบๆ ของการทำ Test Automation พร้อมแนะนำเพื่อนบ้าน Tool และ System ต่างๆ ที่ซัพพอร์ตพวกเรา
ปัจจุบันเราพิสูจน์ได้แล้วว่าการทำ Test Automation สามารถเติมเต็มจุดอ่อนของการเทสได้ในหลายแง่ ไม่ว่าจะเป็นด้านความเร็ว ความถูกต้อง (คนทำ Test Script ก็ต้องถูกต้องด้วยนะ) และ Cost ที่จะเห็นผลในระยะยาวจากการใช้งานซ้ำ แต่ Test Automation จะไม่สามารถแสดงพลังได้อย่างเต็มที่หากขาดส่วนเสริมใน Ecosystem
Test Automation Ecosystem
M&M Framework ของเราถูกออกแบบโดยอิงตาม Test Automation Architecture (TAA) ซึ่งช่วยให้เราเห็นสิ่งที่เกี่ยวข้องกับการทำ Test Automation หลายส่วน
จากรูปด้านบน เมื่อการทำ Test Automation อยู่ตรงกลาง เราก็สามารถตีความได้ว่าตัวที่อยู่รอบๆ ตรงนี้นี่แหละคือ Ecosystem ที่ว่า โดยภายในจะมี Tool หรือ System ต่างๆ คอยซัพพอร์ตการทำ Automation ของเรา
ถ้าอยากรู้รายละเอียดเพิ่มเติมของ Test Automation Architecture สามารถอ่านต่อได้ที่ลิงก์ด้านล่างนี้
เพื่อไม่ให้เสียเวลา ไปดูส่วนแรกกันเลย 🤘
Configuration Management
ในการทำ Test Automation เราจำเป็นต้องสร้าง Component ต่างๆ ที่จะประกอบร่างขึ้นเป็น Test Automation ซึ่งในส่วนนี้ก็หมายถึงการเก็บและจัดการ Source Code และการทำ Versioning ของ Test Automation
GitLab
เป็นเครื่องมือที่เอาไว้เก็บข้อมูลต่างๆ ไม่ว่าจะเป็น Source Code การทำ Collaboration หรือแม้กระทั่งการควบคุมการเข้าถึงของข้อมูลนั้นๆ ในที่นี้เราจะเก็บ Automated Test Script ทำ Version Control แต่ตัว GitLab ก็สามารถทำ Streamline ของการทำ Collaborative Workflow ในการเขียนโปรแกรมดังกล่าวได้ นอกจากนี้ Repository ของมันยังสามารถ Export ไปยัง Google Code หรือ Bitbucket ได้
Test Management
HP ALM
ส่วนถัดมาคือ Test Management ที่จัดการเรื่องการทดสอบ HP ALM เป็นระบบที่ควบคุมและจัดการการทดสอบ จัดการคุณภาพซอฟต์แวร์ ช่วยให้ Tester เห็นรายละเอียดของ Test Case จัด Plan และเห็นภาพการทำเทสได้ครบทุกมุม เพื่อให้การทดสอบครบทุกแกน ทุกรูปแบบ Test Result จากการรัน Test Automation จะถูกส่งไปหา HP QC เพื่อเก็บและวิเคราะห์ผลในกรณีที่มีข้อบกพร่อง สำหรับการติดตามปัญหา
Project Management
Jira
Jira เป็นระบบสำหรับจัดการ Project หรือตัวเนื้องานของเรา รวมถึง Plan, Track, Release และทำ Report ได้ ซึ่งสำหรับการทำ Test Automation เราจะนำ Test Result ไปตรวจสอบก่อนและกรองว่าส่วนไหนเป็น Bug หรือ เป็น Defect แล้วส่งให้ Jira ทำเป็น Bug Tracking หรือ Defect Tracking เข้าไปใน Project และจัดการต่อไป ซึ่งตัวข้อมูลจะต้องพ่วงกอดคอไปด้วยกันกับ HP QC
Framework
ส่วนนี้จะมี Tool และ System อื่นๆ เยอะสุด เพราะแต่เดิมตัว Framework มีการดึงหลายๆ อย่างมาประกอบกัน ดังนี้
Shared Tool & Library
เป็นแหล่งรวมรวม Tool, Function, Module, Package หรือ Component ที่เคยใช้งานหรือถูกสร้างขึ้นเพื่อตอบโจทย์การทำ Test Automation ใน Project ต่างๆ เนื่องจากเรามีการจัดการเข้าถึงและจัดการการใช้งานร่วมกันในองค์กร เราจึงมองมันเป็นส่วนหนึ่งของ Ecosystem
ถ้าอยากรู้เกี่ยวกับการทำ Library หรือ Tool สามารถย้อนกลับไปดู Ep.2 ได้เลย รายละเอียดน่ะ ฉันทิ้งไว้ที่นั่นหมดแล้ว 😎 ตามไปตำกันได้ขรับ #คุ้นๆ มุกนี้แฮะ
Test Automation Service
เรามีการสร้าง Service ต่างๆ เพื่อให้ Test Automation ตอบโจทย์หลายฝ่ายมากขึ้น ถ้าระบบอื่นทำให้เราไม่ได้ เราก็สร้างมันขึ้นมาเองเลย ก็จะจัดอยู่ในกลุ่ม Test Automation Service ตัวนี้
หนึ่งใน Service ที่เราเคยสร้าง ถ้าใครไม่เคยอ่าน สามารถกลับไป Recap ได้ใน Ep.3 ครับ 😆
Jenkins
Jenkins เป็นหนึ่งในระบบที่สำคัญที่สุดต่อการทำ Test Automation เป็นแกนกลางที่คอยประสานการใช้งานกับระบบอื่นๆ เกือบทั้งหมดเลย ซึ่งเราจะพูดถึงต่อไป
สำหรับงานหลักของ Jenkins เราจะไปสร้าง Test Automation Pipeline ที่สามารถใช้รันเดี่ยวๆ เพื่อซัพพอร์ตการเทสทั่วไปก็ได้ หรือเตรียมไว้รอเป็นส่วนหนึ่งของ Deploy Pipeline ทดสอบก่อน Deploy ได้เช่นกัน
ถ้าอยากรู้การใช้งาน Jenkins เพิ่มเติม สามารถย้อนกล้บไปดู Ep.4 ได้เลย
Grafana
เราะมีการใช้ Grafana เป็น Dashboard จุดหลักที่แสดงข้อมูล Test Result และ Test Information ที่เกิดจากการวิเคราะห์ แล้วสรุปผลเพื่อเสริมการทำ Manual Testing และ Test Automation
เหตุผลที่เลือกใช้ Grafana ก็เพื่อไม่ให้ Tester ต้องปวดหัวกับการจัดการ Test Result ทั้งจากหลายการรัน หลายชุดทดสอบ หลาย App และที่สำคัญคือ Test Result จากหลาย Automated Test Tool เราจึงมีการเชื่อมระหว่างการรัน Test Automation กับ Grafana ด้วย Test Automation Shared Tool พร้อมสนับสนุนการใช้ข้อมูลในการคุยกันเป็นหลัก ดังนั้นบทบาทของ Grafana ถือว่าสำคัญมากต่อการทำ Test Automation
Zabbix
เราทำ Test Automation Service เพื่อซัพพอร์ต Integration กับหลายๆ ระบบ อีกทั้งยังมีเครื่อง Executor จำนวนมากที่ใช้ในการรันทดสอบงานทั้งวันทั้งคืน เราจะใช้ Zabbix เป็นตัวมอนิเตอร์ Network, Performance และ Resource ของเครื่อง Executor และ Service ถ้าเกิดอะไรแปลกๆ เราก็จะสามารถรับมือได้ทันท่วงที
Power Automate
ในการทำงานของ KBTG เราจะใช้ Product ของ Microsoft ในการทำงาน เช่น Microsoft Teams ในการคุยกัน หรืออย่าง Outlook เป็น Service Mail ตัวหลักที่ใช้งานกัน ซึ่งในจังหวะที่เราทดสอบเสร็จ เราจะยิงผลการทดสอบเข้าไปในอีเมลหรือกรุ๊ปแชทบน Microsoft Teams เพื่อให้งานเดินได้เร็วขึ้นตาม Test Process
การที่จะให้ได้ภาพนั้น เราใช้ Power Automate ซึ่งเป็น Integration Tool ใช้ในการเชื่อมต่อกันระหว่างเครื่อง Executor กับ Test Automation และ Microsoft Products โดยสร้าง Automated Flow หรือ RPA จัดการการส่งผ่าน Test Data และ Status ต่างๆ ที่เกี่ยวข้องกับการทดสอบให้ตอบโจทย์ Test Process ตามที่เล่ามาด้านบน
นอกจากนี้จะมี Service Virtualization (SV) ที่ช่วยจำลอง Service ให้เราทำเทสได้ง่ายขึ้น หรือ Test Modeller ที่ช่วย Project ที่มี Model แล้วสามารถเอา Model นั้นมา Generate ให้เป็น Test Automation ได้ และอื่นๆ อีกมากมาย ถ้าใครสนใจหรืออยากรู้จัก System หรือ Tool ตัวไหนที่อยู่ใน Ecosystem เพิ่มเติม ไว้มีโอกาสเราจะกลับมาเล่าต่อ
ทั้งนี้ทั้งนั้นการทำ Test Automation โดยพ่วงกับสารพัดระบบ นั่นหมายความว่าเราต้องมีสกิลเพิ่ม มีสิ่งที่ต้องดูแลเพิ่ม ฉะนั้นเพื่อไม่ให้การทำ Test Automation เป็นสิ่งที่หนักและยากจนเกินไป แนะนำให้ใช้อย่างพอดี และตรงกับความต้องการความจำเป็นนะครับ 🤓
และตามแผนที่ของ Automation Tech the Series ในอีพีหน้าเรากำลังเข้าสู่จุดสุดท้ายของการเดินทางเเล้ว ใกล้จะถึง Laugh Tale (เล่นตามธีมหน่อย) ซึ่งจะเป็นยังไงนั้น ฝากติดตามชมตอนต่อไป ไป ไป 👋 👋 👋
สำหรับใครที่ชื่นชอบบทความนี้ อย่าลืมกดติดตาม Medium: KBTG Life เรามีสาระความรู้และเรื่องราวดีๆ จากชาว KBTG พร้อมเสิร์ฟให้ที่นี่ที่แรก