การทดสอบการถดถอยคืออะไร?
การทดสอบการถดถอยคืออะไร?
การทดสอบการถดถอย หมายถึงการทดสอบซอฟต์แวร์ประเภทหนึ่งเพื่อยืนยันว่าโปรแกรมหรือการเปลี่ยนแปลงโค้ดล่าสุดไม่ส่งผลกระทบในทางลบต่อคุณสมบัติที่มีอยู่ นอกจากนี้เรายังสามารถพูดได้ว่าไม่มีอะไรนอกจากการเลือกกรณีทดสอบที่ดำเนินการแล้วทั้งหมดหรือบางส่วนที่ดำเนินการอีกครั้งเพื่อให้แน่ใจว่าฟังก์ชันการทำงานที่มีอยู่ทำงานได้ดี
การทดสอบประเภทนี้ทำเพื่อให้แน่ใจว่าการเปลี่ยนแปลงโค้ดใหม่ไม่มีผลข้างเคียงใด ๆ ต่อฟังก์ชันการทำงานที่มีอยู่ ช่วยให้มั่นใจได้ว่าโค้ดเก่ายังคงใช้งานได้เมื่อการเปลี่ยนแปลงโค้ดล่าสุดเสร็จสิ้น
ทำไมต้องทดสอบการถดถอย?
กระบวนการทดสอบการถดถอยถือเป็นสิ่งสำคัญในขอบเขตการทดสอบ เนื่องจากสามารถระบุได้ว่าการเปลี่ยนแปลงหรือการปรับปรุงโค้ดทำให้เกิดข้อบกพร่องใหม่หรือขัดขวางการทดสอบการทำงานที่มีอยู่
หากไม่มีกระบวนการทดสอบการถดถอย แม้แต่การเปลี่ยนแปลงโค้ดเล็กน้อยก็อาจมีโอกาสที่จะนำไปสู่ข้อผิดพลาดที่มีค่าใช้จ่ายสูง ดังนั้นจึงเป็นแนวทางปฏิบัติที่เป็นระบบเพื่อช่วยรักษาคุณภาพของซอฟต์แวร์ วิธีการนี้จะช่วยป้องกันการเกิดซ้ำของปัญหาที่ทราบ และเพิ่มความมั่นใจในซอฟต์แวร์
เราจะทำการทดสอบการถดถอยได้เมื่อใด
ต่อไปนี้เป็นสถานการณ์เมื่อคุณสามารถใช้กระบวนการทดสอบการถดถอยได้
มีการเพิ่มฟังก์ชันใหม่ให้กับแอปพลิเคชัน: สิ่งนี้จะเกิดขึ้นเมื่อมีการสร้างคุณสมบัติหรือโมดูลใหม่ในแอพหรือเว็บไซต์ การถดถอยจะดำเนินการเพื่อดูว่าคุณลักษณะที่มีอยู่ทำงานตามปกติพร้อมกับการแนะนำคุณลักษณะใหม่หรือไม่
ในกรณีที่ต้องการเปลี่ยนแปลง: เมื่อมีการเปลี่ยนแปลงที่สำคัญเกิดขึ้นในระบบ จะมีการใช้การทดสอบการถดถอย การทดสอบนี้ทำขึ้นเพื่อตรวจสอบว่าการเปลี่ยนแปลงเหล่านี้ส่งผลกระทบต่อฟีเจอร์ที่มีอยู่หรือไม่
หลังจากแก้ไขข้อบกพร่องแล้ว: นักพัฒนาทำการทดสอบการถดถอยหลังจากแก้ไขข้อบกพร่องในฟังก์ชันการทำงานใดๆ การทำเช่นนี้เพื่อตรวจสอบว่าการเปลี่ยนแปลงที่ทำขึ้นในขณะที่แก้ไขจุดบกพร่องมีผลกระทบต่อคุณสมบัติอื่น ๆ ที่เกี่ยวข้องที่มีอยู่หรือไม่
เมื่อปัญหาด้านประสิทธิภาพได้รับการแก้ไขแล้ว: หลังจากแก้ไขปัญหาด้านประสิทธิภาพแล้ว กระบวนการทดสอบการถดถอยจะถูกเรียกใช้เพื่อดูว่าส่งผลต่อการทดสอบการทำงานอื่นๆ ที่มีอยู่หรือไม่
ขณะรวมเข้ากับระบบภายนอกใหม่: จำเป็นต้องมีกระบวนการทดสอบการถดถอยแบบครบวงจรเมื่อใดก็ตามที่ผลิตภัณฑ์รวมเข้ากับระบบภายนอกใหม่
วิธีทำการทดสอบการถดถอยในการทดสอบซอฟต์แวร์
ตามที่เราได้พูดคุยกันก่อนหน้านี้ การทดสอบการถดถอยจะถูกเรียกใช้งานตามการเปลี่ยนแปลงใดๆ ที่เกิดขึ้นกับซอฟต์แวร์ อาจเป็นการแก้ไขข้อบกพร่อง การรวมฟีเจอร์ใหม่ และอื่นๆ เมื่อใดก็ตามที่มีการทำงานดังกล่าว ทีม QA จะดำเนินการตามกิจกรรมต่อไปนี้ งานเหล่านี้จะดำเนินการก่อนที่จะเริ่มรอบการดำเนินการทดสอบการถดถอย
- พูดคุยกับทีมพัฒนาเกี่ยวกับโมดูลและไลบรารีเฉพาะที่ได้รับการติดต่อระหว่างการเปลี่ยนแปลง
- พูดคุยกับเจ้าของผลิตภัณฑ์เกี่ยวกับการเปลี่ยนแปลงคุณลักษณะใหม่และเรียนรู้ว่าคุณลักษณะดังกล่าวไหลผ่านหรือส่งผลต่อฟังก์ชันการทำงานอื่นๆ อย่างไร
- ระบุการทดสอบจากชุดการทดสอบที่มีอยู่ซึ่งผู้ทดสอบจำเป็นต้องดำเนินการเพื่อถดถอยคุณลักษณะที่มีอยู่
สามารถใช้เทคนิคการทดสอบการถดถอยต่างๆ เพื่อการประกันคุณภาพซอฟต์แวร์ที่มีประสิทธิภาพ:
ทดสอบซ้ำทั้งหมด
นี่เป็นหนึ่งในวิธีการทดสอบการถดถอย โดยเฉพาะการใช้ชุดการทดสอบการถดถอย ในกรณีนี้ ควรทำการทดสอบทั้งหมดในบัคเก็ตหรือชุดทดสอบที่มีอยู่อีกครั้ง นี่เป็นวิธีการที่มีราคาแพงเนื่องจากต้องใช้เวลาและทรัพยากรเป็นจำนวนมาก
การเลือกการทดสอบการถดถอย
การเลือกการทดสอบการถดถอยเป็นเทคนิคที่ดำเนินการกรณีทดสอบที่เลือกจากชุดทดสอบ ช่วยทดสอบว่าโค้ดที่แก้ไขมีผลกระทบต่อแอพพลิเคชั่นซอฟต์แวร์หรือไม่ ในที่นี้ กรณีทดสอบจะแบ่งออกเป็นสองส่วน กรณีทดสอบที่ใช้ซ้ำได้สามารถนำมาใช้ในรอบการถดถอยเพิ่มเติมได้ ในขณะที่กรณีทดสอบที่ล้าสมัยไม่สามารถใช้ในรอบต่อๆ ไป
การจัดลำดับความสำคัญของกรณีทดสอบ
การจัดลำดับความสำคัญของกรณีทดสอบขึ้นอยู่กับผลกระทบทางธุรกิจ ความวิกฤต และการทดสอบการทำงานที่ใช้บ่อย นอกจากนี้ การจัดลำดับความสำคัญของกรณีทดสอบตามลำดับความสำคัญจะช่วยลดความพยายามในการดำเนินการทดสอบการถดถอยได้อย่างมาก
การเลือกกรณีทดสอบสำหรับการทดสอบการถดถอย
จากข้อมูลอุตสาหกรรมพบว่าข้อบกพร่องจำนวนมากที่ลูกค้ารายงานมีสาเหตุมาจากการแก้ไขข้อบกพร่องในนาทีสุดท้าย ซึ่งส่งผลให้เกิดผลข้างเคียง ดังนั้น การเลือกทาน กรณีทดสอบ สำหรับการทดสอบการถดถอยไม่ใช่เรื่องง่าย
สามารถสร้างชุดทดสอบการถดถอยที่มีประสิทธิภาพได้โดยการเลือกประเภทกรณีทดสอบต่อไปนี้
- กรณีทดสอบจากฟังก์ชัน/โมดูลที่มีข้อบกพร่องบ่อยครั้ง
- ฟังก์ชั่นที่ผู้ใช้มองเห็นได้ชัดเจนยิ่งขึ้น
- กรณีทดสอบที่ตรวจสอบคุณสมบัติหลักของผลิตภัณฑ์
- กรณีทดสอบฟังก์ชันการทำงานที่มีการเปลี่ยนแปลงล่าสุด
- การบูรณาการใหม่ทั้งหมด
- ทุกกรณีทดสอบที่ซับซ้อน
- กรณีทดสอบค่าขอบเขต
- เลือกเส้นทางแห่งความสุขและกรณีทดสอบเชิงลบ
เครื่องมือทดสอบการถดถอย
หากซอฟต์แวร์ของคุณมีการเปลี่ยนแปลงบ่อยครั้ง ค่าใช้จ่ายในการทดสอบการถดถอยก็จะเพิ่มขึ้น เนื่องจากการดำเนินการกรณีทดสอบด้วยตนเองจะเพิ่มเวลาดำเนินการทดสอบและต้นทุน ระบบอัตโนมัติของกรณีทดสอบการถดถอยเป็นตัวเลือกที่ชาญฉลาดในกรณีเช่นนี้ ขอบเขตของระบบอัตโนมัติขึ้นอยู่กับจำนวนกรณีทดสอบที่ยังคงสามารถนำมาใช้ซ้ำได้สำหรับรอบการถดถอยที่ต่อเนื่องกัน
ต่อไปนี้เป็นเครื่องมือที่สำคัญที่สุดที่ใช้สำหรับการทดสอบอัตโนมัติทั้งแบบฟังก์ชันและการถดถอยในวิศวกรรมซอฟต์แวร์:
1) ทดสอบความเข้มงวด
ทดสอบความเข้มงวด ช่วยให้คุณแสดงการทดสอบโดยตรงในรูปแบบข้อมูลจำเพาะที่สามารถดำเนินการได้ในภาษาอังกฤษแบบธรรมดา ผู้ใช้ที่มีความสามารถทางเทคนิคทุกระดับสามารถสร้างการทดสอบแบบครบวงจรที่มีความซับซ้อนใดๆ ก็ได้ ครอบคลุมขั้นตอนบนมือถือ เว็บ และ API ขั้นตอนการทดสอบจะแสดงในระดับผู้ใช้ปลายทางแทนที่จะต้องพึ่งพารายละเอียดการใช้งาน เช่น XPath หรือ CSS Selectors
สิ่งอำนวยความสะดวก:
- รุ่นสาธารณะฟรีตลอดไป
- กรณีทดสอบเป็นภาษาอังกฤษ
- ผู้ใช้ไม่จำกัดและการทดสอบไม่จำกัด
- วิธีที่ง่ายที่สุดในการเรียนรู้ระบบอัตโนมัติ
- เครื่องบันทึกขั้นตอนเว็บ
- การบูรณาการกับ CI/CD และการจัดการกรณีทดสอบ
- การทดสอบอีเมล์และ SMS
- ขั้นตอนเว็บ + มือถือ + API ในการทดสอบครั้งเดียว
2) เรื่อง 7
เรื่อง 7 คือโซลูชันการทดสอบอัตโนมัติแบบ "ไร้โค้ดที่แท้จริง" บนคลาวด์ รวมการทดสอบทั้งหมดไว้ในแพลตฟอร์มเดียว และช่วยให้ทุกคนกลายเป็นผู้เชี่ยวชาญด้านระบบอัตโนมัติ ซอฟต์แวร์ที่ใช้งานง่ายนี้ช่วยให้สามารถเขียนการทดสอบการถดถอยได้อย่างรวดเร็ว ง่ายดาย และซับซ้อน ไม่จำเป็นต้องมีโค้ดแม้แต่บรรทัดเดียวและให้การดำเนินการในระดับสูงที่ทำการทดสอบนับพันครั้งทุกคืน
สิ่งอำนวยความสะดวก:
- ผสานรวมกับเครื่องมือ DevOps/Agile ได้อย่างง่ายดายโดยใช้ปลั๊กอินแบบเนทีฟ การผสานรวมในแอป และ API แบบเปิด
- การดำเนินการแบบขนานระดับสูงในระบบคลาวด์หรือภายในองค์กรพร้อมการรักษาความปลอดภัยระดับองค์กร
- การรายงานข้อบกพร่องที่ยืดหยุ่น พร้อมการจับภาพวิดีโอผลลัพธ์
- การกำหนดราคาที่เรียบง่ายและไม่ต้องวัดปริมาณ ช่วยให้สามารถคาดการณ์ทางการเงินได้
- สอดคล้องตามมาตรฐาน SOC2 Type2
Selenium: Selenium เป็นเครื่องมือโอเพ่นซอร์สที่ใช้มากที่สุดสำหรับการทำงานอัตโนมัติของเว็บแอปพลิเคชัน Selenium สามารถใช้สำหรับการทดสอบการถดถอยบนเบราว์เซอร์ รองรับภาษาการเขียนโปรแกรมเช่น Javaทับทิม Pythonฯลฯ
ผู้เชี่ยวชาญด้านการทดสอบอย่างรวดเร็ว (QTP): HP Quick Test Professional เป็นซอฟต์แวร์อัตโนมัติที่ออกแบบมาเพื่อทำให้กรณีทดสอบการทำงานและการถดถอยเป็นแบบอัตโนมัติ ใช้ภาษาสคริปต์ VB สำหรับการทำงานอัตโนมัติ มันเป็นเครื่องมือที่ขับเคลื่อนด้วยข้อมูลและอิงตามคำหลัก
เครื่องทดสอบฟังก์ชันเชิงเหตุผล (RFT): IBMตัวทดสอบฟังก์ชันเชิงตรรกศาสตร์ของ a Java เครื่องมือที่ใช้สำหรับทำการทดสอบกรณีของแอปพลิเคชันซอฟต์แวร์โดยอัตโนมัติ โดยส่วนใหญ่ใช้เพื่อทำการทดสอบการถดถอยโดยอัตโนมัติ และยังรวมเข้ากับ Rational Test Manager ได้อีกด้วย
ประเภทของการทดสอบการถดถอย
การทดสอบการถดถอยประเภทต่างๆ มีดังนี้
1) การทดสอบการถดถอยหน่วย (URT)
นี่เป็นแนวทางที่มุ่งเน้นมาก โดยมีเพียงส่วนที่แก้ไขเท่านั้นที่จะอยู่ภายใต้การทดสอบการถดถอย แทนที่จะเป็นขอบเขตผลกระทบ ด้วยวิธีนี้ ส่วนอื่นๆ ของโมดูลยังคงไม่ได้รับผลกระทบ
ตัวอย่าง
ในฐานะที่เป็น ตัวอย่าง ใน Build 1 พบปัญหาและรายงานไปยังนักพัฒนา
สมมติว่ามันเป็นข้อบกพร่องในฟังก์ชันการเข้าสู่ระบบ ดังนั้นนักพัฒนาจึงทำการแก้ไข เพิ่มการแก้ไขข้อบกพร่องใน Build 2 และส่งไป ทีมทดสอบจะตรวจสอบเฉพาะฟีเจอร์การเข้าสู่ระบบทำงานตามที่คาดไว้ แทนที่จะตรวจสอบฟีเจอร์อื่นๆ
2) การทดสอบการถดถอยระดับภูมิภาค (RRT)
ในการทดสอบการถดถอยระดับภูมิภาค จะมีการทดสอบพื้นที่การดัดแปลงและผลกระทบ พื้นที่นี้ได้รับการตรวจสอบเพื่อดูว่าโมดูลที่เชื่อถือได้ใดๆ อาจได้รับผลกระทบจากการเปลี่ยนแปลงหรือไม่
ตัวอย่าง: ในตัวอย่างนี้ ในบิลด์แรก โมดูล A, B, C และ D จะถูกส่งไปทดสอบโดยนักพัฒนา ผู้ทดสอบพบข้อบกพร่องในโมดูล B ดังนั้นแอปพลิเคชันจะถูกส่งกลับไปยังนักพัฒนาเพื่อแก้ไขข้อบกพร่อง
เมื่อนักพัฒนาแก้ไขจุดบกพร่องในรุ่นที่สองในโมดูล B แล้ว จะถูกส่งไปยังวิศวกรทดสอบอีกครั้ง วิศวกรทดสอบเรียนรู้ว่าการซ่อมโมดูล B ส่งผลต่อ A และ C
ดังนั้นผู้ทดสอบจะตรวจสอบการแก้ไขของโมดูล B ในรุ่นที่สอง จากนั้น ทดสอบขอบเขตผลกระทบใน A และ C เพื่อระบุว่าได้รับผลกระทบอย่างไร
หมายเหตุ ในขณะที่การทดสอบการถดถอย มีปัญหาที่เป็นไปได้ที่อาจเกิดปัญหาด้านล่างนี้
ปัญหา:
- ในบิลด์ 1 ไคลเอนต์มักจะขอการเปลี่ยนแปลง การแก้ไข และเพิ่มคุณสมบัติ
- คำขอนี้จะถูกส่งไปยังทั้งทีมพัฒนาและทีมทดสอบ
- จากนั้นทีมพัฒนาจะดำเนินการแก้ไข จากนั้นวิศวกรทดสอบจะส่งอีเมลถึงลูกค้าเพื่อแจ้งให้ทราบถึงผลกระทบที่อาจเกิดขึ้นจากการแก้ไข
- จากนั้นลูกค้าเป้าหมายจะรวบรวมรายชื่อพื้นที่ที่ได้รับผลกระทบจากลูกค้า นักพัฒนา และแผนกทดสอบ
- จากนั้นรายการผลกระทบจะถูกส่งไปยังวิศวกรทดสอบซึ่งจะเริ่มการทดสอบการถดถอย
วิธีทดสอบประเภทนี้ทำให้เกิดช่องว่างในการสื่อสาร นักพัฒนาและลูกค้าไม่สามารถกลับไปดูอีเมลได้ตลอดเวลา ดังนั้นจึงไม่มีภาพรวมที่เหมาะสมของพื้นที่ที่มีผลกระทบ
วิธีการแก้: เพื่อขจัดปัญหาประเภทนี้ ทีมทดสอบสามารถจัดการประชุมเมื่อบิลด์ใหม่มาถึงหลังจากการแก้ไขข้อบกพร่อง คุณสมบัติใหม่ และการแก้ไข การประชุมครั้งนี้จะจัดขึ้นเพื่อหารือว่าโมดูลต่างๆ ได้รับผลกระทบเนื่องจากการปรับเปลี่ยนหรือไม่
จะมีรอบทดสอบเพื่อค้นหาผลกระทบเพื่อให้สามารถสร้างรายการผลกระทบได้ สายวัดทดสอบจะเพิ่มจำนวนพื้นที่สูงสุดในบริเวณที่ได้รับผลกระทบในรายการนี้
ด้านล่างนี้คือลักษณะของกระบวนการ:
- “สร้างการทดสอบการตรวจสอบ” เพื่อตรวจสอบความสามารถหลักของแอปพลิเคชัน
- การทดสอบคุณสมบัติใหม่ทั้งหมด
- ตรวจสอบคุณสมบัติที่เปลี่ยนแปลงหรือแก้ไข
- การทดสอบข้อบกพร่องอีกครั้ง
- จากนั้นสุดท้าย วิเคราะห์พื้นที่ผลกระทบโดยใช้การทดสอบการถดถอยภูมิภาค
3) การทดสอบการถดถอยแบบเต็ม (FRT):
การทดสอบนี้ครอบคลุมฟังก์ชันการทำงานทั้งหมดของแอปพลิเคชัน การทดสอบการถดถอยแบบเต็มรูปแบบมักจะดำเนินการในรุ่นหลังๆ ดังนั้นคุณสามารถใช้ FRT ได้หลังจากรุ่นแรกๆ ไม่กี่รุ่น และเป็นการทดสอบครั้งสุดท้ายก่อนเปิดตัว
ในการสร้างครั้งที่สองหรือครั้งที่สาม ลูกค้าหรือเจ้าของธุรกิจอาจขอให้มีการแก้ไข พวกเขายังอาจต้องการฟังก์ชันการทำงานใหม่และหรือรายงานข้อบกพร่อง จากนั้นทีมทดสอบจะทำการวิเคราะห์ผลกระทบ ทำการปรับเปลี่ยนทั้งหมด และดำเนินการทดสอบผลิตภัณฑ์ขั้นสุดท้ายให้เสร็จสมบูรณ์
ตัวอย่างเช่น บิลด์ที่ 4 เป็นเวอร์ชันสุดท้ายก่อนการเปิดตัว ดังนั้นในโครงสร้างนี้ ทีมทดสอบจะทำการทดสอบผลิตภัณฑ์หรือทดสอบซ้ำทั้งหมด แทนที่จะเป็นเพียงพื้นที่รับแรงกระแทกหรือคุณสมบัติ ซึ่งจะดำเนินการหลังจากการดัดแปลงและการทดสอบในบิลด์ 1, 2 และ 3
หากต้องการดำเนินการทดสอบการถดถอยให้เสร็จสมบูรณ์ คุณต้องพิจารณาสถานการณ์เหล่านี้:
- การเปลี่ยนแปลงจะดำเนินการกับส่วนประกอบหลักของแอปพลิเคชัน ตัวอย่างเช่น หากมีการแก้ไขในไฟล์รูทของแอปหรือโมดูลหลัก แอปพลิเคชันทั้งหมดจะต้องถูกถดถอย หากมีการเปลี่ยนแปลงมากมาย
4) การทดสอบการถดถอยแบบแก้ไข:
การทดสอบนี้เสร็จสิ้นเมื่อไม่มีการแก้ไขคุณลักษณะต่างๆ การทดสอบดังกล่าวสามารถทำได้กับกรณีที่มีอยู่
5) ทดสอบการทดสอบการถดถอยทั้งหมดอีกครั้ง:
ในรูปแบบการทดสอบนี้ การเปลี่ยนแปลงเล็กน้อยไปจนถึงการเปลี่ยนแปลงสำคัญทั้งหมดที่เกิดขึ้นในแอปพลิเคชันตั้งแต่ต้นทางหรือบิลด์ 1 จะได้รับการทดสอบซ้ำ
การทดสอบนี้จะเสร็จสิ้นเมื่อการทดสอบการถดถอยอื่นๆ ทั้งหมดไม่สามารถระบุสาเหตุของปัญหาได้
6) การทดสอบการถดถอยแบบเลือก:
สิ่งนี้ดำเนินการเพื่อตรวจสอบว่าโค้ดตอบสนองอย่างไรเมื่อมีการเพิ่มโค้ดใหม่ลงในโปรแกรม เพื่อดำเนินการทดสอบนี้ ชุดย่อยจากกรณีที่มีอยู่จะถูกนำมาใช้เพื่อให้มีประสิทธิภาพและคุ้มต้นทุน เกณฑ์สำหรับการเลือกเซ็ตย่อยจะขึ้นอยู่กับโมดูลโค้ดที่แก้ไข การขึ้นต่อกัน ความสำคัญของฟังก์ชันการทำงานที่ได้รับผลกระทบ และข้อมูลข้อบกพร่องในอดีต
7) การทดสอบการถดถอยแบบก้าวหน้า:
การทดสอบการถดถอยประเภทนี้จะสร้างผลลัพธ์ที่สำคัญเมื่อทำการเปลี่ยนแปลงเฉพาะในโปรแกรมและสร้างกรณีการทดสอบใหม่
ช่วยให้แน่ใจว่าไม่มีส่วนประกอบจากเวอร์ชันเก่าที่ได้รับผลกระทบในเวอร์ชันล่าสุด
8) การทดสอบการถดถอยบางส่วน:
การทดสอบการถดถอยบางส่วนใช้เพื่อตรวจสอบว่าการเปลี่ยนแปลงหรือการปรับปรุงโค้ดใหม่ไม่ส่งผลเสียต่อฟังก์ชันการทำงานที่มีอยู่ อย่างไรก็ตาม ไม่เหมือนกับการทดสอบการถดถอยแบบเต็มซึ่งเกี่ยวข้องกับการทดสอบซ้ำแอปพลิเคชันทั้งหมด ในการทดสอบการถดถอยบางส่วน เรามุ่งเน้นเฉพาะส่วนเฉพาะของซอฟต์แวร์ที่ได้รับผลกระทบจากการเปลี่ยนแปลงล่าสุด
ดังนั้น วัตถุประสงค์หลักของการทดสอบการถดถอยบางส่วนคือการประหยัดเวลาและทรัพยากรโดยหลีกเลี่ยงการทดสอบซ้ำในส่วนที่ไม่เปลี่ยนแปลงของแอปพลิเคชัน กรณีทดสอบสำหรับการทดสอบการถดถอยบางส่วนได้รับการคัดเลือกอย่างระมัดระวังโดยพิจารณาจากการวิเคราะห์ผลกระทบของการเปลี่ยนแปลงโค้ด การระบุกรณีทดสอบที่ถูกต้องเพื่อรวมไว้ในชุดการทดสอบการถดถอยบางส่วนถือเป็นสิ่งสำคัญ กรณีทดสอบที่สำคัญที่ขาดหายไปอาจนำไปสู่ปัญหาที่ถูกมองข้ามได้
การทดสอบการถดถอยอัตโนมัติ
ตามที่กล่าวไว้ข้างต้น การทดสอบการถดถอยแบบอัตโนมัติเป็นสิ่งจำเป็นเมื่อมีการเผยแพร่หลายรายการ นอกจากนี้ยังจำเป็นสำหรับรอบการถดถอยหลายรอบและกิจกรรมซ้ำๆ มากมาย เนื่องจากการดำเนินการทดสอบหลายรอบในรีลีสต่างๆ จึงใช้เวลานานมาก
อย่างไรก็ตาม ด้วยระบบอัตโนมัติ คุณสามารถทดสอบได้หลายครั้ง จำเป็นต้องมีการเขียนสคริปต์ทดสอบระบบอัตโนมัติเพื่อดำเนินการ ซึ่งจำเป็นต้องมีการวางแผนและการออกแบบที่เกี่ยวข้อง ในการทดสอบดังกล่าว ทีมงานไม่สามารถเริ่มด้วยระบบอัตโนมัติได้โดยตรง ดังนั้นเราจึงต้องเกี่ยวข้องกับทั้งทีมทดสอบด้วยตนเองและทีมทดสอบระบบอัตโนมัติเพื่อให้ครอบคลุมขอบเขตนี้ ต่อไปนี้เป็นวิธีการทดสอบการถดถอยแบบอัตโนมัติ:
ขั้นตอน 1) ทีมทดสอบด้วยตนเองจะตรวจสอบข้อกำหนดทั้งหมดและระบุภูมิภาคที่ได้รับผลกระทบ หลังจากกระบวนการนี้ พวกเขาจะส่งต่อชุดการทดสอบความต้องการไปยังทีมระบบอัตโนมัติหรือวิศวกรระบบอัตโนมัติ
ขั้นตอน 2) ทีมทดสอบด้วยตนเองเริ่มทดสอบโมดูลใหม่ในขณะที่ทีมทดสอบระบบอัตโนมัติเขียนสคริปต์และทำให้กรณีทดสอบเป็นแบบอัตโนมัติ
ขั้นตอน 3) ก่อนที่จะใช้วิธีการทดสอบการถดถอยนี้ ทีมระบบอัตโนมัติจะระบุว่ากรณีใดบ้างที่จะสนับสนุนระบบอัตโนมัติ
ขั้นตอน 4) โดยจะแปลงการทดสอบการถดถอยเหล่านั้นเป็นสคริปต์ ขึ้นอยู่กับว่ากรณีใดที่สามารถทำให้เป็นแบบอัตโนมัติได้
ขั้นตอน 5) ในระหว่างกระบวนการเขียนสคริปต์ ทีมระบบอัตโนมัติจะอ้างอิงถึงกรณีทดสอบการถดถอย พวกเขาทำเช่นนั้นเนื่องจากอาจไม่มีผลิตภัณฑ์หรือความรู้เกี่ยวกับเครื่องมือและแอป
ขั้นตอน 6) เมื่อสคริปต์ทดสอบเสร็จสมบูรณ์ ทีมระบบอัตโนมัติจะดำเนินการสคริปต์เหล่านั้นในแอปใหม่
ขั้นตอน 7) หลังจากดำเนินการ ผลลัพธ์จะแจ้งให้ทราบว่าการทดสอบผ่านหรือไม่ผ่าน
ขั้นตอน 8) หากการทดสอบล้มเหลว จะมีการตรวจสอบอีกครั้งโดยใช้วิธีการทดสอบด้วยตนเอง และหากมีปัญหาอยู่ จะมีการรายงานไปยังนักพัฒนาที่เกี่ยวข้อง
หมายเหตุ หลังจากแก้ไขข้อบกพร่องแล้ว ปัญหาและพื้นที่ผลกระทบจะถูกส่งไปยังผู้ทดสอบด้วยตนเองเพื่อทำการทดสอบซ้ำ และทีมระบบอัตโนมัติจะรันสคริปต์อีกครั้ง
ขั้นตอน 9) กระบวนการนี้จะดำเนินต่อไปจนกว่าคุณลักษณะการถดถอยที่เพิ่มใหม่ทั้งหมดจะได้รับสถานะผ่าน
ข้อดีของการทดสอบการถดถอยอัตโนมัติมีดังนี้
- นำมาใช้ใหม่: สคริปต์ทดสอบสามารถนำกลับมาใช้ซ้ำได้ในหลายรุ่น
- ความถูกต้อง: เครื่องมืออัตโนมัติทำงานซ้ำซ้อน ลดโอกาสที่จะเกิดข้อผิดพลาด
- ประหยัดเวลา: เร็วกว่ากระบวนการทดสอบการทำงานด้วยตนเองและประหยัดเวลา
- การดำเนินการเป็นกลุ่ม: สามารถรันสคริปต์ทั้งหมดพร้อมกันและแบบขนานในการทดสอบอัตโนมัติได้
- ไม่จำเป็นต้องเพิ่มทรัพยากร: การทดสอบการถดถอยจะเพิ่มขึ้นทุกครั้งที่มีการเปิดตัวใหม่ อย่างไรก็ตาม คุณไม่จำเป็นต้องเพิ่มทรัพยากรใหม่สำหรับระบบอัตโนมัติ
จะเลือกกรณีทดสอบสำหรับการทดสอบการถดถอยได้อย่างไร
ต่อไปนี้คือวิธีที่คุณสามารถเลือกกรณีที่เหมาะสมสำหรับการทดสอบการถดถอย
- ทำความเข้าใจขอบเขตของการเปลี่ยนแปลงและกำหนดส่วนของแอปพลิเคชันที่ได้รับการแก้ไข เพิ่ม หรือแก้ไข จากนั้นคุณสามารถมุ่งเน้นไปที่พื้นที่เหล่านี้สำหรับการทดสอบการถดถอย
- มีชุดโปรแกรมที่ครอบคลุมฟังก์ชันการทำงานที่สำคัญและคงไว้ซึ่งสิ่งนี้เป็นพื้นฐานสำหรับการทดสอบการถดถอย ตามที่กล่าวไว้ข้างต้น ขอแนะนำอย่างยิ่งให้ทำการทดสอบเหล่านี้เป็นแบบอัตโนมัติ
- จัดลำดับความสำคัญของการทดสอบโดยพิจารณาจากความวิกฤตของฟังก์ชันการทำงาน ผลกระทบต่อผู้ใช้ และข้อมูลข้อบกพร่องในอดีต
แนวทางปฏิบัติที่ดีที่สุดในการทดสอบการถดถอย
ด้านล่างนี้เป็นแนวทางปฏิบัติหลักบางประการที่คุณควรปฏิบัติตามเมื่อทำการทดสอบการถดถอย
อัตโนมัติทุกที่ที่เป็นไปได้
การทดสอบการถดถอยอัตโนมัติช่วยลดความพยายามในการทดสอบและทำให้สามารถดำเนินการกรณีทดสอบจำนวนมากได้อย่างรวดเร็ว
การบูรณาการอย่างต่อเนื่อง
การรวมการทดสอบการถดถอยเข้ากับไปป์ไลน์ CI/CD ช่วยให้มั่นใจได้ว่าการทดสอบจะดำเนินการโดยอัตโนมัติทุกครั้งที่มีการเปลี่ยนแปลงในโค้ดเบส
การเลือกกรณีทดสอบ
ระบุและรักษาชุดย่อยของกรณีทดสอบที่แสดงถึงฟังก์ชันการทำงานหลักและพื้นที่ที่มีความเสี่ยงสูง คุณยังสามารถเลือกสิ่งที่เกี่ยวข้องโดยตรงกับการเปลี่ยนแปลงที่กำลังเกิดขึ้นได้ เนื่องจากการเรียกใช้กรณีการทดสอบก่อนหน้านี้ทั้งหมดอาจไม่สามารถทำได้
การดำเนินการปกติ
ดำเนินการทดสอบการถดถอยเป็นประจำ โดยเฉพาะอย่างยิ่งหลังจากเปลี่ยนโค้ดทุกครั้ง ซึ่งจะช่วยในการระบุปัญหาตั้งแต่เนิ่นๆ ในกระบวนการพัฒนา
ทดสอบการจัดการข้อมูล
ตรวจสอบให้แน่ใจว่าข้อมูลการทดสอบที่ใช้สำหรับการทดสอบการถดถอยมีความสอดคล้องและสามารถจัดการได้ เนื่องจากปัญหาเกี่ยวกับข้อมูลอาจส่งผลต่อผลการทดสอบ
การจัดการสิ่งแวดล้อม
รักษาสภาพแวดล้อมการทดสอบให้สอดคล้องและทำซ้ำได้ ซึ่งรวมถึงการใช้ระบบปฏิบัติการ เบราว์เซอร์ และการกำหนดค่าอุปกรณ์แบบเดียวกันที่ใช้ในการผลิต
บันทึกและติดตามข้อบกพร่อง
ข้อบกพร่องใดๆ ที่พบในระหว่างการทดสอบการถดถอยควรได้รับการบันทึก ติดตาม และจัดการ จัดลำดับความสำคัญของการแก้ปัญหาตามความรุนแรง
ความสามารถในเรอุส
สร้างสคริปต์ทดสอบและข้อมูลการทดสอบที่ใช้ซ้ำได้เพื่อลดความซ้ำซ้อนและปรับปรุงการบำรุงรักษา
การทดสอบการถดถอยและการจัดการการกำหนดค่า
การจัดการการกำหนดค่าระหว่างการทดสอบการถดถอยกลายมาเป็นสิ่งจำเป็นในสภาพแวดล้อมแบบคล่องตัวซึ่งมีการปรับเปลี่ยนโค้ดอย่างต่อเนื่อง เพื่อให้แน่ใจว่าการทดสอบการถดถอยมีประสิทธิผล ควรปฏิบัติตามสิ่งต่อไปนี้:
- รหัสที่กำลังทดสอบการถดถอยควรอยู่ภายใต้เครื่องมือการจัดการการกำหนดค่า
- จะต้องไม่อนุญาตให้ทำการเปลี่ยนแปลงโค้ดระหว่างขั้นตอนการทดสอบการถดถอย โค้ดทดสอบการถดถอยจะต้องไม่ได้รับผลกระทบจากการเปลี่ยนแปลงของนักพัฒนาซอฟต์แวร์
- ฐานข้อมูลที่ใช้สำหรับการทดสอบการถดถอยจะต้องถูกแยกออก ไม่อนุญาตให้มีการเปลี่ยนแปลงฐานข้อมูล
ความแตกต่างระหว่างการทดสอบซ้ำและการทดสอบการถดถอย
การทดสอบซ้ำหมายถึงการทดสอบการทำงานของข้อบกพร่องหรือข้อบกพร่องอีกครั้งเพื่อให้แน่ใจว่าโค้ดได้รับการแก้ไขแล้ว ถ้าไม่ได้รับการแก้ไข ข้อบกพร่อง จำเป็นต้องเปิดใหม่อีกครั้ง หากแก้ไขแล้วข้อบกพร่องจะถูกปิด
การทดสอบการถดถอยหมายถึงการทดสอบแอปพลิเคชันซอฟต์แวร์ของคุณเมื่อมีการเปลี่ยนแปลงโค้ด ทำเพื่อให้แน่ใจว่าโค้ดใหม่ไม่ส่งผลกระทบต่อส่วนอื่นๆ ของซอฟต์แวร์
ด้านล่างนี้คือข้อแตกต่างหลักระหว่างการทดสอบทั้งสองนี้:
retesting | การทดสอบการถดถอย |
---|---|
มันถูกสร้างขึ้นมาเพื่อการแก้ไขข้อบกพร่องโดยเฉพาะ | การทดสอบการถดถอยส่วนใหญ่ทำเพื่อตรวจสอบว่าการเปลี่ยนแปลงโค้ดส่งผลกระทบต่อฟังก์ชันการทำงานอื่นๆ หรือไม่ |
การทดสอบซ้ำไม่ได้ตรวจสอบเวอร์ชันอื่นๆ และเพียงตรวจสอบว่าฟังก์ชันที่เสียหายได้รับการกู้คืนหรือไม่ | มุ่งเน้นไปที่เวอร์ชันก่อนหน้า และจะทดสอบว่าฟังก์ชันก่อนหน้านี้ยังคงทำงานตามที่คาดไว้หรือไม่ |
การทดสอบแต่ละครั้งมีความเฉพาะเจาะจง | การถดถอยเป็นการทดสอบทั่วไป |
การทดสอบนี้มีไว้สำหรับกรณีทดสอบที่ล้มเหลว | มันมีไว้สำหรับกรณีทดสอบที่ผ่านการทดสอบ |
จะตรวจสอบข้อบกพร่องเฉพาะ ดังนั้นจึงไม่สามารถทำงานอัตโนมัติได้ | สามารถเป็นแบบอัตโนมัติได้ ขอแนะนำอย่างยิ่งให้เป็นแบบอัตโนมัติตามที่เราได้กล่าวไว้ก่อนหน้านี้ |
การทดสอบซ้ำไม่ได้เป็นส่วนหนึ่งของวงจรการทดสอบเสมอไป เนื่องจากต้องทำเมื่อพบจุดบกพร่องเท่านั้น | การถดถอยเป็นส่วนหนึ่งของการทดสอบเสมอ เนื่องจากทุกครั้งที่มีการเปลี่ยนแปลงรหัส การทดสอบนี้จะต้องดำเนินการเพื่อทำความเข้าใจว่าฟังก์ชันการทำงานของผลิตภัณฑ์มีเสถียรภาพหรือไม่ |
เป็นการทดสอบที่มีลำดับความสำคัญสูงเนื่องจากมุ่งเน้นไปที่ปัญหาที่ทราบ | นี่คือการทดสอบที่มีลำดับความสำคัญต่ำ เนื่องจากเป็นการทดสอบโดยรวมของข้อบกพร่องที่อาจเกิดขึ้น |
การทดสอบนี้ไม่ใช้เวลานานเนื่องจากสามารถแก้ไขข้อบกพร่องเฉพาะได้ | เนื่องจากเกี่ยวข้องกับซอฟต์แวร์พื้นที่ขนาดใหญ่ ดังนั้นจึงใช้เวลานาน |
โดยจะระบุข้อบกพร่องด้วยข้อมูลและสภาพแวดล้อมเดียวกันด้วยอินพุตที่แตกต่างกันและเวอร์ชันใหม่ | การทดสอบนี้สามารถขอรับกรณีต่างๆ จากคู่มือผู้ใช้ รายงานข้อบกพร่อง และข้อกำหนดเฉพาะด้านการทำงาน |
การทดสอบซ้ำไม่สามารถดำเนินการได้หากไม่มีการทดสอบครั้งแรก | เสร็จสิ้นเมื่อมีการเปลี่ยนแปลงและแก้ไขในโครงการที่มีอยู่ |
ตรวจสอบรายการความแตกต่างทั้งหมดด้วย Good Farm Animal Welfare Awards.
ข้อดีและข้อเสียของการทดสอบการถดถอย
ข้อดี
- การทดสอบการถดถอยช่วยปรับปรุงคุณภาพของผลิตภัณฑ์
- ด้วยการทดสอบนี้ คุณมั่นใจได้ว่าการแก้ไขและการแก้ไขจุดบกพร่องจะไม่เปลี่ยนแปลงฟังก์ชันและคุณสมบัติที่มีอยู่
- เนื่องจาก Regression Beds ทำงานบนฟีเจอร์ที่มีอยู่ เราจึงรับประกันได้ว่าข้อบกพร่องเก่าๆ จะได้รับการคุ้มครองเช่นกัน
- ช่วยให้การพัฒนาผลิตภัณฑ์มีประสิทธิภาพ
- คุณสามารถบรรลุความพึงพอใจของผู้ใช้ในระดับสูงด้วยการทดสอบนี้
- โดยรวมแล้วจะรักษาความเสถียรของซอฟต์แวร์
ข้อเสีย
- ควรดำเนินการทุกครั้งที่มีการเปลี่ยนแปลงเล็กน้อย เนื่องจากการเปลี่ยนแปลงเพียงเล็กน้อยอาจทำให้เกิดปัญหาในโมดูลที่มีอยู่ได้
- การทดสอบนี้อาจใช้เวลานานเมื่อดำเนินการด้วยตนเอง ซึ่งต้องมีการทดสอบซ้ำ
ความท้าทายในการทดสอบการถดถอย
ต่อไปนี้เป็นปัญหาการทดสอบหลักสำหรับการทดสอบการถดถอย:
- ด้วยการรันการถดถอยต่อเนื่อง ชุดการทดสอบจะมีขนาดใหญ่พอสมควร เนื่องจากข้อจำกัดด้านเวลาและงบประมาณ จึงไม่สามารถดำเนินการชุดทดสอบการถดถอยทั้งหมดได้
- การลดชุดการทดสอบให้เหลือน้อยที่สุดในขณะที่บรรลุผลสูงสุดยังคงเป็นความท้าทาย
- การกำหนดความถี่ของการทดสอบการถดถอย เช่น หลังจากการดัดแปลงทุกครั้งหรือการอัปเดตบิลด์ทุกครั้ง หรือหลังการแก้ไขข้อบกพร่องจำนวนมาก ถือเป็นความท้าทาย
การประยุกต์ใช้ตัวอย่างการทดสอบการถดถอยในทางปฏิบัติด้วยวิดีโอ
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ตัวอย่างการทดสอบการถดถอย – Amazon
พิจารณายักษ์ใหญ่อีคอมเมิร์ซ Amazonซึ่งเป็นธุรกิจที่มีมูลค่าหลายพันล้านดอลลาร์ซึ่งต้องอาศัยเว็บไซต์เพื่อสร้างรายได้ การทดสอบการถดถอยมีบทบาทสำคัญอย่างยิ่งในการรักษาฟังก์ชันการทำงาน ความน่าเชื่อถือ และประสิทธิภาพ
มาดูสถานการณ์การเพิ่มหมวดหมู่ผลิตภัณฑ์ใหม่กัน
ลองคิดดูว่า Amazon ตัดสินใจขยายการนำเสนอผลิตภัณฑ์โดยเปิดตัวหมวดหมู่ใหม่ที่เรียกว่า “อุปกรณ์สมาร์ทโฮม” ควบคู่กับหมวดหมู่ที่มีอยู่แล้วอย่าง “อิเล็กทรอนิกส์” และ “เสื้อผ้า”
กรณีการถดถอยที่เป็นไปได้คือ:
ฟังก์ชั่นโฮมเพจ: ตรวจสอบว่าหน้าแรกแสดงหมวดหมู่ "อุปกรณ์สมาร์ทโฮม" ใหม่ควบคู่ไปกับหมวดที่มีอยู่โดยไม่มีปัญหาในการแสดงผล
การนำทางหมวดหมู่: ตรวจสอบให้แน่ใจว่าผู้ใช้สามารถนำทางไปยังหน้าหมวดหมู่ "อุปกรณ์สมาร์ทโฮม" ได้อย่างราบรื่นและกลับไปที่หน้าแรกโดยไม่มีข้อผิดพลาด
ฟังก์ชั่นการค้นหา: ตรวจสอบให้แน่ใจว่าแถบค้นหาส่งคืนผลลัพธ์สำหรับอุปกรณ์สมาร์ทโฮมอย่างแม่นยำเมื่อผู้ใช้ค้นหาและไม่ปะปนกับผลิตภัณฑ์อื่น
บัญชีผู้ใช้: ตรวจสอบว่าบัญชีผู้ใช้สามารถสร้าง อัปเดต และใช้สำหรับการซื้ออุปกรณ์สมาร์ทโฮมและผลิตภัณฑ์อื่นๆ ได้
การประมวลผลการชำระเงิน: ทดสอบเกตเวย์การชำระเงินสำหรับการซื้อโดยเฉพาะ และรับประกันการทำธุรกรรมที่ปลอดภัยและปราศจากข้อผิดพลาด
การตอบสนองต่ออุปกรณ์เคลื่อนที่: ตรวจสอบว่าเว็บไซต์ยังคงตอบสนองต่ออุปกรณ์เคลื่อนที่ โดยอนุญาตให้ผู้ใช้เข้าถึงและซื้ออุปกรณ์สมาร์ทโฮมบนอุปกรณ์ต่างๆ
หากกรณีทดสอบการถดถอยเหล่านี้ล้มเหลว แสดงว่ามีปัญหากับฟังก์ชันการทำงานที่มีอยู่ของเว็บไซต์เนื่องจากการเพิ่มหมวดหมู่ผลิตภัณฑ์ใหม่ ปัญหานี้ควรได้รับการบันทึกไว้และแก้ไขทันที นอกจากนี้ เช่น Amazon ยังคงขยายข้อเสนอและทำการเปลี่ยนแปลงเว็บไซต์อย่างต่อเนื่อง ควรทำการทดสอบการถดถอยเหล่านี้เพื่อรักษาประสบการณ์การช็อปปิ้งออนไลน์ที่เชื่อถือได้ เครื่องมือทดสอบอัตโนมัติสามารถปรับปรุงกระบวนการนี้ได้
สรุป
- ความหมายของการทดสอบการถดถอย – การทดสอบการถดถอยคือการทดสอบซอฟต์แวร์ประเภทหนึ่งที่ทำให้แน่ใจว่าแอปพลิเคชันยังคงทำงานตามที่คาดไว้หลังจากการปรับปรุง การเปลี่ยนแปลงโค้ดใดๆ หรือการแก้ไขข้อบกพร่อง
- กลยุทธ์การถดถอยที่มีประสิทธิผลสามารถประหยัดทั้งเวลาและเงินสำหรับองค์กร
- ตามกรณีศึกษา การถอยหลังช่วยบันทึกการแก้ไขจุดบกพร่องในภายหลังได้ถึง 60%