Test Process – Phase 4:Regression Testing

1 Jul
2009

กลับมาอีกครั้ง กับภาคต่อของ Test Process ที่ยังไม่จบ หลังจากหายไปนานโข T_T มาครั้งนี้ไม่รอช้าค่ะ มาแนะนำกันต่อเลยล่ะกันค่ะ Go Go Go……

หลังจากที่เราดำเนินงานซะจน หุหุ อ่ะ ๆๆๆ เจอ Defect แล้ว รวมทั้ง ส่งรายงานผลของปัญหาทีพบกันไปแล้ว และเราก็นั่งลัลล้า…. รอให้ทางโปรแกรมเมอร์ท่านแก้ไขปัญหาต่าง ๆ ที่เราพบจนเสร็จเรียบร้อยแล้ว คราวนี้ก็มาถึงคราวของเหล่าท่าน Tester ทั้งหลาย ลงมือทดสอบกันอีกครั้งว่า defect ต่าง ๆ ที่ท่านส่งไปนั้นได้รับการแก้ไขปัญหาแล้วหรือยัง ซึ่งใน Phase นี้ คงมีคำศัพท์ที่คุ้น ๆ หูกันอยู่ 2 คำค่ะ คือ Re- Test และ Regression Testing ค่ะ

ทั้งนี้ ในการตรวจสอบปัญหาใน Phase นี้ ก่อนอื่น เราเองจะต้องมาตรวจสอบสถานะของปัญหาแต่ละข้อกันเสียก่อนว่า

  • ข้อไหนที่ได้รับการแก้ไข เย้ ๆๆๆ ส่วนนี้ลงมือทดสอบกันอีกรอบ
  • ข้อไหนที่ไม่แก้ไข อ่า … ส่วนนี้ งานเข้าค่ะ เพราะต้องมาตรวจสอบต่อไปอีกว่า เหตุใดจึงไม่มีการแก้ไขปัญหาในส่วนนี้

Regression Testing

photo by bbc.co.uk

Purpose

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

Entry Criteria

  • ทำการ  Test Execution เรียบร้อยแล้ว
  • ทีมผู้พัฒนาทำการแจ้งยืนยันความพร้อมของระบบ ทั้งนี้ ทีมผู้พัฒนาจะต้องดำเนินการต่าง ๆ ดังต่อไปนี้ เรียบร้อยแล้ว
  • ทำการแก้ไขปัญหาจากรายงานปัญหา (Defects Report) ที่พบเรียบร้อยแล้ว
  • ทำการ Update / Deployment Source code ไปที่ Test Environment เรียบร้อยล้ว
  • ทำการแจ้งปรับสถานะต่าง ๆ ของรายงานปัญหาที่แจ้งเรียบร้อยแล้ว

Process

  • ทาง Test Team จะทำการตรวจสอบความพร้อมของระบบก่อนที่จะทำการทดสอบระบบค่ะ  ในส่วนนี้ ทาง Test Team จะทำการตรวจสอบในเบื้องต้นเท่านั้นค่ะ ในขั้นตอนนี้ จะเป็นขั้นตอนในลักษณะเดียวกันกับใน Test Process – Phase 3:Test Execution ค่ะ
  • จากนั้น ก็เริ่มลงมือเข้าสู่กระบวนการ Regression Test กันเลยค่ะ แต่สำหรับครั้งนี้ เราจะดำเนินงานตาม Defects Report กันนะค่ะ หรือ กล่าวได้อีกรูปแบบนึงก็คือ ตาม Test Case ใน Test Process – Phase 3:Test Execution ค่ะ  แต่จะเน้นในส่วนของ Case ที่ไม่ผ่านก่อนค่ะ ซึ่งในส่วนนี้ ยังคงนำข้อมูลต่าง ๆ ที่เราเคยเตรียมไว้แล้วใน  Test Process – Phase 2:Test Design and Preparation มาใช้กันได้ค่ะ
  • เมื่อทดสอบระบบไปแล้ว พบปัญหาใด ๆ เราก็ทำการ Record ไว้ และทำการส่ง Defect หรือ ปัญหาในการใช้งานนั้น ๆ ผ่าน ระบบ Defects Tracking กันเช่นเดิมค่ะ
  • เมื่อทาง Test Team ทำการทดสอบระบบเรียบร้อยแล้ว  จะทำการ Review Defects กับทีมต่าง ๆ ที่เกี่ยวข้องทั้งหมดอีกครั้งค่ะ  เพื่อสรุปภาพรวมให้ทุกทีมได้ทราบอย่างทั่วถึงกัน ซึ่งในการทดสอบครั้งนี้ จะมีลักษณะของ Defects ที่พบคือ
    • Defects ใหม่ ที่ไม่พบใน Test Process – Phase 3:Test Execution ค่ะ
    • Defects เก่าที่เคยรายงานไปแล้ว แต่ยังคงพบปัญหาเดิมอยู่
    • Defects เก่าที่รายงานไปแล้ว และทำการแก้ไขเรียบร้อย

