มีโอกาสมา sharing เรื่อง JavaScript Testing 0-7 (every day) ในงาน BKK.JS #19
โดยการแบ่งปันครั้งนี้ใช้เวลา 30 นาที
มีเนื้อหาคร่าว ๆ ดังนี้
- คำถามหลักคือ เราทดสอบไปทำไม ? เพื่อให้เข้าใจเกี่ยวกับความต้องการทั้งเชิง business และ technical
- ปัญหาของการส่งมอบ software ทั้งเรื่องคุณภาพ และ ปริมาณที่ส่งมอบ เราสนใจอะไรบ้าง
- รูปแบบของการทดสอบระบบงาน เช่น ice-cream cone, pyramid testing, cupcake testing และ trophy testing เป็นต้น เพื่อให้เห็นแนวคิดและรูปแบบต่าง ๆ ที่น่าสนใจ
- การพัฒนาและส่งมอบแบบ incremental นั่นคือส่งแบบ feature-by-feature จากนั้นคำว่า เสร็จ คือ ต้อง coding เสร็จ และ ทดสอบเรียบร้อย
- แนวทางการทดสอบทั้งแบบ manual และ automation ว่ามีที่มาที่ไป และ trade-off อย่างไรบ้าง
จากนั้นเข้าสู่การทดสอบระบบงานด้วย JavaScript
โดยที่ JavaScript นั้นจะมีใช้งานทั้งฝั่ง frontend และ backend
ดังนั้นจะมี library ที่อาจจะเหมือน หรือ ต่างกันได้
ยกตัวอย่างเช่น
- Web browser testing ใช้งาน Playwright, Cypress และ Selenium เป็นต้น
- API testing หรือ Backend testing เช่น Playwright, Cypress, Postman และ SuperTest เป็นต้น
- ฝั่งของ frontend ทำการ mock api server หรือ backend ได้เลย เช่น Cypress, Playwright, Mock Service Worker และ Axios mock adapter เป็นต้น
- ฝั่งของ backend ทำการ mock api server และ database ได้เลย เช่น Docker, Nock และ Mock Service Worker เป็นต้น
จากนั้นแนะนำการทดสอบ 3 แบบ คือ
- End-to-End testing
- Isolated testing
- Contract testing ด้วย PACT
สุดท้ายแนะนำให้เรียนรู้จากความผิดพลาด
และเรียนรู็การสร้าง test case จาก Bug (Bug-Driven Development)
Slide อยู่ที่ JavaScript Testing Every Day