ทำความรู้จักความแตกต่างระหว่าง Software Testing Life Cycle (STLC) และ Automated Testing Life Cycle (ATLC)

Software Testing เป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์ ที่มุ่งเน้นทำการทดสอบระบบ หรือ แอปพลิเคชัน เพื่อให้มีคุณภาพ สามารถทำงานตามที่คาดหวัง และไม่มีข้อบกพร่อง ซึ่งปัจจุบันการทดสอบระบบถือเป็นหัวใจสำคัญของการพัฒนาคุณภาพซอฟต์แวร์ ซึ่งปัจจุบันจึงมีแนวคิดที่จะนำงานทดสอบระบบแบบเดิมที่ทำซ้ำๆ นั้นไปทำเป็น Automation หรือทำให้เป็นระบบอัตโนมัติจนกลายเป็นวิธีการแบบ Automated Testing ขึ้นมาใช้กันอย่างแพร่หลาย

ในสายการทดสอบระบบซอฟต์แวร์จึงมีการพัฒนากระบวนการเป็นแนวคิดหลักในการทำทดสอบซอฟต์แวร์ ซึ่งแบบดั้งเดิมคือ Software Testing Life Cycle (STLC) เป็นขั้นตอนพื้นฐานการทำทดสอบแบบ Manual และ Automated Testing Life Cycle (ATLC) ที่ถูกพัฒนาขึ้นต่อมาโดยมีการนำเครื่องมือ Automation เข้ามาช่วยเพิ่มประสิทธิภาพ

ในบทความนี้เรามาดูความแตกต่างระหว่างวิธีการทดสอบเหล่านี้กัน

Software Testing Life Cycle (STLC) และ Automated Testing Life Cycle (ATLC) คืออะไร?

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

Software Testing Life Cycle (STLC)

มักใช้เทคนิคการทดสอบแบบดำเนินการด้วยมือ (Manual Testing) โดยที่ผู้ทดสอบมนุษย์ดำเนินการ Test Case > สังเกตพฤติกรรมของแอปพลิเคชัน > และรายงานปัญหา แม้ว่าการทดสอบแบบแบบ Manaul Test สามารถทดสอบได้อย่างละเอียด มีการวางเป็น Template หรือ Test Case ที่ทีม Tester ต้องทำตามขั้นตอน แต่มันอาจใช้เวลาในการทำทดสอบนาน และใช้แรงมากเป็นพิเศษสำหรับโครงการขนาดใหญ่ เพราะมี Case ที่ต้องทำการทดสอบเยอะ ยังไม่นับรวมโอกาสเกิดความผิดพลาดที่เกิดขึ้นเมื่อผู้ทดสอบทำการทดสอบในขั้นตอนจำนวนมาก จนเกิดเป็น Human Errors

7 กระบวนการทดสอบระบบซอฟต์แวร์

Software Testing Life Cycle (STLC)

  • Requirement Analysis: วิเคราะห์ความต้องการ และทำความเข้าใจความต้องการของผู้ใช้งาน และกำหนดวัตถุประสงค์ในการทดสอบ
  • Test Planning: วางแผนการพัฒนาแผนการทดสอบอย่างละเอียด โดยระบุกลยุทธ์การทดสอบของโครงการ ขอบเขตการทดสอบ ทรัพยากร และกำหนดเวลาให้สอดคล้องกับ Requirement ที่เก็บมา
  • Test Case Development: การสร้างกรณีการทดสอบขึ้นมาโดยครอบคลุมกับความต้องการ และสถานการณ์ รวมถึง Resource ความสามารถเครื่องมือต่าง ๆ เขียนออกมาเป็น Test Case
  • Test Environment Setup: การติดตั้ง และกำหนดค่าโดยมีการเชื่อมต่อกับ Test Environment ไม่ว่าจะเป็น เครื่องมือ หรือ ซอฟต์แวร์ที่จำเป็นสำหรับการทดสอบ
  • Test Execution: เริ่มลงมือทำทดสอบ, รัน Test Case, รายงานข้อบกพร่อง, และทดสอบเพิ่มเติมตามที่จำเป็น
  • Defect Tracking and Management: การติดตามเก็บรายการผลลัพธ์ที่ได้ จัดลำดับ Priority และคิดวิธี จัดการแก้ไขข้อบกพร่องที่พบ
  • Test Closure: การประเมินกระบวนการทดสอบ สร้างรายงาน และเตรียมการสำหรับขั้นตอนถัด ๆ ไปหรือการแจ้งผลการทดสอบเพื่อให้ทีมพัฒนา ปรับปรุงระบบ หรือ ซอฟต์แวร์ ให้มีประสิทธิภาพดีขึ้น

ข้อดี-ข้อเสียของ Software Testing Life Cycle

