Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

การทำ Stress testing สำหรับ Android app

$
0
0

ในการพัฒนา Android app นั้นการทดสอบนั้นสำคัญมาก ๆ ทั้ง Developer testing คือ การทดสอบในมุมมองของนักพัฒนา ทั้ง Customer testing คือ การทดสอบในมุมมองของลูกค้าหรือผู้ใช้งาน แต่สิ่งหนึ่งที่มักจะละเลยไปมากคือ Stress Testing ดังนั้นมาสรุปกันหน่อยว่าต้องทำอะไรบ้าง ?

เริ่มด้วย Android Monkey Testing

สำหรับจำลอง event ต่าง ๆ ขึ้นมาแบบ random ซึ่งสามารถใช้งานผ่าน command-line ได้ดังนี้ [code] $adb shell monkey -p YOUR_PACKAGE_NAME [/code]

เรื่องที่ 2 คือความเร็วและช้าของ Network ที่ใช้งาน

ในการกำหนดความเร็วความช้าของระบบ Network นั้น สามารถกำหนดผ่าน emulator ได้ง่าย ๆ เลย เพราะว่ามี feature นี้อยู่แล้ว แต่ถ้าต้องการทดสอบผ่าน device จริง ๆ การจำลองระบบ network มันก็ยากพอสมควร ดังนั้นสิ่งที่แนะนำก็คือ Debug Drawer ซึ่งสามารถกำหนดความเร็วของระบบ Network ใน App ของเราได้เลย ตัวอย่างเช่น แสดงการใช้งานดังรูป

เรื่องที่ 3 App จัดการกับ Error ต่าง ๆ ได้หรือไม่ ?

ตัวอย่างเช่นถ้ามี error ส่งกลับมาจาก HTTP แล้ว App ของเราสามารถจัดการหรือรับมือได้หรือไม่ ? เพื่อดูว่า error ที่เกิดขึ้นมา ถูกส่งไปยังระบบของเราหรือไม่ ? ตัวอย่างการกำหนด Error rate ผ่าน Debug Drawer

เรื่องที่ 4 การทำงานใน Offline mode

ตัวอย่างเช่นการปิดระบบ network และเปิด airplane mode เป็นต้น เป้าหมายที่เราต้องการคือ
  • App crash หรือไม่ ?
  • ทำการแสดงข้อความต่าง ๆ ให้ผู้ใช้งานหรือไม่ ?
  • Caching data ถูกจัดเก็บได้อย่างถูกต้องหรือไม่ ?
  • เมื่อกลับมาทำงานแบบ Online mode แล้ว App สามารถทำงานได้อย่างถูกต้องหรือไม่ ? เช่น clear cache หรือส่ง caching data ไปยังระบบกลาง เป็นต้น

เรื่องที่ 5 ทำการ Update app ดูบ้างสิ

ถ้า App มีการเก็บข้อมูลต่าง ๆ ไว้ทั้งใน device และ server แล้ว เช่น
  • การเปลี่ยนแปลงที่ SharedPreference
  • การเปลี่ยนแปลงที่ Database
  • การเปลี่ยนแปลงที่ API
สิ่งที่ต้องทำคือ ถ้าทำการ update app แล้ว ข้อมูลต่าง ๆ เหล่านั้นยังคงอยู่ ไม่ถูกลบไป และผู้ใช้งานสามารถใช้งาน App ต่อไปได้

เรื่องที่ 6 ทำการลบ App หรือ clear memory/data ใน background mode ดูสิ

App ส่วนมากมักจะทำการเก็บข้อมูล หรือ ทำงานหลายอย่างใน background mode ดังนั้นบางครั้งถ้าเราไปลบข้อมูลของ App ในขณะที่อยู่ใน background mode แล้วทำการเปิด App ขึ้นมาใช้ อาจจะทำให้ App crash ได้ เนื่องจากไม่ทำการตรวจสอบข้อมูลและ re-ininitial ข้อมูลใหม่ขึ้นมา ดังนั้นสามารถทดสอบได้ง่าย ๆ เช่น เข้าไป clear data/memory usage ใน device หรือทำการลบผ่าน command line ดังนี้ [code] $adb shell am kill YOUR_PACKAGE_NAME [/code] หรือเข้าไปกำหนดค่าไม่ให้ device เก็บ activity เมื่อผู้ใช้งานไม่ใช้งาน App นั้นแล้ว

ยังมีเรื่องอื่น ๆ อีกเช่น

  • การหมุนหน้าจอ (Orientiaion)
  • Multi-window mode และ TransactionTooLargeException สำหรับ Android N
  • เรื่องของการทดสอบพวก Unit testing, Integration testing, API testing และ UI testing ก็อย่าให้ขาดนะ !!
ขอให้สนุกกับการพัฒนา Android app ครับ Reference Websites https://android.jlelse.eu/stress-testing-android-apps-601311ebf590#.21g9b3twk

Viewing all articles
Browse latest Browse all 1997

Trending Articles