Regression Testing
Regression Testing คืออะไร?
คือ การทดสอบระบบทุก function end to end เพื่อที่จะได้ผลทดสอบว่า ระบบยังทำงานได้ตามความคาดหวัง ทั้งในส่วนที่มีการแก้ไขรวมไปถึงส่วนที่ไม่ได้แก้ไขก็ยังสามารถทำงานได้ตามปกติ
ตัวอย่าง ถ้าระบบของเรามีจำนวน test case ดังนี้
- Release1: 500 cases
- Release2: 300 cases
- Release3: 200 cases
ดังนั้น เราต้องทำการ regression test 1,000 cases
ทำไมเราต้อง regression test กันนะ?
บ่อยครั้งที่เรามักประเมินกันภายในทีมว่า แก้ function นี้บรรทัดเดียว ควร test แค่จุดนี้ๆๆๆๆๆ เท่านั้น ด้วยความที่เราคิดว่าเรารู้จักของในมือของเรามาก ทำให้เรามั่นใจมาก วิเคราะห์ผลกระทบกันในทุกมุมที่เราคิดว่าจะครอบคลุม และลดงานในการ testing กันเองด้วยความมั่นใจเพราะเราปั้นของเรามากับมือ
แต่…ความมั่นใจไม่ได้ลดข้อผิดพลาด ความรอบคอบช่วยลดข้อผิดพลาดได้มากกว่า
ดีมากมายที่ในกระบวนการ software testing เรามีการทำ regression test กัน แม้ว่าจะเป็นงานถึก แต่ก็นับว่าคุ้มค่ามากกับผลที่ได้รับ คือ คุณภาพ (เราเอา task ที่จะ regression test ไปทำ automate test ลดความถึกได้นะ)
ยิ่งระบบใหญ่ขึ้น จำนวนคนในทีมเยอะขึ้น จำเป็นอย่างมากที่เราต้องตรวจสอบคุณภาพของให้ดีก่อนที่จะปล่อยออกไปค่ะ เชื่อว่าหลายคนคงเคยเจอเหตุการณ์แก้โค้ดบรรทัดเดียวเอง…..
ขอบคุณค่ะ