Testing Strategies and Tools - trabnm1313/SDTP GitHub Wiki

Test Strategies

Frontend

ดำเนินการ Test ด้วย Cypress

  • Unit Testing

                      Image : ตัวอย่าง Code Unit Test

  • Home

    • ทดสอบว่าเมื่อกดปุ่ม “สุ่มเลย” จะต้องสามารถ Redirect ได้
    • ทดสอบว่าเมื่อกดปุ่ม “ซื้อจากร้าน” และปุ่ม “ลองทำเอง” แล้ว จะได้รับข้อความ Alert จาก Browser ว่า “ยังไม่พร้อมใช้งาน”
  • FilterMenu.vue

    • ทดสอบว่า เมื่อกดปุ่ม “Back” จะต้องสามารถ Redirect ได้
    • ทดสอบว่า เมือไม่ได้เลือกตัวเลือกใดๆเลย จะไม่สามารถกดปุ่ม “Next” ได้
    • ทดสอบว่า ลำดับในการเลือกนั้นถูกต้อง
      • เลือกเมนูเส้นหรือเมนูทั้งหมด -> เลือกวิธีการปรุงอาหาร -> เลือกเส้น -> เลือกวัตถุดิบ
      • เลือกเมนูข้าว -> เลือกวิธีการปรุงอาหาร -> เลือกวัตถุดิบ
    • ทดสอบว่า ผลลัพธ์ที่ได้จากการเลือกตัวเลือกต้องตรงตามตัวเลือกที่ได้เลือกไป
    • ทดสอบว่า เมื่อกดปุ่ม “Random Now” จะต้องสามารถ Redirect ได้ พร้อมส่งค่าตัวเลือกที่ได้เลือกผ่านทาง Routing Params ได้
    • ทดสอบว่าปุ่ม “Cancel” และปุ่ม “X” จะต้องสามารถใช้เพื่อปิด Popup ทั้งหมดที่แสดงผลอยู่ได้
  • RandomMenu.vue

    • ทดสอบว่า เมื่อ “Home” เเล้วสามารถ Redirect ได้
    • ทดสอบว่า เมื่อกดไปที่รูปภาพทั้ง 3 เเล้วจะต้องสามารถแสดงผล Popup ขึ้นมาได้
    • ทดสอบว่า Popup แสดงผลข้อมูลได้ตาม ข้อมูลที่ได้รับมา
    • ทดสอบว่า เมื่อกดพื้นที่สีดำรอบๆ Popup เเล้วสามารถที่จะปิด Popup ได้
    • ทดสอบว่า เมื่อกดปุ่ม ”วิธีทำ” และ “สั่งซื้อ” แล้ว Browser จะต้อง Alert() ว่า “ยังไม่พร้อมใช้งาน”
  • Components Testing

                     Image : ตัวอย่าง Code Components Test

  • ทดสอบว่าสามารถ Redirect จากหน้า Home -> FilterMenu -> RandomMenu -> Home ได้

  • จากหน้า Filter สามารถส่งค่าไปที่หน้า RandomMenu ได้ถูกต้อง และหน้า RandomMenu สามารถรับค่ามาใช้ได้

  • เมื่อเข้าสู่หน้า RandomMenu สามารถดึงข้อมูลจาก API มาแสดงผลได้ถูกต้อง

  • เมื่อกดปุ่ม “สุ่มใหม่” เเล้วจะต้องสามารถดึงข้อมูลจาก API เเล้วมาแสดงผลข้อมูลใหม่ได้ถูกต้อง

  • Acceptance Testing: โดยใช้คนในทีม

    • ทดสอบว่า Design ของแต่ละหน้า พึงพอใจคนในทีมทุกคน
    • ทดสอบว่าเวลาในการตอบสนองของหน้าเว็บ พึงพอใจคนในทีมทุกคน

Backend

ดำเนินการ Test ด้วย Jest

Jest เป็น JavaScript Framework สำหรับการทำ Unit Testing เป็น Open Source ที่พัฒนาโดย Facebook ซึ่งมี Helper มี Function ต่างๆให้ใช้ ทำให้ง่ายต่อการเขียน Test

  • Unit Testing

    Test RandomMenuAPI

    • RandomMenuAPI

      • ทดสอบว่า เมื่อไม่ใส่ข้อมูลลงไปใน Tags จะมีการตอบกลับ Status Message ว่า OK
      • ทดสอบว่า เมื่อใส่ข้อมูลประเภทของอาหาร แต่ไม่ใส่วิธีการปรุงและไม่ใส่วัตถุดิบหลัก จะมีการตอบกลับผลลัพธ์ออกมาเป็น String
      • ทดสอบว่า เมื่อใส่ข้อมูลประเภทของอาหารและวิธีการปรุง แต่ไม่ใส่วัตถุดิบหลัก จะมีการตอบกลับผลลัพธ์ออกมาเป็น String
      • ทดสอบว่า เมื่อใส่ข้อมูลประเภทของอาหาร วิธีการปรุงและวัตถุดิบหลัก จะมีการตอบกลับผลลัพธ์ออกมาเป็น String
      • ทดสอบว่า เมื่อไม่ได้ส่ง Tags จะมีการตอบกลับ Status Message ว่า 400