Full Stack Automation Engineer @ Doppio

oz4899
doppiotech
Published in
3 min readFeb 26, 2022

สวัสดีครับ หลายคนอาจจะเคยดูคลิปการสอน Automation ของผมใน Youtube channel ของ Doppio tech ไปบ้างแล้ว (อย่าลืมกดติดตาม และ กด Subscribe ให้ด้วยน้า) สำหรับวันนี้เลยอยากจะมาเล่าเรื่องหน้าที่และความรับผิดชอบของ Full stack automation engineer ที่ Doppio เพื่อแชร์ประสบการณ์ให้หลายๆ คนที่กำลังเริ่มศึกษาหรือมองหางานด้าน Automation test engineer ได้รู้จักกับงานในสายนี้มากขึ้น รวมทั้งรู้จักกับ Doppio มากขึ้นด้วย

Full stack automation engineer คืออะไร ?

หลายคนอาจจะเคยได้ยินงานในลักษณะตำแหน่งที่เรียกว่า QA automation enginner / QA automation / Automation tester แต่พอมาได้ยินคำว่า Full stack automation engineer ที่จั่วหัวในบทความนี้ ก็เกิดความสงสัยว่า มันต่างกันยังไง สำหรับคำอธิบายอย่างง่ายของตำแหน่งก็จะคล้ายกับ Full stack developer ที่สามารถทำงานได้ทั้งในส่วนของ Frontend และ Backend โดยสำหรับ Full stack engineer นั้นก็คือ Automation engineer ที่ทำ Automation ได้บนทุก Platform นอกจากนั้นยังรวมไปถึงการใช้เครื่องมือต่างๆ ที่ช่วย support การทำให้การทำ Automation มีประสิทธิภาพมากขึ้นและสร้าง Business value ให้กับองค์กรได้มากที่สุด

Platform ที่พูดถึงคืออะไรบ้างล่ะ ?

ที่ Doppio เนื่องจากเรามีลูกค้าหลากหลายประเภทจากหลากหลาย area of business ทำให้เรามีโอกาสได้สัมผัสกับงาน Automation ที่กว้าง อาทิเช่น การทำ Automation บน mobile application ไม่ว่าจะเป็น Android / iOS ซึ่งหากให้พูดลึกลงไปอีกก็จะพบว่า mobile application ที่เราต้องทำ Automation ด้วยนั้นถูกสร้างขึ้นมาจากหลากหลาย mobile development framework ไม่ว่าจะเป็น Native Java, Native Kotlin, Objective C , Swift, React native, Flutter หรือแม้แต่ Progressive web app นอกจากนี้ในส่วนของ การทำ Automation บน Website ก็จะมีทั้ง Website ที่เป็นลักษณะของ Mobile web และ Desktop web อีก platform นึงที่ไม่พูดถึงไม่ได้ก็จะเป็นการทำ Automation บน Windows Application ที่ถูกสร้างขึ้นมาด้วย Framework ที่หลากหลายมาก จากหลายยุคหลายสมัย ไม่ว่าจะเป็น WPA Application, WinForm Application, Java Swing Application แอบกระซิบนิดนึงว่าเครื่อง POS (หรือที่เราเรียกว่าเครื่อง Cashier ของบริษัทรายใหญ่รายหนึ่ง) ก็ถูกทำ Automate โดยบริษัทเราด้วยนะ นอกจากนี้เรายังมีการทำ Automation ที่ต้อง interact กับ hardware ด้วย อาทิเช่น เครื่องสแกนบาร์โค้ด / เครื่องรูดบัตรเครดิต และสิ่งสำคัญอีกอย่างคือการทำ Automation กับระบบหลังบ้านทั้งหลาย ที่อาจจะต้องมีการใช้ API และการ interact กับ Database ก็เป็นหนึ่งใน Skill ที่ QA engineer ของเราต้องมีติดตัวไว้ และ Skill แนว DevOps ต่างๆ เช่น Mobile farm device for mobile testing และ API Mock ที่ช่วย support การเทสให้มี stability ดีขึ้น

ตัวอย่างลูกค้าบางส่วนของบริษัท
Tech stack บางส่วนที่เราต้องใช้ในการทำงาน

หน้าที่ความรับผิดชอบของตำแหน่งนี้คืออะไรบ้าง

นอกเหนือจากงานที่ Automation implementation ในหลากหลาย Platform ที่เรากล่าวไปในหัวข้อที่แล้ว งานสำคัญอีกอย่างหนึ่ง คือ การเข้าใจ/ดูแล/ปรับปรุง ให้ตัว Automation test ที่เราทำนั้น ใช้งานได้อยู่เสมอดั่งคำกล่าวที่ว่า “Automation test ที่ดีที่สุด คือ Automation test ที่ลด effort ของงาน manual test และมี business value” ดังนั้นความรับผิดชอบของหน้าที่นี้ จึงไม่ใช่เพียงแค่การ Implement script แต่ยังรวมถึงการ monitor และ analyze สถานะปัจจุบันของ Script อีกด้วย เช่น

