Skip to main content
0

เราต้องตรวจสอบ และ เทสอะไรกันบ้างใน Software หนึ่งตัว

สารจากนักเขียน

การทำงานของ 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 ไปเลย !!
เข้าใช้งานระบบ DevLab ฟรี !เรียนรู้เพิ่มเติม

เรียนรู้ไอที “อัพสกิลเขียนโปรแกรม” จากตัวจริง
ปั้นให้คุณเป็น คนสายไอทีระดับมืออาชีพ

10

แนะนำสำหรับคุณ

Close Menu

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
    รายละเอียดคุกกี้

  • คุกกี้สำหรับการติดตามทางการตลาด

    ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า