10003790_10206302402375118_5000197449768720692_o
วันนี้มีโอกาสไปแบ่งปันเรื่อง Android Unit Testing
ในงาน I/O Rewind Bangkok จัดที่จุฬาลงกรณ์มหาวิทยาลัย
เป็นงานที่ทำการสรุปเนื้อหาจากงาน Google I/O 2015
ให้เหล่า Android Developer ในประเทศไทยได้รู้กัน
มาดูว่าสิ่งที่ผมไปแบ่งปันมีเนื้อหาอะไรบ้าง ?

เริ่มจากปัญหาของการพัฒนา Android application ในปัจจุบัน

เช่น

  • Fragmentation
  • จำนวน android device ที่มีจำนวนเยอะมากๆ ประมาณ 6,000 devices
  • การ release ระบบงานให้รวดเร็วขึ้น
  • Code ที่พัฒนาขึ้นมามันดีหรือไม่ เคยวัดด้วย metric อะไรบ้าง
  • Code ที่เขียนขึ้นมา มันพร้อมรับต่อการเปลี่ยนแปลงหรือไม่ อย่างไร
  • และสุดท้ายสิ่งที่เราต้องการ และ ผู้ใช้งานที่ต้องการ คือ คุณภาพของ software นั่นเอง

ปัญหาหลักของการพัฒนา software

นักพัฒนามักจะบอกว่า …
Screen Shot 2558-06-20 at 9.32.14 PM

แปลกนะ ทำไมถึงพูดแบบนั้นนะ ?

มาดูกันหน่อยว่า การทำทดสอบ Android application ในปัจจุบันทำกันอย่างไร ?

แน่นอนว่าส่วนใหญ่จะทำการทดสอบแบบ manual
ซึ่งในทั้งจำนวนคน และ ค่าใช้จ่าย ที่สูงขึ้น
แสดงด้วยภาพของ Ice cream testing
Screen Shot 2558-06-20 at 9.41.14 PM

ในการทดสอบ Android application ควรอยู่ในรูปแบบนี้

คือ Pyramid testing ดังรูป
Screen Shot 2558-06-20 at 9.49.39 PM

คำถาม
การทดสอบ Android application จะทำอย่างไร มีเครื่องมืออะไรบ้าง ?
คำตอบ
ในปัจจุบันมันเยอะมากๆ ดังรูป
Screen Shot 2558-06-20 at 9.55.13 PM

แล้วเราจะเลือกใช้อะไรล่ะ ?

โดยทีมพัฒนา Android ได้แนะนำการทดสอบในแต่ละระดับไว้
ประกอบไปด้วย

  • Monkey runner สำหรับการทำ Stress testing
  • UI Automator และ Espresso สำหรับการทำ Acceptance testing
  • Integration testing จะใช้ Android unit testing
  • Unit testing จะใช้ jUnit

ในการแบ่งปันนั้น ทำการแนะนำ ดังนี้

  • Unit testing
  • Espresso
  • Monkey runner

ซึ่งได้พาทำ workshop โดยในโจทย์ง่ายๆ คือ การแปลงคะแนนมาเป็นเกรด
โดย Source code ตัวอย่างที่สร้างขึ้นมา อยู่ใน Github.com/up1

Slide ผมเอาขึ้นไว้ที่ slideshare ตามนี้

สุดท้ายขอขอบคุณสำหรับพื้นที่และโอกาสในการแบ่งปันครับ

โอกาสหน้าเจอกันใหม่ครับ
ผมสนุกมากๆ

11417777_10206303028150762_4331206784567061959_o