เนื่องจากทีมพัฒนา Android app ส่วนใหญ่นั้น
ไม่นิยมทำการทดสอบแบบอัตโนมัติเท่าไร !!
แต่นิยมทดสอบแบบอัตโนมือกันมากกว่า
หรือทดสอบแบบ manual นั่นเอง
ดังนั้น จึงขอลองทำการ review app หน่อยว่า
ถ้านำมาทดสอบแบบอัตโนมัติแล้ว
มันจะยาก หรือ ง่าย ?
โดย app แรกที่ขอทดสอบ คือ StoryLog
มาดูรายละเอียดแบบ X-Ray แต่ละหน้ากันไปเลย
เป็นข้อมูลเชิงเทคนิคในฝั่ง Layout ของระบบ
โดยใช้งานผ่าน library ชื่อว่า Calabash
หน้าแรกของระบบ
ประกอบไปด้วย element จำนวน 17 element
มี element ที่ผู้ใช้งานสามารถกดได้ คือ
- btn_facebook สำหรับ Login ด้วย facebook account
- btn_learn_more สำหรับดูรายละเอียดของระบบ
- btn_sign_in สำหรับ sign in เข้าระบบ
โดยที่ element ทั้ง 3 element นั้นทำการตั้งชื่อ id
ด้วยรูปแบบ Snake case
ซึ่งน่าจะเป็นข้อตกลงของทีมพัฒนานั่นเอง !!
ส่วน btn น่าจะย่อมาจาก Button
หน้าที่สอง ทำการ sign in เข้าระบบ
จะอยู่ในหน้าเดิม แต่จะเพิ่มมาอีก 2 element คือ
- edt_email แต่หน้าจอแสดงว่า USERNAME !!
- edt_password สำหรับกรอกข้อมูล password
ส่วน edt น่าจะย่อมาจาก Edit Text
ดังนั้นจึงลองทำการ sign in เขาระบบหน่อยสิ
หน้าที่สาม STORIES FOR YOU
มี element ทั้งหมด 39 element
ส่วนหลัก ๆ ที่น่าสนใจ คือ
- btn_create_story สำหรับการสร้าง story ใหม่
- btn_search สำหรับค้นหา story ที่ต้องการ
- ใช้งาน SwipeRefreshLayout สำหรับการ load data
- ส่วนหลักในการแสดงผลคือ List View ชื่อว่า list_view
- โดยแต่ละแถวใน List View มี element ต่าง ๆ ดังนี้
- cover_image
- img_story_badge
- img_icon_category
- txt_title
- txt_content
- author_container ประกอบไปด้วย
- profile_image
- txt__author_name ทำไมมี underscore 2 ตัวติดกันนะ !!
- txt_author_role
- txt_publish_time
- txt_recommended
img น่าจะย่อมาจาก Image
txt น่าจะย่อมาจาก TextView
หน้าที่สี่ MY PROFILE
มี element ทั้งหมด 56 element
เยอะกว่าหน้าอื่น ๆ เนื่องจากในหน้านี้มีเมนูให้เลือกเยอะนั่นเอง
ซึ่งแสดงใน List View
ดังนั้น การทดสอบจึงต้องใช้ข้อมูล
ที่อยู่ใน property text ของแต่ละ element ใน listview
หน้าที่ห้า Create Story
มี element ทั้งหมด 20 element
โดยมี element ที่น่าสนใจดังนี้
- cover_image
- upload_cover_button
- editor เป็นจุดที่น่าสนใจของหน้านี้ ซึ่งพัฒนา editor การเขียน story ขึ้นมาเองชื่อว่า co.storylog.storylog.modules.writer.StoryEditor ซึ่งเป็น Web View นั่นเอง
- เมื่อเขียนแล้วจะมีอีก 3 element คือ
- toggle_bold สำหรับตัวอักษรหนา
- toggle_quote สำหรับการ quote
- toggle_hr สำหรับใส่เส้นบรรทัด
ต้องทำการ tab ที่ editor ก่อน จึงจะเห็น element ย่อย ๆ ของ editor
ซึ่งการทดสอบส่วนนี้ไม่ง่ายเลย
แถมต้องใส่ข้อมูล 300 ตัวอักษรขึ้นไป
ดังนั้น สำหรับ mobile แล้ว ไม่ใช่เรื่องที่ง่ายเลยใช่ไหมนะ ??
หน้าถัดไปเมื่อกดปุ่ม NEXT แล้ว
จะมี element ทั้งหมด 38 element
สำหรับใส่ข้อมูล tag, categoey และ ลิขสิทธิ์ ดังนี้
- btn_publish สำหรับการ publish story
- tag_box สำหรับใส่ tag
- story_cat_spinner ตรง cat น่าจะเป็น category
- category_type
- category_name
- new_book_panel
- new_book_editText เป็นรูปแบบการตั้งชื่อที่ไม่เข้าพวก
- cc_label, first_cc_type, second_cc_type เกี่ยวกับการกำหนดลิขสิทธิ์
- cc_desc ตรง desc น่าจะเป็น description
- post_to_fb_tv ตรง tv น่าจะย่อมาจาก Text View
- post_to_fb_toggle สำหรับการ post ไปยัง facebook หรือไม่
โดยรวมแล้ว
- รูปแบบการตั้งชื่อมีมาตรฐาน และ ข้อตกลงร่วมกันดี ถึงแม้จะมีผิดไปบ้าง
- ถ้าใช้ชื่อเต็ม ๆ ไปเลยจะดีกว่า เช่น button ,textview, edittext หรือ textfield และ image เป็นต้น
- App สวย เรียบ
- App ใช้งานง่าย ลื่นดี
- App นี้สามารถทำการทดสอบแบบอัตโนมัติได้ง่ายมาก ยกเว้นส่วนของ Editor
VDO ของการทดสอบ App แบบอัตโนมัติ
- การ sign in เข้าใช้ระบบ
- การสร้าง story
- การดูข้อมูลในแต่ละส่วน
- การ sign out ออกจากระบบ
จากการทดสอบเขียน Automated test ของ app นี้พบปัญหาดังนี้
- การทดสอบการแสดงผลด้วย Tab ไม่ง่ายเท่าไร แต่ใช้งานง่ายดี
- ไม่สามารถกดปุ่ม logout ได้ในบางครั้ง เนื่องจากเจอ HTTP 401 บ่อยมาก ( Unauthorized )
- ในส่วนของ editor สำหรับการเขียน story จะทดสอบยากพอควร เนื่องจากเป็น Web View
- ในส่วนของ editor นั้น ผมจินตนาการถึงความสนุกในการทดสอบจริง ๆ !!
- พบว่า app ทำการ print log ต่าง ๆ ออกมาทาง console ซึ่งน่าจะปิดไว้ดีกว่า
สุดท้ายนี้
ขออภัยอย่างสุดซึ้ง กับข้อมูลทดสอบครับที่ผมสร้างขึ้นมาครับ [ลบข้อมูลทดสอบไปแล้ว]
และการ review ครั้งนี้ ทำเพื่อดูว่า StoryLog app นั้น
สามารถนำไปสร้าง Automated Testing ได้ง่าย หรือ ยากเท่านั้น