สารจากนักเขียน
การทำงานของ Software ที่ผ่านขั้นตอนพัฒนาที่เสร็จเรียบร้อยแล้วว่าสามารถทำงานได้ถูกต้องตามเอกสารหรือไม่ สำหรับวันนี้เราจะพาเพื่อน ๆ ไปดูกันว่า การทดสอบต่าง ๆ ว่ามีอะไรบ้าง รวมถึงอธิบายถึงความต่างให้เข้าใจตรงกัน มาดูไปพร้อม ๆ กันเลยดีกว่า
เขียนโดย
Chairawit Iamkhajornchai
Internship @ borntoDev
บทความนี้ตีพิมพ์ และ เผยแพร่เมื่อ 19 กันยายน 2566
ขั้นตอนของ Software Development Life Cycle (SDLC) มีอยู่ขั้นตอนหนึ่งซึ่งอยู่ในช่วงที่ 5 คือ Testing & Integration ซึ่งเป็นการทดสอบความถูกต้องในการทำงานของ Software ที่ผ่านขั้นตอนพัฒนาที่เสร็จเรียบร้อยแล้วว่าสามารถทำงานได้ถูกต้องตามเอกสารหรือไม่สำหรับวันนี้เราจะพาเพื่อน ๆ ไปดูกันว่า การทดสอบต่าง ๆ ว่ามีอะไรบ้าง รวมถึงอธิบายถึงความต่างให้เข้าใจตรงกัน มาดูไปพร้อม ๆ กันเลยดีกว่า
การทดสอบซอฟต์แวร์ (Software Testing)
จัดทำขึ้นเพื่อตรวจสอบ และติดตามผลของการพัฒนา Software ว่ามีความถูกต้องสมบูรณ์ ตรงตามความต้องการของผู้ใช้ เพื่อให้มั่นใจในคุณภาพก่อนที่จะส่งมอบให้ลูกค้า
ประเภทของ Software Testing แบ่งออกเป็น 3 ตัวด้วยกันได้แก่
- Functional Testing
การทดสอบถึงฟังก์ชันในการทำงานของระบบว่าสามารถทำงานได้จริงหรือไม่ ตามเอกสารความต้องการที่ระบุไว้ โดยจะวิเคราะห์ถึงในส่วนต่าง ๆ เช่น User Interface, Database, Security และอื่น ๆ เช่น ทดสอบระบบฝากเงินว่าสามารถฝากเงินได้จริงหรือไม่ เป็นต้น
- Non-Functional Testing
การทดสอบสิ่งที่ตรงกันข้ามกับ Functional Testing ซึ่งเป็นการทดสอบถึงสิ่งที่ไม่สามารถเขียนเป็นฟังก์ชันได้ที่ได้ระบุตามเอกสารความต้องการ เช่น Performance Testing ที่จะทดสอบถึงความเร็ว การตอบสนอง และปริมาณการใช้ทรัพยากรต่าง ๆ เช่น หน้าเว็บต้องเปิดด้วยความเร็วไม่เกิน 3 วินาที หรือจะเป็นส่วน Usability ที่วัดในความพึงพอใจของผู้ใช้ก็จัดอยู่ในประเภทนี้เช่นกัน
- Maintenance Testing
ตรวจสอบว่าระบบรองรับในการบำรุงรักษาหรือไม่ ซึ่งมีเป้าหมายเพื่อคอยค้นหาข้อผิดพลาดหรือจุดบกพร่องต่าง ๆ ของระบบที่อาจเกิดขึ้นหลังจากมีการเปลี่ยนแปลง เช่น มีการอัปเดตฟีเจอร์ใหม่เข้ามาภายในแอปพลิเคชัน ก็จะต้องมีการทดสอบเพื่อให้มั่นใจว่าจะไม่ส่งผลเสียหรือขัดแย้งในโค้ดที่ทำงานอยู่
ในขั้นตอนของ Software Testing จะมีความคล้ายกับ Software Development Life Cycle (SDLC) โดยจะมีชื่อว่า “Software Testing Life Cycle (STLC)”
ประกอบไปด้วย 6 กระบวนนการหลัก ๆ ดังนี้
ขั้นที่ 1 : Requirement Analysis : การวิเคราะห์ความต้องการที่ได้รับว่ามีอะไรที่สามารถทดสอบได้บ้าง จะทดสอบกันอย่างไร เป็นต้น
ขั้นที่ 2 : Test Planning : วางแผนกลยุทธ์ในการทดสอบว่าจะทำได้อย่างไร ด้วยการกำหนด Objecttive (จุดหมาย) , Resource (ทรัพยากร)
ขั้นที่ 3 : Test Case Development : เขียน Test Case ในการทดสอบแต่ละส่วนโดยจะทดสอบนอกเหนือจากที่เอกสารความต้องการระบุไว้
ขั้นที่ 4 : Test Environment Setup : ทดสอบสภาพแวดล้อมต่าง ๆ เช่น ผ่านอุปกรณ์อะไร , Setup อย่างไร เป็นต้น
ขั้นที่ 5 : Test Execution : ทำการทดสอบตาม Environment ที่ได้กำหนดไว้
ขั้นที่ 6 : Test Cycle Closure : ขั้นตอนสุดท้ายเป็นการทำสรุปการทดสอบว่ามีอะไรเกิดขึ้นบ้าง
ระดับของการทดสอบ Software ควรที่จะมีอะไรบ้างสามารถแบ่งออกเป็นหลัก ๆ ได้ตามนี้
1.Module Testing หรือ Unit Testing
การทดสอบในแต่ละส่วนของโปรแกรมเพื่อตรวจสอบความถูกต้องและยืนยันว่าแต่ละหน่วยทำงานได้อย่างถูกต้องเพื่อป้องกันข้อผิดพลาดที่อาจเกิดขึ้น
ถ้าหากไม่มีการทดสอบในส่วนนี้โปรแกรมของเราก็อาจจะเกิดข้อบกพร่องในการทำงานได้
2.Integration Testing
การทดสอบในภาพรวมว่าส่วนต่าง ๆ ของโปรแกรมสามารถทำงานร่วมกันได้โดยไม่มีข้อผิดพลาด รวมไปถึงการติดต่อสื่อสารระหว่างส่วนต่าง ๆ เช่น การทดสอบเรียกใช้ฟังก์ชันข้าม Module เป็นต้น
ถ้าหากไม่มีการทดสอบนี้ก็จะส่งผลในการทำงานโดยรวมของโปรแกรมที่อาจมีข้อบกพร่องอยู่ในบางส่วน
3.System Testing
การทดสอบในการทำงานของระบบว่าถูกต้องตามความต้องการหรือไม่ โดยจะตรวจสอบตั้งแต่ Performance , Load , Reliability รวมไปถึง Security เพื่อจุดหมายในการวัดผลการทำงานของระบบก่อนที่จะส่งมอบให้ผู้ใช้งานจริงทดสอบในลำดับถัดไป
หากไม่มีการทดสอบในขั้นตอนนี้ก็จะส่งผลเสียเป็นอย่างสูงหากผู้ใช้ได้ลองทดสอบจริงแล้วตรวจพบข้อผิดพลาดด้วยตัวเองซึ่งควรจะมีข้อผิดพลาดให้น้อยที่สุดก่อนถึงมือของผู้ใช้งานจริง
4.Acceptance Testing (UAT)
การทดสอบขั้นสุดท้ายเพื่อตรวจสอบว่าระบบสามารถปฏิบัติตามความต้องการของผู้ใช้และองค์กร โดยจะเน้นในการทดสอบซึ่งให้ผู้ใช้หรือลูกค้ามาทดสอบด้วยตัวเองว่าระบบสามารถทำงานได้จริงตามที่ต้องการหรือไม่ ซึ่งการทดสอบนี้จำเป็นที่จะต้องมีหากว่าไม่มีแล้วผู้ใช้หรือองค์กรจะมั่นใจได้อย่างไร ว่าระบบสามารถทำงานได้ตรงตามความต้องการจริง
ซึ่งถ้าผ่านขั้นตอนเหล่านี้ได้สำเร็จก็ถือเป็นเครื่องยืนยันแล้วว่าในการทำงานของระบบหรือโปรแกรมที่เราพัฒนามีความพร้อมอยู่ในระดับหนึ่งแล้วที่ได้ปล่อยให้ผู้ใช้ได้ใช้งานจริงนั่นเองครับ
.
🦖 borntoDev – สร้างการเรียนรู้ที่ดี สำหรับสายไอทีในทุกวัน
ระบบฝึกทักษะ การเขียนโปรแกรม
ที่พร้อมตรวจผลงานคุณ 24 ชั่วโมง
- โจทย์ปัญหากว่า 200 ข้อ ที่รอท้าทายคุณอยู่
- รองรับ 9 ภาษาโปรแกรมหลัก ไม่ว่าจะ Java, Python, C ก็เขียนได้
- ใช้งานได้ฟรี ! ครบ 20 ข้อขึ้นไป รับ Certificate ไปเลย !!