การทดสอบการกลายพันธุ์คืออะไร? (ตัวอย่าง)

การทดสอบการกลายพันธุ์คืออะไร?

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

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

การกลายพันธุ์ถูกเสนอครั้งแรกในปี 1971 แต่หมดความกระตือรือร้นเนื่องจากมีต้นทุนสูง ตอนนี้ได้เลือกไอน้ำอีกครั้งและมีการใช้กันอย่างแพร่หลายสำหรับภาษาต่างๆเช่น Java และ XML

จะทำการทดสอบการกลายพันธุ์ได้อย่างไร?

ดำเนินการทดสอบการกลายพันธุ์

ต่อไปนี้เป็นขั้นตอนในการดำเนินการทดสอบการกลายพันธุ์ (การวิเคราะห์การกลายพันธุ์):

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

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

ขั้นตอนที่ 3: เปรียบเทียบผลลัพธ์ของโปรแกรมดั้งเดิมและโปรแกรมกลายพันธุ์

ขั้นตอนที่ 4: หากโปรแกรมดั้งเดิมและโปรแกรมกลายพันธุ์สร้างเอาต์พุตที่แตกต่างกัน แสดงว่าตัวกลายพันธุ์นั้นถูกฆ่าโดยกรณีทดสอบ ดังนั้นกรณีทดสอบจึงดีพอที่จะตรวจจับการเปลี่ยนแปลงระหว่างโปรแกรมดั้งเดิมและโปรแกรมกลายพันธุ์

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

จะสร้างโปรแกรมกลายพันธุ์ได้อย่างไร?

สร้างโปรแกรมกลายพันธุ์

การกลายพันธุ์นั้นไม่มีอะไรนอกจากการเปลี่ยนแปลงทางวากยสัมพันธ์เดียวที่เกิดขึ้นกับคำสั่งโปรแกรม แต่ละโปรแกรมกลายพันธุ์ควรแตกต่างจากโปรแกรมดั้งเดิมด้วยการกลายพันธุ์หนึ่งครั้ง

โปรแกรมต้นฉบับ โปรแกรมกลายพันธุ์
ถ้า (x>y)

พิมพ์ “สวัสดี”

อื่น

พิมพ์ “สวัสดี”

ถ้า(x<y)

พิมพ์ “สวัสดี”

อื่น

พิมพ์ “สวัสดี”

จะต้องเปลี่ยนแปลงอะไรในโปรแกรมกลายพันธุ์?

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

Operaและผู้ประกอบการทดแทน การปรับเปลี่ยนนิพจน์ Operaโปร การแก้ไขคำชี้แจง Operaโปร
แทนที่ตัวดำเนินการด้วยตัวดำเนินการอื่น (x ด้วย y หรือ y ด้วย x) หรือด้วยค่าคงที่ แทนที่ตัวดำเนินการหรือการแทรกตัวดำเนินการใหม่ในคำสั่งของโปรแกรม คำสั่งทางโปรแกรมได้รับการแก้ไขเพื่อสร้างโปรแกรมกลายพันธุ์
ตัวอย่าง-

ถ้า(x>y) แทนที่ค่า x และ y

ถ้า(5>y) แทนที่ x ด้วยค่าคงที่ 5

ตัวอย่าง-

ถ้า(x==y)

เราสามารถแทนที่ == เป็น >= และมีโปรแกรมกลายพันธุ์เป็น

If(x>=y) และใส่ ++ ในคำสั่ง

ถ้า(x==++y)

ตัวอย่าง-

ลบส่วน else ในคำสั่ง if-else

ลบคำสั่ง if-else ทั้งหมดเพื่อตรวจสอบการทำงานของโปรแกรม

ตัวดำเนินการการกลายพันธุ์ตัวอย่างบางส่วน:

  • การเปลี่ยนฉลาก GOTO
  • การแทนที่คำสั่งส่งคืน
  • การลบใบแจ้งยอด
  • การแทรกตัวดำเนินการยูนารี (Like – และ ++)
  • การเปลี่ยนตัวเชื่อมต่อแบบลอจิคัล
  • การแทนที่ชื่ออาร์เรย์ที่เปรียบเทียบได้
  • การลบส่วน else ออกจากคำสั่ง if-else
  • การเพิ่มหรือเปลี่ยนตัวดำเนินการ
  • การแทนที่คำสั่งโดยการเปลี่ยนข้อมูล
  • การปรับเปลี่ยนข้อมูลสำหรับตัวแปร
  • การปรับเปลี่ยนชนิดข้อมูลในโปรแกรม

ระบบอัตโนมัติของการทดสอบการกลายพันธุ์

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

รายการเครื่องมือที่มีอยู่-

ประเภทของการทดสอบการกลายพันธุ์

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

  1. การเปลี่ยนแปลงคำสั่ง – นักพัฒนาตัดและวางส่วนหนึ่งของโค้ดซึ่งผลลัพธ์อาจเป็นการลบบางบรรทัดออก
  2. การเปลี่ยนแปลงค่า– ค่าของพารามิเตอร์หลักได้รับการแก้ไข
  3. การเปลี่ยนแปลงการตัดสินใจ– คำสั่งควบคุมจะต้องมีการเปลี่ยนแปลง

คะแนนการกลายพันธุ์

คะแนนการกลายพันธุ์ถูกกำหนดเป็นเปอร์เซ็นต์ของสายพันธุ์กลายที่ถูกฆ่าด้วยจำนวนสายพันธุ์กลายทั้งหมด

  • คะแนนการกลายพันธุ์ = (สายพันธุ์กลายพันธุ์ที่ถูกฆ่า / จำนวนสายพันธุ์กลายทั้งหมด) * 100

คะแนนการกลายพันธุ์

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

ข้อดีของการทดสอบการกลายพันธุ์

ต่อไปนี้เป็นข้อดีของการทดสอบการกลายพันธุ์:

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

ข้อเสียของการทดสอบการกลายพันธุ์

อีกด้านหนึ่ง การทดสอบ Mutant ก็มีข้อเสียดังต่อไปนี้:

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

สรุป

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