Skip to main content

ไม่ว่าจะทำอะไร ไม่ว่าใครก็ไม่อยากให้มีข้อผิดพลาดใช่ไหมล่ะครับ? ในการเขียนโปรแกรมก็เช่นกัน เราอาจจะคิดว่าโปรแกรมที่เราเขียนนั้นไม่มีข้อผิดพลาดหรอก แต่ในความเป็นจริงนั้นอาจจะมีจุดบกพร่องที่เราคาดไม่อยู่ก็เป็นได้ หากโปรแกรมที่เราเขียนนั้นเป็นโปรแกรมเล็กๆ ผลกระทบในข้อผิดพลาดนั้นอาจจะเล็กตาม

แต่ถ้าเราไปเขียนโปรแกรมที่มีขนาดใหญ่ แล้วยิ่งต้องเขียนร่วมกับคนอื่นแล้วเนี่ยอาจจะทำให้เกิดผลกระทบที่รุนแรงมากจนเราไม่อยากจะนึกได้เลยทีเดียว การทดสอบหรือการเทส จึงได้เกิดขึ้นมาเพื่อมาค้นหาจุดบกพร่องที่อาจหลงเหลืออยู่ในโปรแกรมของเรา แต่หลายคนอาจจะสงสัยว่า แล้วเราควรจะเทสอะไรบ้างล่ะ? วันนี้เราจึงจะมาพูดถึงการเทสขั้นพื้นฐานด้วยจำลองการใส่ input data ที่ควรทดสอบใน case ต่างๆ

base case

แน่นอนว่าก่อนที่เราจะเทสด้วยเคสแปลกๆ เรามาเทสด้วยเคสปกติกันก่อน ซึ่งก็คือการเทส ด้วยการใส่ input ปกติ

 

edge case

การทดสอบด้วยการใส่ input ด้วยการใส่ค่าที่สูงสุดที่โปรแกรมของเราจะรับได้ โดยที่เราจะต้องไม่ลืมว่าค่าที่สูงที่สุดนั้น มีทั้งในทางลบและทางบวก

 

corner case

กรณีนี้จะเป็นการเทสที่คล้ายกับ edge case ที่ทดสอบด้วยค่าสูงสุดเหมือนกัน แต่จะต่างกันตรงที่ corner case จะใส่ค่าสูงสุดในหลายๆตัวแปร เพื่อดูการทำงานเมื่อหลายตัวแปรมีค่า input สูงที่สุดพร้อมกัน แต่ edge case จะพิจารณาเพียงตัวแปรเดียวเท่านั้น

 

boundary case

กรณีที่เราใส่ input ที่ไม่ใช่ค่าปกติที่สามารถใส่ได้ เพื่อตรวจสอบว่าในสถานการณ์ที่คาดไม่ถึง โปรแกรมของเราสามารถรับมือกับมันได้หรือไม่

ถ้ายังไม่เห็นภาพ

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

base case: เมื่อโดนดาเมจ 40 หลอดเลือดก็จะต้องแสดงผลว่าเหลือเลือด 60 แล้วหลอดเลือดหลังจาก 60 ก็จะเป็นสีเทา

 

edge case: ตัวละครเลือด 100 ของเราโดนดาเมจ 100 พอดีทำให้เลือดเหลือ 0 หลอดเลือดจะต้องแสดงผลเป็น

สีเทาทั้งหมดหรือเปล่า

 

corner case: ตัวละครที่ตายแล้วเกิดใหม่ของเราถูกชุบขึ้นมาด้วยเลือดและมานาเต็มหลอด แถบเลือดก็ต้องจะเติมเต็มด้วยสีแดง และมานาเติมด้วยสีน้ำเงิน

 

boundary case: ตัวละครของคุณโดนดาเมจที่รุนแรงมาก 999!! แต่อ้าว! หลอดเลือดมันเกินไปเป็น -899 แถบสีเทาทะลุไปทางซ้ายไปไกลแล้ววว 

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

มาถึงขั้นนี้แล้วถ้าใครลองนำ case ที่กล่าวมาไปลองกับโปรแกรมของตัวเองแล้วโปรแกรมทำงานได้อย่างที่ควรจะเป็นแล้วล่ะก็ ยินดีด้วย! โปรแกรมของเราทำงานได้อย่างเสถียรระดับหนึ่งแล้ว แต่ว่า case ที่ยกตัวอย่างมานี้เป็นเพียงส่วนหนึ่งในการทำ Testing รูปแบบ Blackbox Testing เท่านั้น ยังมีการทดสอบอีกมากที่ยังต้องทำการทดสอบ ..~~

หากคุณสนใจพัฒนา สตาร์ทอัพ แอปพลิเคชัน และ เทคโนโลยีของตัวเอง ?

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

Developer

Author Developer

More posts by Developer

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

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

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

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

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

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

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

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