Week 5 : Testing - Po-Pon/SW-Development-Tool-And-Environments-Group1 GitHub Wiki
- Project Structure
- Test Strategies
- Instruction of test
- Test Result
- Code Test Coverage
- Line change and Number commit of Group
Frontend
-
index.html
เป็นส่วนที่ web browser นำมาใช้ในการ render เพื่อแสดงผลหน้า website ของเรา
-
main.js
เป็นส่วนที่ทำหน้าที่นำหน้า website ของเราที่พัฒนาโดย vue ไปทำการ mount ลงใน file index.html โดยดูหน้า vue ที่ต้องทำการ mount จากการทำงานร่วมกับ router โดยมีหน้า default ที่ต้องทำการ mount ก่อนเป็นอันดับแรกคือหน้า App.vue -
App.vue
เป็นส่วนที่ใช้กำหนดรูปแบบการแสดงผลของหน้าแรก web site (Home page) เมื่อผู้ใช้ทำการเข้าสู่เว็บไซต์มาในตอนต้น -
Router
เป็นส่วนที่ทำหน้าที่ในการเปลี่ยนหน้า web site ของเราไปตาม path ที่เราเรียกใช้ผ่านหน้า web browser โดยการเปลี่ยนหน้าก็จะทำงานร่วมกับการ mount ของ view -
login.vue
เป็นส่วนที่ใช้ในการกำหนดรูปแบบการแสดงผลของหน้า login ใน website ของเรา -
register.vue
เป็นส่วนที่ใช้ในการกำหนดรูปแบบการแสดงผลของหน้า Register ใน website ของเรา -
home.vue
เป็นส่วนที่ใช้ในการกำหนดรูปแบบการแสดงผลหน้าแรกของ website โดยเราจะต้องทำการ login ก่อน ตัว website จึงจะแสดงผลหน้านี้ได้ -
profile.vue
เป็นส่วนที่ใช้ในการกำหนดรูปแบบการแสดงผลของหน้าข้อมูล profile ใน website ของเรา โดยสามารถเข้าถึงได้จากหน้าหน้าแรกของ website หลังจากที่เราทำการ login แล้ว -
findbeds.vue
เป็นส่วนที่ใช้ในการกำหนดรูปแบบการแสดงผลหน้าค้นหาเตียงบน website โดยเราจะต้องทำการ login ก่อน ตัว website จึงจะแสดงผลหน้านี้ได้ -
beds.vue
เป็นส่วนที่ใช้แสดงข้อมูลผลลัพธ์หลังจากการจองเตียงเสร็จสิ้นบน website โดยจะแสดง วันที่เข้าพัก สถานที่ วันจอง และสถานะ โดยเราจะต้องทำการ login ก่อน ตัว website จึงจะแสดงผลหน้านี้ได้ -
addbedsforsell.vue
เป็นส่วนของหน้าฟอร์มที่ใช้ในการกรอกข้อมูลบน website เพื่อทำการลงเตียงให้ผู้ใช้อื่นมาจอง โดยเราจะต้องทำการ login ก่อน ตัว website จึงจะแสดงผลหน้านี้ได้
Backend
-
index.js(server)
เป็นส่วนที่ทำหน้าที่เป็นเหมือน server กลางในการเชื่อมต่อระหว่าง frontend และ backend
-
controller
เป็นส่วนที่กำหนด function การทำงานภายในทั้งหมดของระบบ -
routes
เป็นส่วนที่กำหนด path ที่ใช้ในการเข้าถึงที่แตกต่างกันไปตาม function -
auth.js
เป็นส่วนที่ทำหน้าที่รวบรวม path ในการใช้งาน function ต่างๆที่เกี่ยวข้องกับการ login และ register ของ user ในส่วนของ backend -
users.js
เป็นส่วนที่ทำหน้าที่รวบรวม path ในการใช้งาน function ต่างๆที่เกี่ยวข้องกับข้อมูลของ user ในส่วนของ backend -
beds.js
เป็นส่วนที่ทำหน้าที่รวบรวม path ในการใช้งาน function ต่างๆที่เกี่ยวข้องกับข้อมูลเตียงในส่วนของ backend -
bedsdealing.js
เป็นส่วนที่ทำหน้าที่รวบรวม path ในการใช้งาน function ต่างๆที่เกี่ยวข้องกับข้อมูลคำสั่งจองเตียงในส่วนของ backend -
model User
เป็นส่วนของ schema ที่ใช้ระบุถึงลักษณะ และชนิดของข้อมูลในการจัดเก็บ และเรียกใช้ของส่วน user -
model Bed
เป็นส่วนของ schema ที่ใช้ระบุถึงลักษณะ และชนิดของข้อมูลในการจัดเก็บ และเรียกใช้ของส่วน bed -
model Beddealing
เป็นส่วนของ schema ที่ใช้ระบุถึงลักษณะ และชนิดของข้อมูลในการจัดเก็บ และเรียกใช้ของส่วน beddealing
ในการทดสอบระบบการค้นหาและจองเตียง จะมีการแบ่งรูปแบบของการทดสอบออกเป็น 3 ส่วน ดังนี้
-
Frontend
เป็นการทดสอบส่วนย่อยของระบบ โดยจะเน้นไปที่การทดสอบ Input ที่เป็นส่วนสำคัญของระบบค้นหาและจองเตียง โดยจะแบ่งย่อยๆออกเป็น 3 ส่วน และมีการทดสอบด้วย Test case ต่าง ๆ ดังนี้
1. ทดสอบช่องกรอก Email และรหัสผ่านในหน้า Loginการทดสอบในส่วนนี้จะเป็นการใส่ค่า Input ในรูปแบบที่แตกต่างกัน โดยจะแบ่ง Test case ในการทดสอบออกเป็นทั้งหมด 3 รูปแบบ ดังนี้
-
ทำการ login โดยการใส่รหัสผ่านผิด
เป้าหมายในการทดสอบ : เพื่อทดสอบการ validate ในส่วนของช่องกรอกรหัสผ่าน ว่าสามารถทำงานได้จริงหรือไม่
-
ทำการ login โดยการใส่ทั้ง Email และรหัสผ่านผิด
เป้าหมายในการทดสอบ : เพื่อทดสอบการ validate ในส่วนของช่องกรอก Email และรหัสผ่าน ว่าสามารถทำงานได้จริงหรือไม่
-
ทำการ login โดยการใส่ทั้ง Email และรหัสผ่านให้ถูกต้อง
เป้าหมายในการทดสอบ : เพื่อทดสอบการ login เมื่อผู้ใช้กรอกทั้ง Email และรหัสผ่านถูกต้อง ว่าระบบสามารถทำงานได้จริงหรือไม่
เป้าหมายในการทดสอบ : เพื่อทดสอบว่าช่องเลือกจังหวัดในหน้าค้นหาเตียง สามารถใช้งานและเลือกจังหวัดได้จริงหรือไม่
3. ทดสอบช่องเลือกวันที่ต้องการจองเตียง ในหน้าการจองเตียง โดยในการทดสอบในส่วนนี้ จะมีการแบ่งรูปแบบของ Test case ออกเป็น 2 รูปแบบ ดังนี้
-
ทำการเลือกวันที่ที่จอง เป็นวันที่ในอดีต
เป้าหมายในการทดสอบ : เพื่อทดสอบว่าช่องเลือกวันที่ต้องการจองเตียง สามารถ validate ว่าผู้ใช้ใส่วันที่ไม่ถูกต้องได้หรือไม่ (วันในอดีต)
-
ทำการเลือกวันที่ที่จอง เป็นวันนี้หรือวันที่ในอนาคต
เป้าหมายในการทดสอบ : เพื่อทดสอบว่าช่องเลือกวันที่ต้องการจองเตียง สามารถ validate ได้ว่าผู้ใช้เลือกวันที่ที่ถูกต้องหรือไม่ (วันนี้หรือวันในอนาคต)
-
ทำการ login โดยการใส่รหัสผ่านผิด
-
Backend
เป็นการทดสอบส่วนย่อยของระบบ โดยจะเน้นไปที่การทดสอบ Request ที่เข้ามา โดยที่เป็นส่วนสำคัญของระบบค้นหาและจองเตียง โดยจะแบ่งย่อยๆออกเป็น 4 ส่วน และมีการทดสอบด้วย Test case ต่างๆ ดังนี้
-
ทดสอบการเรียกข้อมูลของสถานที่ให้บริการเตียง
การทดสอบในส่วนนี้จะใช้การGet และ Post ในรูปแบบต่าง ๆ ในการทดสอบโดยแบ่งออกเป็น 3 รูปแบบ ดังนี้
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงที่มีเตียงพร้อมให้บริการ
เป้าหมายในการทดสอบ : เพื่อทดสอบการเรียกข้อมูลของสถานที่ให้บริการที่มีเตียงพร้อมให้บริการจริงหรือไม่
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงโดยใช้เลขประจำตัวของสถานที่ให้บริการเตียง
เป้าหมายในการทดสอบ : เพื่อทดสอบการเรียกข้อมูลของสถานที่ให้บริการว่าสามารถใช้เลขประจำตัวของสถานที่ให้บริการเตียงในการเรียกข้อมูลได้จริงหรือไม่
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงโดยใช้เลขประจำตัวของผู้ให้บริการเตียง
เป้าหมายในการทดสอบ : เพื่อทดสอบการเรียกข้อมูลของสถานที่ให้บริการว่าสามารถใช้เลขประจำตัวของผู้ให้บริการเตียงในการเรียกข้อมูลได้จริงหรือไม่
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงที่มีเตียงพร้อมให้บริการ
-
ทดสอบการเข้าสู่ระบบและการสมัครสมาชิก
การทดสอบในส่วนนี้จะใช้การส่งRequest ในรูปแบบต่าง ๆ ในการทดสอบโดยแบ่งออกเป็น 7 รูปแบบ ดังนี้
-
ทำการส่งRequest login โดยการส่งEmail
ที่ไม่มีอยู่ในระบบ
เป้าหมายในการทดสอบ : เพื่อทดสอบการรับค่า Request มาตรวจสอบว่าEmailที่ได้รับมีอยู่จริงในระบบหรือไม่
-
ทำการส่งRequest login โดยการส่งEmail ที่มีรหัสผ่านผิด
เป้าหมายในการทดสอบ : เพื่อทดสอบการรับค่า Request มาตรวจสอบว่าEmailที่ได้รับส่งเข้ามามีการตรวจสอบรหัสผ่านได้จริงหรือไม่
-
ทำการส่งRequest login โดยการส่งทั้ง Email
และรหัสผ่านให้ถูกต้อง
เป้าหมายในการทดสอบ : เพื่อทดสอบการรับค่า Request มากตรวจสอบทั้งEmailและรหัสผ่านได้จริงหรือไม่
-
ทำการส่งRequest register
โดยการส่งข้อมูลการสมัครสมาชิกให้ไม่ถูกต้อง
เป้าหมายในการทดสอบ : เพื่อทดสอบการรับค่า Request มาตรวจสอบว่าข้อมูลการสมาชิกถูกต้องจริงหรือไม่
-
ทำการส่ง Request register
โดยการส่งข้อมูลการสมัครสมาชิกให้ถูกต้อง
เป้าหมายในการทดสอบ : เพื่อทดสอบการรับค่า Request มาตรวจสอบว่าข้อมูลการสมาชิกถูกต้องจริงหรือไม่
-
ทำการส่งRequest register
โดยการส่งข้อมูลการสมัครสมาชิกให้มีEmailที่มีในระบบอยู่แล้ว
เป้าหมายในการทดสอบ :เพื่อทดสอบการรับค่า Request มาตรวจสอบว่าข้อมูลการสมาชิกมีEmailที่มีอยู่แล้วในระบบจริงหรือไม่
-
ทำการส่ง Request register
โดยการส่งข้อมูลการสมัครสมาชิกให้มีเลขบัตรประจำตัวมีการใช้ซ้ำในระบบ
เป้าหมายในการทดสอบ : เพื่อทดสอบการรับค่า Request มาว่ามีการตรวจสอบข้อมูลเลขบัตรประจำตัวที่มีอยู่แล้วในระบบจริงหรือไม่
-
ทำการส่งRequest login โดยการส่งEmail
ที่ไม่มีอยู่ในระบบ
-
ทดสอบการจองเตียงกับการเรียกประวัติการจองเตียง
การทดสอบในส่วนนี้จะใช้การเรียกข้อมูลและส่งRequest ในรูปแบบต่าง ๆ ในการทดสอบโดยแบ่งออกเป็น 7 รูปแบบ ดังนี้
-
ทำการเรียกประวัติการจองเตียงทั้งหมด
เป้าหมายในการทดสอบ : เพื่อทดสอบว่ามาสามารถเรียกประวัติการจองเตียงทั้งหมดได้จริงหรือไม่
-
ทำการเรียกประวัติการจองเตียงโดยใช้เลขประจำตัวของประวัติการจองเตียง
เป้าหมายในการทดสอบ : เพื่อทดสอบการเรียกข้อมูลของประวัติการจองเตียงว่าสามารถใช้เลขประจำตัวของประวัติการจองเตียงในการเรียกข้อมูลประวัติการจองเตียงได้จริงหรือไม่
-
ทำการเรียกประวัติการจองเตียงทั้งหมดของผู้ใช้
โดยใช้เลขประจำตัวของผู้ให้บริการเตียง
เป้าหมายในการทดสอบ : เพื่อทดสอบการเรียกข้อมูลของประวัติการจองเตียงว่าสามารถใช้เลขประจำตัวของผู้ให้บริการเตียงในการเรียกข้อมูลประวัติการจองของผู้ใช้คนนั้นได้จริงหรือไม่
-
ทำการเรียกประวัติการจองเตียงทั้งหมดของสถานที่ให้บริการเตียง
โดยใช้เลขประจำตัวของสถานที่ให้บริการเตียง
เป้าหมายในการทดสอบ : เพื่อทดสอบการเรียกข้อมูลของประวัติการจองเตียงว่าสามารถใช้เลขประจำตัวของสถานที่ให้บริการเตียงในการเรียกข้อมูลประวัติการจองของสถานที่ให้บริการเตียงได้จริงหรือไม่
-
ทำการเรียกประวัติการจองเตียงทั้งหมดของสถานที่ให้บริการเตียง
โดยใช้เลขประจำตัวของสถานที่ให้บริการเตียงที่ไม่มีประวัติการจองเตียง
เป้าหมายในการทดสอบ : เพื่อทดสอบการเรียกข้อมูลของประวัติการจองเตียงว่าสามารถตรวจสอบเลขประจำตัวของสถานที่ให้บริการเตียงที่ไม่มีข้อมูลประวัติการจองในระบบได้จริงหรือไม่
-
ทำการจองเตียง โดยการส่งข้อมูลถูกต้อง
เป้าหมายในการทดสอบ : เพื่อทดสอบว่ามาสามารถจองเตียงแล้วตรวจสอบความเพียงพอของเตียงได้จริงหรือไม่
-
ทำการจองเตียง โดยสถานที่ให้บริการเตียงเต็ม
เป้าหมายในการทดสอบ : เพื่อทดสอบว่ามาสามารถจองเตียงแล้วตรวจสอบความเพียงพอของเตียงได้จริงหรือไม่
-
ทำการเรียกประวัติการจองเตียงทั้งหมด
-
ทดสอบการเรียกและแก้ไขข้อมูลของผู้ใช้
การทดสอบในส่วนนี้จะใช้การเรียกข้อมูลและส่งRequest ในรูปแบบต่าง ๆ ในการทดสอบโดยแบ่งออกเป็น 6 รูปแบบ ดังนี้
-
ทำการเรียกข้อมูลของผู้ใช้ โดยใช้เลขประจำตัวของผู้ใช้
เป้าหมายในการทดสอบ : เพื่อทดสอบว่ามาสามารถเรียกของผู้ใช้โดยใช้เลขประจำตัวของผู้ใช้ได้จริงหรือไม่
-
ทำการเรียกข้อมูลของผู้ใช้
โดยใช้เลขประจำตัวของผู้ใช้ที่ไม่มีในระบบ
เป้าหมายในการทดสอบ : เพื่อทดสอบว่ามาสามารถตรวจสอบการเรียกของผู้ใช้โดยใช้เลขประจำตัวของผู้ใช้ที่ไม่ในระบบได้จริงหรือไม่
-
ทำการแก้ไขข้อมูลของผู้ใช้ โดยผู้ใช้ที่มีในระบบ
เป้าหมายในการทดสอบ : เพื่อทดสอบว่ามาสามารถแก้ไขข้อมูลของผู้ใช้ได้จริงหรือไม่
-
ทำการแก้ไขข้อมูลของผู้ใช้ โดยผู้ใช้ที่ไม่มีในระบบ
เป้าหมายในการทดสอบ : เพื่อทดสอบว่าระบบสามารถตรวจสอบการแก้ไขข้อมูลของผู้ใช้ในระบบได้จริงหรือไม่
-
ทำการเปลี่ยนรหัสผ่านของผู้ใช้ โดยมีรหัสผ่านเก่าที่ถูกต้อง
เป้าหมายในการทดสอบ : เพื่อทดสอบว่าระบบสามารถตรวจสอบรหัสผ่านเก่าของผู้ใช้ว่ามีความถูกต้องจริงหรือไม่
-
ทำการเปลี่ยนรหัสผ่านของผู้ใช้
โดยมีรหัสผ่านเก่าที่ไม่ถูกต้อง
เป้าหมายในการทดสอบ : เพื่อทดสอบว่าระบบสามารถตรวจสอบรหัสผ่านเก่าของผู้ใช้ว่ามีความถูกต้องจริงหรือไม่
-
ทำการเรียกข้อมูลของผู้ใช้ โดยใช้เลขประจำตัวของผู้ใช้
-
ทดสอบการเรียกข้อมูลของสถานที่ให้บริการเตียง
-
Frontend
เป็นการทดสอบว่าในแต่ละหน้าที่เกี่ยวข้องกับ feature จองเตียงนั้น มีส่วนประกอบ หรือ component ที่ควรจะอยู่ในหน้านั้น ๆ ครบถ้วนหรือไม่ โดยจะเน้นเฉพาะส่วนของ Frontend ที่เกี่ยวข้อง การทดสอบในส่วน Component test จะสามารถแบ่งออกได้เป็น 4 ส่วนดังนี้
-
การทำ Component test ในส่วนของหน้า login เป็นการทดสอบเพื่อดูว่าหน้า login
มีส่วนประกอบต่างๆครบถ้วนหรือไม่ โดยในหน้า login
จะมีส่วนประกอบที่ต้องมีอยู่ทั้งหมด 3 ส่วนประกอบ ได้แก่
- ช่องกรอก Email ของผู้ใช้
- ช่องกรอกรหัสผ่านของผู้ใช้
- ปุ่มสำหรับกดเพื่อทำการ Login
-
การทำ Component test ในส่วนของหน้า main
เป็นการทดสอบเพื่อดูว่าหน้า main มีส่วนประกอบต่างๆครบถ้วนหรือไม่
โดยในหน้า main จะมีส่วนประกอบที่ต้องมีอยู่ทั้งหมด 3 ส่วนประกอบ
ได้แก่
- ปุ่มสำหรับกด เพื่อเข้าถึงหน้าค้นหาเตียง
- ปุ่มสำหรับกด เพื่อเข้าถึงหน้าจองเตียง
- ช่องแสดงชื่อ และนามสกุลของผู้ใช้
-
การทำ Component test ในส่วนของหน้าค้นหาเตียง เป็นการทดสอบ
เพื่อดูว่าหน้าค้นหาเตียงมีส่วนประกอบต่างๆครบถ้วนหรือไม่
โดยในหน้าค้นหาเตียงจะมีส่วนประกอบที่ต้องมีอยู่ทั้งหมด 4
ส่วนประกอบ ได้แก่
- ช่องเลือกจังหวัดที่ต้องการค้นหาสถานที่ให้บริการเตียง
- จำนวนจังหวัดที่มีให้เลือกในช่องเลือกจังหวัด ต้องมีจำนวนตัวเลือกทั้งหมด 78 ตัวเลือก (77 จังหวัด + ทุกจังหวัด)
- ช่องแสดงตัวเลขของจำนวนสถานที่ให้บริการเตียงในจังหวัดที่ผู้ใช้เลือก
- ช่องแสดงรายละเอียดของสถานที่ให้บริการเตียง ตัองมีการแสดงผลข้อมูลต่าง ๆ ดังนี้
1. จำนวนเตียงที่ว่างอยู่ 2. จังหวัดที่ตั้งของสถานที่ให้บริการเตียง 3. ซอย/ถนน ที่ตั้งของสถานที่ให้บริการเตียง 4. ตำบล/แขวง, เขต/อำเภอ ของสถานที่ให้บริการเตียง 5. ปุ่มสำหรับกด เพื่อทำการจองเตียง หรือดูรายละเอียดของสถานที่ให้บริการเตียงนั้น ๆ เพิ่มเติม -
การทำ Component test ในส่วนของหน้าการจองเตียง
เป็นการทดสอบ
เพื่อดูว่าหน้าจองเตียงมีส่วนประกอบต่างๆครบถ้วนหรือไม่
โดยในหน้าจองเตียงจะมีส่วนประกอบที่ต้องมีอยู่ทั้งหมด 3 ส่วนประกอบ
ได้แก่
-
ช่องแสดงรายละเอียดต่างๆของสถานที่ให้บริการเตียง
จะตัองมีส่วนประกอบย่อย ๆ อยู่ทั้งหมด ดังนี้
1. ปุ่มสำหรับกดเพื่อดูดำแหน่งของสถานที่ให้บริการเตียง ผ่านบริการของ Google Maps 2. ชื่อและนามสกุล ของเจ้าของสถานที่ให้บริการเตียง 3. เบอร์โทรติดต่อของสถานที่ให้บริการเตียง 4. LINE ID สำหรับติดต่อสถานที่ให้บริการเตียง 5. ข้อมูลที่อยู่ของสถานที่ให้บริการเตียง 6. จำนวนเตียงที่ว่างอยู่ของสถานที่ให้บริการเตียงที่ผู้ใช้เลือก - ช่องเลือกวันที่ผู้ใช้ต้องการเข้ามาพักอาศัย
- ปุ่มสำหรับกด เพื่อทำการยืนยันการจองเตียง
-
ช่องแสดงรายละเอียดต่างๆของสถานที่ให้บริการเตียง
จะตัองมีส่วนประกอบย่อย ๆ อยู่ทั้งหมด ดังนี้
-
การทำ Component test ในส่วนของหน้า login เป็นการทดสอบเพื่อดูว่าหน้า login
มีส่วนประกอบต่างๆครบถ้วนหรือไม่ โดยในหน้า login
จะมีส่วนประกอบที่ต้องมีอยู่ทั้งหมด 3 ส่วนประกอบ ได้แก่
-
Frontend
เป็นการทดสอบการใช้งาน ตัวfeature จองเตียงตั้งแต่เริ่มจนจบ ซึ่งจะเริ่มตั้งแต่หน้า login => index => findbeds => buybeds โดยมีจุดประสงค์เพื่อทดลองว่า featureนี้ สามารถใช้งานได้จริง โดยเริ่มจาก
- การกรอกข้อมูล email และ รหัสผ่านให้ถูกต้อง เพื่อลงชื่อเข้าใช้งานที่หน้า login
- กดปุ่มค้นหาเตียงที่หน้า index
- ทำการเลือกจังหวัดที่ต้องการค้นหาสถานที่ ที่หน้า findbeds
- กดดูรายละเอียดของสถานที่ ที่ต้องการจองเตียง
- ทำการเลือกวันที่ ที่ต้องการจองเตียง
- กดปุ่ม จอง จากนั้น กดปุ่ม ยืนยัน เพื่อทำการจอง
เทคโนโลยีที่เลือกใช้
- Cypress: ใช้ในการทดสอบส่วน Frontend
- Mocha: ใช้ในการทดสอบส่วน Backend
- nyc: ใช้ในการหา Code coverage Backend
วิธีการ run automated test
Frontend
- ทำการ clone project จาก github มา และเปิดไฟล์ด้วย Vscode
- เปิด terminal ใน Vscode ขึ้นมา และพิมพ์คำสั่ง cd frontend-demo-test
- หลังเข้ามาที่ frontend-demo แล้ว พิมพ์คำสั่ง yarn เพื่อติดตั้ง node module
- หลังพิมพ์คำสั่ง yarn ให้พิมพ์คำสั่ง yarn add cypress เพื่อทำการติดตั้ง cypress
- หลังติดตั้ง cypress ให้พิมพ์คำสั่ง yarn cypress open เพื่อเปิดหน้าต่าง run test cypress ขึ้นมา แล้วเลือกไฟล์ Test ที่ต้องการ run
- เมื่อมีหน้าต่าง run test cypress ขึ้นมาแล้ว ให้ทำการ double click เพื่อเลือกรูปแบบของ test ที่ต้องการ run test (unit, component, e2e)
Backend
- ทำการ clone project จาก github มา และเปิดไฟล์ด้วย Vscode
- เปิด terminal ใน Vscode ขึ้นมา และพิมพ์คำสั่ง cd backend-demo-test
- หลังเข้ามาที่ backend-demo-test แล้ว พิมพ์คำสั่ง yarn เพื่อติดตั้ง node module
- หลังพิมพ์คำสั่ง yarn ให้พิมพ์คำสั่ง yarn add mocha chai chai-http nyc --dev เพื่อทำการติดตั้ง mocha
- หลังจากติดตั้ง ให้พิมพ์คำสั่ง yarn run test เพื่อทำการรันคำสั่ง test
- หลังจากจะมีหน้าต่างแสดงผลการ test ออกมา
ผลการดำเนินการของการทำ Testing แบ่งออกได้เป็น 3 ส่วน ดังนี้
-
Frontend
ผลการทดสอบ unit test ในส่วนของ Frontend จะแบ่งออกแป็น 3 ส่วน เหมือนที่ได้กล่าวไว้ในส่วนของ test stratergies ดังนี้
-
ทดสอบช่องกรอก Email และ Password
-
ทำการ login โดยการใส่รหัสผ่านผิด และทำการกดปุ่ม login
ผลการทดสอบ : ในส่วนของหน้า login มีการ alert ข้อความ “โปรดกรอกข้อมูลให้ถูกต้อง” และแสดงข้อความตัวสีแดง “โปรดใส่รหัสผ่านให้ถูกต้อง” ใต้ช่องกรอก Password (Success)
-
ทำการ login โดยการใส่ทั้ง Email และรหัสผ่านผิด
และทำการกดปุ่ม login
ผลการทดสอบ : ในส่วนของหน้า login มีการ alert ข้อความ “โปรดกรอกข้อมูลให้ถูกต้อง” และแสดงข้อความตัวสีแดง “โปรดใส่รหัสผ่านให้ถูกต้อง” และ “โปรดใส่ Email ให้ถูกต้อง” ใต้ช่องกรอก Password และช่องกรอก Email (Success)
-
ทำการ login โดยการใส่ทั้ง Email และรหัสผ่านให้ถูกต้อง
และทำการกดปุ่ม login ผลการทำสอบ : login สำเร็จและแสดงหน้า
Main page (Success)
-
ทำการ login โดยการใส่รหัสผ่านผิด และทำการกดปุ่ม login
-
ทดสอบช่องเลือกจังหวัดที่ต้องการค้นหาสถานที่จองเตียง
ในหน้าค้นหาเตียง
-
ทำการเลือกจังหวัดกรุงเทพฯ และกดปุ่มค้นหา
ผลการทดสอบ : แสดงผลข้อมูลของสถานที่จองเตียงเฉพาะในส่วนของจังหวัดกรุงเทพฯเท่านั้น (Success)
-
ทำการเลือกจังหวัดกรุงเทพฯ และกดปุ่มค้นหา
-
ทดสอบช่องเลือกวันที่ต้องการจองเตียง
-
ทำการเลือกวันที่ที่จอง เป็นวันในอดีต และกดปุ่มจองเตียง
ผลการทดสอบ : ในส่วนของหน้าจองเตียง มีการ alert ข้อความ “โปรดกรอกข้อมูลให้ถูกต้อง” และแสดงข้อความตัวสีแดง “โปรดเลือกวันที่ให้ถูกต้อง” ใต้ช่องเลือกวันที่ (Success)
-
ทำการเลือกวันที่ที่จอง เป็นวันนี้หรือวันในอนาคต
และกดปุ่มจองเตียง
ผลการทดสอบ : สามารถจองเตียงได้สำเร็จและแสดงผลข้อมูลการจองเตียงทั้งหมดของผู้ใช้
-
ทำการเลือกวันที่ที่จอง เป็นวันในอดีต และกดปุ่มจองเตียง
-
ทดสอบช่องกรอก Email และ Password
-
Backend
ผลการทดสอบ unit test ในส่วนของ Backend จะแบ่งออกแป็น 4 ส่วน เหมือนที่ได้กล่าวไว้ในส่วนของ test stratergies ดังนี้
-
ทดสอบการเรียกข้อมูลของสถานที่ให้บริการเตียง
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงที่มีเตียงพร้อมให้บริการ
ผลการทดสอบ : สามารถเรียกข้อมูลสถานที่ให้บริการเตียงที่มีเตียงพร้อมให้บริการได้ และได้รับข้อความ “การค้นหาสำเร็จ!” (Success)
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงโดยใช้เลขประจำตัวของสถานที่ให้บริการเตียง
ผลการทดสอบ :สามารถเรียกข้อมูลสถานที่ให้บริการเตียงโดยใช้เลขประจำตัวของสถานที่ได้ และได้รับข้อความ “การค้นหาสำเร็จ!” (Success)
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงโดยใช้เลขประจำตัวของผู้ใช้ที่ให้บริการเตียง
ผลการทดสอบ : สามารถเรียกข้อมูลสถานที่ให้บริการเตียงโดยใช้เลขประจำตัวของผู้ใช้ที่ให้บริการเตียงได้ และได้รับข้อความ “การค้นหาสำเร็จ!” (Success)
-
ทำการเรียกข้อมูลสถานที่ให้บริการเตียงที่มีเตียงพร้อมให้บริการ
-
ทดสอบการเข้าสู่ระบบและการสมัครสมาชิก
-
ทำการส่งRequest login โดยการส่งEmail
ที่ไม่มีอยู่ในระบบ
ผลการทดสอบ : ไม่สามารถLogin ได้ และได้รับข้อความ “อีเมลไม่มีอยู่ในระบบ กรุณาลองใหม่อีกครั้ง” (Success)
-
ทำการส่งRequest login โดยการส่งEmail ที่มีรหัสผ่านผิด
ผลการทดสอบ : ไม่สามารถLogin ได้ และได้รับข้อความ “รหัสผ่านไม่ถูกต้อง กรุณาลองใหม่อีกครั้ง” (Success)
-
ทำการส่งRequest login โดยการส่งทั้ง Email
และรหัสผ่านให้ถูกต้อง
ผลการทดสอบ : สามารถLogin ได้ และได้รับข้อความ “เข้าสู่ระบบสำเร็จ”กับข้อมูลของผู้ใช้ (Success)
-
ทำการส่งRequest register
โดยการส่งข้อมูลการสมัครสมาชิกให้ไม่ถูกต้อง
ผลการทดสอบ : ไม่สามารถRegister ได้ และได้รับข้อความ “เกิดข้อผิดพลาดกรุณาลงทะเบียนอีกครั้งภายหลัง” (Success)
-
ทำการส่งRequest register
โดยการส่งข้อมูลการสมัครสมาชิกให้ถูกต้อง
ผลการทดสอบ : สามารถRegister ได้ และได้รับข้อความ “ลงทะเบียนสำเร็จ” (Success)
-
ทำการส่งRequest register
โดยการส่งข้อมูลการสมัครสมาชิกให้มีEmailที่มีในระบบอยู่แล้ว
ผลการทดสอบ : ไม่สามารถRegister ได้ และได้รับข้อความ “อีเมลนี้มีอยู่ในระบบอยู่แล้ว” (Success)
-
ทำการส่งRequest register
โดยการส่งข้อมูลการสมัครสมาชิกให้มีเลขบัตรประจำตัวมีการใช้ซ้ำในระบบ
ผลการทดสอบ : ไม่สามารถRegister ได้ และได้รับข้อความ “เลขบัตรประจำตัวประชาชนมีการใช้ซ้ำ” (Success)
-
ทำการส่งRequest login โดยการส่งEmail
ที่ไม่มีอยู่ในระบบ
-
ทดสอบการจองเตียงกับการเรียกประวัติการจองเตียง
- ทำการเรียกประวัติการจองเตียงทั้งหมด ผลการทดสอบ : สามารถเรียกประวัติการจองเตียงทั้งหมดได้ และได้รับข้อความ “การค้นหาสำเร็จ!” (Success)
-
ทำการเรียกประวัติการจองเตียงโดยใช้เลขประจำตัวของประวัติการจองเตียง
ผลการทดสอบ : สามารถเรียกประวัติการจองเตียงโดยใช้เลขประจำตัวของประวัติการจองได้ และได้รับข้อความ “การค้นหาสำเร็จ!” (Success)
-
ทำการเรียกประวัติการจองเตียงทั้งหมดของผู้ใช้
โดยใช้เลขประจำตัวของผู้ให้บริการเตียง
ผลการทดสอบ : สามารถเรียกประวัติการจองเตียงโดยใช้เลขประจำตัวของผู้ใช้ได้ และได้รับข้อความ “การค้นหาสำเร็จ!” (Success)
-
ทำการเรียกประวัติการจองเตียงทั้งหมดของสถานที่ให้บริการเตียง
โดยใช้เลขประจำตัวของสถานที่ให้บริการเตียง
ผลการทดสอบ : สามารถเรียกประวัติการจองเตียงโดยใช้เลขประจำตัวของสถานที่ให้บริการเตียงได้ และได้รับข้อความ “การค้นหาสำเร็จ!” (Success)
-
ทำการเรียกประวัติการจองเตียงทั้งหมดของสถานที่ให้บริการเตียง
โดยใช้เลขประจำตัวของสถานที่ให้บริการเตียงที่ไม่มีประวัติการจองเตียง
ผลการทดสอบ : ไม่สามารถเรียกประวัติการจองเตียงโดยใช้เลขประจำตัวของสถานที่ให้บริการเตียงได้ และได้รับข้อความ “ไม่มีข้อมูล!” (Success)
-
ทำการจองเตียง โดยการส่งข้อมูลถูกต้อง
ผลการทดสอบ : สามารถทำการจองเตียงได้ และได้รับข้อความ “จองสำเร็จ” (Success)
-
ทำการจองเตียง โดยสถานที่ให้บริการเตียงเต็ม
ผลการทดสอบ : ไม่สามารถทำการจองเตียงได้ และได้รับข้อความ “ไม่สามารถจองได้ เนื่องจากเตียงเต็ม” (Success)
-
ทดสอบการเรียกและแก้ไขข้อมูลของผู้ใช้
-
ทำการเรียกข้อมูลของผู้ใช้ โดยใช้เลขประจำตัวของผู้ใช้
ผลการทดสอบ : สามารถเรียกข้อมูลของผู้ใช้ได้ และได้รับข้อความ “ไอดีที่เรียกถูกต้อง” (Success)
-
ทำการเรียกข้อมูลของผู้ใช้
โดยใช้เลขประจำตัวของผู้ใช้ที่ไม่มีในระบบ
ผลการทดสอบ : ไม่สามารถเรียกข้อมูลของผู้ใช้ได้ และได้รับข้อความ “เกิดข้อผิดพลาดกรุณาลงทะเบียนอีกครั้งภายหลัง” (Success)
-
ทำการแก้ไขข้อมูลของผู้ใช้ โดยผู้ใช้ที่มีในระบบ
ผลการทดสอบ : สามารถแก้ไขข้อมูลของผู้ใช้ได้ และได้รับข้อความ “อัพเดทข้อมูลสำเร็จ” (Success)
-
ทำการแก้ไขข้อมูลของผู้ใช้ โดยผู้ใช้ที่ไม่มีในระบบ
ผลการทดสอบ : ไม่สามารถแก้ไขข้อมูลของผู้ใช้ได้ และได้รับข้อความ “อัพเดทข้อมูลไม่สำเร็จ” (Success)
-
ทำการเปลี่ยนรหัสผ่านของผู้ใช้ โดยมีรหัสผ่านเก่าที่ถูกต้อง
ผลการทดสอบ : สามารถเปลี่ยนรหัสผ่านของผู้ใช้ได้ และได้รับข้อความ “เปลี่ยนรหัสผ่านสำเร็จ” (Success)
-
ทำการเปลี่ยนรหัสผ่านของผู้ใช้
โดยมีรหัสผ่านเก่าที่ไม่ถูกต้อง
ผลการทดสอบ : ไม่สามารถเปลี่ยนรหัสผ่านของผู้ใช้ได้ และได้รับข้อความ “รหัสผ่านไม่ถูกต้อง กรุณาลองใหม่อีกครั้ง” (Success)
-
ทำการเรียกข้อมูลของผู้ใช้ โดยใช้เลขประจำตัวของผู้ใช้
-
ทดสอบการเรียกข้อมูลของสถานที่ให้บริการเตียง
-
Frontend
ผลการทดสอบ Component test ในส่วนของ Frontend จะแบ่งออกแป็น 4 ส่วน เหมือนที่ได้กล่าวไว้ในส่วนของ test stratergies ดังนี้
-
การทำ Component test ในส่วนของหน้า login
-
ช่องกรอก Email ของผู้ใช้
ผลการทดสอบ : ในหน้า login มีในส่วนของช่องกรอก Email อยู่จริง (Success)
-
ช่องกรอกรหัสผ่านของผู้ใช้
ผลการทดสอบ : ในหน้า login มีในส่วนของช่องกรอกรหัสผ่านอยู่จริง (Success)
-
ปุ่มสำหรับกดเพื่อทำการ Login
ผลการทดสอบ : ในหน้า login มีในส่วนของปุ่มสำหรับกดเพื่อทำการ Login อยู่จริง (Success)
-
ช่องกรอก Email ของผู้ใช้
-
การทำ Component test ในส่วนของหน้า main
-
ปุ่มสำหรับกด เพื่อเข้าถึงหน้าค้นหาเตียง
ผลการทดสอบ : ในหน้า main มีในส่วนของปุ่มสำหรับกด เพื่อเข้าถึงหน้าค้นหาเตียง โดยจะมีอยู่ใน 2 ส่วน ได้แก่ ใน navbar ของหน้า และในแทบฟีเจอร์การค้นหาและจองเตียง (Success)
-
ปุ่มสำหรับกด เพื่อเข้าถึงหน้าจองเตียง
ผลการทดสอบ : ในหน้า main มีในส่วนของปุ่มสำหรับกด เพื่อเข้าถึงหน้าจองเตียง โดยจะมีอยู่ใน 2 ส่วน ได้แก่ ใน navbar ของหน้า และในแทบฟีเจอร์การค้นหาและจองเตียง (Success)
-
ช่องแสดงชื่อ และนามสกุลของผู้ใช้
ผลการทดสอบ : ในหน้า main มีในส่วนของช่องแสดงชื่อ และนามสกุลของผู้ใช้อยู่จริง (Success)
-
ปุ่มสำหรับกด เพื่อเข้าถึงหน้าค้นหาเตียง
-
การทำ Component test ในส่วนของหน้าค้นหาเตียง
-
ช่องเลือกจังหวัดที่ต้องการค้นหาสถานที่ให้บริการเตียง
ผลการทดสอบ : ในหน้าค้นหาเตียง มีในส่วนของช่องเลือกจังหวัดที่ต้องการค้นหาสถานที่ให้บริการเตียงอยู่จริง (Success)
-
จำนวนจังหวัดที่มีให้เลือกในช่องเลือกจังหวัด
ผลการทดสอบ : ในช่องเลือกจังหวัดของหน้าค้นหาเตียง มีจำนวนตัวเลือกอยู่ทั้งหมด 78 ตัวเลือกครบถ้วน ตามที่ได้กำหนดไว้ใน test stratergies (Success)
-
ช่องแสดงตัวเลขของจำนวนสถานที่ให้บริการเตียงในจังหวัดที่ผู้ใช้เลือก
ผลการทดสอบ : ในหน้าค้นหาเตียง มีในส่วนของช่องแสดงตัวเลขของจำนวนสถานที่ให้บริการเตียงในจังหวัดที่ผู้ใช้เลือกอยู่จริง (Success)
-
ช่องแสดงรายละเอียดของสถานที่ให้บริการเตียง
ผลการทดสอบ : ในช่องแสดงรายละเอียดของสถานที่ให้บริการเตียงในหน้าค้นหาเตียง มีรายละเอียดของสถานที่ให้บริการเตียงอยู่ครบถ้วน ตามที่ได้กำหนดไว้ (Success)
-
ช่องเลือกจังหวัดที่ต้องการค้นหาสถานที่ให้บริการเตียง
-
การทำ Component test ในส่วนของหน้าการจองเตียง
-
ช่องแสดงรายละเอียดต่างๆของสถานที่ให้บริการเตียง
ผลการทดสอบ : ในช่องแสดงรายละเอียดของสถานที่ให้บริการเตียงในหน้าจองเตียง มีรายละเอียดของสถานที่ให้บริการเตียงอยู่ครบถ้วน ตามที่ได้กำหนดไว้ (Success)
-
ช่องเลือกวันที่ผู้ใช้ต้องการเข้ามาพักอาศัย
ผลการทดสอบ : ในหน้าจองเตียง มีในส่วนของช่องเลือกวันที่ผู้ใช้ต้องการเข้ามาพักอาศัยอยู่จริง (Success)
-
ปุ่มสำหรับกด เพื่อทำการยืนยันการจองเตียง
ผลการทดสอบ : ในหน้าจองเตียง มีในส่วนของปุ่มสำหรับกด เพื่อทำการยืนยันการจองเตียงอยู่จริง (Success)
-
ช่องแสดงรายละเอียดต่างๆของสถานที่ให้บริการเตียง
-
การทำ Component test ในส่วนของหน้า login
-
Frontend
การทดสอบแบบ End To End จะเป็นการทดสอบที่คลอบคลุมการใช้งานทุกส่วนที่เกี่ยวข้องกับการใช้งาน ตัว feature การจองเตียง โดยการทดสอบนั้นจะเริ่มต้นจาก
- กรอกข้อมูลที่ email และpasswordให้ถูกต้อง ในช่องกรอกข้อมูล และ กดปุ่มลงชื่อเข้าใช้ที่หน้า login
- กดปุ่ม ค้นหาเตียง ที่หน้า index
- ทำการเลือกจังหวัดที่ต้องการค้นหา ที่ช่อง drop down จากนั้นกดปุ่มไอคอน แว่นขยาย เพื่อค้นหา ที่หน้า findbeds
- ทำการกดปุ่ม ดูรายละเอียด ในช่องที่เลือก เพื่อเข้าไปดูรายละเอียด ในหน้า buybeds
- ทำการเลือกวันที่ต้องการจองให้ถูกต้อง จากนั้นกดปุ่ม จอง และกดปุ่ม ยืนยัน เพื่อทำการจองเตียง
ผลการทดสอบ: การใช้งานโดยรวมของตัว feature การจองเตียง สามารถใช้งานได้อย่างถูกต้องทุกส่วนตามที่ควรจะเป็น (Success)
wiki
Student No. | Name | No. of Commit (%) | Line Change (%) |
62070112 | นายปภัส เงาธัมมะสกุล | 17% | 16.67% |
62070113 | นายประธาน นาเวียง | 5% | 16.60% |
62070134 | นายพลัฏฐ์ วงศ์สิทธิพรรุ่ง | 13% | 16.60% |
62070139 | นายพิชญะ สิงห์มีศรี | 10% | 16.71% |
62070168 | นายวิชยุตม์ ทวิชัยยุทธ | 17% | 16.57% |
62070215 | นายอคิราภ์ สีแสนยง | 37% | 16.85% |
code
Student No. | Name | No. of Commit (%) | Line Change (%) |
62070112 | นายปภัส เงาธัมมะสกุล | 16% | 3.66% |
62070113 | นายประธาน นาเวียง | 8% | 3.81% |
62070134 | นายพลัฏฐ์ วงศ์สิทธิพรรุ่ง | 10% | 24.72% |
62070139 | นายพิชญะ สิงห์มีศรี | 9% | 2.67% |
62070168 | นายวิชยุตม์ ทวิชัยยุทธ | 16% | 2.67% |
62070215 | นายอคิราภ์ สีแสนยง | 40% | 62.46% |
หมายเหตุ: นายอคิราภ์ สีแสนยง commit package-lock.json ก่อนประกาศ .gitignore ของทางฝั่ง frontend และ นายพลัฏฐ์ วงศ์สิทธิพรรุ่ง commit package-lock.json ก่อนประกาศ .gitignore ของทางฝั่ง backend