跨平台測試的技巧淺談

此次主題是「跨平台測試」,因為我們發現很多 bug 都是在跨平台間運作下產生的。
希望透過閱讀「跨平台測試」相關的文章,提升我們針對跨平台測試的概念,讓測試更完整。
以下會簡單介紹跨平台測試的定義、技巧、和工具。

1. 跨平台測試的定義:
跨平台測試就是指針對不同平台間的交互作用做測試。
「跨平台」通常是指「異質」的平台,像是 OS 有 Windows、Windows Phone、Mac OS、iOS、Android…… 等等,不過廣義來說,「跨平台」不侷限於 OS,像是有使用不同架構的後端系統,也是屬於跨平台。

2. 跨平台測試的技巧:
(1) 當已經架好跨平台的測試,最好立即導入測試。
(2) 每天最好至少一次在所有平台上運行一次測試,如果可以的話,也許每個 DailyBuild 後都測試一次。
(3) 如果可以的話,使用跨平台的腳本語言來驅動的自動化測試腳本,並適用於所有平台使用完全相同的腳本。 如果這是不可能的,找到一些其他的方式,以保證相同的測試正在到處跑。
例:Appium(註 1)
(4) 如果測試有失敗的話,就要比較其他平台同樣的測試是否也是一樣。如果一個平台的測試是 Pass,另一個平台的測試是 fail,那麼代表可能測試程式的 code 的可攜性(portable)不夠完全,或者是測試 fail 的 那個平台的確有問題 。
(5) 每當添加新的測試,應立即運行此測試在所有平台上(但是在所有的環境中,這不一定是可行的​​)。
(6) 不要在跨平台的元件使用 Mock object(註 2),我們需要運行真實的系統和元件來測試,以確保可移植性(portability)和互操作性(interoperability)。 另外盡量不要使用模擬器來做測試。
(7) 針對一些例行的設置動作可以使用自動化腳本,以增快速度。
例:安裝&反安裝 SUT(System Under Test),可以使用 silent mode 來做。
(8) 針對硬體設備有限又想要測試多個平台,可以使用一套軟體支援好幾種作業系統:
利用 DRBL 將各種 OS 版本備份在 server 上,用網路開機,一次裝一種 image,做完測試後重新開機,利用網路再裝另一種 image ,再做測試⋯⋯
優點:一台電腦可以依序測很多個平台,節省硬體開支。
缺點:如果只有一台電腦/裝置的話,無法平行處理各個平台的測試。

3. 跨平台測試的工具:
(1) 自動化功能測試框架工具:Robot Framework(註 3)
特性:有彈性,其測試案例可以藉由修改『變數』的方式,用來測試不同的資料庫。
(2) Web 界面 GUI 自動化測試工具:Selenium(註 4)
(3) 每日自動下載最新的安裝程式與測試程式:Apache Ant(註 5)是一個將軟體編譯、測試、部署等步驟聯繫在一起加以自動化的一個工具,大多用於Java環境中的軟體開發。

4. 跨平台測試的心得:
關於對於跨平台測試是使用實體機或是模擬器來做測試的部分,因為目前接觸所測試的產品跟硬體比較沒有相關,所以相關 OS 版本下的自動化測試可使用 VM 來取代,如此是較經濟的做法。例:Windows、Mac 等等。
不過對於 Android 平台,因為各品牌裝置廠商對於 Android 開發都會做一些或深或淺的客制化,所以 Android 平台最好還是用多牌&多種 OS 版本的實機來測試比較保險。

*註解:
註 1:Appium:它讓你可以透過同一套 API (Selenium 2/WebDriver API),操控 Android、iOS 跟 Firefox OS 設備(或模擬器),藉以實現手機的自動化測試。
在電梯裡遇見雙胞胎-Appium
註 2:Mock object:Mock object 是一種產生出來的一個空的假物件,用以模仿真物件的行為。
註 3:Robot Framework
註 4:Selenium:Web UI 測試的好幫手
註 5:Apache Ant:是一個將軟體編譯、測試、部署等步驟聯繫在一起加以自動化的一個工具,大多用於Java環境中的軟體開發。

*參考文章:
(1) 土炮跨平台自動化功能測試環境
(2) Cross Platform Testing

廣告

4 thoughts on “跨平台測試的技巧淺談

    1. 感謝指教,已將 “Mock” 改成使用 “Mock object"、將 “Robot" 改成使用 “Robot Framework" 稱呼。

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s