การทดสอบซอฟต์แวร์ (Software Testing)

การทดสอบซอฟต์แวร์ (Software Testing) หมายถึง กระบวนการในการวิเคราะห์ ตรวจสอบ และติดตามผล การพัฒนาซอฟต์แวร์ เพื่อให้แน่ใจว่าซอฟต์แวร์ที่จะส่งมอบงานมีความถูกต้อง สมบูรณ์ และมีประสิทธิภาพตามที่ผู้ใช้งานคาดหวังไว้
การทดสอบซอฟต์แวร์ Software Testing
- มีการกำหนดเกณฑ์มาตรฐานที่จะยอมรับซอฟต์แวร์ (Acceptance Criteria)
- การตรวจสอบข้อผิดพลาด ทำหลังจากที่เขียนโปรแกรมเสร็จเรียบร้อยแล้ว โดยตรวจสอบประสิทธิภาพการทำงานของซอฟต์แวร์ให้สัมพันธ์กับคุณภาพของซอฟต์แวร์
- การทดสอบซอฟต์แวร์แบ่งได้เป็น 2 กระบวนการหลัง ดังนี้
- กระบวนการตรวจสอบความถูกต้องของซอฟต์แวร์ที่ถูกพัฒนาขึ้นว่าเป็นไปตามข้อกำหนดคุณลักษณะความต้องการใช้งานซอฟต์แวร์ที่ได้กำหนดไว้หรือไม่ (Verification)
- กระบวนการตรวจสอบผลการพัฒนาซอฟต์แวร์ที่เกิดขึ้นจริงว่าตรงกับความคาดหวังของผู้ใช้หรือไม่ (Validation)
ระดับการทดสอบซอฟต์แวร์ สามารถแบ่งระดับการทดสอบได้ดังนี้
- การทดสอบโมดูลหรือทดสอบหน่วย (Module Testing หรือ Unit testing)
- การทดสอบภาพรวม (Integration Testing)
- การทดสอบฟังก์ชัน (Functional testing)
- การทดสอบประสิทธิภาพ (Performance Testing)
- การทดสอบการยอมรับ (Acceptance Testing)
- การทดสอบการติดตั้ง (Installation Testing)
การทดสอบหลังจากที่ผู้พัฒนาโปรแกรมได้เขียนคำสั่งโปรแกรมตามที่ได้รับมอบหมายเสร็จสิ้น ประกอบด้วย
- การทบทวนโปรแกรม (Program Review) เป็นกระบวนการทบทวนคำสั่งโปรแกรมและเอกสารที่โปรแกรมเมอร์พัฒนาขึ้น
- การพิสูจน์ความถูกต้องของโปรแกรม (Proving Programs Correct) เป็นการทดสอบข้อเท็จจริงทางโครงสร้างของโปรแกรม พิจารณาตรรกะการทำงานตามคำสั่งของโปรแกรม
- การทดสอบโปรแกรม (Testing Programs) เป็นการตรวจสอบความถูกต้องของโปรแกรมในมุมมองที่แต่กต่าง กลยุทธ์ของการทดสอบในลักษณะนี้เรียกว่ากล่องขาว (White box)

