Screen Shot 2558-07-26 at 9.53.27 AM
หนึ่งในปัญหาที่เรามักพบในการพัฒนา Mobile application คือ
การขาดความเชื่อมโยงระหว่าง

  • Requirement
  • Development
  • QA/Testing

เนื่องจากเราทำทุกอย่างแบบ manual นั่นเอง
ส่งผลให้เกิดปัญหาต่างๆ ขึ้นมามากมาย
และจะมีปัญหาเยอะมาก ตามจำนวน feature และความซับซ้อนของระบบ

ดังนั้น จึงต้องการพวก Automation tool มาช่วยเหลือ
เพื่อเชื่อมโยงส่วนต่างๆ เข้าด้วยกัน

ในการทดสอบแบบอัตโนมัติ (Automated testing) นั้น

  • Unit testing สำหรับ algorithm และพฤติกรรมของภายใน (Internal quality)
  • UI testing สำหรับการทดสอบ function, feature ต่างๆ ในมุมมองของผู้ใช้งาน (External quality)

สำหรับ Android application นั้นมีเครื่องมือมากมายให้ใช้งาน
ซึ่งในส่วนของ UI testing หรือ Functional testing นั้นมีดังนี้

ใน blog นี้ขอแนะนำ Calabash
มาดูกันว่า มันคืออะไร ?
มีโครงสร้างการทำงานอย่างไร ?
และจะเริ่มต้นอย่างไร ?

Calabash คืออะไร ?

มันคือ เครื่องมือสำหรับทดสอบการทำงานของ Mobile application แบบอัตโนมัติ
โดยสนับสนุนทั้ง Android และ iOS application

รูปแบบของภาษาที่ใช้ในการเขียน คือ Cucumber
หรือรูปแบบของ Given-When-Then หรือ BDD style นั่นเอง

ทำการติดตั้ง Calabash กันหน่อย

ก่อนจะทำการติดตั้ง ต้องติดตั้ง Ruby + Gem ก่อนนะ
จากนั้นทำการติดตั้ง calabash ด้วยคำสั่ง

$gem install calabash-android

เพียงเท่านี้ก็สามารถติดตั้งเรียบร้อยแล้ว …
สามารถตรวจสอบผลการติดตั้ง ด้วยคำสั่ง

$calabash-android

แสดงผลการทำงานดังนี้

Screen Shot 2558-07-26 at 9.33.53 AM

โครงสร้างของ project ที่สร้างด้วย Calabash

ทำการสร้าง calabash project ด้วยคำสั่ง

$calabash-android gen

ซึ่ง calabash จะสร้าง file และ folder ขึ้นมาดังรูป
Screen Shot 2558-07-24 at 11.48.01 PM

คำอธิบาย
ส่วนแรกคือไฟล์นามสกุล feature สำหรับเขียน test script ในรูปแบบ Given-When-Then
ส่วนที่สอง คือ step_definitions ซึ่งเป็นไฟล์ที่เขียนด้วยภาษา Ruby ทำหน้าที่ mapping จาก feature มาทำงานต่อไป
ส่วนที่สาม คือ support เป็นการ configuration ต่างๆ ของ calabash ซึ่งเราไม่จำเป็นต้องไปแก้ไขอะไร

มาดูสถาปัตยกรรมของ Calabash กันนิดหน่อย

การทำงานประกอบไปด้วย 2 ส่วน คือ

  1. Server
  2. Client

หรือทำงานแบบ Client-Server นั่นเอง

ในส่วนของ server นั่นคือ Ruby application
ทำหน้าที่แปล และ ทำงานตามสิ่งที่เขียนใน feature และ step definitions

แสดงดังรูป
Screen Shot 2558-07-26 at 12.19.22 AM

เมื่อทุกอย่างพร้อม ก็เริ่มทำการสั่งให้ calabash ทำงาน

ใช้คำสั่ง

$calabash-android run

เพียงเท่านี้คุณก็สามารถเริ่มต้นใช้ Calabash สำหรับทดสอบ Android application ได้แล้ว

สวัสดี Calabash …