CupCode.cc
Section 03 · Module 01 · Lesson 01 · ~22–26 นาที

ทำไมต้อง Automate Testing

automation ไม่ได้มีไว้เพื่อแทน manual testing ทั้งหมด แต่มันช่วยให้ทีมเอาแรงของมนุษย์ไปใช้กับงานที่มนุษย์เก่งกว่า และปล่อยงานซ้ำ ๆ ให้เครื่องจัดการ บทนี้จะพาคุณเห็นเหตุผลเชิงคุณค่า ไม่ใช่แค่ความเท่ของการมี test script

เวลาเรียน: 22–26 นาที ต้องรู้มาก่อน: Section 2 หรือมีพื้นฐาน manual testing รูปแบบ: อ่าน + ตัวอย่างจริง + แบบฝึกสั้น

จบบทนี้แล้วคุณจะ...

  • อธิบายได้ว่า automation ช่วยทีมเรื่องอะไรจริงบ้าง นอกเหนือจากคำว่า “เร็วขึ้น”
  • เห็น pain points ของ manual regression ที่ทำให้ทีมตันเมื่อระบบโตขึ้น
  • เข้าใจว่าเป้าหมายของ automation คือการเพิ่ม feedback และความสม่ำเสมอ ไม่ใช่แค่ลดจำนวนคนเทสต์
  • แยกให้ออกว่า ROI ของ automation มาจากตรงไหน
  • มอง automation เป็นส่วนหนึ่งของ test strategy ไม่ใช่โปรเจกต์แยกโดด ๆ
1 · เริ่มจากปัญหาจริงก่อน

ทีมไม่ได้เริ่มทำ automation เพราะเบื่อเฉย ๆ

หลายทีมเริ่มสนใจ automation ในจังหวะที่ manual testing เริ่มไม่พอแล้ว เช่น:

  • ทุก sprint ต้องรัน regression ชุดเดิมซ้ำ
  • release ใกล้ทีไร QA ต้องเร่งตรวจ flow หลักแบบแทบไม่พัก
  • พอเวลาไม่พอ ทีมต้องตัดบางเคสออกทุกครั้ง
  • dev อยากได้ feedback เร็ว แต่ต้องรอ QA จนงานค้าง

ปัญหาเหล่านี้ไม่ใช่เพราะ QA ทำงานไม่ดี แต่เพราะระบบเริ่มใหญ่เกินกว่าที่การตรวจแบบ manual อย่างเดียวจะรับไหว

ตัวอย่างที่เจอบ่อย

สมมติระบบ e-commerce มี flow หลัก 6 ส่วน:

  • login
  • search
  • add to cart
  • checkout
  • payment
  • order history

ถ้าทีม deploy บ่อยขึ้นจากเดือนละครั้งเป็นสัปดาห์ละหลายครั้ง แต่ regression suite ยังต้องรันด้วยมือเกือบทั้งหมด ปัญหาจะมาเร็วมาก:

  • QA ใช้เวลาส่วนใหญ่ไปกับงานเดิม
  • exploratory testing ถูกเบียดหาย
  • บั๊กหลุดเพราะความล้า ไม่ใช่เพราะไม่รู้วิธีเทสต์

นี่คือบริบทที่ automation เริ่มมีความหมาย

2 · คุณค่าหลักของ automation คืออะไร

อย่ามองแค่ “เร็วกว่า” ให้มองว่า “ทำให้ทีมทำงานคนละแบบ”

คุณค่า ความหมายในชีวิตจริง
Speed รัน regression ได้เร็วขึ้นมาก
Consistency ทำซ้ำแบบเดิมทุกครั้ง ไม่ลืม ไม่ข้าม
Repeatability อยากรันซ้ำกี่รอบก็ได้ โดยต้นทุนต่อรอบต่ำ
Fast Feedback dev รู้เร็วขึ้นว่า code change ทำอะไรพัง
Scalability ทดสอบหลาย browser / หลาย data set ได้ง่ายขึ้น

1. Speed