◉ Test stability — ผลเทสของเราน่าเชื่อถือมากน้อยแค่ไหน ถ้าเอาไปใช้จริง
◉ Run time duration- เทสของเรารันนานแค่ไหน
◉ Total test cases coverage- เทสของเราทำงานแทนงาน manual test ได้แค่ไหน

ทำให้เหล่าผู้กล้าเหล่านี้จะไม่ได้แค่ learn skill การเขียนโค้ดเพื่อทำ Automation เท่านั้น แต่ยังรวมถึง Skill ที่เกี่ยวข้องกับ QAOps ต่างๆ เช่น การ Setup CI/CD pipeline, การ Visualize data โดยใช้ Grafana และ Elastic search, การใช้ Docker ในการสร้าง test environment หรือ Retry framework เข้ามาช่วยในการ increase test stability เป็นต้น

Test stability dashboard ที่ Doppio TECH

มีคำแนะนำยังไงหากสนใจที่จะเติบโตไปในสายงานนี้

สำหรับคำแนะนำที่ผมมีให้ได้สำหรับน้องๆ ที่สนใจงานด้านนี้คือ อย่าหยุดที่จะเรียนรู้ และ อย่ากลัวที่จะ expand scope หน้าที่ของตัวเองออกไปใน area ที่ไม่เคยสัมผัส ผมเคยเจอน้องที่มี potential บางคนที่ limit ตัวเองไว้ว่าตัวเองมีหน้าที่เป็นแค่ code implementer เท่านั้น งานในส่วนของ CI/CD , Test environment, Mock implementation หรือแม้กระทั่งการ Analyze testcase ว่าเป็น testcase ที่ดีไหมนั้นเป็นของที่อยู่นอก scope การมี mindset แบบนี้จะทำให้เราจำกัดตัวเองอยู่ในกรอบแคบๆ และไม่ได้ explore สิ่งใหม่ๆที่จะเป็นประโยชน์กับตัวเรา ที่ Doppio ไม่แปลกเลย หากจะเห็นน้อง Automation บางคน กำลัง implement website ที่เป็น tools สำหรับ analyze test ที่ fail โดยใช้ Vue JS + Node JS และก็เป็นเรื่องธรรมดาที่น้องอีกคนกำลังนั่ง Setup virtual mobile farm เพื่อ support การรันเทส automation แบบ parallel ซึ่งหลายคนอาจจะมองว่า มันคืองานของ Developer และงานของ Devops

Virtual mobile farm development ที่ Doppio TECH

ที่ Doppio สอนหรือมีการ training ยังไงบ้าง หากสนใจงานในสายนี้

หากใครได้มีโอกาสเห็นประกาศรับสมัครงานของ Doppio ตามสื่อต่างๆ ไม่ว่าจะเป็น jobsDB, facebook จะเจอว่ามีคีย์เวิร์ดสำคัญอยู่อย่างหนึ่ง คือ “ประสบการณ์ไม่ต้องมี ขอเพียง มีใจ” ที่นี่เรามีพี่ๆ Senior / Lead ที่มีประสบการณ์ทำงานมาจากบริษัท Tech ชั้นนำของประเทศ ซึ่งในบริษัทเราก็จะมีจัด knowledge sharing อยู่เรื่อยๆ ทั้งในรูปแบบ online course / workshop / tech talk event สำหรับคนที่ทั้งไม่มีประสบการณ์เลย ไปจนถึงคนที่มีประสบการณ์แล้ว แต่อยากก้าวไปสู่ขั้นที่ advance ขึ้น ในการทำงานจริงน้องๆก็จะมีพี่ๆ mentor ที่น้องๆสามารถถามได้ 24 ชั่วโมง (จริงๆนะ) ใครที่อยากใช้เวลาวันว่างในการเรียนรู้ บริษัทเราก็มีคลังวิดีโอ training ที่เคย train ไปแยกตามหมวดหมู่ หัวข้อ ตั้งแต่ Beginner ไปยัง Advance ให้น้องๆได้เรียนได้ศึกษากันจนหนำใจในทุกๆ platform จะเห็นได้ว่า ปัจจัย support การ learning ต่างๆ ของน้องๆ มีมากมายหลากหลาย สิ่งเดียวที่น้องๆ ต้องพกเข้ามา คือ ใจที่อยากจะเก่งและอยากจะก้าวขึ้นมาเป็น ผู้เล่นแถวหน้าของวงการนี้

Online training ในช่วง COVID เราก็มี
Tech talk event
trick ที่ต้องมี เมื่อเราต้องการ test ที่ stable (หยอกๆ)

บทความนี้ก็ฝากไว้เท่านี้ก่อนนะครับ สำหรับใครที่สนใจอยากมาร่วมงานกับเรา ส่ง email มาได้เลยที่ careers@doppiotech.com นะครับ

และใครที่เป็นมือใหม่อยากเริ่มสายนี้ไปลองหัดเรียนรู้จาก youtube channel เราได้ที่
https://www.youtube.com/channel/UCmx_h_QeDQmI5SS0maT4lNw/featured

--

--