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