งานที่ manual ใช้ครึ่งวัน บางครั้ง automation อาจเหลือไม่กี่นาที ซึ่งไม่ได้แปลว่าแค่ “จบไวขึ้น” แต่หมายถึง:

  • ทีม merge งานได้เร็วขึ้น
  • release decision มาเร็วขึ้น
  • defect ถูกจับก่อนลาม

2. Consistency

manual test ทำโดยคน ซึ่งแปลว่ามีผลจาก:

  • ความเหนื่อย
  • ความเคยชิน
  • การตีความ step ไม่เท่ากัน

automation ช่วยให้เคสเดิมถูก execute แบบเดิมทุกครั้ง ลด noise จากมนุษย์ในงานที่เป็น routine

3. Repeatability

บาง flow ต้องรัน:

  • ทุก pull request
  • ทุก deploy
  • ทุกคืน

ถ้ายังใช้ manual ทั้งหมด ทีมจะเริ่มเลือกรันเฉพาะบางส่วน แต่ automation ทำให้การรันซ้ำบ่อย ๆ เป็นเรื่องปกติได้

3 · สิ่งที่ทีมได้กลับมาจริง ๆ

เป้าหมายไม่ควรเป็น “QA ว่าง” แต่เป็น “QA มีเวลาไปทำงานที่มีคุณค่ากว่า”

เวลาที่ automation ช่วยประหยัดได้ มักถูกเอาไปใช้กับงานที่มนุษย์ยังเก่งกว่า เช่น:

  • exploratory testing
  • requirement review
  • risk assessment
  • bug investigation
  • test design ที่ซับซ้อน

ถ้ามองแบบนี้ automation ไม่ได้มาแทน QA แต่มาช่วยย้าย effort จากงานซ้ำ ๆ ไปสู่งานคิดวิเคราะห์มากขึ้น

automation ที่ดีไม่ได้ทำให้ QA หมดบทบาท แต่มักทำให้ QA ต้องใช้ judgment มากขึ้น

4 · เรื่องจริงที่ทำให้เห็นภาพ

จาก regression ที่กินเวลา 2 วัน เหลือรายงานที่เช็กตอนเช้า

สมมติทีมหนึ่งมี regression suite 250 เคสสำหรับระบบ subscription:

  • ก่อน automation: QA 2 คนใช้เวลาเกือบ 2 วันก่อน release
  • หลัง automation: core regression 60 เคสถูกรันทุกคืน

สิ่งที่เปลี่ยนจริงไม่ใช่แค่เวลา:

  • bug บางตัวถูกจับตั้งแต่วันเดียวกับที่ merge
  • QA ไม่ต้องรอใกล้ release ค่อยเห็นปัญหา
  • ทีมเริ่มกล้าปล่อยของถี่ขึ้น เพราะมี safety net บางส่วน

ตรงนี้คือเหตุผลที่หลายทีมมอง automation เป็นตัวเร่ง feedback loop มากกว่าจะมองว่าเป็นแค่การ “เขียน script”

5 · แต่ automation ไม่ใช่ยาวิเศษ

ถ้าเป้าหมายผิด ผลลัพธ์ก็ผิดได้

สิ่งที่ automation ทำไม่ได้ด้วยตัวมันเอง:

  • ไม่ช่วยเลือกว่าควรทดสอบอะไร
  • ไม่รับประกันว่าทีมกำลังทดสอบสิ่งที่สำคัญจริง
  • ไม่แทนสายตาของมนุษย์ในเรื่อง usability หรือ exploratory discovery

บางทีมรีบเริ่มเขียน test scripts เยอะมาก แต่ไม่ได้ตอบคำถามพื้นฐานก่อนว่า:

  • flow ไหนควร automate ก่อน
  • ระดับการทดสอบไหนเหมาะ
  • ใครจะดูแล suite นี้ระยะยาว

ผลคือได้ suite ใหญ่ แต่เปราะและไม่มีใครรักมัน

6 · สัญญาณว่า automation เริ่มคุ้มค่าแล้ว

