|
Verification & Validation คือกระบวนการตรวจสอบและยืนยันความถูกต้องของระบบงาน เป็นกระบวนการที่ช่วยให้ผู้พัฒนาระบบมีความแน่ใจว่าระบบที่ตนพัฒนานั้น ตรงตามข้อกำหนดตกลงไว้กับผู้ใช้หรือผู้จัดการระบบและตรงกับความต้องการของผู้ใช้ระบบนั้นอยู่เสมอ
Validation เป็นการตรวจสอบว่าระบบที่พัฒนาขึ้นมานั้นมีความถูกต้องหรือไม่ Verification เป็นการตรวจสอบว่าการพัฒนาสร้างระบบทำอย่างถูกต้องหรือไม่ กระบวนการทดสอบ แบ่งเป็น 2 ส่วนคือ - Software Testing หรือการทดสอบโปรแกรม - System Testing หรือการทดสอบระบบ กลยุทธ์การทดสอบโปรแกรม 1. Black Box Testing เป็นการทดสอบโดยไม่คำนึงถึงคำสั่งภายในโปรแกรม เป็นการทดสอบ Function ต่างๆ ของโปรแกรมตาม Requirements ที่มี เป็นการทดสอบโดยดูค่า Output จาก Input ที่ให้กับโปรแกรมต้องมีความสอดคล้องกัน การกำหนดข้อมูลในการทดสอบ ได้แก่ - ค่าตัวแทนของกลุ่ม - ค่าสูงสุด - ค่าต่ำสุด - ค่าเกินพิกัด - ค่าที่ผิดวิสัย 2. White Box Testing เป็นการทดสอบเพื่อดูโครงสร้างของโปรแกรม หรือทางเดินในโปรแกรม ต้องสร้างชุดทดสอบเฉพาะสำหรับทดสอบในเงื่อนไขต่างๆ โดยชุดทดสอบจะต้องประกอบด้วยชุดที่สามารถประมวลผลอย่างปรกติและไม่ปรกติ เทคนิคอื่นๆ ในการทดสอบโปรแกรม 1. Manual Testing เป็นการทดสอบโดยไม่ใช้เครื่องคอมพิวเตอร์ ??? 1.1 Inspection เป็นการทดสอบแบบตรวจไวยากรณ์ ??? 1.2 Desk Checking เป็นการทดสอบตามลำดับคำสั่งในโปรแกรม 2. Automated Testing เป็นการทดสอบด้วยเครื่องคอมพิวเตอร์ ??? 2.1 Syntax Checking เป็นการทดสอบด้วยการตรวจสอบไวยากรณ์ที่เขียนขึ้น ??? 2.2 Unit Testing/Module Testing เป็นการทดสอบโปรแกรมทีละ Module เพื่อหาข้อผิดพลาดที่เกิดขึ้นภายใน Module ??? 2.3 Integration Testing เป็นการทดสอบโปรแกรมโดยการเพิ่มจำนวน Module แบ่งออกเป็น 2 ลักษณะ ได้แก่ ????? ??? 2.3.1 Top-Down Approach ??????? ? 2.3.2 Buttom-Up Approach ??? 2.4 Stub Testing คือ กลุ่มคำสั่งสั้นๆ ที่เขียนขึ้นมาเป็น Module ตัวแทนในการทดสอบโปรแกรม ??? 2.5 System Testing เป็นการทดสอบโปรแกรมทุกโปรแกรมร่วมกันว่าได้ผลลัพธ์ที่ถูกต้องหรือไม่ การทดสอบระบบ ทำ 2 ประการคือ - การทดสอบเชิงสถิติ (Statistical Testing) เพื่อประเมินผลความถี่ของการใช้งานส่วนต่างๆ ของระบบ - การทดสอบข้อบกพร่อง (Defect Testing) เป็นการทดสอบเพื่อตรวจสอบว่าระบบมีข้อผิดพลาดที่จุดใดบ้าง
Design Test Case -> Prepare Test Data -> Run Program with Test Data -> Compare Results to Test Case Test Case -> Test Data -> Test Results -> Test Reports กลยุทธ์ในการทดสอบประสิทธิภาพของระบบ 1. Peak Load Testing การทดสอบการทำงานสูงสุด เป็นการทดสอบประสิทธิภาพในการประมวลผลของระบบ เมื่อมีการทำรายการมากที่สุด ณ เวลาใดเวลาหนึ่ง 2. Performance Testing การทดสอบประสิทธิ์ภาพของเวลา เป็นการทดสอบเพื่อพิจารณาถึงช่วงเวลาที่ใช้ในการประมวลผลรายการ ว่าใช้ระยะเวลานานเพียงใดในการทำรายการ 3. Recovery Testing การทดสอบการกู้ระบบ เป็นการทดสอบความสามารถในการกู้ระบบกรณีที่ระบบล้ม 4. Storage Testing การทดสอบการเก็บข้อมูล เป็นการทดสอบความสามารถของระบบในการเก็บข้อมูล ว่าสามารถเก็บข้อมูลได้สูงสุดเป็นจำนวนเท่าใด 5. Procedure Testing การทดสอบกระบวนการ เป็นการทดสอบการจัดทำเอกสารคู่มือการดำเนินของระบบ และคู่มือการใช้งานสำหรับผู้ใช้ ว่าสามารถสร้างความเข้าใจให้กับผู้ใช้ได้มากน้อยเพียงใด 6. User Testing การทดสอบผู้ใช้ เป็นการทดสอบการใช้งานจริงของระบบ เพื่อต้องการทราบว่าผู้ใช้จะทำอย่างไรเมื่อพบปัญหาที่เกิดขึ้น กระบวนการทดสอบระบบ 1. Unit Testing การทดสอบส่วนย่อยของโปรแกรม 2. Module Testing การทดสอบการทำงานร่วมกันของส่วนย่อยในระดับล่าง 3. Subsystem Testing การทดสอบปัญหาของการไม่สอดประสานกันของหน่วยย่อยต่างๆ 4. System Testing ตรวจสอบว่าระบบทั้งหมดทำงานได้ตรงตามข้อกำหนด หรือ ความต้องการของผู้ใช้อย่างแท้จริงหรือไม่ 5. Acceptance Testing การทดสอบขั้นสุดท้ายก่อนที่ระบบจะถูกยอมรับได้ว่าสามารถทำงานได้จริง เป็นการทดสอบร่วมกันระหว่างผู้ใช้ระบบและผู้ออกแบบพัฒนาระบบ แบ่งได้เป็น 2 ประเภทคือ ??? 5.1 Alpha Testing คือ การทดสอบความสมบูรณ์ของระบบโดยผู้ใช้ และใช้ข้อมูลสมมุติในการทดสอบ จะสมมุติให้ระบบอยู่ในสถานการณ์ที่อาจจะเกิดขึ้นได้ Alpha Testing มีการทดสอบ 4 ประการคือ ??????????? 5.1.1 Recovery Testing เป็นการทดสอบการกู้ระบบ ??????????? 5.1.2 Security Testing เป็นการทดสอบความปลอดภัยของระบบ ??????????? 5.1.3 Stress Testing เป็นการทดสอบประสิทธิภาพการทำงานของระบบภายใต้ความกดดัน ??????????? 5.1.4 Performance Testing เป็นการทดสอบประสิทธิภาพการทำงานของระบบภายใต้สภาพแวดล้อมของคอมพิวเตอร์ ??? 5.2 Beta Testing คือ การทดสอบความสมบูรณ์ของระบบโดยผู้ใช้ และ ใช้ข้อมูลจริงในการทดสอบ และภายใต้สถานการณ์ที่เกิดขึ้นจริง
เกณฑ์การยอมรับงาน - Time to Learn ระยะเวลาที่ผู้ใช้ต้องเรียนรู้การใช้ส่วนต่างๆ ของระบบงาน - Task Performance ความเร็วของการดำเนินงานแต่ละส่วน - Error Rate อัตราความผิดพลาดที่เกิดขึ้น - Subjective User Satisfaction ระดับความพึงพอใจของผู้ใช้โดยส่วนรวม - Human Retention ความสามารถจดจำคำสั่งและการใช้งานได้ การวางแผนการทดสอบระบบ 1. กำหนดข้อตกลงเบื้องต้นและรายละเอียดของระบบ 2. เตรียมแผนงานการทดสอบเพื่อการยอมรับระบบ 3. นำข้อมูลการออกแบบมาใช้ในการวางแผนการทดสอบความสัมพันธ์ของระบบรวม 4. กำหนดแผนการทดสอบความสัมพันธ์ของระบบย่อย
วิธีการประเมินผลการทำงานของระบบ - การใช้แบบสอบถาม - การบันทึกเทปการทำงานของผู้ใช้ - การสร้างส่วนพิเศษภายในระบบ ให้สามารถบันทึกข้อมูลเกี่ยวกับการทำงานของผู้ใช้ - การสร้างระบบให้ผู้ใช้สามารถบันทึกความคิดเห็นของตนเองขณะกำลังใช้งานระบบนั้นๆ ที่มา SCC : Suthida Chaichomchuen |