espresso Archive

Android :: แนะนำ library สำหรับการเขียน UI Test ด้วย Espresso

การสร้างชุดการทดสอบแบบอัตโนมัติระดับ User Interface ของ Android app นั้น เป็นเรื่องที่สำคัญมาก ๆ โดยที่ทาง Android ก็ได้เตรียมเครื่องมือและ library ต่าง ๆ ไว้ให้ครบ ยกตัวอย่างเช่น Espresso และ UIAutomator เป็น ที่สำคัญยังมี opensource library อื่น ๆ อีก ไม่ว่าจะเป็น Appium และ Calabash ดังนั้นการสร้างชุดการทดสอบแบบอัตโนมัติจึงไม่ใช่เรื่องยากหรือเป็นไปไม่ได้เลย แต่เหล่าทีมพัฒนามักไม่ชอบทำ !! ทำไมนะ

Read More…

มาเขียนชุดการทดสอบ Espresso ให้อ่านง่าย ๆ ด้วยภาษา Kotlin

วันนี้ไปร่วมงาน GDG DevFest Bangkok 2017 มี session ที่น่าสนใจเยอะเลยแบ่งออกเป็น 3 ห้อง ดังนั้นก็ต้องเลือกเข้า session ในห้องใดห้องหนึ่งไปเลย โดย session แรกที่ได้เข้าไปคือ One Espresso with Kotlin, please เป็นการแนะนำและทำ workshop เกี่ยวกับ การเขียน UI Test ของ Android app ด้วย Espresso ที่น่าสนใจคือ เขียนด้วยภาษา Kotlin แต่ที่น่าสนใจกว่าคือ การออกแบบ DSL (Domain Specific Language) สำหรับการทดสอบ ซึ่งทำให้ชุดการทดสอบอ่านง่าย เข้าใจง่าย มันสวยนะ มาดูกันนิดหน่อย

Read More…

มาสร้างระบบ Continuous Integration สำหรับ Android app กันดีกว่า

วันนี้นั่งสร้างระบบ Continuous Integration (CI) สำหรับ Android app นิดหน่อย เพื่อทำการ integrate ส่วนการทำงานต่าง ๆ เข้าด้วยกัน ทำการ build และ ทดสอบระบบแบบอัตโนมัติ ทำให้เรารู้ข้อผิดพลาด เพื่อทำการแก้ไขได้อย่างรวดเร็ว ดังนั้นมาดูกันว่าจะทำการสร้างระบบ CI อย่างไรกันบ้าง

Read More…

[Part 2] สรุปความรู้ที่น่าสนใจจากงาน Google I/O 2016 Extended Bangkok

เนื่องจากเนื้อหาในงาน Google I/O 2016 Extended Bangkok มันเยอะมาก ๆ ดังนั้นจึงแยกเนื้อหาออกเป็น 2 ส่วน ซึ่งใน blog นี้จะสรุปเรื่องต่าง ๆ ดังนี้ UI Testing สำหรับ Android App ด้วย Espresso ทำความรู้จักกับ Firebase ว่าน่าสนใจอย่างไรบ้าง มาเริ่มกันเลย

Read More…

สวัสดีกับ Espresso Test Recorder สำหรับการทดสอบ Android App

ใน Android Studio 2.2 Preview 3 นั้น ได้ปล่อย Espresso Test Recorder ใน Beta version ให้ลองใช้งานแล้ว ซึ่งเป็นความสามารถที่ขี้โม้ไว้ในงาน Google I/O 2016 นั่นแสดงว่า เราสามารถบันทึกการทดสอบ Android App ง่าย ๆ ด้วยการใช้งาน App แบบปกติ โดยผลที่ได้คือ ชุด code ของการทดสอบแบบอัตโนมัติ ซึ่งเราสามารถทำการแก้ไขได้อีกด้วย แต่ก็มีข้อจำกัดพอสมควร !!

Read More…

สรุปสิ่งที่แบ่งปันในงาน Test Automation Meetup #1

วันนี้มีโอกาสไปแบ่งปันเรื่อง Automated testing for Android app ในงาน Test Automation Meetup ครั้งที่ 1 โดยเน้นไปที่แนวคิดสำหรับการทดสอบ Android app ซึ่งในปัจจุบันมีเครื่องมือ และ library ต่าง ๆ เยอะมากมาย หนึ่งในนั้นคือ Android Testing Support Library (ATSL)

Read More…

Android :: จะทดสอบการเชื่อมต่อ Network อย่างไรดี ?

คำถามที่น่าสนใจคือ ถ้าต้องการทำทดสอบส่วนการติดต่อผ่าน Network เช่นเรียกใช้งาน RESTful API, WebService เป็นต้น ไม่ว่าจะใช้ library ใด ๆ ก็ตาม เช่น HttpURLConnection และ Retrofit เป็นต้น เราจะเขียนชุดการทดสอบอย่างไรดี ? เนื่องจากมีหลายวิธีเหลือเกิน ดังนั้นจึงขอสรุปง่าย ๆ คือ มีการทดสอบ 2 แบบคือ ทำการทดสอบผ่าน Emulator/device ทำการทดสอบโดยไม่ใช้ Emulator/device

Read More…

Espresso ::  การแก้ไขปัญหาเรื่อง permission บน Android M

วันนี้เจอปัญหาที่น่าสนใจสำหรับการทดสอบ Android app ด้วย Espresso มีอาการ คือ ไม่สามารถทำการทดสอบได้ และ ผลการทดสอบผิดพลาด ซึ่งเป็นปัญหาเกี่ยวกับ permission ของ Android app นั่นเอง โดยจะเจอปัญหานี้บน Android M หรือ Android 6 Marshmallow เนื่องจากรูปแบบของการจัดการ permission ที่เปลี่ยนไป มาดูวิธีการแก้ไขว่าทำอย่างไร

Read More…

Android :: ทำการ capture หน้าจอการทำงานด้วย Fastlane Screengrab กัน

Fastlane คือ ชุดเครื่องมือ automation สำหรับ iOS app ที่เริ่มได้รับความนิยมอย่างมาก ซึ่งปัจจุบันเป็นหนึ่งใน project ของ Twiiter Fabric แล้วด้วย พัฒนาด้วยภาษา ruby เป็น project ที่มีอายุได้เพียง 1 ปีเท่านั้น สำหรับ Mobile developer ทั้ง iOS และ Android ถ้าใครไม่รู้จัก ถือว่า พลาดมาก ๆ ดังนั้น มาเรียนรู้ และ นำไปใช้งานกัน โดยในบทความนี้ จะแนะนำการใช้งาน Screengrab เพื่อทำการ capture หน้าจอการทำงานของ Android app มาดูกันเลย

Read More…

Espresso :: UI Test สำหรับ Android application

หลังจากที่เขียนอธิบายเรื่อง การเขียน Unit test สำหรับ Android application ไปแล้ว ครั้งนี้เรามาดู การทดสอบในระดับที่สูงขึ้นมา ซึ่งถ้าไปดูเรื่องการทดสอบ มันจะมีเยอะมากๆ โดยในตอนนี้ขอแนะนำ UI Test ก็แล้วกัน มันชื่อว่า Espresso มาดูกันว่า มันคืออะไร และ ใช้งานอย่างไร

Read More…