มีโอกาสไปแบ่งปันความรู้ในเรื่องของการทดสอบระบบงานที่ Skooldio
โดยใช้ชื่อ course ว่า Full Stack Automation Testing จำนวน 2 วัน
เพื่อให้เห็นภาพของการทดสอบในขั้นตอนการส่งมอบ software ว่าเป็นอย่างไรบ้าง
จากนั้นทำการออกแบบ และ เข้าใจรูปแบบของการทดสอบ
ฝึกใช้งานเครื่องมือการทดสอบต่าง ๆ
จากนั้นก็ลง workshop กันต่อไป
หัวข้อหลัก ๆ ที่แบ่งปันไปประกอบไปด้วย
- ปัญหาในการทดสอบระบบงาน
- ปัญหาของการปรับเปลี่ยนจาก manual มา automation
- เรา focus ที่ Quality หรือ Quantity มากกว่ากัน
- เรียนรู้ขั้นตอนการส่งมอบ software ว่าเป็นอย่างไร
- แนวทางการทดสอบ ผมจะเรียกว่า ทำก่อนค่อยคิด หรือคิดก่อนแล้วค่อยทำ
- Test-First vs Test-Last vs Test-Later
- การทดสอบที่ดีเป็นอย่างไร
- การออกแบบ test case ใน level ต่าง ๆ
- การใช้เครื่องมือใน test level ต่าง ๆ
- การสร้างระบบ Continuous Integration เพื่อทดสอบอย่างต่อเนื่อง
สิ่งที่เน้นเยอะ ๆ มีดังนี้
การได้มาซึ่ง test case ตามขั้นตอนต่าง ๆ ของการส่งมอบ software เช่น
- Requirement ได้ acceptance test ไหม
- Architecture ได้ integration test ไหม
- Design ได้ function/flow/story test ไหม
- Implementation ได้ unit test ไหม
เพื่อช่วยให้เราเข้าใจเกี่ยวกับ สิ่งที่กำลังจะลงมืออย่างชัดเจนมากยิ่งขึ้น
แต่จะทำกับ requirement ทั้งหมดเพียงครั้งเดียวคงไม่ไหว
ดังนั้นการทำแบบ iterative and incremental จึงน่าสนใจขึ้น
รูปแบบของ test ที่ดี ประกอบไปด้วย
- Fast
- Isolate
- Repeat
- Understand
ต่อมาถ้าจะให้การทดสอบละเอียดมากยิ่งขึ้น ต้องเข้าใจ Architecture ด้วย
เพื่อให้เราเข้าใจโครงสร้างของระบบ
จะทำให้เราสามารถออกแบบ test case ในแต่ละส่วนงานได้
รวมถึงการเลือกใช้เครื่องมือที่เหมาะสมต่อไป
โดยจะแนะนำรูปแบบของการทดสอบ ซึ่งประกอบไปด้วย
- End-to-end test
- Integration test
- Component/Isolated test
- Contract test
- Unit test
เพื่อช่วยให้ทีมเข้าใจในรูปแบบและขอบเขตของการทดสอบตรงกัน
จากนั้นก็เลือกเครื่องมือของแต่ละส่วน และ การทดสอบแต่ละแบบ
ยกตัวอย่างเช่น
- ในฝั่งของ API พาใช้งาน Postman + newman รวมทั้งเขียน code สำหรับการทดสอบภายในระบบงาน
- เขียน code ทดสอบด้วย JavaScript ด้วย library ต่าง ๆ เช่น jest, supertest และ nock เป็นต้น
- ไล่จาก blackbox testing ไปยัง gray และ white box testing
- การทดสอบฝั่ง UI เช่น Playwright เป็นต้น ซึ่งทดสอบทั้ง web browser testing และ visual testing
- การจัดการ dependency ต่าง ๆ เช่น Mock API server และ Database รวมทั้งเรื่องของ data test ซึ่งมีความสำคัญอย่างมาก
ปิดด้วยการรวมทั้งหมดมาอยู่ใน pipeline ของระบบ Continuous Integration and Delivery ต่อไป
ไว้ course หน้าเจอกันครับ
ลองนำความรู้ต่าง ๆ ที่แนะนำไป ลองปรับใช้งานกัน
หรือนำไปฝึกฝนให้เชียวชาญมากยิ่งขึ้น