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