วิธีทดสอบซอฟต์แวร์: โมเดล QA
วิธีการทดสอบซอฟต์แวร์คืออะไร?
วิธีการทดสอบซอฟต์แวร์ถูกกำหนดให้เป็นกลยุทธ์และประเภทการทดสอบที่ใช้ในการรับรองว่าแอปพลิเคชันที่อยู่ระหว่างการทดสอบนั้นตรงตามความคาดหวังของลูกค้า วิธีการทดสอบประกอบด้วยการทดสอบเชิงฟังก์ชันและแบบไม่เชิงฟังก์ชันเพื่อตรวจสอบความถูกต้องของ AUT ตัวอย่างของวิธีการทดสอบได้แก่ การทดสอบหน่วย, การทดสอบการผสานรวม, การทดสอบระบบ, การทดสอบประสิทธิภาพ ฯลฯ วิธีการทดสอบแต่ละวิธีมีวัตถุประสงค์การทดสอบ กลยุทธ์การทดสอบ และผลลัพธ์ที่กำหนดไว้
หมายเหตุ: เนื่องจากการทดสอบซอฟต์แวร์เป็นส่วนสำคัญของวิธีการพัฒนา บริษัทหลายแห่งจึงใช้คำว่า Development Methodologies & Testing Methodologies เรียกขานกันทั่วไป ดังนั้นวิธีการทดสอบยังสามารถอ้างถึงโมเดล Waterfall, Agile และ QA อื่นๆ เมื่อเทียบกับคำจำกัดความข้างต้นของวิธีการทดสอบ การอภิปรายเกี่ยวกับการทดสอบประเภทต่างๆ ไม่ได้เพิ่มมูลค่าให้กับผู้อ่าน ดังนั้นเราจะหารือเกี่ยวกับรูปแบบการพัฒนาต่างๆ
น้ำตกจำลอง
มันคืออะไร?
ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร แบบจำลองน้ำตก, ความก้าวหน้าในการพัฒนาซอฟต์แวร์ผ่านขั้นตอนต่างๆ เช่น การวิเคราะห์ความต้องการ, การออกแบบ ฯลฯ – ตามลำดับ.
แนวทางการทดสอบคืออะไร?
ระยะแรกในแบบจำลองน้ำตกคือระยะข้อกำหนดซึ่งข้อกำหนดของโครงการทั้งหมดได้รับการกำหนดไว้อย่างสมบูรณ์ก่อนที่จะเริ่มการทดสอบ ในระหว่างขั้นตอนนี้ ทีมทดสอบจะระดมความคิดเกี่ยวกับขอบเขตของการทดสอบ กลยุทธ์การทดสอบ และร่างแผนการทดสอบโดยละเอียด
เมื่อการออกแบบซอฟต์แวร์เสร็จสมบูรณ์แล้ว ทีมงานจะดำเนินการต่อไปยังการดำเนินการกรณีทดสอบเพื่อให้แน่ใจว่าซอฟต์แวร์ที่พัฒนาจะทำงานตามที่คาดไว้
ในวิธีการนี้ ทีมทดสอบจะเข้าสู่ระยะถัดไปก็ต่อเมื่อระยะก่อนหน้าเสร็จสมบูรณ์เท่านั้น
ข้อดี | ข้อเสีย |
---|---|
โมเดลวิศวกรรมซอฟต์แวร์นี้ง่ายต่อการวางแผนและจัดการ ดังนั้น โครงการที่มีการกำหนดข้อกำหนดไว้อย่างชัดเจนและระบุไว้ล่วงหน้า จึงสามารถทดสอบได้อย่างง่ายดายโดยใช้แบบจำลองน้ำตก | ในโมเดล Waterfall คุณสามารถเริ่มด้วยเฟสถัดไปได้ก็ต่อเมื่อเฟสก่อนหน้าเสร็จสมบูรณ์แล้วเท่านั้น ดังนั้นแบบจำลองนี้ไม่สามารถรองรับเหตุการณ์ที่ไม่ได้วางแผนไว้และความไม่แน่นอนได้ |
วิธีการนี้ไม่เหมาะสำหรับโครงการที่ข้อกำหนดเปลี่ยนแปลงบ่อยครั้ง |
การพัฒนาซ้ำๆ
มันคืออะไร?
ในโมเดลนี้ โปรเจ็กต์ขนาดใหญ่จะถูกแบ่งออกเป็นส่วนย่อยๆ และแต่ละส่วนจะต้องผ่านกระบวนการวนซ้ำหลายๆ ครั้งของโมเดลน้ำตก เมื่อสิ้นสุดกระบวนการหนึ่งๆ จะมีการพัฒนาโมดูลใหม่หรือปรับปรุงโมดูลที่มีอยู่ โมดูลนี้จะถูกรวมเข้าในสถาปัตยกรรมซอฟต์แวร์ และทดสอบระบบทั้งหมดร่วมกัน
แนวทางการทดสอบคืออะไร?
ทันทีที่การวนซ้ำเสร็จสิ้น ระบบทั้งหมดจะถูกทดสอบ ผลตอบรับจากการทดสอบจะพร้อมใช้ทันทีและรวมไว้ในรอบถัดไป เวลาในการทดสอบที่จำเป็นในการวนซ้ำต่อเนื่องสามารถลดลงได้ตามประสบการณ์ที่ได้รับจากการวนซ้ำในอดีต
ข้อดี | ข้อเสีย |
---|---|
ข้อได้เปรียบหลักของการพัฒนาซ้ำคือผลตอบรับการทดสอบจะพร้อมใช้งานทันทีเมื่อสิ้นสุดแต่ละรอบ | โมเดลนี้เพิ่มค่าใช้จ่ายในการสื่อสารอย่างมาก เนื่องจากเมื่อสิ้นสุดแต่ละรอบ จะต้องให้ข้อเสนอแนะเกี่ยวกับการส่งมอบ ความพยายาม ฯลฯ |
ระเบียบวิธีว่องไว
มันคืออะไร?
วิธีการพัฒนาซอฟต์แวร์แบบดั้งเดิมทำงานบนสมมติฐานที่ว่าข้อกำหนดของซอฟต์แวร์จะคงที่ตลอดทั้งโครงการ แต่ด้วยความซับซ้อนที่เพิ่มมากขึ้น ข้อกำหนดต่างๆ จะต้องมีการเปลี่ยนแปลงมากมายและพัฒนาอย่างต่อเนื่อง บางครั้ง ลูกค้าเองก็ไม่แน่ใจว่าต้องการอะไร แม้ว่าแบบจำลองเชิงวนซ้ำจะแก้ไขปัญหานี้ได้ แต่ก็ยังคงอิงตามแบบจำลองน้ำตก
ในระเบียบวิธีแบบ Agile ซอฟต์แวร์ได้รับการพัฒนาแบบวงจรที่เพิ่มขึ้นอย่างรวดเร็ว ปฏิสัมพันธ์ระหว่างลูกค้า นักพัฒนา และลูกค้าได้รับการเน้นย้ำมากกว่ากระบวนการและเครื่องมือ วิธีการแบบ Agile มุ่งเน้นไปที่การตอบสนองต่อการเปลี่ยนแปลงมากกว่าการวางแผนที่กว้างขวาง
แนวทางการทดสอบคืออะไร?
การทดสอบส่วนเพิ่มจะใช้ในวิธีการพัฒนาแบบ Agile และด้วยเหตุนี้ ทุกการเปิดตัวของโครงการจึงได้รับการทดสอบอย่างละเอียด เพื่อให้แน่ใจว่าข้อบกพร่องใดๆ ในระบบได้รับการแก้ไขก่อนการเปิดตัวครั้งถัดไป
ข้อดี | ข้อเสีย |
---|---|
สามารถเปลี่ยนแปลงโครงการได้ตลอดเวลาเพื่อให้สอดคล้องกับข้อกำหนด | การโต้ตอบกับลูกค้าอย่างต่อเนื่องหมายถึงความกดดันด้านเวลาที่เพิ่มขึ้นสำหรับผู้มีส่วนได้ส่วนเสียทั้งหมด รวมถึงตัวลูกค้าเอง ทีมพัฒนาซอฟต์แวร์และทีมทดสอบ |
การทดสอบส่วนเพิ่มนี้จะช่วยลดความเสี่ยงให้เหลือน้อยที่สุด |
การเขียนโปรแกรมสุดขีด
มันคืออะไร?
Extreme Programming เป็นวิธีการแบบ Agile ซึ่งเชื่อในเรื่องวงจรการพัฒนาที่สั้น โครงการแบ่งออกเป็นงานวิศวกรรมง่ายๆ โปรแกรมเมอร์เขียนโค้ดซอฟต์แวร์ง่ายๆ และติดต่อกลับไปหาลูกค้าเพื่อขอคำติชม Revมีการรวมคะแนนจากลูกค้าเข้าด้วยกันและนักพัฒนาดำเนินการงานต่อไป
สำหรับนักพัฒนาโปรแกรมระดับ Extreme มักจะทำงานเป็นคู่
การเขียนโปรแกรมขั้นสูง ใช้ในสถานที่ที่ความต้องการของลูกค้าเปลี่ยนแปลงตลอดเวลา
แนวทางการทดสอบคืออะไร?
การเขียนโปรแกรมขั้นสูงเป็นไปตามการพัฒนาที่ขับเคลื่อนด้วยการทดสอบซึ่งอธิบายไว้ดังต่อไปนี้ -- เพิ่ม กรณีทดสอบ ไปยังชุดทดสอบเพื่อตรวจสอบฟังก์ชันใหม่ที่ยังไม่ได้รับการพัฒนา
- รันการทดสอบทั้งหมด และแน่นอนว่ากรณีทดสอบใหม่ที่เพิ่มจะต้องล้มเหลว เนื่องจากฟังก์ชันการทำงานยังไม่ได้เขียนโค้ด
- เขียนโค้ดเพื่อใช้คุณลักษณะ/ฟังก์ชันการทำงาน
- เรียกใช้ชุดการทดสอบอีกครั้ง คราวนี้ กรณีทดสอบใหม่ควรผ่านเนื่องจากมีการเขียนโค้ดตามฟังก์ชันแล้ว
ข้อดี | ข้อเสีย |
---|---|
ลูกค้าที่มีการออกแบบซอฟต์แวร์ที่คลุมเครืออาจใช้การเขียนโปรแกรมขั้นสูงได้ | การประชุมระหว่างทีมพัฒนาซอฟต์แวร์และลูกค้าทำให้ข้อกำหนดด้านเวลาเพิ่มมากขึ้น |
การทดสอบอย่างต่อเนื่องและการรวมรุ่นเล็กๆ อย่างต่อเนื่องทำให้มั่นใจได้ว่าโค้ดซอฟต์แวร์จะถูกส่งไปมีคุณภาพสูง |
ระเบียบวิธีซอฟต์แวร์ใดให้เลือก
มีวิธีการมากมายสำหรับการพัฒนาซอฟต์แวร์และการทดสอบที่เกี่ยวข้อง เทคนิคและวิธีการทดสอบแต่ละอย่างได้รับการออกแบบมาเพื่อวัตถุประสงค์เฉพาะและมีข้อดีและข้อเสียที่สัมพันธ์กัน
การเลือกวิธีการเฉพาะขึ้นอยู่กับหลายปัจจัย เช่น ลักษณะของโครงการ ความต้องการของลูกค้า กำหนดการของโครงการ เป็นต้น
จากมุมมองของการทดสอบ วิธีการบางอย่างผลักดันให้มีการทดสอบอินพุตในช่วงต้นของวงจรการพัฒนา ในขณะที่วิธีอื่นๆ รอจนกว่ารูปแบบการทำงานของระบบจะพร้อม
จะตั้งค่าวิธีการทดสอบซอฟต์แวร์ได้อย่างไร?
ไม่ควรตั้งค่าวิธีการทดสอบซอฟต์แวร์เพียงเพื่อประโยชน์ในการทดสอบโค้ดซอฟต์แวร์ ควรพิจารณาภาพรวมและเป้าหมายสำคัญของโครงการควรพอใจกับวิธีการทดสอบ อ้างถึงรายการที่มีชื่อเสียงนี้ ผู้ให้บริการทดสอบซอฟต์แวร์ ผู้ที่สามารถช่วยคุณสร้างกลยุทธ์การทดสอบที่มีประสิทธิภาพซึ่งปรับให้เหมาะกับเป้าหมายของโครงการของคุณ
การกำหนด
การกำหนดเวลาที่สมจริงเป็นกุญแจสำคัญในการนำวิธีการทดสอบไปใช้ให้ประสบความสำเร็จ และกำหนดการควรตอบสนองความต้องการของสมาชิกทุกคนในทีม
การส่งมอบที่กำหนด
เพื่อให้สมาชิกทุกคนในทีมเข้าใจตรงกัน ควรจัดให้มีการส่งมอบที่มีการกำหนดชัดเจน สิ่งที่ส่งมอบควรมีเนื้อหาโดยตรงโดยไม่มีความกำกวม
แนวทางการทดสอบ
เมื่อกำหนดเวลาเสร็จสมบูรณ์และมีการส่งมอบที่กำหนดไว้แล้ว ทีมทดสอบควรจะสามารถกำหนดแนวทางการทดสอบที่เหมาะสมได้ เอกสารคำจำกัดความและการประชุมนักพัฒนาควรระบุทีมเกี่ยวกับวิธีการทดสอบที่ดีที่สุดที่สามารถใช้สำหรับโครงการได้
การรายงาน
การรายงานที่โปร่งใสเป็นเรื่องยากมากที่จะบรรลุผล แต่ขั้นตอนนี้จะกำหนดประสิทธิภาพของวิธีการทดสอบที่ใช้ในโครงการ