วิธีการทดสอบซอฟต์แวร์หลายประเภท
Faith Evans feat. Stevie J – "A Minute" [Official Music Video]
สารบัญ:
ก่อนที่ซอฟต์แวร์จะเผยแพร่สู่สาธารณะโปรแกรมเมอร์จะใช้เวลาหลายชั่วโมงในการขจัดข้อผิดพลาดเล็กน้อย จนกว่าผลิตภัณฑ์จะสร้างความพึงพอใจแก่ผู้มีส่วนได้ส่วนเสียทั้งหมดจะไม่สามารถใช้ในเชิงพาณิชย์ได้
บริษัท ซอฟต์แวร์ขนาดใหญ่เช่น Google ประสบความสำเร็จแม้จะมีข้อบกพร่องต่ำในซอฟต์แวร์ของพวกเขาเพราะพวกเขามีนักลงทุนผู้ป่วยและผู้ใช้ที่ภักดี อย่างไรก็ตาม บริษัท ขนาดเล็กและ บริษัท สตาร์ทอัพไม่ได้มีความหรูหราขนาดนั้น ลูกค้าคาดหวังให้ผลิตภัณฑ์ทำในสิ่งที่พวกเขาอ้างสิทธิ์ในหน้าขายหรือในเอกสารประกอบ ด้วยตัวเลือกมากมายที่นั่นพวกเขาจะไม่คิดสองครั้งเกี่ยวกับการกระโดดเรือถ้าผลิตภัณฑ์เสียเวลาและเงิน ดังนั้นซอฟต์แวร์ต้องผ่านการทดสอบอย่างเข้มงวดก่อนปล่อยเพื่อ:
- เน้นความแตกต่างระหว่างแนวคิดดั้งเดิมและผลลัพธ์สุดท้าย
- ตรวจสอบว่าซอฟต์แวร์ทำงานตามที่ผู้ออกแบบวางแผนไว้หรือไม่
- ตรวจสอบว่าผลิตภัณฑ์สุดท้ายตรงตามความต้องการของลูกค้า
- ประเมินคุณสมบัติและคุณภาพ
การทดสอบเป็นไปตามพิมพ์เขียวที่เข้มงวดเพื่อเพิ่มประสิทธิภาพทักษะเวลาและเงินของพนักงานในขณะที่ให้ข้อมูลที่จำเป็นแก่ผู้มีส่วนได้เสียเพื่อนำผลิตภัณฑ์ไปข้างหน้า เป้าหมายคือเพื่ออำนวยความสะดวกประสบการณ์ผู้ใช้ปลายทางที่ดีผ่านโปรแกรมการประกันคุณภาพที่แข็งแกร่งด้วยสัดส่วนที่สูงมากผู้จัดการฝ่ายประกันคุณภาพจึงเป็นหนึ่งในผู้มีรายได้สูงสุดในอุตสาหกรรมเทคโนโลยี การทดสอบมักจะทำตามขั้นตอนเหล่านี้:
- การวิเคราะห์ความต้องการโดยที่ผู้จัดการร่างแผนเพื่อวางกลยุทธ์การทดสอบที่เหมาะสม
- การทดสอบจะเริ่มขึ้นและได้รับการวิเคราะห์
- ข้อบกพร่องใด ๆ ที่ได้รับการแก้ไขและซอฟต์แวร์จะต้องผ่านการทดสอบการถดถอย - ระบบเพื่อตรวจสอบว่าโปรแกรมยังคงทำงานหลังจากการปรับเปลี่ยน
- รายงานการปิดการทดสอบนั้นจะมีรายละเอียดกระบวนการทั้งหมดและผลลัพธ์
บุคคลสามารถเป็นผู้ทดสอบซอฟต์แวร์ที่ได้รับการรับรองผ่านองค์กรต่าง ๆ เช่น BCS, สถาบันชาร์เตอร์ดเพื่อไอที, ISTQB® (คณะกรรมการพิจารณาคุณสมบัติการทดสอบซอฟต์แวร์ระหว่างประเทศ) และ ASQ (เดิมชื่อ American Society for Quality)
วิธีทดสอบซอฟต์แวร์
การทดสอบกล่องดำและกล่องสีขาวเป็นวิธีการพื้นฐานสองวิธีในการตัดสินพฤติกรรมและประสิทธิภาพของผลิตภัณฑ์ แต่ก็มีวิธีอื่นเช่นกัน
- การทดสอบกล่องดำ: หรือที่เรียกว่าการทดสอบตามฟังก์ชั่นหรือข้อมูลจำเพาะวิธีนี้จะเน้นไปที่เอาต์พุต ผู้ทดสอบไม่ได้เกี่ยวข้องกับกลไกภายใน พวกเขาตรวจสอบว่าซอฟต์แวร์ทำในสิ่งที่ควรทำเท่านั้น ไม่จำเป็นต้องมีความรู้เกี่ยวกับการเข้ารหัสและผู้ทดสอบทำงานในระดับส่วนต่อประสานผู้ใช้
- การทดสอบกล่องสีขาว: วิธีนี้ใช้ความรู้การเข้ารหัสเป็นส่วนหนึ่งของขั้นตอนการทดสอบ เมื่อผลิตภัณฑ์ล้มเหลวผู้ทดสอบจะเข้าไปในโค้ดให้ลึกที่สุดเท่าที่จำเป็นเพื่อค้นหาสาเหตุ ผู้พัฒนาซอฟต์แวร์ทำสิ่งนี้ด้วยตนเองเนื่องจากพวกเขาพิจารณาว่าผลิตภัณฑ์ควรทำงานอย่างไร การทดสอบโครงสร้างและการทดสอบกล่องแก้วเป็นชื่ออื่นสำหรับวิธีนี้
- การทดสอบแบบคงที่: ผู้ทดสอบตรวจสอบรหัสและเอกสารประกอบของซอฟต์แวร์ แต่ไม่เรียกใช้โปรแกรม การทดสอบแบบสแตติกเริ่มต้นในการพัฒนาผลิตภัณฑ์ในระหว่างกระบวนการตรวจสอบ
- การทดสอบแบบไดนามิก: ซอฟต์แวร์ดำเนินการด้วยอินพุตที่หลากหลายและผู้ทดสอบเปรียบเทียบผลลัพธ์กับพฤติกรรมที่คาดหวังกับวิธีนี้
- การทดสอบส่วนต่อประสานกราฟิกกับผู้ใช้: สิ่งนี้ทดสอบคุณสมบัติ GUI เช่นการจัดรูปแบบข้อความกล่องข้อความปุ่มรายการเค้าโครงสีแบบอักษรขนาดแบบอักษรและอื่น ๆ การทดสอบ GUI ใช้เวลานานและ บริษัท บุคคลที่สามมักจะทำงานแทนการพัฒนา
ระดับการทดสอบ
การทดสอบในระดับต่างๆจะใช้เพื่อระบุจุดอ่อนและทับซ้อนในแต่ละช่วงของวงจรการพัฒนาซอฟต์แวร์
- การทดสอบหน่วย: นักพัฒนาทดสอบส่วนพื้นฐานของรหัสเช่นคลาสอินเทอร์เฟซและฟังก์ชัน / โพรซีเดอร์ พวกเขารู้ว่าโค้ดควรตอบสนองอย่างไรและสามารถปรับเปลี่ยนได้ตามผลลัพธ์
- การทดสอบส่วนประกอบ: ชื่ออื่น ๆ คือการทดสอบโมดูลหรือโปรแกรม มันคล้ายกับการทดสอบหน่วย แต่มีระดับการรวมที่สูงขึ้น โมดูลของซอฟต์แวร์ได้รับการทดสอบเพื่อหาข้อบกพร่องเพื่อตรวจสอบการทำงานของแต่ละบุคคล
- การทดสอบการรวม: สิ่งนี้จะระบุข้อผิดพลาดเมื่อโมดูลถูกรวมเข้าด้วยกัน การทดสอบบูรณาการที่แตกต่างกันคือล่างขึ้นบนลงล่างและเพิ่มการทำงาน
- การทดสอบระบบ: ส่วนประกอบของโครงการได้รับการทดสอบโดยรวมในสภาพแวดล้อมที่แตกต่างกันด้วยวิธีนี้ มันอยู่ภายใต้วิธีกล่องดำและเป็นหนึ่งในการทดสอบขั้นสุดท้ายในกระบวนการ มันกำหนดว่าระบบทำงานตามที่ควรเพื่อตอบสนองความต้องการทางธุรกิจและผู้ใช้
- การทดสอบอัลฟ่า: เจ้าหน้าที่ภายในทำการทดสอบซอฟต์แวร์ที่ไซต์ของผู้พัฒนาในสภาพแวดล้อมจำลองหรือสภาพแวดล้อมจริง หลังจากนั้นนักพัฒนาแก้ไขข้อบกพร่องและปัญหาอื่น ๆ
- การทดสอบเบต้า: หรือที่เรียกว่าการทดสอบภาคสนามลูกค้าทำการทดสอบผลิตภัณฑ์ในเว็บไซต์ของตนเองในสภาพจริง ลูกค้าอาจเสนอโอกาสให้กลุ่มผู้ใช้ปลายทางทดสอบซอฟต์แวร์ผ่านรุ่นก่อนวางจำหน่ายหรือรุ่นเบต้า ความคิดเห็นเกี่ยวกับการปรับปรุงที่เป็นไปได้จะถูกส่งไปยังผู้พัฒนา
- การทดสอบการยอมรับ: ภายใต้ขอบเขตของการทดสอบกล่องดำลูกค้าทดสอบซอฟต์แวร์เพื่อดูว่านักพัฒนาได้สร้างโปรแกรมตามข้อกำหนดที่ต้องการหรือไม่
ประเภทการทดสอบ
การทดสอบซอฟต์แวร์ประเภทต่างๆนั้นออกแบบมาเพื่อมุ่งเน้นไปที่วัตถุประสงค์เฉพาะ
- การทดสอบการติดตั้ง: วิศวกรทดสอบซอฟต์แวร์และผู้จัดการการกำหนดค่าดำเนินการทดสอบนี้เพื่อให้แน่ใจว่าผู้ใช้สามารถติดตั้งและเรียกใช้โปรแกรมได้ มันครอบคลุมพื้นที่เช่นไฟล์การติดตั้งสถานที่ติดตั้งและสิทธิ์ของผู้ดูแลระบบ
- การทดสอบการพัฒนา: สิ่งนี้ใช้กลยุทธ์การซิงโครไนซ์ที่หลากหลายเพื่อตรวจจับและป้องกันข้อบกพร่อง ซึ่งรวมถึงการวิเคราะห์โค้ดแบบสแตติกการตรวจทานโค้ดเพียร์การตรวจสอบย้อนกลับและการวิเคราะห์เมทริก เป้าหมายคือเพื่อลดความเสี่ยงและประหยัดต้นทุน
- การทดสอบการใช้งาน: ประสบการณ์ผู้ใช้ตกอยู่ในความสนใจด้วยการทดสอบนี้ มันวัดว่า GUI ออกแบบมาได้ดีแค่ไหนและใช้งานง่าย การทดสอบจะตรวจสอบความถูกต้องและประสิทธิภาพของฟังก์ชั่นและการตอบสนองทางอารมณ์ของกลุ่มทดสอบ
- การทดสอบสติ: สิ่งนี้บ่งชี้ว่าซอฟต์แวร์คุ้มค่ากับเวลาและค่าใช้จ่ายในการทดสอบต่อไป หากมีข้อบกพร่องมากเกินไปการทดสอบเชิงรุกก็จะไม่เกิดขึ้น
- การทดสอบควัน: การทดสอบควันเผยให้เห็นความล้มเหลวขั้นพื้นฐานที่ร้ายแรงพอที่จะป้องกันการรั่วไหล เมื่อสิ่งนี้ถูกดำเนินการในบิลด์ใหม่มันถูกเรียกว่าการทดสอบการตรวจสอบบิลด์
- การทดสอบการถดถอย: เมื่อระบบผ่านการดัดแปลงการทดสอบการถดถอยจะตรวจสอบพฤติกรรมที่ไม่คาดคิด มันชี้ให้เห็นถึงผลเสียต่อโมดูลหรือส่วนประกอบ
- การทดสอบแบบทำลาย: ผู้ทดสอบป้อนรายการที่ผิดปกติและมองเห็นความสามารถของซอฟต์แวร์ในการจัดการอินพุตที่ไม่คาดคิด สิ่งนี้แสดงให้ผู้พัฒนาเห็นว่าโปรแกรมนั้นแข็งแกร่งเพียงใดในการจัดการข้อผิดพลาด
- การทดสอบการกู้คืน: เมื่อฮาร์ดแวร์หรือฟังก์ชั่นอื่น ๆ ล้มเหลวการทดสอบนี้แสดงให้เห็นว่าซอฟต์แวร์สามารถกู้คืนและดำเนินการต่อได้ดีเพียงใด
- การทดสอบอัตโนมัติ: ฟังก์ชั่นนี้ทำหน้าที่ยากที่จะนำไปใช้ด้วยตนเอง มันใช้ซอฟต์แวร์เฉพาะเพื่อเรียกใช้การทดสอบและเพื่อให้ข้อมูลเกี่ยวกับผลลัพธ์จริงกับผลลัพธ์ที่คาดไว้
- การทดสอบความเข้ากันได้: ซอฟต์แวร์ต้องทำงานในสภาพแวดล้อมการคำนวณที่แตกต่างกันดังนั้นจึงตรวจสอบความเข้ากันได้กับระบบที่แตกต่างกัน ตัวอย่างเช่นซอฟต์แวร์ทำงานกับระบบปฏิบัติการและเว็บเบราว์เซอร์ที่หลากหลายหรือไม่
- การทดสอบประสิทธิภาพ: นี่คือการทดสอบในเชิงลึกที่ตรวจสอบประสิทธิภาพของซอฟต์แวร์ในสถานการณ์ที่แตกต่างกัน มีการรวบรวมข้อมูลเกี่ยวกับการตอบสนองความเสถียรการจัดสรรทรัพยากรและความเร็ว ยิ่งไปกว่านั้นการทดสอบย่อยเช่นปริมาณความจุและการทดสอบขัดขวางมีส่วนร่วมในกระบวนการนี้
- การทดสอบความปลอดภัย: สิ่งนี้วัดความสามารถของซอฟต์แวร์ในการปกป้องความปลอดภัยของผู้ใช้ ซึ่งหมายถึงฟังก์ชันการอนุญาตการรับรองความถูกต้องความลับความสมบูรณ์ความพร้อมใช้งานและการปฏิเสธ
- การทดสอบการเข้าถึง: นี่ไม่เหมือนกับการทดสอบการใช้งาน สิ่งนี้กำหนดขอบเขตที่ผู้ใช้ที่มีความสามารถแตกต่างกัน ได้แก่ การเรียนรู้และความพิการทางร่างกายรวมถึงสามารถใช้ซอฟต์แวร์ได้
- การทดสอบสากลและการโลคัลไลซ์เซชัน: ผลลัพธ์แสดงให้เห็นว่าซอฟต์แวร์สามารถปรับให้เข้ากับภาษาต่าง ๆ และความต้องการระดับภูมิภาคได้อย่างไร ซึ่งรวมถึงการเพิ่มส่วนประกอบสำหรับสถานที่เฉพาะและการแปลข้อความ