รูปแบบการทดสอบของ Unit Test จะเป็น Solitary หรือ Sociable ดี

จากที่ได้ทำงานร่วมกับลูกค้า และพบเองในกลุ่ม Coach ตอนทำงานกันเอง คือการพูดถึงเรื่อง Unit Test ที่เขียนอย่างไรถึงจะถูกต้อง? เช่น ขนาดของ Unit Test ต้องเล็กขนาดไหน?, ทดสอบ Method ที่เรียกหา Method อื่นๆ ตัวเดียวได้ไหม? เป็นต้น

โพสต์นี้ผมจะอ้างอิงถึงลุง Martin Fowler เยอะหน่อย เพราะไปอ่านที่แกอธิบายไว้เรื่อง UnitTest และ Mocks Aren’t Stubs ได้น่าสนใจมาก Continue reading “รูปแบบการทดสอบของ Unit Test จะเป็น Solitary หรือ Sociable ดี” »

ต้องคิดอย่างไร รู้อะไร และทำอย่างไร เพื่อให้เกิด Automated Test

หลังจากได้เขียนอธิบายเรื่อง “จะทำระบบให้รองรับ Automated Test ได้อย่างไร (Testable)” ไปคราวก่อน ได้รับผลตอบรับด้วยดี คราวนี้เลยมาเขียนเพิ่มเติมเพื่อเป็นตัวอย่างแก่ผู้ที่ต้องการนำไปพัฒนาระบบจริง โดยในบล็อกนี้ผู้อ่านจะได้เห็นภาพของสิ่งเหล่านี้ คือ

  • กระบวนการคิดเพื่อเตรียมทำ Automated Test
  • Unit Test
  • Integration Test
  • DI (Dependency Injection)
  • Stub (Test Double)
  • Code Coverage

Continue reading “ต้องคิดอย่างไร รู้อะไร และทำอย่างไร เพื่อให้เกิด Automated Test” »

A Brief History of Agile — (Day 1 Agile for Software Development at RMUTT)

ช่วงนี้ได้มาช่วยสอนอาจารย์ที่มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี 3 วัน เรื่อง Agile for Software Development กับชาวคณะ มี Prathan D. , aj.jammy และ Nitipat Lowichakornthikun ก็ได้ทบทวนเรื่องราว อัพเดทเทคนิคการสอน และอัพเดทข้อมูลจากทางพี่หนุ่มด้วย

อาจเพราะผมไม่ได้เข้ามาร่วมทีมสัมนาของบริษัทหลายครั้ง พบว่าเทคนิคการเล่าเรื่องของพี่หนุ่มเปลี่ยนไป ฟังเพลิน เหมือนประวัติศาสตร์ ที่มันมี Timeline และการเชื่อมโยงเหตุการณ์ กับหัวข้อต่างๆ เลยอยากจั่วหัวบล็อกว่า A Brief History of Agile ดูเข้าท่าดี (ล้อชื่อหนังสือ A Brief History of Time และรำลึกถึง Stephen Hawking ผู้เขียน) Continue reading “A Brief History of Agile — (Day 1 Agile for Software Development at RMUTT)” »

จะทำระบบให้รองรับ Automated Test ได้อย่างไร (Testable)

ตอนที่หัดเขียน Automated  Test ผมเคยเจอปัญหาว่า โค้ดเก่าที่เขียนมา มันไม่รองรับการเขียน Unit Test, Integration Test เอาซะเลย แกะยากเหมือนกัน จนแล้วจนรอดก็ลองทำใหม่ แล้วฝึกกับโจทย์ไปเรื่อยๆ จนพอตกผลึกได้บ้าง ว่าถ้าจะทำระบบให้รองรับการ Test (Testable) จะต้องทำอย่างไร

วันก่อน มีน้องในทีมถามว่า “ผมจะเขียน Integration Test อย่างไรดี” ก็เลยได้ย้อนไปทบทวนประสบการณ์ หาข้อมูล และถามจากผู้รู้เพิ่มเติม จึงกลับไปเล่าให้น้องฟัง ก็คิดว่ามีประโยชน์ จึงอยากแชร์ไว้มาแลกเปลี่ยนความรู้กัน Continue reading “จะทำระบบให้รองรับ Automated Test ได้อย่างไร (Testable)” »

สร้าง API Document กับ .NET Core ง่ายๆ ด้วย Swagger

เมื่อโปรแกรเมอร์เขียน API เสร็จ และส่งให้ทีมอื่นๆไปใช้งานต่อ จะต้องอธิบายวิธีการใช้งานด้วย แต่ที่ต้องทำ คือควรมีเอกสารการใช้งาน หรือเรียกว่า API Document ส่งให้กับผู้ใช้เสมอๆ หรือเก็บไว้อ้างอิงที่ใดที่หนึ่ง

แต่กระนั้น โปรแกรมเมอร์อย่างเรามักไม่ชอบทำ API Document หรอกครับ เขียนๆไปแค่ให้มี สิ่งที่ได้มักเป็นเอกสารที่ใช้งานได้บ้างไม่ได้บ้าง เพราะเป็นภาษาที่คนเขียนเข้าใจแค่ตัวเอง หรือตัวอย่างไม่ชัดเจน หรือมีข้อมูลใช้งานไม่ครบถ้วน หนักไปกว่านั้นคือ บ่นว่าไม่มีเวลา แล้วก็ไม่ทำมันซะเลย (แต่มีเวลาไปอธิบายให้ผู้ใช้ทีละคนๆ 555)

ดังนั้น จะดีกว่าไหม ถ้าเราเขียนโค้ด API เสร็จ แล้วมีเครื่องมือสร้าง API Document ให้เราได้เลยอัตโนมัติ, อ่ะ ตอบแทนละกัน “ดีว่ะ!” Continue reading “สร้าง API Document กับ .NET Core ง่ายๆ ด้วย Swagger” »