“ที่ทีมใช้ Robot Framework แล้วจะเรียนคอร์สที่ใช้ Playwright ได้มั้ย”
“อยากสมัครงานที่ใช้ Cypress จะเลือกเรียน Cypress ก่อนดีมั้ย”
“ถ้าเรียนแล้วจะไปปรับใช้กับ tool อื่นได้มั้ย”
ช่วงนี้มีคนทักมาถามพี่กิ่งเรื่อง tool สำหรับ automation test หลายคนค่ะ
ทุกคำถาม พี่กิ่งตอบว่า “ได้ค่ะ” แต่มันอาจจะเป็นคำตอบที่สั้นเกินไป
.
จริงๆ แล้ว คำถามพวกนี้ไม่ได้มีคำตอบแค่ “ได้” หรือ “ไม่ได้” ค่ะ
ที่สำคัญกว่าคือ “ได้แค่ไหน” และ “ทำยังไงได้บ้าง”
เพราะถ้าตอบไปว่าได้ แล้วถึงเวลาไปเจอ syntax ที่ต่างกัน
เราอาจจะรู้สึกว่า ไม่เห็นจะเอาไปปรับใช้ได้ตรงไหนเลย
วันนี้เลยอยากพาไปดูกันให้ชัดๆ เลยค่ะ
ว่าเราจะทำยังไง ถึงจะตอบคำถามเรื่อง tool นี้ได้
แล้วเราจะเอาไปปรับใช้ข้าม tool ยังไงได้บ้าง
.
📍 ไม่ว่าจะ tool ไหน หลักการการเขียน Automation Test ก็ยังเหมือนเดิมค่ะ
ลองดูตัวอย่างง่ายๆ เช่น เรื่อง Wait/Sleep
ถ้าใครทำมาซักพักแล้วจะรู้ว่า เราไม่ควรใช้ Wait หรือ Sleep ที่กำหนดระยะเวลาตายตัว
เพราะจะทำให้เกิดปัญหาหลายๆ อย่างตามมาได้
และควรจะไปใช้การรอเงื่อนไขของ element แทน เช่นรอจนกว่า element จะโผล่ขึ้นมา
ซึ่งไม่ว่าเราจะใช้ Robot Framework หรือ Playwright
หลักการนี้ก็ยังเหมือนเดิมค่ะ ต่างกันแค่ syntax
Robot Framework:
❌ ไม่ควรใช้: Sleep 5s
✅ ดีกว่า: Wait Until Element Is Visible id=order-success
Playwright:
❌ ไม่ควรใช้: await page.waitForTimeout(5000);
✅ ดีกว่า: await expect(page.locator(‘#order-success’)).toBeVisible();
ถ้าเราเข้าใจว่ามันทำอะไร แม้ว่าหน้าตามันจะไม่เหมือนกัน
แต่เราจะเข้าใจทันทีว่ามันกำลังพูดเรื่องเดียวกัน
คือเรารอให้เข้าเงื่อนไขที่ต้องการ ไม่ใช่รอตามเวลาที่กำหนดไว้
และสิ่งนี้คนที่เคยนั่งไล่หาว่าทำไมเทสมันผ่านบ้างพังบ้าง
จะเข้าใจเรื่องนี้เป็นอย่างดี ไม่ว่าเค้าจะใช้ tool ตัวไหน
.
📍หรือจะเป็นเรื่อง Locator ที่ Tool บางตัว อาจจะมีการจัดการให้เราได้ดีขึ้น
แต่หลักการก็ยังเหมือนเดิมอยู่ค่ะ
เช่นตัวอย่างข้างบน เราเลือกใช้ id ในการหา element
จะเขียน id=order-success หรือ ใช้ css selector #order-success ก็ได้ element ตัวเดียวกัน
แต่คำถามว่า “จะเลือกใช้ locator ไหนที่จะไม่พังบ่อยๆ”
ก็ยังเป็นคำถามที่สำคัญที่สุดที่ต้องตอบไม่ว่าจะใช้ tool ตัวไหน
.
📍แม้แต่เรื่อง Page Object Model ที่ทำให้เราปวดหัวกัน
ถ้าใครเคยใช้ Robot Framework แล้วแยก custom keyword สำหรับหน้านั้น ออกไปไว้ใน resource file แล้วค่อยเรียกใช้ใน test case อีกที
หรือ ใครเคยสร้าง Page class รวบรวม Locator และ Action ของหน้านั้น ใน Playwright, Selenium, Cypress
นั่นแหละค่ะ เราทำ Page Object Model ไปแล้ว
ไม่ว่าหน้าตามันจะเป็นแบบไหน หลักการก็ยังเหมือนเดิม
คือเราแยกส่วนความรับผิดชอบของโค้ดให้ชัดเจน เพื่อให้จัดการและดูแลง่ายขึ้น
.
หรือใครที่ใช้ Robot Framework แล้วใช้ Browser Library อยู่
จริงๆ แล้วข้างใน Browser Library เนี่ย มันก็คือ Playwright นี่แหละค่ะ
แปลว่าการที่เราเขียน Robot อยู่ทุกวัน อาจจะกำลังใช้ Playwright อยู่โดยไม่รู้ตัว
แล้วถ้าเราเข้าใจตรงนี้ ก็จะเข้าใจการทำงานของมันได้ดีขึ้น
และที่สำคัญเวลาที่ติดปัญหาอะไร ก็จะเริ่มเดาได้ว่า มันอาจจะเป็นปัญหาที่มาจาก Playwright ที่อยู่ข้างล่างอีกที
.
เพราะฉะนั้น ถ้าเราเข้าใจเรื่องต่างๆ เหล่านี้
✅ การเลือก Locator ที่เหมาะสม
✅ การจัดการ Wait ที่ถูกต้อง
✅ การวางโครงสร้าง test ที่ดูแลง่าย
✅ การจัดการ Test Data
✅ การอ่านผลเทส และแยกว่า fail เพราะอะไร
✅ การตัดสินใจว่าเคสไหนควร automate
ไม่ว่าเราจะเลือกใช้ tool ตัวไหน เราก็เอาไปปรับใช้ได้ทั้งหมดค่ะ เพราะหลักการมันยังอยู่เหมือนเดิม
แต่สิ่งที่ต่างไปคือ
❌ Syntax ของแต่ละภาษา
❌ Keyword และ Library ต่างๆ ที่ tool ตัวนั้นมีให้
❌ รูปแบบไฟล์ที่ต้องใช้
❌ การจัดการ config ต่างๆ
❌ หน้าตา test report ที่ออกมา
ที่เราอาจจะต้องไปเรียนใหม่ ของ tool แต่ละตัว
.
ถึงตรงนี้อยากให้ลองสังเกตตัวเองดูดีๆ นะคะ ว่าเรากำลังเรียนตรงจุดไหนอยู่
อย่างแรก เป็นหลักการที่เอาไปปรับใช้กับ tool ไหนก็ได้ ซึ่งจะเป็นสิ่งที่ต้องใช้เวลากว่าจะได้มา แต่ถ้าทำได้แล้ว ก็สบาย ไปใช้ tool ตัวไหนก็ได้
แต่อย่างหลัง เป็นสิ่งที่ใช้เวลาไม่นานในการเรียน และต้องเริ่มใหม่ทุกครั้งที่ใช้ tool ใหม่
แล้วตอนนี้เรากำลังเรียนโดยโฟกัสที่จุดไหนอยู่?
เรากำลังจำวิธีพิมพ์ หรือ กำลังทำความเข้าใจว่าทำไมต้องทำแบบนี้?
.
นี่แหละค่ะ คือสิ่งที่พี่กิ่งบอกว่าหลักการมันยังเหมือนเดิม ไม่ว่าเราจะใช้ tool ไหน
พอเราเข้าใจว่ามันทำงานยังไง และเรากำลังทำอะไรอยู่
เราจะไม่ได้แค่ทำงานอยู่กับ tool อีกต่อไป
แต่เรากำลังทำงานกับการเขียน Automation Test ที่เอาไปใช้ได้จริง
แล้วคำถามที่ว่าใช้ Tool ตัวไหนดี จะค่อยๆ หมดความสำคัญไปเอง
.
📍 ย้อนกลับมาที่คำถามว่า แล้วควรเริ่มที่ tool ไหนก่อนดีล่ะ?
ถึงตรงนี้บางคนก็อาจจะบอกว่า แต่มันก็ต้องเริ่มที่ tool ตัวไหนซักตัวก่อนอยู่ดีใช่มั้ยคะ
แล้วเราจะเลือกยังไงว่าเริ่มที่ไหนดี
อยากให้มองว่า การเลือก tool แรก มันไม่ได้เป็นการเลือกว่าจะใช้สิ่งนี้ตลอดไป แต่เป็นการเลือกว่าเราจะฝึกวิธีคิดผ่านเครื่องมือตัวไหนมากกว่า
เพราะฉะนั้นมันจะง่ายขึ้นเยอะเลยค่ะ อันไหนเริ่มได้ง่าย ก็เอาอันนั้นเลย
1️⃣ ทีมใช้อะไรอยู่ เอาอันนั้นเลย
ถ้าใครมีทีมที่ทำ Automation Test อยู่แล้ว ก็เริ่มเรียนจากตัวนั้นได้เลยค่ะ จะได้มีของจริงให้ทำ
2️⃣ ถ้าทีมยังไม่เริ่มเลย เลือกอันที่เริ่มได้เร็วที่สุด
เช่น ถ้าเราอยู่ในที่ที่ Dev เขียน Javascript เป็นหลัก ก็เลือก Tool ที่ใช้ Javascript จะได้มีคนช่วยเราได้เวลาที่ติดอะไร และ Playwright ก็เป็นอีกตัวที่เริ่มได้เร็วมากๆ ค่ะ
3️⃣ ตลาดงานต้องการมากที่สุด… อันนี้อยากให้เอาไว้ท้ายๆ เลยค่ะ
ไม่ใช่ว่ามันไม่สำคัญ แต่มันเป็นเกณฑ์ของคนที่กำลังจะยื่นสมัครงานแล้ว
ไม่ใช่ของคนที่ยังไม่ได้เริ่มเขียนบรรทัดแรกเลย
หลายคนเลือกไม่ได้ซักที เพราะมัวแต่คิดเยอะไปหมด เอาเกณฑ์ต่างๆ มาใช้ตัดสินใจ แล้วก็กลายเป็นว่าไม่ได้เริ่มซักที แต่สิ่งที่สำคัญที่สุดจริงๆ คือ “ก้าวแรก” นี่แหละค่ะ พยายามทำให้มันเล็กและง่ายที่สุด
.
ใครอยากเริ่ม ลองหา Automation Test ที่ทีมมีอยู่แล้ว หรือตัวอย่างจากที่ไหนก็ได้ค่ะ
แล้วลองอ่านดูว่าแต่ละบรรทัดมันทำอะไรบ้าง ใช้ locator อะไร เช็คผลลัพธ์ยังไง
แค่นี้ก็ถือว่าได้เริ่มแล้วค่ะ
.
Tool ที่ดีที่สุดสำหรับเรา ไม่ใช่ Tool ที่ดีที่สุดหรือคนใช้เยอะที่สุดในตลาด
แต่คือ Tool ที่ทำให้เราได้เริ่ม
แล้วมันจะทำให้เราเก่งขึ้นไปเรื่อยๆ เองค่ะ

