บทนำสู่การทดสอบ

การทดสอบใน Java เบื้องต้น

Maria Milusheva

Senior Software Engineer

การทดสอบคืออะไร?

การทดสอบซอฟต์แวร์:

  • กระบวนการประเมินซอฟต์แวร์เพื่อตรวจสอบว่าตรงตามข้อกำหนดที่กำหนดไว้หรือไม่

รูปแบบการทดสอบ:

  • Manual - จำเป็นแต่มีข้อจำกัดและความน่าเชื่อถือน้อยกว่า
  • Automated - รันการทดสอบได้หลายร้อยรายการในไม่กี่วินาที

จะใช้ JUnit 5 สำหรับการทดสอบแบบ Automated

ภาพกราฟิกของโปรแกรมเมอร์

การทดสอบใน Java เบื้องต้น

Edge cases

"If it's not tested, it's broken."$^1$

Edge case - ค่า input หรือเงื่อนไขที่อยู่ในขอบเขตสุดของสิ่งที่ถือว่าปกติหรือคาดหวัง

ตัวอย่าง: ตัวแปรที่ความจุสูงสุด, ตัวแปร null หรือว่างเปล่า, ค่าติดลบ

ภาพกราฟิกแทนการทดสอบ

1 คำพูดต้นฉบับโดย Bruce Eckel
การทดสอบใน Java เบื้องต้น

ตัวอย่างพฤติกรรมที่ไม่คาดคิดใน edge case

พิจารณาโค้ดต่อไปนี้:

public int addTwoNumbers(int a, int b) {
    return a + b;
}

⚠ ลองใช้ input 2147483647 (ค่าสูงสุดของ integer) และ 1

➡ ผลลัพธ์ที่ได้คือ -2147483648 (ค่าต่ำสุดของ integer)

การทดสอบใน Java เบื้องต้น

ทบทวน: ขนาดของตัวแปร — ประเภท primitive มีขนาดจำกัด

ตารางสรุปประเภท primitive ได้แก่ byte, short, int, long, float, double, char และ boolean

การทดสอบใน Java เบื้องต้น

ตัวอย่าง: การปล่อยจรวด Ariane 5

การปล่อยจรวด Ariane 5 ครั้งแรกในปี 1996:

  • พัฒนามานานกว่า 8 ปี
  • ใช้งบประมาณกว่า $370 ล้าน
  • ระเบิดหลังจากปล่อยได้เพียง 37 วินาที
  • สาเหตุมาจากข้อผิดพลาดในซอฟต์แวร์: short overflow

จรวด Ariane 5 ขององค์การอวกาศยุโรปกำลังปล่อยตัว

การทดสอบใน Java เบื้องต้น

ประโยชน์ของการทดสอบ

  • ป้องกันบั๊กที่เกิดจาก edge case
  • ช่วยให้เข้าใจโปรเจกต์และข้อกำหนดได้ดีขึ้น
  • เร่งความเร็วในการพัฒนาในระยะยาว
  • ตรวจสอบข้อกำหนดโดยอัตโนมัติ
  • ลดความผิดพลาดจากมนุษย์

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
การทดสอบใน Java เบื้องต้น

มาฝึกกันเถอะ!

การทดสอบใน Java เบื้องต้น

Preparing Video For Download...