White Box Testing
การทดสอบแบบกล่องขาว หรือ กล่องแก้ว (Glass Box Testing) เป็นวิธีที่ใช้เส้นทางควบคุมการทำงานและโครงสร้าง เพื่อใช้ทดสอบสิ่งต่อไปนี้
- ทดสอบว่าเส้นทางในกระบวนการจะต้องสามารถทำงานได้อย่างถูกต้อง
- ทดสอบการตัดสินใจทางตรรกะทุกการตัดสินใจทั้งค่าที่เป็นจริงและค่าที่เป็นเท็จ
- ทดสอบการทำงานภายใน Loop ทุก Loop ตามจำนวนครั้งของการวนรอบ
- ทดสอบโครงสร้างข้อมูลภายในให้ถูกต้องก่อนที่จะส่งไปประมวลผลต่อยังโปรแกรมหรือหน่วยอื่น ๆ
การสร้าง Case Test
- สร้างผังงาน (Flow Chart) หรือ กราฟการไหลของงาน (Process Flow Graph) จากประโยคสั่งการในโปรแกรม
- กำหนดเส้นทางการทดสอบจากกราฟ
- กำหนดชุดข้อมูลทดสอบของแต่ละเส้นทางได้อย่างครบถ้วน
- ทดสอบทุกเส้นทางอย่างน้อย 1 ครั้ง
ไม่สนใจโครงสร้างของระบบ แต่สนใจสิ่งที่ระบบสามารถกระทำได้เท่านั้น เป็นลักษณะกล่องปิด (Closed Box) หรือ กล่องดำ (Black box)
Black Box Testing การทดสอบแบบกล่องดำ หรือ การทดสอบเชิงพฤติกรรม (Behavioral Testing) เนื่องจากเป็นการทดสอบผลการทำงานของซอฟต์แวร์ในแต่ละหน้าที่ ตามข้อกำหนดความต้องการเท่านั้น
- การทดสอบแบบกล่องดำใช้เพื่อดูว่าซอฟต์แวร์ทำงานได้ถูกต้องตามที่กำหนดไว้หรือไม่ โดยไม่คำนึงถึงคำสั่งภายใน
- การทดสอบแบบกล่องดำยังใช้ทดสอบประสิทธิภาพชองซอฟต์แวร์แบะเงื่อนไขของขอบเขตข้อมูลที่จะนำเข้าด้วย
การทดสอบแบบกล่องดำ ไม่ได้ถูกคิดค้นขึ้นมาเพื่อแทนที่การทดสอบแบบกล่องขาว แต่เป็นการทดสอบที่สนับสนุนซึ่งกันและกัน ทำให้การทำงานระดับหน่วยสมบูรณ์ขึ้น โดยการทดสอบแบบกล่องดำจะช่วยให้ทีมงานค้นพบข้อผิดพลาดต่างชนิดจากการทดสอบแบบกล่องขาว ดังนี้
- หน้าที่ที่ทำงานผิดพลาด
- หน้าที่ที่ขาดหายไป
- ความผิดพลาดของส่วนประสานกับระบบอื่น
- ความผิดพลาดของการตัดสินใจทำงานต่อ หรือหยุดการทำงาน
- ความผิดพลาดของการประมวลผลข้อมูล
การทดสอบการติดตั้ง เป็นการทดสอบระบบเพื่อให้แน่ใจว่าสามารถทำงานได้จริง โดยทดสอบการติดตั้งระบบในสภาพแวดล้อมจริงบนอุปกรณ์ต่าง ๆ รวมทั้งการจัดการแฟ้มข้อมูล การกำหนดการเข้าถึงฟังก์ชันและข้อมูล การติดต่อสื่อสารกับอุปกรณ์อื่นได้ โดยมุ่งไปที่ความสมบูรณ์ ของการติดตั้งระบบและการตรวจสอบ คุณลักษณะที่เป็นฟังก์ชัน (Functions Requirement) และไม่เป็นฟังก์ชัน (Non Function Requirement) ที่ส่งผลต่อสถานที่ติดตั้ง
ช่องทางการศึกษาเพิ่มเติมข่าวสารที่น่าสนใจเกี่ยวกับ : บทความทั่วไป
- บทความเกี่ยวกับความรู้ทั่วไป (114)
- ถาม - ตอบปัญหาเกี่ยวกับคอมพิวเตอร์ (696)
- บทความเกี่ยวกับความรู้ทั่วไป (84)
- บทความเกี่ยวกับ Microsoft (140)
- บทความเกี่ยวกับ Software License ใบอนุญาตซอฟต์แวร์ (9)