test-double Archive

จะ Mock หรือ ไม่ Mock ดี ?

คำถามที่น่าสนใจ สำหรับการพัฒนาและทดสอบระบบงานหนึ่งในนั้นคือ เราควรจะ Mock หรือ ไม่ Mock พวก dependency ดี ?เป็นคำถามที่ตอบได้ยากมาก ๆ เนื่องจากมันขึ้นอยู่กับ context ที่พบเจอด้วยแต่สิ่งที่เราควรต้องตอบให้ได้ว่าเราจะ Mock พวก dependency ต่าง ๆ ไปทำไมเพราะว่าใช้ของจริงไปเลยสิ มันจริงกว่า ถูกต้องกว่า !!

Read More…

การทำ Mock API ใน Cypress

จากการมานั่งคุยและแบ่งปันเรื่องของการทดสอบระบบ web แบบอัตโนมัตินั้น หนึ่งในเครื่องมือที่ลองนำมาใช้งานกันคือ Cypress จากการลองใช้งานพบว่า ไม่ยากแต่ก็ไม่ง่ายนัก เพราะว่า ต้องเขียน test script ในภาษา JavaScript แต่ถ้าพูดถึงความสามารถต้องบอกว่า ดีมาก ๆ ทั้งความเร็วในการทำงาน ทั้ง report ของการทดสอบ ทั้ง VDO ของการทดสอบ (ได้เฉพาะ browser เป็น electron เท่านั้น)

Read More…

เมื่อ Test มีกลิ่นแปลก ๆ ก็ลงมือแก้ซะ

สำหรับนักพัฒนาที่เขียน test หรือชุดการทดสอบ นะ !! มาดูกันว่า ชุดการทดสอบมันส่งกลิ่นแปลก ๆ บ้างหรือไม่ ? ปกติ code ที่นักพัฒนาสร้างขึ้นมา มักจะมีสิ่งแปลก ๆ มักจะส่งกลิ่น หรือ ส่งสัญญาณของปัญหาออกมา ซึ่งเราเรียกว่า Code Smell ปัญหามันไม่ใช่ Code Smell เพียงอย่างเดียว แต่ …. มันมีอย่างอื่นอีกเช่น เรารู้หรือไม่ว่าสิ่งเหล่านั้นมันคือ Code Smell !! ถ้าพูดง่าย ๆ คือ เรามีจมูกที่ดีหรือไม่ เรามีสายตาที่ดีหรือไม่ เพื่อทำให้ได้กลิ่น ให้มองเห็น Code Smell หรือสิ่งที่ผิดปกติหรือไม่ ? นั่นคือสิ่งที่นักพัฒนาต้องสร้างและปรับปรุงความสามารถขึ้นมา

Read More…

Stub Driven Development สำหรับ Mobile Application

ในการพัฒนา Mobile app ส่วนใหญ่นั้น จำเป็นต้องทำงานร่วมกับ Server-side API ผ่านระบบ network ไม่ว่าจะเป็น RESTful API และ Web Service ปัญหาที่มักเกิดขึ้นเสมอก็คือ ต่างคนต่างทำงาน ต้องรอกันเสมอ ถ้าฝั่ง API พัฒนาไม่เสร็จ ฝั่ง Mobile app ก็ไม่เสร็จเช่นกัน ถ้าระบบ network มีปัญหา หรือ server มีปัญหา จะทำให้การพัฒนาฝั่ง Mobile app สะดุดหรือหยุดชะงักไป ไม่สามารถจำลองเหตุการณ์ที่ต้องการได้เช่น API ทำงานช้า, API ทำงานผิดพลาด เป็นต้น และปัญหาอื่น ๆ อีกมากมาย ดังนั้นถ้ายังคงทำงานกันแบบนี้น่าจะไม่รอดอย่างแน่นอน คำถามคือ เราจะทำอย่างไรดีล่ะ

Read More…

คำถามที่น่าสนใจ “จะทดสอบ Facebook API กันอย่างไรดี ?”

จากการพูดคุยเรื่อง การทดสอบ Facebook API คำถามหลักคือ จะเขียนทดการทดสอบอย่างไรดีล่ะ ? Unit/Integration/System test ? ต้องทำการ Mock/stub ระดับ API หรือ service ? ส่วนตัวผมมีแนวคิดสำหรับกรณีนี้ดังนี้

Read More…

มาดูกันว่า Mock, Stub และ Dummy แตกต่างกันอย่างไร ?

วันนี้ได้พูดคุย และ อธิบายเกี่ยวกับ Test Double ไปนิดหน่อย จึงนำมาอธิบายเพิ่มเติม พร้อมยกตัวอย่าง เพื่อทำให้เห็นภาพว่า Test Double แต่ละตัวนั้น เป็นอย่างไร ใช้งานอย่างไร และ แตกต่างกันอย่างไร โดยจำอธิบายเฉพาะ Mock, Stub และ Dummy เท่านั้น เนื่องจากเป็นสิ่งที่ใช้งานบ่อยสุด ๆ แล้ว มาเริ่มกันเลย

Read More…

เราจะ Mock object เมื่อใด และ ทำไม ?

มีคำถามที่น่าสนใจเกี่ยวกับการ Mock object ว่าเราควรสร้างขึ้นมาเมื่อไร และทำไมจึงต้องใช้ ? ดังนั้น จึงลองไปค้นหาดูว่า ในโลกของการพัฒนาว่ามีความคิดเห็นเกี่ยวเรื่องนี้อย่างไร ซึ่งสามารถสรุปได้คร่าวๆ ดังต่อไปนี้

Read More…

[แปล] The Little Mocker ของ Uncle Bob

แปลมาจากบทความเรื่อง The Little Mocker ของ Robert C. Martin เป็นบทความที่ถามตอบเกี่ยวกับเรื่อง Test Double ได้อย่างสนุกสนานมาก เหมือนเป็นการเล่าถึงความเป็นมาของ Test Double ทำให้เข้าใจเรื่อง Dummy, Mock, Stup, Spy และ Fake มากขึ้น ดังนั้นมาเริ่มกันเลยดีกว่า

Read More…