บริษัท ซอฟต์แวร์ขนาดใหญ่เช่น Google ประสบความสำเร็จแม้ว่าจะมีข้อบกพร่องที่มีความสำคัญต่ำในซอฟต์แวร์ แต่ บริษัท ขนาดเล็กและ บริษัท ที่เพิ่งเริ่มต้นไม่ได้มีความหรูหราดังกล่าว
ลูกค้าคาดหวังให้ผลิตภัณฑ์ทำในสิ่งที่พวกเขาอ้างสิทธิ์ในหน้าการขายหรือในเอกสารประกอบ มีหลายทางเลือกออกมีพวกเขาจะไม่คิดสองครั้งเกี่ยวกับการกระโดดเรือถ้าผลิตภัณฑ์เสียเวลาและเงินของพวกเขา ดังนั้นซอฟต์แวร์จึงได้รับการทดสอบอย่างเข้มงวดก่อนปล่อยเพื่อให้:
เน้นความแตกต่างระหว่างแนวคิดดั้งเดิมกับผลลัพธ์สุดท้าย
ตรวจสอบว่าซอฟต์แวร์ทำงานตามที่นักออกแบบกำหนดไว้
ตรวจสอบผลิตภัณฑ์สิ้น - ผลิตภัณฑ์ต้องเป็นไปตามความต้องการของลูกค้า
ประเมินคุณสมบัติและคุณภาพ
การทดสอบเป็นไปตามแบบพิมพ์เขียวที่เข้มงวด การเพิ่มประสิทธิภาพการใช้ทรัพยากรที่มีคุณค่า ได้แก่ ทักษะเวลาและเงินในขณะเดียวกันก็ให้ข้อมูลที่จำเป็นแก่ผู้มีส่วนได้ส่วนเสียเพื่อนำเสนอผลิตภัณฑ์ต่อไป เป้าหมายคือการอำนวยความสะดวกประสบการณ์ของผู้ใช้ที่ดีผ่านโปรแกรม การประกันคุณภาพที่ แข็งแกร่ง ด้วยสัดส่วนการลงทุนที่สูงผู้จัดการฝ่ายบริหารคุณภาพจึงเป็นผู้ที่มี รายได้สูงสุด ในเทคโนโลยีการทดสอบโดยปกติแล้วจะทำตามขั้นตอนต่อไปนี้:
การวิเคราะห์ความต้องการที่ผู้บริหารวางแผนโครงการเพื่อวางกลยุทธ์การทดสอบที่เหมาะสมในสถานที่
การทดสอบเริ่มต้นและผลลัพธ์ที่ได้รับการวิเคราะห์
ข้อบกพร่องใด ๆ ได้รับการแก้ไขและซอฟต์แวร์จะผ่านการทดสอบการถดถอย - ระบบตรวจสอบโปรแกรมยังคงทำงานหลังจากการแก้ไข
รายงานการปิดการทดสอบจะอธิบายกระบวนการทั้งหมดและผลลัพธ์
วิธีทดสอบซอฟต์แวร์
ต่อไปนี้เป็นวิธีการต่างๆที่ใช้ในการตัดสินพฤติกรรมและประสิทธิภาพของผลิตภัณฑ์
กล่องดำและการทดสอบกล่องสีขาวเป็นสองวิธีพื้นฐาน
- การทดสอบกล่องดำ - เรียกอีกอย่างหนึ่งว่า การทดสอบแบบ ใช้งานหรือแบบสเปคที่ใช้วิธีนี้เน้นการส่งออก ผู้ทดสอบไม่ได้เกี่ยวข้องกับกลไกภายใน พวกเขาเพียงตรวจสอบซอฟต์แวร์ไม่สิ่งที่ควร. ความรู้เกี่ยวกับการเขียนโค้ดไม่จำเป็นและผู้ทดสอบจะทำงานในระดับอินเตอร์เฟซผู้ใช้
- การทดสอบกล่องสีขาว - วิธีนี้ใช้การเข้ารหัสความรู้เป็นส่วนหนึ่งของขั้นตอนการทดสอบ เมื่อผลิตภัณฑ์ล้มเหลวผู้ทดสอบจะเข้าไปลึกเข้าไปในโค้ดตามที่จำเป็นเพื่อหาสาเหตุ นักพัฒนาซอฟต์แวร์ทำแบบนี้เพราะพวกเขากำหนดว่าผลิตภัณฑ์ควรจะทำงานอย่างไร การทดสอบโครงสร้างและกล่องแก้วเป็นชื่ออื่นสำหรับวิธีนี้
- การทดสอบแบบสถิต - เครื่องทดสอบจะตรวจสอบโค้ดและเอกสารของซอฟต์แวร์ แต่ไม่ได้รันโปรแกรม การทดสอบแบบคงที่เริ่มต้นในช่วงต้นของการพัฒนาผลิตภัณฑ์ระหว่างกระบวนการตรวจสอบ
- การทดสอบแบบไดนามิก - ซอฟต์แวร์ทำงานด้วยอินพุตต่างๆและผู้ทดสอบจะเปรียบเทียบผลลัพธ์กับลักษณะการทำงานที่คาดไว้ด้วยวิธีนี้
- การทดสอบ GUI - การทดสอบลักษณะ GUI นี้ - การจัดรูปแบบข้อความกล่องข้อความปุ่มรายการเค้าโครงสีแบบอักษรขนาดตัวอักษรและอื่น ๆ การทดสอบ GUI เป็นเรื่องที่ต้องใช้เวลามากและ บริษัท ที่เป็นบุคคลที่สามมักใช้งานแทนนักพัฒนาซอฟต์แวร์
ระดับการทดสอบ
เหล่านี้จำเป็นต้องระบุจุดอ่อนและซ้อนทับกันในแต่ละเฟสของวงจรชีวิตการพัฒนาซอฟต์แวร์
- การทดสอบหน่วย - นักพัฒนาซอฟต์แวร์ทดสอบส่วนพื้นฐานของโค้ดเช่นคลาสอินเทอร์เฟซและฟังก์ชัน / ขั้นตอน พวกเขารู้ว่าโค้ดของพวกเขาควรตอบสนองอย่างไรและสามารถปรับเปลี่ยนได้ขึ้นอยู่กับผลลัพธ์
- การทดสอบ คอมโพเนนต์ - ชื่ออื่น ๆ คือการทดสอบโมดูลหรือโปรแกรม คล้ายกับการทดสอบหน่วย แต่มีการรวมระบบในระดับที่สูงขึ้น โมดูลของซอฟต์แวร์จะได้รับการทดสอบเพื่อหาข้อบกพร่องเพื่อตรวจสอบความถูกต้องของแต่ละฟังก์ชัน
- การทดสอบการรวมระบบ - ระบุข้อผิดพลาดเมื่อรวมโมดูล การทดสอบการรวมระบบต่างๆกันคือด้านล่างขึ้นด้านบนและการทำงานที่เพิ่มขึ้น
- การทดสอบ ระบบ - องค์ประกอบของโครงการจะได้รับการทดสอบโดยรวมในสภาพแวดล้อมที่แตกต่างกันด้วยวิธีนี้ มันอยู่ภายใต้วิธีการกล่องดำและเป็นหนึ่งในการทดสอบขั้นสุดท้ายในกระบวนการ จะกำหนดว่าระบบสามารถทำงานได้ตามความต้องการของธุรกิจและผู้ใช้หรือไม่
- การทดสอบอัลฟา - พนักงานภายในทดสอบซอฟต์แวร์ที่ไซต์ของนักพัฒนาซอฟต์แวร์ในสภาพแวดล้อมจำลองหรือที่เกิดขึ้นจริง หลังจากนั้นนักพัฒนาจะแก้ไขข้อบกพร่องและปัญหาอื่น ๆ
- การทดสอบเบต้า - หรือที่เรียกว่าการทดสอบภาคสนามด้วยเหตุนี้ลูกค้าจึงทดสอบผลิตภัณฑ์ในเว็บไซต์ของตนเองในสภาพที่แท้จริง ลูกค้าอาจเสนอกลุ่มผู้ใช้ปลายทางทดสอบซอฟต์แวร์ผ่านทางรุ่นก่อนวางจำหน่ายหรือรุ่นเบต้า ข้อเสนอแนะเกี่ยวกับการปรับปรุงที่เป็นไปได้จะถูกส่งไปยังนักพัฒนา
- การทดสอบการรับ - นอกจากนี้ภายใต้ขอบเขตของการทดสอบกล่องดำไคลเอ็นต์จะทดสอบซอฟต์แวร์เพื่อดูว่านักพัฒนาซอฟต์แวร์ได้สร้างโปรแกรมตามข้อกำหนดที่ต้องการหรือไม่
ประเภทการทดสอบ
การทดสอบซอฟต์แวร์เหล่านี้มุ่งเน้นวัตถุประสงค์เฉพาะ
- การทดสอบการติดตั้ง - วิศวกรทดสอบซอฟต์แวร์และผู้จัดการการกำหนดค่าดำเนินการทดสอบนี้เพื่อให้แน่ใจว่าผู้ใช้ปลายทางสามารถติดตั้งและเรียกใช้โปรแกรมได้ ครอบคลุมพื้นที่เช่นไฟล์การติดตั้งสถานที่ติดตั้งและสิทธิ์การดูแลระบบ
- การทดสอบการพัฒนา - ใช้กลยุทธ์การตรวจจับและป้องกันข้อบกพร่องหลายรูปแบบ ประกอบด้วยการวิเคราะห์โค้ดแบบคงที่การตรวจสอบความคิดเห็นแบบ peercode การตรวจสอบย้อนกลับและการวิเคราะห์เมตริก เป้าหมายคือเพื่อลดความเสี่ยงและประหยัดค่าใช้จ่าย
- การทดสอบการใช้งาน - ประสบการณ์ผู้ใช้ มาภายใต้สปอตไลท์กับการทดสอบนี้ วัดว่า GUI ได้รับการออกแบบและใช้งานง่ายเพียงใด การทดสอบจะตรวจสอบความถูกต้องและประสิทธิภาพของฟังก์ชันและการตอบสนองทางอารมณ์ของผู้เข้าร่วมการทดสอบ
- การทดสอบความเกียจคร้าน - แสดงว่าซอฟต์แวร์มีค่าเวลาและค่าใช้จ่ายในการทดสอบต่อไปหรือไม่ มีข้อบกพร่องและการทดสอบเชิงรุกมากเกินไป
- การทดสอบควัน - การทดสอบ ควันแสดงให้เห็นถึงความล้มเหลวขั้นพื้นฐานที่ร้ายแรงพอที่จะป้องกันการปลดปล่อย เมื่อดำเนินการในเวอร์ชันใหม่จะเรียกว่าการทดสอบยืนยันการสร้าง
- การทดสอบการถดถอย - เมื่อระบบผ่านการปรับเปลี่ยนการทดสอบการถดถอยจะตรวจสอบพฤติกรรมที่ไม่คาดคิด มันชี้ให้เห็นผลกระทบต่อโมดูลหรือส่วนประกอบ
- การทดสอบที่ทำลาย - เครื่องทดสอบป้อนข้อมูลผิดปกติและตรวจสอบความสามารถของซอฟต์แวร์ในการจัดการการป้อนข้อมูลที่ไม่คาดคิด ซึ่งแสดงให้เห็นว่านักพัฒนาซอฟต์แวร์มีความสามารถในการจัดการข้อผิดพลาดได้อย่างไร
- การทดสอบการกู้คืน - เมื่อฮาร์ดแวร์หรือฟังก์ชันอื่น ๆ ล้มเหลวการทดสอบนี้แสดงให้เห็นว่าซอฟต์แวร์สามารถกู้คืนและดำเนินการต่อได้ดีเพียงใด
- การทดสอบโดยอัตโนมัติ - การดำเนินการนี้เป็นการยากที่จะใช้งานด้วยตนเอง ใช้ซอฟต์แวร์เฉพาะเพื่อใช้การทดสอบและเพื่อให้ข้อมูลเกี่ยวกับผลลัพธ์ที่เกิดขึ้นจริงเทียบกับที่คาดไว้
- การทดสอบความเข้ากันได้ - ซอฟต์แวร์ต้องทำงานในสภาพแวดล้อมการประมวลผลที่แตกต่างกันดังนั้นจึงเป็นการตรวจสอบความเข้ากันได้กับระบบต่างๆ ตัวอย่างเช่นซอฟต์แวร์ทำงานร่วมกับระบบปฏิบัติการและเว็บเบราเซอร์ต่างๆหรือไม่?
- การทดสอบประสิทธิภาพ - เป็นการทดสอบเชิงลึกเพื่อตรวจสอบประสิทธิภาพของซอฟต์แวร์ในสถานการณ์ต่างๆ ข้อมูลเกี่ยวกับการตอบสนองความมั่นคงการจัดสรรทรัพยากรและความเร็วในการรวบรวม นอกจากนี้การทดสอบย่อยเช่นความจุความจุและการทดสอบการขัดขวางเป็นส่วนหนึ่งของกระบวนการนี้
- การทดสอบความปลอดภัย - เป็นการวัดความสามารถของซอฟต์แวร์ในการปกป้องความปลอดภัยของผู้ใช้ ซึ่งหมายถึงการให้สิทธิ์การทำงานการตรวจสอบความถูกต้องความลับความสมบูรณ์ความพร้อมใช้งานและการไม่ปฏิเสธ
- การทดสอบการเข้าถึง - ไม่เหมือนกับการทดสอบการใช้งาน นี้กำหนดขอบเขตที่ผู้ใช้ความสามารถที่แตกต่างกัน - การเรียนรู้และความพิการทางร่างกายรวมถึงสามารถใช้ซอฟต์แวร์
- การทดสอบระหว่างประเทศและการแปล - ผลลัพธ์แสดงว่าซอฟต์แวร์สามารถปรับให้เข้ากับภาษาต่างๆและความต้องการของภูมิภาคได้อย่างไร ซึ่งรวมถึงการเพิ่มส่วนประกอบสำหรับสถานที่เฉพาะและการแปลข้อความ
การทดสอบซอฟต์แวร์เป็นส่วนสำคัญในการนำผลิตภัณฑ์สู่ตลาด และหากไม่มีผู้ทดสอบคุณจะไม่มีซอฟต์แวร์ที่พร้อมใช้งานมากมาย เป็นผู้ทดสอบซอฟต์แวร์ที่ได้รับการรับรองผ่านทางองค์กรต่างๆเช่น BCS, สถาบัน Chartered Institute for IT, ISTQB® (International Software Testing Qualifications Board) และ ASQ (เดิมชื่อ American Society for Quality)