Integration Test
1. Sub-System Testing
- Test Module ที่เกี่ยวข้องกัน
- ระวังการ Interface ระหว่าง Module
- Test การเชื่อมต่อแต่ละโมดูล
2. Top-down Testing
Test จากโมดูลระดับบน และเลื่อนลงมาทดสอบโมดูลระดับล่าง (Test จากบนลงล่าง) การทดสอบนี้จะสร้าง Stub module ล่างถัดมาจากโมดูลที่ถูกทดสอบ เพื่อเป็นโมดูลหุ่นสำหรับการถูกเรียกใช้งานจากโมดูลที่ถูกทดสอบ
Sub-system --> Module --> Unit
ข้อดีของ Top-down Testing
- เจอ errors เร็ว
- ลด Cost
- ป้องกันการ Redesign
- เห็นภาพรวมง่าย
- สาธิตให้ User ดูได้เร็ว
- มีผลดีต่อผู้ร่วมงาน
ข้อเสียของ Top-down Testing
- การ Test ข้อมูลออก(Out put)ทำได้ยาก
- ยุ่งยากในการสร้าง Stub module
- ทำได้แต่เฉพาะ Level ล่างๆ
3. Bottom-up Testing
เริ่มต้นทดสอบโมดูลที่ระดับล่างสุดของโครงสร้างซอฟต์แวร์ และก่อรวมโมดูลต่างๆ เป็นโครงสร้างลำดับชั้นของสถาปัตยกรรมซอฟต์แวร์ (Test จากระดับล่างขึ้นบน) ทีมทดสอบต้องสร้าง Driver module เพื่อเป็นตุ๊กตาสำหรับควบคุมโมดูลที่ต้องทดสอบ
ข้อดีของ Bottom-up Testing
- เหมาะสำหรับระบบเชิงวัตถุ (object-oriented system)
- ใช้ตรวจสอบความสัมพันธ์ระหว่างวัตถุต่างๆ ในระบบได้
- ถ้าสร้าง Driver module ได้น้อยที่สุด จะช่วยลดจำนวนครั้งในการทดสอบโมดูล
ข้อเสียของ Bottom-up Testing
- ต้องสร้าง Driver module ให้น้อยที่สุด
- ลักษณะของ Driver module ต้องจำลองสภาพแวดล้อมการทำงานจริง
- การนำโมดูลไปใช้กับระบบใหม่ต้องมอบ Driver module ให้กับผู้ที่นำไปใช้ด้วย
4. Thread Testing
เป็นการทดสอบระบบ real time ขณะที่ระบบกำลังประมวลผล อาจมีโปรเซสหลายอันทำงานร่วมกัน หรืออิสระกัน และบางโปรเซสดำเนินกิจกรรมได้ก็ต่อเมื่อมีการขัดจังหวะ หรือมีเหตุการณ์ภายนอกมากระตุ้น
- Test ทุกๆ Process ใน level เดียวกัน
- อาจรวม Top-down และ Bottom-up เข้าด้วยกัน
5. Stress Testing
เป็นการทดสอบความสามารถการประมวลผลของระบบซอฟต์แวร์ภายใต้สถานะการณ์วิกฤติ ทดสอบพฤติกรรมการ Fail ของระบบ เมื่อมีอะไรมากระทบ
- Soft Fail
- Hard Fail
มักนิยมใช้ทดสอบกับระบบประมวลผลแบบกระจาย บนระบบเครือข่ายคอมพิวเตอร์ เพราะข้อจำกัดของระบบเกี่ยวพันกับปริมาณการส่งข้อมูลระหว่างคอมพิวเตอร์ ถ้าปริมาณข้อมูลมากเกินไปอาจส่งผลให้เครือข่ายทำงานช้าลง หรือล้มเหลว
6. Incremental Testing
- นิยมนำมาใช้ทดสอบการดำเนินงานร่วมกันระหว่างองค์ประกอบย่อยในระบบ เป็นการเพิ่ม Module ที่ Test แล้วมาไว้รวมกัน
- เนื่องจากการทดสอบแต่ละโมดูลไม่สามารถดำเนินการได้โดยลำพัง จึงต้องทำงานร่วมกับ
- Driver module เป็นโมดูลหุ่นทำหน้าที่ควบคุม หรือเรียกใช้โมดูลที่ต้องการทดสอบ
- Stub module ทำหน้าที่เป็นโมดูลย่อยหรือโมดูลที่ถูกเรียกใช้โดยโมดูลที่ถูกทดสอบ
7. Back to back Testing
ใช้ทดสอบซอฟต์แวร์ที่มีหลายรุ่น(version) โดยซอฟต์แวร์รุ่นใหม่ยังคงมีความสามารถครอบคลุมรุ่นเก่า ยุทธวิธีนี้จะนำผลลัพธ์ที่ได้จากการประมวลซอฟต์แวร์แต่ละรุ่นมาเปรียบเทียบกัน เพื่อค้นหาข้อบกพร่อง โดยใช้ข้อมูลชุดเดียวกันในการทดสอบ