ข้อดี

  • ความละเอียดและแม่นยำ: การทดสอบแบบ STLC มุ่งเน้นให้การทดสอบมีความละเอียดและเหมาะสมตามข้อกำหนด ทำให้สามารถตรวจจับข้อบกพร่องที่เฉพาะเจาะจงตาม Requirement ได้ มีความละเอียดมาก
  • ความยืดหยุ่น: STLC สามารถปรับเปลี่ยนกำหนดการและการทดสอบได้ตามความต้องการของโครงการ หรือ โปรดักต์นั้น ๆ ด้วยการกำหนด Test case เพื่อให้นักทดสอบระบบโฟกัส หรือ เพิ่มลดให้เหมาะสมในรูปแบบแตกต่างกันได้ เช่น Mobile App หรือ Website ก็สามารถแยก Test case ที่แตกต่างกันได้

ข้อเสีย

  • ใช้ Resource เยอะ: การทดสอบ STLC จะเป็นแบบ Manual ใช้เวลานานและแรงของ Tester เยอะ เนื่องจากทดสอบทีละขั้นตอนตาม Test Case ด้วยมือ
  • มีโอกาสเกิดความผิดพลาด: เมื่อกรณีที่มี Test case จำนวนมาก มี Code หลายบรรทัด ทำให้มีโอกาสที่ Tester ทำการทดสอบตกหล่น หรือ ข้ามขั้นตอนได้จนเป็น Human Errors

Automated Testing Life Cycle (ATLC)

การทดสอบซอฟต์แวร์โดยรูปแบบอัตโนมัติมีข้อดีหลายประการเมื่อเปรียบเทียบกับการทดสอบด้วยมือ (Manaul Testing) เช่น สามารถทำ Test ได้อย่างรวดเร็วขึ้น, สามารถในการทดสอบ Case ที่กว้างขึ้นได้ในการทำครั้งเดียว, และลด Cost ค่าใช้จ่ายในระยะยาว รวมถึงลดโอกาสเกิด Human Errors ได้ อย่างไรก็ตามการทำ Automated Testing ต้องมีโฟกัสในการเลือกเครื่องมือ Automation Framework, ความเข้าใจในการสร้าง Test Script และเข้าใจระบบกระบวนการทดสอบซอฟต์แวร์แบบ STLC

7 กระบวนการทดสอบระบบซอฟต์แวร์อัตโนมัติ

Automated Testing Life Cycle (ATLC)

  • Tool Selection: เลือกเครื่องมือ Automation ที่เหมาะสมตามความต้องการของโครงการ เทคโนโลยี และงบประมาณ ตาม Requirement ของโปรดักต์
  • Test Script Development: ขั้นตอนการเขียน Test Script เพื่อตรวจสอบซอฟต์แวร์ หรือ แอปพลิเคชัน
  • Test Environment Setup: การกำหนดกรอบการทดสอบและการติดตั้งหรือตั้งค่า Environment เช่นเดียวกับ STLC แต่สามารถกำหนด Case ได้กว้างมากขึ้น มองเป็นภาพใหญ่กว่า
  • Test Execution: การรันสคริปต์การทดสอบอัตโนมัติ การบันทึกผลลัพธ์ และการระบุข้อบกพร่องจากผลลัพธ์ในการทดสอบที่ได้
  • Result Analysis: การวิเคราะห์ผลการทดสอบเพื่อระบุรูปแบบ แนวโน้ม และพื้นที่ที่ต้องการการสำรวจเพิ่มเติม
  • Defect Management: การจัดการข้อบกพร่องที่พบผ่านระบบการติดตามอัตโนมัติและร่วมมือกับทีมพัฒนาสำหรับการแก้ไข
  • Maintenance: การอัพเดทและการบำรุงรักษาสคริปต์การทดสอบอัตโนมัติเพื่อปรับปรุงตามการเปลี่ยนแปลงของแอปพลิเคชัน

ข้อดี-ข้อเสียของ Automated Testing Life Cycle

ข้อดี

  • ความเร็วในการดำเนินการ: การทดสอบแบบ Automated สามารถทดสอบโปรแกรมได้เร็วกว่าการทดสอบแบบ Manual เนื่องจากสามารถรัน Script การทดสอบ Test Case จำนวนมากได้ในเวลาเดียว พร้อมกับเครื่องมือ Automation มากมายที่เข้ามาช่วยลดขั้นตอนการทดสอบซอฟต์แวร์ช่วยให้ทีม Tester ทำงานได้มีประสิทธิภาพมากยิ่งขึ้น
  • ความครอบคลุมของการทดสอบ: ด้วยเครื่องมือ Autimated Test มากมายที่ออกแบบให้สามารถครอบคลุมการทดสอบได้มากกว่า โดยที่สามารถรัน Test case ตามเงื่อนไขและแพลตฟอร์มต่าง ๆ ได้
  • ลด Cost ในระยะยาว เพิ่มความ Productive: การทดสอบอัตโนมัติสามารถลดค่าใช้จ่ายในระยะยาว เนื่องจากช่วยสามารถรันการทดสอบซ้ำ ๆ ได้โดยลดแรงของ Tester ช่วยให้เอาเวลาไปทำอย่างอื่นได้มากขึ้น

