Screen Shot 2558-09-15 at 9.24.35 PM
ได้มีโอกาสไปแบ่งปันความรู้เรื่อง Automated Testing สำหรับ Android application
เครื่องมือการทดสอบที่ได้แนะนำให้รู้จักคือ Calabash
ซึ่งใช้สำหรับทำ Automated Acceptance Test ของ mobile application
โดยมีคำถามต่าง ๆ ที่น่าสนใจ จากผู้เรียน ผู้ฟัง ดังนี้

1. Calabash มันทำการทดสอบอะไรได้บ้าง ?

สามารถทดสอบได้ทั้ง Native และ Hybrid app
ทั้งบน Android และ iOS

2. เราสามารถเขียน Script test ในรูปแบบไหน ?

Calabash นั้นมีพื้นฐานมาจาก Cucumber ซึ่งประกอบไปด้วย

  • Feature คือการอธิบายพฤติกรรมการใช้งานของผู้ใช้งาน หรือ WHAT
  • Step definition คือ การอธิบายขั้นตอนการทำงานของระบบงาน หรือ HOW

การเขียน feature ต่าง ๆ จะอยู่ในรูปแบบของภาษา Gherkin
ซึ่งเป็น Domain Specific Language (DSL)
มีเป้าหมายเพื่อทำให้ทุกคนเข้าใจตรงกัน
ที่สำคัญสนับสนุนภาษาไทยด้วยนะครับ
เขียนในรูปแบบ Given-When-Then

3. เอกสารของ Calabash for Android ล่ะ เป็นอย่างไร ?

เอกสารของ Calabash มันแย่นะ แต่ก็พอได้
เนื่องจากมันเป็น Open source project
ดังนั้น ถ้าอยากรู้และเข้าใจอะไร ก็ต้อง open source code กันเลยครับ
ซึ่งมันไม่ได้ยากอะไรนัก

ส่วนเอกสารที่ขอแนะนำคือ Introduction to Calabash ที่ Xamarin ครับ มันอ่านง่ายมาก ๆ

4. สามารถทดสอบ mobile app ผ่านอะไรได้บ้าง ?

สามารถทดสอบได้ทั้ง Emulator และ device จริง ๆ ครับ
ดังนั้น มันสบายมาก ๆ

5. ถ้าต้องการทดสอบระบบบน Device มากกว่า 1 เครื่อง ทำได้ไหม ?

โดยปกติแล้ว ถ้าเราไม่กำหนดค่าอะไรเลย
Calabash for Android ทำการทดสอบได้เพียง device เดียวเท่านั้น
ถ้ามีมากกว่า 1 device ต่อกับ computer ที่กำลังพัฒนา
จะเกิด error ขึ้นมาดังนี้

More than one device connected. Specify device serial using ADB_DEVICE_ARG (RuntimeError)

วิธีการแก้ไขปัญหามี 2 แนวทาง คือ
แนวทางที่ 1 ทำให้ device เหลือเพียงเครื่องเดียวสิ
แนวทางที่ 2 ให้ทำการกำหนด device ที่ต้องการผ่านตัวแปรระบบชื่อว่า ADB_DEVICE_ARG

โดย device สามารถดูได้ด้วยคำสั่ง
$adb devices

6. สามารถสร้างรายงานสำหรับผลการทำงานได้หรือไม่ ?

Calabash นั้นสามารถสร้างรายงานผลการทดสอบได้
โดยรายงานมีอยู่ 2 ชนิด คือ HTML และ JSON

ตัวอย่างการใช้งาน คือ
$calabash-android run app.apk —format html —output result.html
$calabash-android run app.apk —format json —output json

7. ใครกันล่ะที่ควรมาเขียน script ของ Calabash ?

เป็นคำถามสุด classic
ตอบได้เลยว่า ทุกคนที่เกี่ยวข้องกับการพัฒนาครับ
เช่น SA/BA, Developer, QA/Tester และ Stakeholder ต่าง ๆ ครับ
เพื่อทำให้เห็นมุมมองต่าง ๆ นั่นเอง

เขียนวันละ test case  เดี๋ยว 1 ปีก็ได้ 200  test case แล้วนะครับ !!!

ปิดท้ายด้วยสมการดี ๆ จากหนังสือ Agile Testing คือ

Story + Conversation + Examples = Requirement