การทดสอบและการประกันคุณภาพ
ระบบซอฟต์แวร์จำเป็นต้องได้รับการตรวจสอบพฤติกรรมที่ตั้งใจไว้และทิศทางของความคืบหน้าในแต่ละขั้นตอนของการพัฒนาเพื่อหลีกเลี่ยงความซ้ำซ้อนของความพยายามเวลาและการใช้จ่ายที่มากเกินไปและเพื่อให้มั่นใจว่าระบบจะเสร็จสิ้นภายในเวลาที่กำหนดระบบซอฟต์แวร์จะต้องได้รับการตรวจสอบ พฤติกรรมที่ตั้งใจไว้และทิศทางของความคืบหน้าในแต่ละขั้นตอนการพัฒนาเพื่อหลีกเลี่ยงความซ้ำซ้อนของความพยายามเวลาและการใช้จ่ายมากเกินไปและเพื่อให้มั่นใจว่าระบบจะเสร็จสิ้นภายในเวลาที่กำหนด
การทดสอบระบบและการประกันคุณภาพเข้ามาช่วยในการตรวจสอบระบบ ประกอบด้วย -
- คุณภาพระดับผลิตภัณฑ์ (การทดสอบ)
- คุณภาพระดับกระบวนการ
ให้เราผ่านพวกเขาสั้น ๆ -
การทดสอบ
การทดสอบคือกระบวนการหรือกิจกรรมที่ตรวจสอบการทำงานและความถูกต้องของซอฟต์แวร์ตามข้อกำหนดของผู้ใช้ที่ระบุเพื่อปรับปรุงคุณภาพและความน่าเชื่อถือของระบบ เป็นแนวทางที่มีราคาแพงใช้เวลานานและมีความสำคัญในการพัฒนาระบบซึ่งต้องมีการวางแผนกระบวนการทดสอบโดยรวมอย่างเหมาะสม
การทดสอบที่ประสบความสำเร็จคือการพบข้อผิดพลาด มันดำเนินการโปรแกรมด้วยเจตนาที่ชัดเจนในการค้นหาข้อผิดพลาดกล่าวคือทำให้โปรแกรมล้มเหลว เป็นกระบวนการประเมินระบบด้วยความตั้งใจที่จะสร้างระบบที่แข็งแกร่งและมุ่งเน้นไปที่ส่วนที่อ่อนแอของระบบหรือซอฟต์แวร์เป็นหลัก
ลักษณะของการทดสอบระบบ
การทดสอบระบบเริ่มต้นที่ระดับโมดูลและดำเนินการต่อการรวมระบบซอฟต์แวร์ทั้งหมด มีการใช้เทคนิคการทดสอบที่แตกต่างกันในเวลาที่ต่างกันในขณะทดสอบระบบ ดำเนินการโดยผู้พัฒนาสำหรับโครงการขนาดเล็กและโดยกลุ่มทดสอบอิสระสำหรับโครงการขนาดใหญ่
ขั้นตอนของการทดสอบระบบ
ขั้นตอนต่อไปนี้เกี่ยวข้องกับการทดสอบ -
Test Strategy
เป็นคำสั่งที่ให้ข้อมูลเกี่ยวกับระดับวิธีการเครื่องมือและเทคนิคต่างๆที่ใช้ในการทดสอบระบบ ควรตอบสนองทุกความต้องการขององค์กร
Test Plan
มีแผนสำหรับการทดสอบระบบและตรวจสอบว่าระบบที่อยู่ระหว่างการทดสอบเป็นไปตามข้อกำหนดการออกแบบและการทำงานทั้งหมด แผนการทดสอบให้ข้อมูลดังต่อไปนี้ -
- วัตถุประสงค์ของแต่ละขั้นตอนการทดสอบ
- แนวทางและเครื่องมือที่ใช้ในการทดสอบ
- ความรับผิดชอบและเวลาที่ต้องใช้ในการทดสอบแต่ละกิจกรรม
- ความพร้อมของเครื่องมือสิ่งอำนวยความสะดวกและไลบรารีทดสอบ
- ขั้นตอนและมาตรฐานที่จำเป็นสำหรับการวางแผนและดำเนินการทดสอบ
- ปัจจัยที่รับผิดชอบต่อความสำเร็จของกระบวนการทดสอบ
Test Case Design
มีการระบุกรณีทดสอบจำนวนมากสำหรับแต่ละโมดูลของระบบที่จะทดสอบ
แต่ละกรณีการทดสอบจะระบุวิธีการทดสอบการดำเนินการตามข้อกำหนดเฉพาะหรือการตัดสินใจออกแบบและเกณฑ์สำหรับความสำเร็จของการทดสอบ
กรณีทดสอบพร้อมกับแผนการทดสอบได้รับการจัดทำเป็นเอกสารเป็นส่วนหนึ่งของเอกสารข้อมูลจำเพาะของระบบหรือในเอกสารแยกต่างหากที่เรียกว่า test specification หรือ test description.
Test Procedures
ประกอบด้วยขั้นตอนที่ควรปฏิบัติเพื่อดำเนินการทดสอบแต่ละกรณี ขั้นตอนเหล่านี้ระบุไว้ในเอกสารแยกต่างหากที่เรียกว่าข้อกำหนดขั้นตอนการทดสอบ เอกสารนี้ยังระบุข้อกำหนดและรูปแบบพิเศษสำหรับการรายงานผลการทดสอบ
Test Result Documentation
ไฟล์ผลการทดสอบประกอบด้วยข้อมูลสั้น ๆ เกี่ยวกับจำนวนกรณีทดสอบทั้งหมดที่ดำเนินการจำนวนข้อผิดพลาดและลักษณะของข้อผิดพลาด จากนั้นจะนำผลลัพธ์เหล่านี้ไปประเมินเทียบกับเกณฑ์ในข้อกำหนดการทดสอบเพื่อกำหนดผลลัพธ์โดยรวมของการทดสอบ
ประเภทของการทดสอบ
การทดสอบอาจมีหลายประเภทและการทดสอบประเภทต่างๆจะดำเนินการขึ้นอยู่กับประเภทของจุดบกพร่องที่เราต้องการค้นพบ -
การทดสอบหน่วย
หรือที่เรียกว่า Program Testing เป็นการทดสอบประเภทหนึ่งที่นักวิเคราะห์ทำการทดสอบหรือมุ่งเน้นไปที่แต่ละโปรแกรมหรือโมดูลอย่างอิสระ ดำเนินการโดยมีเจตนาในการดำเนินการแต่ละคำสั่งของโมดูลอย่างน้อยหนึ่งครั้ง
ในการทดสอบหน่วยไม่สามารถมั่นใจได้ว่ามีความแม่นยำของโปรแกรมและเป็นการยากที่จะทำการทดสอบการรวมอินพุตต่างๆโดยละเอียด
ระบุข้อผิดพลาดสูงสุดในโปรแกรมเมื่อเทียบกับเทคนิคการทดสอบอื่น ๆ
การทดสอบการผสานรวม
ในการทดสอบการรวมนักวิเคราะห์จะทดสอบหลายโมดูลที่ทำงานร่วมกัน ใช้เพื่อค้นหาความคลาดเคลื่อนระหว่างระบบกับวัตถุประสงค์ดั้งเดิมข้อมูลจำเพาะปัจจุบันและเอกสารของระบบ
ที่นี่นักวิเคราะห์พยายามค้นหาพื้นที่ที่โมดูลได้รับการออกแบบโดยมีข้อกำหนดที่แตกต่างกันสำหรับความยาวข้อมูลประเภทและชื่อองค์ประกอบข้อมูล
ตรวจสอบว่าขนาดไฟล์เพียงพอและมีการสร้างดัชนีอย่างถูกต้อง
การทดสอบการทำงาน
การทดสอบฟังก์ชันจะพิจารณาว่าระบบทำงานได้อย่างถูกต้องตามข้อกำหนดและเอกสารมาตรฐานที่เกี่ยวข้องหรือไม่ โดยทั่วไปการทดสอบการทำงานจะเริ่มต้นด้วยการนำระบบไปใช้งานซึ่งมีความสำคัญอย่างยิ่งต่อความสำเร็จของระบบ
การทดสอบการทำงานแบ่งออกเป็นสองประเภท -
Positive Functional Testing - เกี่ยวข้องกับการทดสอบระบบด้วยอินพุตที่ถูกต้องเพื่อตรวจสอบว่าเอาต์พุตที่สร้างนั้นถูกต้อง
Negative Functional Testing - เกี่ยวข้องกับการทดสอบซอฟต์แวร์ด้วยปัจจัยการผลิตที่ไม่ถูกต้องและสภาพการทำงานที่ไม่ต้องการ
กฎสำหรับการทดสอบระบบ
เพื่อให้การทดสอบระบบประสบความสำเร็จคุณต้องปฏิบัติตามกฎที่กำหนด -
การทดสอบควรขึ้นอยู่กับความต้องการของผู้ใช้
ก่อนที่จะเขียนสคริปต์ทดสอบควรทำความเข้าใจเกี่ยวกับตรรกะทางธุรกิจอย่างละเอียด
แผนการทดสอบควรทำโดยเร็วที่สุด
บุคคลที่สามควรทำการทดสอบ
ควรดำเนินการกับซอฟต์แวร์แบบคงที่
ควรทำการทดสอบสำหรับเงื่อนไขการป้อนข้อมูลที่ถูกต้องและไม่ถูกต้อง
การทดสอบควรได้รับการทบทวนและตรวจสอบเพื่อลดต้นทุน
ควรทำการทดสอบทั้งแบบคงที่และแบบไดนามิกในซอฟต์แวร์
ควรจัดทำเอกสารกรณีทดสอบและผลการทดสอบ
การประกันคุณภาพ
เป็นการตรวจสอบผลิตภัณฑ์ระบบหรือซอฟต์แวร์และเอกสารประกอบเพื่อให้มั่นใจว่าระบบเป็นไปตามข้อกำหนดและข้อกำหนด
วัตถุประสงค์ของ QA คือเพื่อสร้างความมั่นใจให้กับลูกค้าโดยการส่งมอบสินค้าตามข้อกำหนดอย่างสม่ำเสมอ
การประกันคุณภาพซอฟต์แวร์ (SQA) เป็นเทคนิคที่รวมถึงขั้นตอนและเครื่องมือที่ผู้เชี่ยวชาญด้านซอฟต์แวร์ใช้เพื่อให้แน่ใจว่าซอฟต์แวร์เป็นไปตามมาตรฐานที่ระบุไว้สำหรับการใช้งานและประสิทธิภาพตามวัตถุประสงค์
จุดมุ่งหมายหลักของ SQA คือการให้การมองเห็นโครงการซอฟต์แวร์และผลิตภัณฑ์ที่พัฒนาขึ้นอย่างเหมาะสมและถูกต้องแก่ฝ่ายบริหาร
ตรวจสอบและตรวจสอบผลิตภัณฑ์ซอฟต์แวร์และกิจกรรมต่างๆตลอดวงจรชีวิตของการพัฒนาระบบ
วัตถุประสงค์ของการประกันคุณภาพ
วัตถุประสงค์ของการดำเนินการประกันคุณภาพมีดังนี้ -
เพื่อตรวจสอบกระบวนการพัฒนาซอฟต์แวร์และซอฟต์แวร์ขั้นสุดท้ายที่พัฒนา
เพื่อให้แน่ใจว่าโครงการซอฟต์แวร์ดำเนินการตามมาตรฐานและขั้นตอนที่กำหนดโดยฝ่ายบริหารหรือไม่
เพื่อแจ้งกลุ่มและบุคคลเกี่ยวกับกิจกรรม SQA และผลลัพธ์ของกิจกรรมเหล่านี้
เพื่อให้แน่ใจว่าปัญหาที่ไม่ได้รับการแก้ไขภายในซอฟต์แวร์ได้รับการแก้ไขโดยผู้บริหารระดับสูง
เพื่อระบุข้อบกพร่องในผลิตภัณฑ์กระบวนการหรือมาตรฐานและแก้ไข
ระดับการประกันคุณภาพ
มีหลายระดับของการตรวจสอบคุณภาพและการทดสอบที่ต้องดำเนินการเพื่อรับรองผลิตภัณฑ์ซอฟต์แวร์
Level 1 − Code Walk-through
ในระดับนี้ซอฟต์แวร์ออฟไลน์จะได้รับการตรวจสอบหรือตรวจสอบการละเมิดกฎการเข้ารหัสอย่างเป็นทางการ โดยทั่วไปจะเน้นที่การตรวจสอบเอกสารและระดับของความคิดเห็นในรหัส
Level 2 − Compilation and Linking
ในระดับนี้จะมีการตรวจสอบว่าซอฟต์แวร์สามารถรวบรวมและเชื่อมโยงแพลตฟอร์มและระบบปฏิบัติการที่เป็นทางการทั้งหมดได้
Level 3 − Routine Running
ในระดับนี้จะมีการตรวจสอบว่าซอฟต์แวร์สามารถทำงานได้อย่างถูกต้องภายใต้เงื่อนไขต่างๆเช่นจำนวนเหตุการณ์ที่แน่นอนและขนาดเหตุการณ์ขนาดเล็กและขนาดใหญ่เป็นต้น
Level 4 − Performance test
ในระดับสุดท้ายนี้จะมีการตรวจสอบว่าประสิทธิภาพของซอฟต์แวร์เป็นไปตามระดับประสิทธิภาพที่ระบุไว้ก่อนหน้านี้