ข้อเสีย

  • ความยุ่งยากในการเริ่มต้น: การตั้งค่าและการเริ่มต้นการทดสอบอัตโนมัติอาจต้องใช้เวลาและความสม่ำเสมอในการพัฒนาสคริปต์การทดสอบ หรือ ต้องใช้ประสบการณ์ความเข้าใจ STLC ด้วยเพื่อนำมาประยุกต์ตั้งค่าเครื่องมือให้สามารถทำงานได้อย่างมีประสิทธิภาพ
  • ไม่ยืดหยุ่นเท่า STLC: ไม่สามารถทดสอบทุกกรณีได้โดยอัตโนมัติ บางกรณีอาจต้องมีการทดสอบด้วยมือเพิ่มเติม เพื่อให้แน่ใจว่าซอฟต์แวร์ทำงานถูกต้องในทุกเงื่อนไข

ความแตกต่างระหว่าง Software Testing Life Cycle (STLC) และ Automated Testing Life Cycle (ATLC)

Software Testing Life Cycle (STLC) Automated Testing Life Cycle (ATLC)
ลักษณะของการทดสอบ กระบวนการทดสอบแบบดำเนินการด้วยมือโดยผู้ทดสอบมนุษย์ กระบวนการทดสอบแบบอัตโนมัติโดยใช้เครื่องมือและสคริปต์
ความเร็ว ทดสอบด้วยมือมักจะช้ากว่าเนื่องจากการดำเนินการทดสอบด้วยมือ การดำเนินการทดสอบอัตโนมัติมีความเร็วสูงขึ้นเนื่องจากการอัตโนมัติของสคริปต์การทดสอบ
ความครอบคลุม มีขอบเขตการทดสอบที่จำกัดตามทรัพยากรและเวลาที่มีอยู่ การทดสอบอัตโนมัติมีความครอบคลุมที่กว้างขึ้นในหลายแพลตฟอร์มและการกำหนดค่าต่าง ๆ
ความต้องการในทรัพยากร ต้องการทีมทดสอบด้วยมือที่มีประสบการณ์และสามารถในการทดสอบ ต้องการทรัพยากรที่มีความสามารถในการเลือกเครื่องมือและการพัฒนาสคริปต์
ความยืดหยุ่นในการปรับปรุง มีความยืดหยุ่นและสามารถปรับเปลี่ยนตามความต้องการได้ ต้องการการอัปเดตสคริปต์และกรอบเพื่อให้เข้ากับการเปลี่ยนแปลง

    สรุปแล้ว การทำ Test ไม่ว่าจะเป็นรูปแบบ Manual หรือรูปแบบ Automated เป็นขั้นตอนที่สำคัญและขาดไม่ได้ แต่จะเลือกรูปแบบไหนนั้นขั้นอยู่กับลักษณะของโปรเจกต์, ขนาดระบบขององค์กร, รวมถึงทักษะความรู้ความสามารถของทีม Software Tester และ QA ด้วย อย่างไรก็ตาม การอัปเดตเทรนด์ ความรู้ต่าง ๆ ของเครื่องมือที่เข้ามาช่วยในงานการทดสอบซอฟต์แวร์เป็นสิ่งสำคัญ

    หากต้องการเรียนรู้ทักษะการทดสอบระบบซอฟต์แวร์ โดยเฉพาะการทดสอบแบบ Automated Testing ตั้งแต่พื้นฐานแนวคิดและวิธีปฏิบัติที่ถูกต้อง ขอแนะนำ

    เวิร์กชอปที่จะทำให้รู้ว่า Software Testing ที่ดีเป็นอย่างไร?

    เวิร์กชอป Full-Stack Automation Software Testing หลักสูตรรูปแบบ Onsite 2 วัน ลงมือทำจริงตั้งแต่ UI Test และ API Test ด้วยเครื่องมือยอดนิยมอย่าง Cypress, Postman, Playwright, RobotFramework เป็นต้น

    เวิร์กชอป Full Stack Automation Software Testing จาก Skooldio

    เรียนรู้ผ่านจากตัวอย่างโจทย์ในโลกการทำงานจากประสบการณ์ของคุณปุ๋ย สมเกียรติ ปุ๋ยสุงเนิน – Technical Coach & Software Craftsman ที่สยามชำนาญกิจ และเจ้าของเพจบทความ somkiat.cc

    สนใจสมัครเรียนได้เลยที่นี่ 👉 คลิกเลย

    More in:Technology

    Comments are closed.