ได้มีโอกาสไปแบ่งปันความรู้เรื่อง 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