มีโอกาสมา 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