คู่มือการทดสอบการถดถอยฉบับสมบูรณ์: ทุกสิ่งที่คุณต้องการทราบ



บทความนี้จะช่วยให้คุณได้รับความรู้เชิงลึกเกี่ยวกับการทดสอบการถดถอยและอธิบายว่าเหตุใดจึงสำคัญที่จะต้องรวมการทดสอบการถดถอยในขณะทดสอบ

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

มาดูหัวข้อต่างๆในบทความนี้กัน:





Regression Testing คืออะไร?

“ การทดสอบโปรแกรมที่ทดสอบก่อนหน้านี้หลังการปรับเปลี่ยนเพื่อให้แน่ใจว่าไม่มีการนำข้อบกพร่องมาใช้หรือเปิดเผยในส่วนที่ไม่มีการเปลี่ยนแปลงของซอฟต์แวร์อันเป็นผลมาจากการเปลี่ยนแปลงที่เรียกว่า Regression Testing”

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



Regression TestingEx - การทดสอบการถดถอยคืออะไร - Edureka

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

ประโยชน์ของการทดสอบการถดถอย

ทำการทดสอบการถดถอยเป็นประโยชน์ต่อ บริษัท ในหลาย ๆ ด้านเช่น:



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

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

เมื่อใดที่จะใช้การทดสอบการถดถอย

ขอแนะนำให้ทำการทดสอบการถดถอยกับเหตุการณ์ต่อไปนี้:

    • เมื่อมีการเพิ่มฟังก์ชันใหม่
    • ในกรณีที่มีการเปลี่ยนแปลงข้อกำหนด
    • เมื่อมีการแก้ไขข้อบกพร่อง
    • เมื่อมีปัญหาด้านประสิทธิภาพ
    • ในกรณีที่สภาพแวดล้อมเปลี่ยนแปลง
    • เมื่อมีการแก้ไขแพทช์

ส่วนถัดไปของบทความนี้เกี่ยวกับการทดสอบการถดถอยประเภทต่างๆ

วิธีสร้างไฟล์ logger ใน java

ประเภทของการทดสอบการถดถอยคืออะไร?

การทดสอบการถดถอยทำได้โดยการทดสอบหลายขั้นตอน ด้วยเหตุนี้จึงมีการทดสอบการถดถอยหลายประเภท บางส่วนมีดังนี้:

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

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

การทดสอบเฉพาะทาง: ในผู้ทดสอบการทดสอบแบบเลือกใช้ชุดย่อยของกรณีทดสอบปัจจุบันเพื่อลดต้นทุนและความพยายามในการทดสอบซ้ำ หน่วยทดสอบจะต้องรันอีกครั้งหากมีการเปลี่ยนแปลงเอนทิตีโปรแกรมใด ๆ ที่ครอบคลุมเท่านั้น

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

การทดสอบที่สมบูรณ์: การทดสอบนี้มีประโยชน์มากเมื่อมีการเปลี่ยนแปลงหลายอย่างในโค้ดที่มีอยู่ การทำการทดสอบนี้มีคุณค่าอย่างมากในการระบุจุดบกพร่องที่ไม่คาดคิด เมื่อการทดสอบนี้เสร็จสิ้นผู้ใช้สามารถใช้ระบบขั้นสุดท้ายได้

เป็นสิ่งสำคัญมากที่จะต้องทราบว่าการทดสอบประเภทใดเหมาะสมกับความต้องการของคุณ ต่อไปเราจะพูดถึงวิธีการทดสอบการถดถอย

การทดสอบการถดถอยดำเนินการอย่างไร?

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

  • ก่อนอื่นเขาดำเนินการทดสอบการถดถอยระดับหน่วยเพื่อตรวจสอบความถูกต้องของโค้ดที่พวกเขาได้แก้ไขพร้อมกับการทดสอบใหม่ ๆ ที่พวกเขาเขียนขึ้นเพื่อให้ครอบคลุมฟังก์ชันใหม่หรือที่เปลี่ยนแปลง
  • จากนั้นรหัสที่เปลี่ยนแปลงจะถูกรวมเข้าด้วยกันเพื่อสร้างแอปพลิเคชันใหม่ภายใต้การทดสอบ (AUT)
  • จากนั้นจะทำการทดสอบควันเพื่อให้มั่นใจว่าโครงสร้างนั้นดีก่อนที่จะทำการทดสอบเพิ่มเติมใด ๆ
  • เมื่อบิลด์ได้รับการประกาศว่าดีการทดสอบการรวมจะดำเนินการเพื่อตรวจสอบการโต้ตอบระหว่างหน่วยของแอปพลิเคชันซึ่งกันและกันและกับบริการส่วนหลังเช่นฐานข้อมูล
  • ขึ้นอยู่กับขนาดและขอบเขตของรหัสที่นำออกใช้การถดถอยบางส่วนหรือทั้งหมดจะถูกกำหนดเวลาไว้
  • จากนั้นจะรายงานข้อบกพร่องกลับไปยังทีมพัฒนา
  • การทดสอบการถดถอยเพิ่มเติมจะดำเนินการหากจำเป็น

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

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

การทดสอบการถดถอยอย่างมีประสิทธิภาพสามารถทำได้โดยเลือกกรณีทดสอบต่อไปนี้:

  • กรณีทดสอบที่มีข้อบกพร่องบ่อย
  • กรณีทดสอบที่ซับซ้อน
  • กรณีทดสอบการรวม
  • กรณีทดสอบที่ครอบคลุมการทำงานหลักของผลิตภัณฑ์
  • ฟังก์ชันที่ใช้บ่อย
  • ทดสอบแจกันที่ล้มเหลวบ่อยครั้ง
  • กรณีทดสอบค่าขอบเขต

ด้วยขั้นตอนการทดสอบการถดถอยเรามาดูเทคนิคต่างๆกัน

เทคนิคการทดสอบการถดถอย

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

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

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

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

นี่คือเทคนิคหลักสามประการ ในบางครั้งตามข้อกำหนดการทดสอบจะรวมเทคนิคเหล่านี้เข้าด้วยกัน

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

ความท้าทายของการทดสอบการถดถอย

  1. การใช้เวลา: เทคนิคเช่นการทดสอบซ้ำ - ทั้งหมดต้องใช้เวลามากในการทดสอบชุดทดสอบทั้งหมด
  2. เเพง: มีค่าใช้จ่ายสูงเนื่องจากทรัพยากรและกำลังคนที่คุณต้องทดสอบซ้ำแล้วซ้ำอีกซึ่งเป็นสิ่งที่ได้รับการพัฒนาทดสอบและปรับใช้ในระยะแรกแล้ว
  3. ซับซ้อน: เมื่อผลิตภัณฑ์ขยายตัวผู้ทดสอบมักจะถูกครอบงำด้วยกรณีทดสอบจำนวนมากและตกเป็นเหยื่อของการสูญเสียการติดตามกรณีทดสอบโดยมองข้ามกรณีทดสอบที่สำคัญ

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

หากคุณพบสิ่งนี้ บทความที่เกี่ยวข้อง ตรวจสอบไฟล์ ถ่ายทอดสดออนไลน์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก

วิธีใช้ tostring ใน java

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของ ' Regression Testing คืออะไร? ’บทความแล้วเราจะติดต่อกลับไป