สรุปจากการแบ่งปันเรื่อง Automated testing with Cypress เป็นเวลา 2 วัน
เป็นการเขียน test script ด้วย Cypress เป็นภาษา JavaScript
โดยสิ่งที่แบ่งปันเป็นดังนี้
เริ่มด้วยการติดตั้ง และ สร้าง repository สำหรับเก็บ test script
ประกอบไปด้วย 2 แนวทางคือ
- แยก repository ออกมาจาก code
- ใช้ repository เดียวกันกับ code ไปเลย
ขึ้นอยู่กับแนวทางที่ตกลงร่วมกัน
แต่ที่แนะนำคือ รวมกันไปเลย
ต่อมาทำการสร้าง project ด้วย cypress ปกติ
และแนะนำความสามารถของ Cypress UI หรือ Studio
ว่ามีความสามารถอะไรบ้างที่สำคัญ เช่น
- แนวทางในการทดสอบทั้ง unit, integration และ end-to-end test เพื่อให้เข้าใจ strategy ของการทดสอบ
- โครงสร้างของ Cypress project ว่าเป็นอย่างไร
- รูปแบบของการทดสอใน Cypress เช่น End-to-End, Component, API, Snapshot, Visual testing
- Auto testing
- การ debug
- การ record test script ผ่าน Cypress Studio ที่ยังคงเป็น experiment feature เท่านั้น แต่ใช้งานได้ดี
- การใช้งาน cypress playground เพื่อช่วยให้การ inspect และเขียน test script ง่ายขึ้น
- ตัวอย่างของ cypress ที่มือใหม่ต้องเรียนรู้ คือ example.cypress.io
- ปรับปรุงให้ test step ใน UI และ report สวย ๆ อ่านง่าย เป็น step-by-step ด้วยการใช้งาน cypress-plugin-steps
- การ configuration ที่น่าสนใจในไฟล์ cypress.config.js/ts
- การทดสอบผ่าน command line รวมทั้ง parameter ต่าง ๆ
- การจัดการ network request เพื่อทำการ stub request ต่าง ๆ ที่ต้องการ
จากนั้นเริ่มให้ test script ด้วยภาษา JavaScript
- เขียนแบบปกติ โดยใช้ cypress playground และ ตัว recorder ทั้งใน Cypress Studio และ extension ใน Google Chrome
- เริ่มทำการ refactor code ของ test script ด้วยการไปใช้ test life cycle, แยกเป็น function ย่อย ๆ, แยกไปเป็น class และ แยกไปเป็น command ต่อไป
- เพื่อให้ test script อ่านง่าย และเป็นมิตรขึ้นมา ด้วยการใช้งาน Cypress Cucumber ด้วยรูปแบบของ Gherkin มาช่วย ด้วย library ชื่อว่า cypress-cucumber-processor ซึ่งเปลี่ยนคน maintain แล้ว
- การจัดการ selector หรือ element บนหน้า web ที่ดีกว่าเป็นอย่างไร ลดการผูกมักกับหน้า web ลงไป
- การ assert หรือตรวจสอบผลการทำงาน ว่าเป็นไปตามที่เราคาดหวังหรือไม่
- การจัดการ test case เพื่อลด flaky test ลงไป
- การจัดกลุ่มของ test case ด้วย Cypress tags
- การสร้าง test report ในรูปแบบต่าง ๆ ทั้ง build-in, Mocha custom, JUnit, Allure และ Cucumber เป็นต้น
ทำการสร้าง pipeline ของ CI/CD
- ออกแบบ pipeline ของขั้นตอนการทำงาน
- สร้าง pipeline โดยทำการทดสอบด้วย Cypress
- ใช้งาน Cypress + Docker สำหรับการทดสอบระบบงานตาม test case ที่เขียน
เป็นการแนะนำสำหรับก้าวแรกของการใช้งาน Cypress
สำหรับเขียน test script เพื่อช่วยการทดสอบให้ง่ายและสะดวกขึ้น
ต่อจากนี้คือ การลงมือทำ เพื่อฝึกฝน และเพิ่มประสบการณ์ต่อไป
แต่เหนือสิ่งอื่นใดคือ
จะทดสอบอะไรบ้าง ?
เพิ่มความมั่นใจที่มีต่อระบบหรือไม่ ?
ขอให้สนุกกับการทดสอบ และ coding