ถ้าทีมเริ่มเจออาการเหล่านี้ ให้เริ่มคิดจริงจังได้

  • regression ซ้ำเดิมจนกินเวลาทีมมาก
  • มี flow หลักที่ต้องมั่นใจทุก release
  • ทีม deploy บ่อยขึ้น
  • มี bug regression เกิดซ้ำ
  • dev ต้องการ feedback เร็วกว่าเดิม

ไม่จำเป็นต้องรอให้ระบบใหญ่ระดับ enterprise ก่อนถึงจะเริ่ม แต่ก็ควรเริ่มเพราะ pain ที่ชัด ไม่ใช่เริ่มเพราะกระแส

7 · คำถามที่ควรถามก่อนเริ่ม automation initiative

เริ่มให้ถูก จะประหยัดแรงในระยะยาวมาก

ก่อนเริ่ม คุณควรถามอย่างน้อย:

  1. เรากำลังอยากแก้ pain อะไร
  2. flow ไหนสำคัญและรันบ่อยที่สุด
  3. ระดับไหนเหมาะกว่า ระหว่าง unit, integration, UI automation
  4. ใครจะดูแล test suite นี้เมื่อ feature เปลี่ยน
  5. จะวัดความคุ้มค่าจากอะไร เช่น regression time, escaped defects, release confidence

การตอบคำถามพวกนี้ทำให้ automation เป็นกลยุทธ์ ไม่ใช่โปรเจกต์เขียนสคริปต์แบบไร้ทิศทาง

Practice

แบบฝึก: automation กำลังแก้ pain ไหนอยู่

  1. ทีมคุณใช้เวลา 1 วันเต็มทุกสัปดาห์เพื่อตรวจ login, payment และ order flow ซ้ำ ๆ ปัญหาหลักที่ automation น่าจะช่วยได้คืออะไร

    ดูคำตอบแนะนำ

    automation น่าจะช่วยเรื่อง regression repetition, speed และ consistency เป็นหลัก เพราะ flow เดิมถูกตรวจซ้ำบ่อยและเป็น core flow ที่ทีมต้องมั่นใจทุก release

  2. ถ้าทีมบอกว่า “อยากทำ automation เพราะดูเป็นทีมทันสมัย” คุณคิดว่านี่พอหรือยัง

    ดูคำตอบแนะนำ

    ยังไม่พอ เหตุผลควรผูกกับ pain หรือเป้าหมายที่จับต้องได้ เช่น ลดเวลา regression, เพิ่มความเร็วของ feedback หรือป้องกัน regression ใน flow สำคัญ

  3. automation จะทำให้ manual testing หายไปไหม

    ดูคำตอบแนะนำ

    ไม่หายไปทั้งหมด งานที่ใช้ judgment ของมนุษย์ เช่น exploratory testing, usability review หรือการตีความ requirement ที่คลุมเครือ ยังต้องใช้คนอยู่มาก

  4. ถ้าทีมมี automated tests เยอะแล้ว แต่ยังจับ bug สำคัญไม่ค่อยได้ แปลว่าอะไรได้บ้าง

    ดูคำตอบแนะนำ

    อาจแปลว่าทีม automate ผิดเรื่อง ผิดระดับ หรือเลือกเคสที่ไม่ตรงกับความเสี่ยงสำคัญ จำนวน test ที่เยอะไม่ได้แปลว่าปกป้องสิ่งที่สำคัญจริงเสมอไป

สิ่งที่ต้องเอาติดตัวไปจากบทนี้

  • automation มีคุณค่าหลักที่ speed, consistency, repeatability และ fast feedback
  • เป้าหมายของมันไม่ใช่แทน manual testing ทั้งหมด แต่คือช่วยให้มนุษย์ไปทำงานที่ใช้ judgment มากกว่า
  • ทีมควรเริ่ม automation จาก pain ที่ชัดและ flow ที่สำคัญ ไม่ใช่เริ่มเพราะอยากมี script เยอะ
  • automation ที่ดีทำให้ release confidence เพิ่มขึ้น เพราะทีมเห็นปัญหาเร็วขึ้น
  • จำนวน automated tests ไม่สำคัญเท่ากับการเลือกว่าทดสอบ “อะไร” และ “ระดับไหน”