การทดสอบการกลายพันธุ์คืออะไร? (ตัวอย่าง)
การทดสอบการกลายพันธุ์คืออะไร?
การทดสอบการกลายพันธุ์ เป็นการทดสอบซอฟต์แวร์ประเภทหนึ่งซึ่งมีการเปลี่ยนแปลง/กลายพันธุ์คำสั่งบางอย่างของซอร์สโค้ด เพื่อตรวจสอบว่ากรณีทดสอบสามารถค้นหาข้อผิดพลาดในซอร์สโค้ดได้หรือไม่ เป้าหมายของการทดสอบการกลายพันธุ์คือการรับรองคุณภาพของกรณีทดสอบในแง่ของความทนทานซึ่งควรจะล้มเหลวในซอร์สโค้ดที่กลายพันธุ์
การเปลี่ยนแปลงที่ทำในโปรแกรมกลายพันธุ์ควรมีขนาดเล็กมากเพื่อไม่ให้กระทบต่อวัตถุประสงค์โดยรวมของโปรแกรม การทดสอบการกลายพันธุ์เรียกอีกอย่างว่ากลยุทธ์การทดสอบตามข้อผิดพลาดเนื่องจากเกี่ยวข้องกับการสร้างข้อบกพร่องในโปรแกรมและเป็นประเภทของ ขาว 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 ทั้งหมดเพื่อตรวจสอบการทำงานของโปรแกรม ตัวดำเนินการการกลายพันธุ์ตัวอย่างบางส่วน:
|
ระบบอัตโนมัติของการทดสอบการกลายพันธุ์
การทดสอบการกลายพันธุ์ใช้เวลานานมากและซับซ้อนในการดำเนินการด้วยตนเอง เพื่อเร่งกระบวนการให้เร็วขึ้นขอแนะนำให้ใช้เครื่องมืออัตโนมัติ เครื่องมืออัตโนมัติช่วยลดต้นทุนการทดสอบด้วย
รายการเครื่องมือที่มีอยู่-
ประเภทของการทดสอบการกลายพันธุ์
In วิศวกรรมซอฟต์แวร์การทดสอบการกลายพันธุ์สามารถแบ่งตามพื้นฐานได้เป็น 3 ประเภท ได้แก่ การกลายพันธุ์ของคำสั่ง การกลายพันธุ์ในการตัดสินใจ และการกลายพันธุ์ของค่า
- การเปลี่ยนแปลงคำสั่ง – นักพัฒนาตัดและวางส่วนหนึ่งของโค้ดซึ่งผลลัพธ์อาจเป็นการลบบางบรรทัดออก
- การเปลี่ยนแปลงค่า– ค่าของพารามิเตอร์หลักได้รับการแก้ไข
- การเปลี่ยนแปลงการตัดสินใจ– คำสั่งควบคุมจะต้องมีการเปลี่ยนแปลง
คะแนนการกลายพันธุ์
คะแนนการกลายพันธุ์ถูกกำหนดเป็นเปอร์เซ็นต์ของสายพันธุ์กลายที่ถูกฆ่าด้วยจำนวนสายพันธุ์กลายทั้งหมด
- คะแนนการกลายพันธุ์ = (สายพันธุ์กลายพันธุ์ที่ถูกฆ่า / จำนวนสายพันธุ์กลายทั้งหมด) * 100
กรณีทดสอบมีการกลายพันธุ์เพียงพอหากคะแนนเป็น 100% ผลการทดลองแสดงให้เห็นว่าการทดสอบการกลายพันธุ์เป็นวิธีที่มีประสิทธิภาพในการวัดความเพียงพอของกรณีทดสอบ แต่ข้อเสียเปรียบหลักคือมีค่าใช้จ่ายสูงในการสร้างสายพันธุ์กลายและการดำเนินการแต่ละกรณีทดสอบกับโปรแกรมกลายพันธุ์นั้น
ข้อดีของการทดสอบการกลายพันธุ์
ต่อไปนี้เป็นข้อดีของการทดสอบการกลายพันธุ์:
- เป็นแนวทางที่มีประสิทธิภาพเพื่อให้ได้รับความครอบคลุมสูงของโปรแกรมต้นทาง
- การทดสอบนี้สามารถทดสอบโปรแกรมกลายพันธุ์ได้อย่างครอบคลุม
- การทดสอบการกลายพันธุ์ช่วยให้นักพัฒนาซอฟต์แวร์ตรวจพบข้อผิดพลาดในระดับที่ดี
- วิธีนี้จะเปิดเผยความคลุมเครือในซอร์สโค้ดและมีความสามารถในการตรวจจับข้อผิดพลาดทั้งหมดในโปรแกรม
- ลูกค้าจะได้รับประโยชน์จากการทดสอบนี้โดยการได้รับระบบที่เชื่อถือได้และเสถียรที่สุด
ข้อเสียของการทดสอบการกลายพันธุ์
อีกด้านหนึ่ง การทดสอบ Mutant ก็มีข้อเสียดังต่อไปนี้:
- การทดสอบการกลายพันธุ์มีค่าใช้จ่ายสูงและใช้เวลานานเนื่องจากมีโปรแกรมการกลายพันธุ์จำนวนมากที่ต้องสร้างขึ้น
- เนื่องจากใช้เวลานาน จึงยุติธรรมที่จะกล่าวว่าการทดสอบนี้ไม่สามารถทำได้หากไม่มีเครื่องมืออัตโนมัติ
- การกลายพันธุ์แต่ละครั้งจะมีจำนวนกรณีทดสอบเท่ากันมากกว่าโปรแกรมดั้งเดิม ดังนั้น อาจจำเป็นต้องทดสอบโปรแกรมกลายพันธุ์จำนวนมากกับชุดทดสอบดั้งเดิม
- เนื่องจากวิธีนี้เกี่ยวข้องกับการเปลี่ยนแปลงซอร์สโค้ด จึงไม่สามารถใช้ได้กับทั้งหมด Black Box การทดสอบ.
สรุป
คุณต้องการทดสอบแอปพลิเคชันของคุณอย่างละเอียดถี่ถ้วนหรือไม่? คำตอบคือการทดสอบการกลายพันธุ์ เป็นเทคนิคการทดสอบโปรแกรมที่ครอบคลุมที่สุด ซึ่งเป็นวิธีการตรวจสอบประสิทธิภาพและความถูกต้องของโปรแกรมทดสอบเพื่อตรวจสอบข้อบกพร่องหรือข้อผิดพลาดในระบบ