เด็กๆ ทุกคนก็คือ เพชรนิลจินดาที่รอการเจียระไน ครู พ่อแม่ ชุมชน คือนายช่างเจียระไน

ว. วชิรเมธี

Verification & Validation
User Rating: / 31
PoorBest 
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

 

Advertisement