unit-test Archive

Effective Unit Test สำหรับ Android application

หลังจากที่ได้แบ่งปันเรื่อง Testing สำหรับ Android application ในงาน I/O Rewind 2015 นั้น สิ่งที่ยังขาดหายไป 2 เรื่องใหญ่ๆ ที่สำคัญคือ Local unit test Instrumented unit test ซึ่งทั้งสองเรื่องนี้จะช่วยทำให้การเขียน unit test สนุกขึ้นมาก ดังนั้น เรามาทำความรู้จักกันนิดหน่อย

Read More…

ปัญหาของการทดสอบที่ช้า …

เมื่อเริ่มทำการทดสอบระบบ ไม่ว่าด้วยการกดปุ่ม หรือ พิมพ์คำสั่งใน command line หรือ สั่งให้ทำผ่าน e-mail ก็ตาม คำถาม ต้องรอนานเท่าไร กว่าจะได้ผลการทดสอบกลับมา ? คำตอบ ถ้าเวลาที่รอหน่วยเป็นนาทีขึ้นไป นั่นแสดงว่า การทดสอบของคุณมีปัญหาแล้วนะ !!

Read More…

คำแก้ตัวของ developer :: ทำไมไม่ทดสอบ code ?

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

Read More…

แนวคิดจากบทความ It’s not about the unit tests

อ่านบทความเรื่อง It’s not about the unit tests จาก 2 ที่คือ Jonathan Rasmusson Ron Jeffries ซึ่งเป็นบทความที่ดีมากสำหรับ unit test โดยที่จะอธิบายให้เข้าใจว่า unit test นั้นมันคือ เรื่องของความสามารถ และ ความเข้าใจล้วนๆ ดังนั้น มาดูในรายละเอียดกันว่าเป็นอย่างไร

Read More…

มาเขียน Unit test บน Android application กันเถอะ

การเขียน unit test บน Android application นั้น พูดได้เลยว่ายากมากๆ และหลายๆ คนอาจจะบอกว่า มันไร้ค่ามาก !! แต่ในปัจจุบันการเขียน unit test นั้น ถือว่าเป็นสิ่งหลักที่ทาง developer ควรเรียนรู้ และ นำไปใช้งานนะ ดังนั้นมาดูกันว่าใน Android application เราจะเขียน unit test กันอย่างไรดี

Read More…

Programmers Love Writing Tests ด้วย jUnit ตอนที่ 2

หลังจากที่เราเขียน code และ เขียน test สำหรับการจัดการสกุลเงินแบบง่ายๆ ผ่านไปแล้วใน Programmers Love Writing Tests ด้วย jUnit ตอนที่ 1 ต่อไป เรามาทำอะไรที่มันท้าทายหรือยากขึ้นมาหน่อย นั่นก็คือ การจัดการกับสกุลเงินต่างๆ มากกว่า สกุลเดียวกัน มาเริ่มกันเลยดีกว่า ปัญหาเรื่อง Multiple Currency มีเงินหลากหลายสกุลในกระเป๋า เราจะจัดการอย่างไรดีล่ะ

Read More…

Programmers Love Writing Tests ด้วย jUnit ตอนที่ 1

อ่านเจอบทความเรื่อง JUnit Test Infected: Programmers Love Writing Tests มันโดนใจมากๆ ดังนั้น จึงเอามาแปล และ สรุปดีกว่า ในการพัฒนา software นั้นเรามักไม่รวมการทดสอบเข้าไปในช่วงของการพัฒนามากนัก ซึ่งเป็นการปิดกั้นการวัดความคืบหน้าในการพัฒนาเลยนะ ดังนั้นคุณจะบอกได้อย่างไรว่า เมื่อไรจะเริ่มทำงานนั้นๆ เมื่อไรจะหยุดทำงานนั้นๆ ดังนั้นมาเปลี่ยนวิธีการพัฒนาโดยนำการทดสอบเข้ามาร่วมด้วย เพื่อทำให้รู้ว่าเราทำงานอะไรอยู่ เพื่อทำให้รู้ว่าสิ่งที่เราทำมีความคืบหน้าเท่าไร เพื่อทำให้รู้ว่าเกิดผลกระทบอะไรบ้าง เพื่อทำให้เรา focus กับสิ่งที่กำลังทำ ดังนั้นมาเขียน test กันเถอะ &#

Read More…

เราเรียนรู้อะไรจาก Unit Test, System Test กันบ้าง

ในปัจจุบันเราทำการจัดแบ่งการทดสอบออกเป็นหมวดหมู่ เพื่อทำให้เรารู้ว่า เราทำการทดสอบครอบคลุมส่วนใดบ้าง ตัวอย่างเช่น Unit test จะครอบคลุมไปที่ส่วนต่างๆ ของ code ทั้ง class และ method ต่างๆ รวมทั้งยังสามารถทำการ mock ส่วนต่างๆ ได้ด้วย Integration test จะครอบคลุมการทำงานของ component ต่างๆ ว่าทำงานร่วมกันแล้วเป็นอย่างไร และสามารถนำ mock มาใช้สำหรับ component อื่นๆ ที่อยู่นอกเหนือการควบคุมได้ System test และ End-to-End test จะครอบคุลมส่วนที่ใหญ่กว่าขึ้นไปอีก ถ้าถามว่า แต่ละการทดสอบต้องมีจำนวนมากเท่าไรล่ะ

Read More…

เปลี่ยนแนวคิด จากสร้างอย่างไร มาเป็น สร้างอะไร ดีกว่านะ !!

ในการเขียนโปรแกรมนั้น ปกติเราจะเริ่มด้วย การสร้างไฟล์ สร้าง class สร้าง method สร้าง object จาก class ไม่มี unit test ดังนั้น code ที่ได้ออกมาส่วนใหญ่มันจะทดสอบยากมากๆ ทั้งจำนวนบรรทัดของแต่ละ class, method มันเยอะมาก ทั้งมีการ share state ของการทำงานผ่าน field บางตัว ทั้งมีการผูกมัดของ code เยอะมาก และอื่นๆ อีกมากมาย

Read More…

แนะนำหนังสือสำหรับ Unit Testing

ในปัจจุบันคำว่า Unit testing มันมีความสำคัญมากถึงมากที่สุด เป็นสิ่งที่นักพัฒนา software ควรจะเรียนรู้ และ นำมาประยุกต์ใช้งาน โดยมันใช้เป็นตัวชี้วัดด้วยว่า คุณคือนักพัฒนาที่ดี หรือ เป็นนักพัฒนามืออาชีพกันเลยนะ ดังนั้น Unit testing จึงเป็นทั้งความสามารถ และ วินัย ที่นักพัฒนา software จะขาดไปเสียมิได้เลย

Read More…