Shift Left คือแนวทางการพัฒนาที่เลื่อนกระบวนการทดสอบ การตรวจสอบความปลอดภัย และการตรวจสอบคุณภาพให้เกิดขึ้นในช่วงต้นของวงจรการพัฒนา เพื่อลดต้นทุนในการค้นพบและแก้ไขข้อบกพร่อง
เมื่อแสดงขั้นตอนการพัฒนาซอฟต์แวร์บนแกนเวลาจากซ้ายไปขวา แนวคิด Shift Left คือการย้ายงานตรวจสอบที่เคยทำรวมกันก่อนปล่อยซอฟต์แวร์ (ฝั่งขวา) มาไว้ในขั้นตอนการออกแบบและการเขียนโค้ด (ฝั่งซ้าย) แทน
แนวคิดนี้แพร่หลายขึ้นในบริบทของ DevOps และการพัฒนาแบบ Agile เดิมทีในการพัฒนาแบบ Waterfall การทดสอบจะดำเนินการเป็นเฟสแยกต่างหากหลังจากเขียนโค้ดเสร็จสิ้น อย่างไรก็ตาม ยิ่งพบบั๊กช้าเท่าไร ต้นทุนในการแก้ไขก็ยิ่งเพิ่มขึ้นแบบทวีคูณ สิ่งที่แก้ไขได้ด้วยการปรับแก้ข้อกำหนดหากพบในขั้นตอนการออกแบบ อาจกลายเป็นการแก้ไขย้อนหลังหลายโมดูลหากพบในขั้นตอน Integration Test Shift Left คือการนำหลักการเชิงประสบการณ์นี้มาฝังไว้ในกลไกขององค์กร
Shift Left ไม่ได้พูดถึงเรื่องการทดสอบเพียงอย่างเดียว ในบริบทของความปลอดภัย แนวคิดนี้พัฒนาไปสู่การปฏิบัติแบบ DevSecOps ที่ "ทำ Threat Modeling ตั้งแต่ขั้นตอนการออกแบบ" ส่วนในบริบทของการประกันคุณภาพ จะถูกนำไปใช้งานในรูปแบบ CI Pipeline ที่ "รัน Static Analysis และ Unit Test โดยอัตโนมัติในทุก PR" การรัน Formatter และ Linter ผ่าน Pre-commit Hook ก็ถือเป็น Shift Left ในความหมายกว้างเช่นกัน
ในการพัฒนา AI Agent หลักการเดียวกันนี้ก็ถูกนำมาใช้ ใน Harness Engineering แทนที่จะตรวจสอบผลลัพธ์ของ Agent ภายหลัง จะสร้างสภาวะที่ "ไม่สามารถ Commit การเปลี่ยนแปลงที่ผิดพลาดได้ตั้งแต่ต้น" ด้วย Linter และ Type Checker ยิ่งเลื่อนจุดตรวจจับมาทางซ้ายมากเท่าไร ต้นทุนในการแทรกแซงของมนุษย์ก็ยิ่งลดลงเท่านั้น


TDD (Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่เขียน Test ก่อนเขียนโค้ดจริง โดยวนซ้ำในวงจรสั้น ๆ ได้แก่ Test ล้มเหลว (RED) → การ Implement (GREEN) → การ Refactor (Refactor)

ATDD (Acceptance Test-Driven Development) คือวิธีการพัฒนาซอฟต์แวร์ที่ทีมงานทั้งหมดร่วมกันกำหนดเกณฑ์การทดสอบการยอมรับ (Acceptance Test) ก่อนเริ่มการพัฒนา จากนั้นจึงทำการ Automate การทดสอบดังกล่าว แล้วจึงดำเนินการ Implement ต่อไป

PoC (Proof of Concept, การพิสูจน์แนวคิด) คือกระบวนการตรวจสอบความเป็นไปได้ของเทคโนโลยีหรือแนวคิดใหม่ในขนาดเล็ก โดยมีจุดประสงค์เพื่อทำให้ความเสี่ยงมองเห็นได้ชัดเจนก่อนลงทุนพัฒนาจริง และใช้ตัดสินใจว่า "แนวทางนี้สามารถบรรลุเป้าหมายที่ต้องการได้หรือไม่"


วิธีที่สถานพยาบาลในไทยใช้ AI Chatbot อัตโนมัติรองรับผู้ป่วยชาวต่างชาติ

การทดสอบเชิงฟังก์ชัน (Feature Test) คือวิธีการทดสอบที่ตรวจสอบพฤติกรรมของระบบในระดับฟังก์ชันหรือ Use Case ที่เฉพาะเจาะจง โดยครอบคลุมขอบเขตที่กว้างกว่าการทดสอบแบบ Unit Test และมุ่งยืนยันว่าโมดูลหลายตัวทำงานร่วมกันได้อย่างถูกต้อง