Tag Archives | Test

Two approaches – Mock/Stub

เรื่องนี้พึ่งย่อยเสร็จแต่เป็นสิ่งที่คุยกับ @visibletrap ตั้งแต่วันแรกที่มาถึงสิงคโปร์ (คุยทีเดียวหลายเรื่อง ล่อไปสามชั่วโมงได้ ฮ่าๆ) เรื่องก็มีอยู่ว่าเวลาทำ TDD หลายค่ายมักบอกว่าให้ทำ Mock ซึ่งก็เคยพยายามทำหลายครั้งแต่ก็ไม่ประสบความสำเร็จเสียทีเพราะรู้สึกมันทำให้เขียนอะไรซ้ำหลายอย่าง วันนั้น @visibletrap ก็เลยอธิบายและคุยจนเคลียร์ว่าเค้าใช้ Mock เมื่อไหร่กัน วิธีการทำระบบอะไรซักอย่างปกติก็มีอยู่สองทางในการสร้างขึ้นมา คือ Top-Down / Bottom-Up วิธีที่คุ้นเคยสุดเพราะอะไรไม่รู้อาจจะเพราะที่เรียนมาในมหาวิทยาลัยต่างๆ ในวิชา SE ที่บอกว่าให้หาคำนาม บลาๆๆ ก่อนคือ Bottom-Up เริ่มจากหาว่าในระบบจะมี Model อะไรบ้าง แล้วหา Behavior เพื่อสร้างคลาสขึ้นมาทั้งหมดให้ครบทั้ง Flow โดยเริ่มจากฐานที่เป็นคำนาม จนถึงชั้นบนสุดที่เป็นส่วนติดต่อกับ User วิธีที่จะสร้าง Test กับระบบแบบนี้ง่ายสุดก็คือสร้าง Stub ขึ้นมาให้ทำหน้าที่แทน Third-party คอยให้ข้อมูลต่างๆ เพื่อให้ระบบทำงานได้ถูกต้องตลอด ปัจจุบันก็ยังคงชินกับการสร้างระบบด้วยวิธีนี้อยู่ เวลาทำอะไรก็เลยมักสร้าง Stub ขึ้นมาก่อน แล้วค่อยๆ ไล่จาก Model ขึ้นไปจนถึง User [...]

Read full story Comments { 1 }

Define Test

อาทิตย์ที่ผ่านมาเริ่ม Push TDD ให้ทีม Dev ทั้งทีมก็มีเสียงตอบกลับมาทันที ซึ่งเป็นสิ่งที่อยากได้และจะได้เอาไปปรับปรุง เสียงตอบอันนึงที่กลับมาถูกบล๊อกโดย @teerapapc ผ่านหัวข้อนี้ “My experience with unit testing in software development” สรุปสั้นๆ คืออยากให้คนอื่นเป็นคนเขียน Test ในตอนท้ายของบทความ จริงๆ เรื่องเขียน UnitTest สำหรับ Dev หลายคนที่พึ่งจบออกจากมหาวิทยาลัยและเขียนโปรแกรมเล่นตามสิ่งที่สนใจ มักเป็นสิ่งที่อยู่ห่างไกลกันเหลือเกิน แม้แต่ตัวเองตอนจบใหม่ๆ และทำงานได้สองสามปีแรก ก็ไม่รู้ว่าจะเขียน Test ยังไงเพราะขั้นตอนการทำงานเริ่มจาก ได้ Requirement มาจาก Manager จากนั้นก็เริ่มเขียน Module ต่างๆ ตามที่คิดไว้ ลองรันดูว่ามันทำงานถูกต้องตามที่ Manager ให้มามั้ย ปิดเคส ด้านบนคือช่วงก่อนที่จะมี QA ช่วงที่มี QA เข้ามาก็จะมีขั้นตอนเพิ่มก่อนปิดเคสคือ ส่งให้ QA เล่น จากนั้นงานก็จะเด้งเป็นปิงปองซักพัก [...]

Read full story Comments { 6 }

Software Development from Twitter (and G+)

เรื่องนี้มาจากสิ่งที่คุยกันใน Twitter หาจุดเริ่มต้นนานมาก เพราะคุยกันไม่ได้ติดต่อกันเท่าไหร่ ยกเว้นช่วงหลังที่ @visibletrap ปล่อยมาเป็นชุดเลย เรื่องก็น่าจะเริ่มจาก Tweet ชุดนี้มั้ง (22 กรกฎา) @visibletrap: “ตามคำขอ [Blog] Refactoring DOJO http://t.co/w6NQIW6 cc @teerapapc @m3rlinez @llun: @visibletrap อยากเห็น Agile ในบริษัทที่ทำ Product ของตัวเองอ่ะ (เรียกว่า Software House ป่าวหว่า) เพราะบริษัทเหล่านี้มักไม่มีการคุมเวลา @visibletrap: @llun น่าจะมีนะ แต่ยังไม่เคยรู้ข้างในจริงๆ อย่าง Pivotal เค้าก็มี product เค้า อย่าง google เคยได้ยินว่าทีม adwords ก็ทำ @llun: @visibletrap ใช่แต่บริษัทที่ทำ Agile และรู้จักตอนนี้ส่วนใหญ่คือทำ Product ตาม Requirement [...]

Read full story Comments { 0 }