เราอาจจะเรียกได้ว่าเป็น UI testing นั่นเอง หรือเป็นการทดสอบแบบ black box เป็นการทดสอบในมุมมองของผู้ใช้งานทั่วไป จึงทำให้เรามีความมั่นใจต่อการทดสอบสูงมาก ๆ และที่สำคัญคือ ถ้ามีการเปลี่ยน logic หรือ business process ภายในแล้ว จะไม่กระทบต่อการทดสอบมากนัก หรือ ไม่กระทบเลย นั่นก็เป็นอีกหนึ่งข้อดีของ System test นั่นเอง
Fast feedback จากการเปลี่ยนแปลงต่าง ๆ แต่ผลที่ได้กลับตรงกันข้าม ดังนั้นแนวทางนี้ไม่น่าจะถูกต้อง
จากบทความมีการพูดถึงว่า System test จะ work มาก ๆ สำหรับ Smoke test ดังนั้นก็ต้องเข้าใจก่อนว่ามันคืออะไรอีก ตามหลักการแล้ว Smoke test มันคือชุดการทดสอบที่
ทดสอบ function ที่สำคัญ ๆ ของระบบเป็นหลัก ไม่ใช่ทั้งหมดเหมือน regression test
ใช้เวลาการทดสอบไม่นาน
ใช้สำหรับหา critical issue สำหรับ version ใหม่ ๆ ที่ update เข้ามา
ดังนั้น System test ไม่ได้เหมาะกับการทดสอบให้ครอบคลุมการทำงานภายใน เพราะว่า มันคือ Black box testing เนื่องจาก System test ที่ทำกันนั้น มีทั้ง Controller test, Domain test เป็นต้น ตามโครงสร้างของ RoR project ที่เป็น MVC (Model-View-Controller) ดังนั้นควรแยกออกไปทดสอบใน level อื่น ๆ บ้างจะดีกว่า ส่งผลให้การทดสอบมีหลาย ๆ แบบ ทั้ง unit และ integration test เป็นต้น
โดยปกติในการใช้งาน docker image จาก container/image registry server ยกตัวอย่างเช่น nginx ใน Docker Hub เราจะใช้งานด้วยการระบุชื่อพร้อม tag ที่ต้องการ จาก best practice นั้น ไม่แนะนำให้ใช้ tag latest
เรื่องที่สองคือ การใช้งาน Version Control เช่น Git
เพราะว่าเขียน test script จำเป็นต้องจัดการ version ของ script เหล่านั้น และการใช้เครื่องมือเดียวกับทีมพัฒนาก็จะช่วยให้ทำงานเป็นทีมมากขึ้น อย่างน้อยถ้ามีปัญหาก็สามารถพูดคุยกันได้
ตอนนี้ current version ของ NodeJS คือ 22 มีความสามารถต่าง ๆ เพิ่มเข้ามาเยอะมาก ๆ โดยที่ไม่ต้องไปใช้ library ข้างนอกอีกแล้ว ดังนั้นจึงทำการสรุปความสามารถของ NodeJS ไว้นิดหน่อย มาเริ่มกันเลย
เรื่องแรก Test runner
เราสามารถเขียน test และ run test ได้เลยใน NodeJS ไม่ต้องติดตั้งแล้ว ยกตัวอย่างเช่น jest, mocha และ vitest เป็นต้น ลองใช้งานกัน รวมทั้งเรื่องของ test coverage ก็มีให้อย่างครบครัน