2015年3月5日 星期四

MonkeyTalk 說什麼?

哈囉~ 大家好!!!

經過漫長的年假與和平紀念日的連假後,不知道大家都收心了沒有?
哈~ 依華人的傳統,只要湯圓還沒吃、元宵節還沒過,其實大家都應該還沉浸在年節的氣氛中吧!

MonkeyTalk = "猴子說" What the...... talking about. 如果照字面上來翻譯,這名字好怪喔!
所以還是用英文比較好,接著就來跟大家聊聊 "MonkeyTalk" !!!


Q1:它是如何工作的?

MonkeyTalk 其實是一套專門測試行動裝置的測試工具,不管是 iOS 或 Android apps 都有支援。它的平台主要是由3個部分所主成:MonkeyTalk IDE、MonkeyTalk Agent 還有 MonkeyTalk Scripts。


  • MonkeyTalk IDE - 系統應用程式,用來錄製、播放和開發測試程式。
  • MonkeyTalk Agent - 程式庫需加入在 "被測試 app" 以驅動測試。
  • MonkeyTalk Script - 美觀、可理解、可被維護的測試程式。

  • 第一步需要先將 Agent 植入在 iOS (MonkeyTalk Agent for iOS Installation Guide) 或 Android (MonkeyTalk Agent for Android Installation Guide) 的 app 中,接著用 IDE 錄製和播放測試腳本。也可以參考原始文件 MonkeyTalk Getting Started 就可以順利的完成測試,之後還會有較詳細的說明。

    Q2:它可以在實體主機上測試嗎? 或是只能在虛擬器 Simulator or Emulator 上執行而已?

    Both! 兩者都可以。MonkeyTalk 可以在任何 iOS 或 Android 的實體主機和虛擬器上執行測試。除此之外,還可以在有線和無線的網路環境上測試。

    Q3:需要將 iPhone 越獄 Jailbreak 或是 Root Android 系統嗎?

    Absolutely not. 當然不用啦!用MonkeyTalk測試 app,只需要將 Agent 安裝植入到 "被測試app" 即可。

    Q4:是免費的嗎? Free???

    Yes. MonkeyTalk 在開放原碼的架構下,是免費下載和使用的。

    Q5:是開放原碼嗎? Open Source???

    Yes. MonkeyTalk 是在開放原碼的框架下 under GNU Affero General Public License v3 (AGPL v3) open source license

    Q6:是跨平台嗎? 可以在 iOS錄製 Android播放,或是 Android錄製 iOS播放腳本嗎?

    Yes. 如果在 iOS 或是 Android 是用相同的邏輯來設計 apps,就可以用不同的 OS 做錄製或撥放腳本。 因為 MonkeyTalk 是使用高階的錄製方法,所以跨平台錄製和播放腳本,只要用相同邏輯並不需要用相同的 UI 設計。例如使用相同的 tabs,將 iOS 的UI 設計在頁頭,Android 的 UI 設計在頁尾,當用不同 OS 錄製相同 tabs 時是會錄到 TabBar 和 Select,所以在不同 OS 測試時就會正確的對應到。 

    Q7:可以測試 app 不需要用到程式碼嗎?

    No. 因為要安裝 MonkeyTalk Agent 就必需植入程式碼才能測試。一旦由程式設計師或是整合工具植入套件後,以後在做測試時都不再需要接觸到任何的程式碼。

    Q8:可以測試第3方 apps 像是攝影機 app、瀏覽器等等...?

    No. 因為用 MonkeyTalk 測試需要植入 Agent 的程式碼做驅動,所以無法測試第3方 apps。

    Q9:可以測試 HTML5 的 web apps 嗎?

    Yes. MonkeyTalk 1.0.40 的 Agents 有支援原生的 iOS 和 Android、混合型與 mobile web 包含 HTML5 的 apps,可以使用官方所提供的 MTBrowser 做應用測試。

    Q10:可以測試桌上系統的 apps 嗎? Windows Phone7? BlackBerry? Flex Mobile?

    No. MonkeyTalk 1.0.10 才支援 iOS 和 Android 的 Agent。據官方說法以後會慢慢加其他的 Agents 進來。

    Q11:可以測試移動裝置的遊戲嗎?

    It depends. 視情況而定。因為大部份的遊戲都是使用亂數產生器,這將對固定的功能性測試會產生些難度。不過官方表示,會在未來整合一些較主流的 game engines 和亂數產生器以達到較完善的測試。目前還是可以進行非亂數產生的標準 UI 元件做測試的。

    Q12:可以測試平板電腦嗎? 還是只能測試手機而已?

    Both! MonkeyTalk 可以在全部 iOS 的裝置上 (iPhone, iPad, iPod Touch) 執行 apps 測試,及大部分的 Android 裝置也沒問題。

    Q13:可以全自動化測試嗎? 可以在 CI 上執行嗎? 可以在 IDE 以外執行測試嗎? 可以在命令列用指令執行測試嗎?

    Yes. MonkeyTalk 可以用 Ant (MonkeyTalk Ant) 或是 Java Commandline Runner (MonkeyTalk Runner) 執行指令做測試。也可以成功的運用 Hudson/Jenkins 當 CI server 做內部測試。幾乎全部的全自動化測試都是使用 Simulator/Emulator 做的,因為這可以保證每次的測試都是從頭開始執行。

    Q14:可以 app store 發佈 MonkeyTalk-enabled app 嗎?

    Maybe. 或許可以,但是官方並不建議發佈到 app store。但是官方建議可以製造開發用的 MonkeyTalk-enabled app 安裝在 Agent上做使用。

    Q15:可以測試嵌入式的網頁嗎? 像是 iOS 的 UIWebView 或是 Android 的 WebView?

    Yes. MonkeyTalk Beta4版,就可以支援嵌入式網頁 WebView 的測試。不過目前 Beta5版,就只能撥放,還不能錄製 WebView 的測試腳本。

    相信經過上面15個 Q&A 的說明,對於 MonkeyTalk 應該會有比較初步的認識,以後我們再針對實作部份做較詳細的介紹。

    就先介紹到這裡了,也祝福大家今天 "元宵節快樂" ~掰掰囉!!!

    ~ See you ~

    參考出處:

    沒有留言:

    張貼留言