Exit Criteria

  • เมื่อทาง Test Team ดำเนินการต่าง ๆ แล้วดังนี้
    • ดำเนินการทดสอบตามรายละเอียดของปัญหาเรียบร้อยแล้ว
    • ดำเนินการส่งรายงานปัญหาต่าง ๆ ที่พบทั้งหมดเรียบร้อยแล้ว
    • ดำเนินการ Review Defects ต่าง ๆ กับทีมที่เกี่ยวข้อง

หลังจากที่เราดำเนินการไปแล้ว ทั้งใน Phase ของ Test Execution และ Regression Test เรียบร้อยแล้ว อยากฝากให้ ลองนำมาคำนวน Effectiveness และ Efficiency ของการ Test กันเล่น ๆ กันบ้่าง ว่าเป็นอย่างไรกันบ้างนะค่ะ  *v*

อ่านบทความเกี่ยวกับ Test Process เพิ่มเติม :-

2 Responses to Test Process – Phase 4:Regression Testing

Avatar

Job

July 3rd, 2009 at 2:39 pm

สำหรับ Re- Test และ Regression Testing ทางผมขอ Share ความแตกต่างเพิ่มเติมดังนี้ครับ

ในกระบวนการที่ 4 นี้น่าจะหมายความถึง Re test มากกว่านะครับ เป็นการ Retest Function ใหม่ ใน Round 2 หรือรอบถัดๆ ไป ตามที่ได้มีการแก้ไข Defect

ส่วน Regression test คือการทดสอบ Function เดิมทั้งหมดของระบบ (หรือจะทดสอบ Function เดิมที่เกี่ยวข้องกับระบบงานใหม่) ตาม Test case ที่เคยได้จัดทำไว้ โดยนำมาทวนทดสอบใหม่เมื่อระบบมี Function ใหม่เพิ่มเติม เพื่อจะได้ทดสอบว่าระบบงานยังทำงานได้เหมือนเดิมหรือไม่ และเพื่อทดสอบว่าการพัฒนา Functionใหม่มีอะไรไปกระทบกับ Function เดิมหรือไม่และทำงานร่วมกับ Function ใหม่ได้หรือไม่ครับ

ดังนั้นเมื่อระบบ มี Function งานเดิม และมีการทดสอบ Function งานใหม่ จึงต้องมีการทำ Regresstion test ของ Function งานเดิม แต่โดยส่วนใหญ่ Tester มักจะไม่ค่อยทำเพราะติดปัญหาเรื่องเวลา และ Resource ที่จะดำเนินการ เพราะ Function มันจะสะสมมากขึ้นเรื่อยๆ รวมถึง รอบทดสอบที่มากขึ้นเรื่อยตามจำนวนรอบแก้ไข Defect

เป็นปัญหาหนึ่งที่แก้ไขได้ด้วยการใช้ Testing tool มาช่วยในการทำการทดสอบ

ผู้เขียนมีความเห็นอย่างไรครับ : )

Avatar

Bugz Bunny

July 10th, 2009 at 7:37 pm

ก่อนอื่น ขอบคุณสำหรับการแบ่งปันจาก K.Job นะค่ะ ยินดีมาก ๆ ค่ะ

ในการทำงานโดยส่วนใหญ่ มักจะมีข้อจำกัดต่าง ๆ อันได้แ่ก่ เวลา , Resource และ Skill ค่ะ ทั้งนี้ โดยส่วนใหญ่ที่ทำนั้น จะไม่ได้ทำการทดสอบใหม่ทั้งระบบค่ะ แต่จะนำในส่วนที่เกิดปัญหา หรือ Defect มาเป็นจุดเิริ่มต้น และทำการประเมินว่า Defect ดังกล่าวมีผลกระทบกับส่วนใดบ้างค่ะ ซึ่งในส่วนนี้ คงต้องเน้นที่ skill ของผู้ทดสอบเป็นหลักค่ะ ว่าต้องทำการจำกัดกลุ่มที่จะทดสอบอย่างไร

แต่ทั้งนี้ทั้งนั้น หากมีการสะสมงานที่มากมาย อีกทั้งระยะเวลาที่เนิ่้นนาน กว่าจะถึงรอบของการส่งมา Regression หรือการแก้ไขนั้น จะมีใน Version ถัด ๆ ไปแล้วล่ะก้อ เห็นจะต้องมีการ Tracking ที่มีประสิทธิภาพด้วยค่ะ

หากในส่วนที่แสดงความคิดเห็น อาจไม่ตรงใจ หรือมีข้อแนะนำส่วนอื่น เชิญน่ะค่ะ ยินดีมาก ๆ ค่ะ รวมเป็นส่วนหนึ่งในสังคมแห่งการแบ่งปันใน We love bug กันค่ะ *v*
.-= Bugz Bunny´s last blog ..WS: Trip to FeilongShan =-.

Comment Form

top