手機軟體的測試主要有哪些方面去測試,性能測試用什麼去測試好?


有很多方面需要考慮到,我列幾點有明顯特徵的(我這裡特指跟網路有交互的移動互聯網應用,不是那種單機版的應用):

  • 功能測試:手機軟體的基本功能。倒不一定完全由測試人員來完全執行,但卻是所有測試中最重要的,需要測試人員做很好的測試策略和職責劃分。

  • 穩定性測試:大多數手機應用是需要保證能夠穩定運行一定時間的(尤其是對於一些記事類應用),而且在應用的運行狀態發生切換後需要繼續保持當前的狀態,不出現閃退。
  • 性能測試:這部分分為兩個方面,一部分是後台服務的性能測試(API的響應時間和響應報文大小),一部分是應用自身的性能情況(佔用CPU、內存、I/O、電量情況,以及頁面到頁面之間的切換速度,如果是遊戲或動畫,還要保證能夠在一定的幀率以上)。
  • 安全測試:關鍵的機密數據連接有沒有走加密連接;本地資料庫有沒有做加密處理,是否會被其他惡意應用讀取;後台服務的介面是否安全,會不會受SQL注入的影響;應用有沒有做混淆,會不會被逆向以及會不會在渠道方被修改重新簽名掛馬;敏感數據是否存在了SD Card上等等。
  • 地理位置定位測試:大多數業務軟體(電商類)都支持獲取用戶的地理位置信息,方便做一些本地業務的定製(尤其是對於O2O行業),至少需要考慮到三方面:1. 城市是否能準確定位;2. 定位位置精度是否符合要求;3. 地理位置名稱解析過程無誤。
  • 應用升級兼容性測試:需要保證應用能夠在升級或跨版本升級後一些關鍵數據得以保留,而不必用戶重新設置,諸如用戶賬戶認證信息、亮度設置、用於標示設備的UUID和一些關鍵的應用功能開關設置等等。
  • 設備兼容性測試:隨著Android設備的快速分化以及iOS設備的緩慢分化,應用需要適配在不同配置的硬體平台上(不同的CPU體系結構、不同的RAM配置、不同的Flash存儲、不同的感測器配置、不同的網路模式等等),同時還要兼顧不同的OS版本,所以需要很大的精力放在系統兼容性和設備兼容性測試上。
  • 耦合應用測試:對於今天的移動應用,「孤島」模式的應用已經不復存在。大多數應用需要跟其他應用進行交互,從而達到「社交化」或「分享」以及「支付」的功能,這樣,它在運行時跟其他軟體的交互就存在一定的不確定性,這時如果應用有版本升級,我們需要關注升級後的耦合應用跟我們的應用之間的交互是否還依舊有效。
  • PUSH跳轉測試:現今的移動應用同樣還存在通過推送服務來讓用戶到達特定頁面的特徵。這樣我們需要對PUSH服務能否到達特定頁面並正確展示特定頁面做測試。
  • 統計上報測試:對於大多數應用來說,收集一些用戶數據有助於他們對用戶行為作出分析,從而對比是不是一些新功能的加入能提高用戶的活躍度或轉化率。這些信息都需要一定的上報方案才能獲取、入庫和分析。所以對於QA來說,這部分工作並不弱於一般功能測試。

---------------------------------------------

看到 @孟雙雙 補充說的網路環境,我再補充一下網路相關的。網路方面可以重點關注三類測試:

  1. 功能測試(用戶體驗方面)。在有些2G/3G網路上請求延遲會比較大,建立連接速度慢,以及不斷進行大量的分散請求也會導致功耗增大、反覆建立連接導致完成所有請求/響應時間長,這些都需要關注到。同時,應用內提供一套支持節約流量的使用模式也是一種可取的途徑。另外,應用自身也可以考慮加上一定的離線工作模式,如將一些關鍵數據在WiFi連接時或有網時進行預取。參考豆瓣電台離線模式或蝦米的歌單離線收聽。不過此類測試可以通過一些工具來模擬網路延遲大或是丟包嚴重的情況,用2G/3G網路直接測試的環境構造成本會比較大。

  2. 適當的性能測試。功能測試已經能發現很多用戶體驗方面的問題,但這是大概的。如果要特別精細地定位問題瓶頸,需要通過性能測試詳細分析延遲出現在哪裡,是在建立連接的過程還是服務端響應的過程,或者是應用本地處理返回的數據上。

  3. 由於運營商在2G/3G網路環境上的複雜配置,很多情況下應用到服務端的連接會出現各種各樣的怪象,導致用戶無法在操作應用端時成功將請求發往服務端。這部分無法直接通過測試來保證(除非你**真的**有足夠的資源可以做好眾測)。建議跟運維組聯繫部署或租用全國範圍內的電信、聯通、移動網路監控(監控到關鍵域名下URL的響應)。


前半個問題:手機軟體的測試主要有哪些方面去測試?

請參見:如何做好app的測試工作? - 嚴路的回答

後半個問題:性能測試用什麼去測試好?

請參見這篇文章:手游如何做性能測試?

一、 什麼是App性能測試

性能(performance):是系統實現其功能的能力。例如,響應時間、吞吐能力、事務處理數。

性能測試,是指在特定負載情況下,確定系統的響應速度和穩定性的表現。它也可以研究、測量、驗證系統的其他特徵,比如可擴展性、可靠性和資源使用率。通俗的講:通過模擬生產運行的業務壓力量和使用場景組合,測試系統的性能是否滿足生成性能要求,即在特定的運行條件下驗證系統的能力狀況。

按App構成特點,將性能測試分為客戶端性能、伺服器性能兩大塊。

二、 性能測試的關鍵指標

客戶端性能的關鍵指標有:

CPU佔用率、內存佔用率、流量耗用量、FPS(每秒傳輸幀數) (見下圖)

伺服器端性能的關鍵指標有:

響應時間、並發用戶數、吞吐量等;

三、 如何做性能測試

1. 明確測試目標;了解性能測試需求;

2. 編寫性能測試計劃;

3. 分析性能測試需求;

4. 編寫性能測試方案、設計測試場景;

5. 相關資源準備(人力資源、硬體資源、軟體資源);

6. 測試程序開發;腳本維護、測試數據準備、測試監控準備;

7. 執行性能測試並收集測試結果;

8. 分析結果;

9. 系統調優及再測試;

四、 性能測試五大誤區

? 誤區 1:性能測試不是手游測試的主要矛盾,兼容性才是

開發者過高的預估了兼容性測試的重要性,而過低忽略性能測試。其實很多問題的原因就是性能導致的,例如「遊戲玩到一半,突然來了個電話,再返回時遊戲界面崩潰」、或者「在你好不容易在手機上打了一大段字,正要發送時,來了條簡訊,而記事軟體已經崩潰,辛辛苦苦編輯的內容早就沒了」 這類問題非常容易引起玩家的反感,造成流失。

? 誤區 2:性能測試要像功能測試一樣,覆蓋到所有功能

性能測試的主要目的是為了系統調優。不可能對所有的系統功能都進行性能測試。在測試設計時需要結合當時的實際系統,先分析軟體可能存在的瓶頸,此時可依據80/20 原則分析:對系統資源的利用、數據大量傳輸、數據轉換、用戶使用頻率、邏輯複雜度等進行分析,選擇要執行的功能和場景,再依此制定性能測試的方案。

? 誤區 3:做性能測試主要就是測試工具的使用

我做不好性能測試,是因為對測試工具不熟悉;測試工具可以自動生成我所需要的報表;依靠性能測試工具就能準確定位系統頸;測試工具在測試中只起到輔助性作用。而測試方案、測試場景的分析、問題的定位這才是性能測試的關鍵。不要期望測試工具能夠生成你想要的所有東西(報表、瓶頸分析),工具只能近可能多的提供給我們分析的依據。

? 誤區 4:提高一下硬體配置就可以提高性能了,因此性能測試不重要

隨著軟體規模的擴大,提高硬體配置只是解決性能問題的一個基本手段。因為如果軟體自身存在性能問題,再多的資源可能也不夠用,例如:內存泄漏問題,隨著時間的增加,內存終究會被耗盡,最後導致系統崩潰;資料庫鏈接數等配置信息、資料庫死鎖是和硬體很難掛鉤的;演算法邏輯問題導致程序緩慢。即使要提高已經配置,也要首先用性能測試的方式得出哪些硬體可能存在瓶頸。

? 誤區 5:隨便找個環境下進行一下性能測試就可以了

做性能問題分析可以在類生產環境上進行,配置可以有些差別,一般性能測試還是在類生產環境進行,原因有兩個:1)性能測試要儘可能早的完成,提早發現問題並整改;2)在生產環境進行測試可能會造成臟數據。

五、 WeTest性能測試

提供android版本和雲端版本2種性能測試方案,這裡著重介紹下本地版本。使用3步即可:

1) 打開WeTest騰訊質量開放平台 下載WeTest APP,並安裝(手機需越獄或Root);

2) 運行手機上的WeTest APP,選擇手游後點「開始測試」;

3) 上傳並查看報告

結束測試後,打開WeTestAPP點擊「上傳」按鈕。

登錄WeTest騰訊質量開放平台點擊「我的主頁」裡面,左側的「手游測試報告」,在頁面中就會出現「性能測試」結果報告,點擊查看,就可以查看完整的測試報告;

彩蛋&>&>沒有這些工具前,我們是怎麼測試的?

這裡分享一個案例。測試人員使用組合式的方式,分別從不同的工具上採集核心數據,並且數據不全,也不專業。

Wimat負責CPU部分,而360負責流量採集部分。其實Wimat使用方式如下:

1)勾選所要監控的對象並設置好監控時間後,點擊開始,WiMAT會在後台啟動一個服務,由這個服務

監控各項指數的變化並寫到結果文件里;

2)這時候可以打開或切換到要測試的應用程序,運行一些測試用例;

3)結束後切換回WiMAT界面,點擊停止結束監控,WiMAT會告訴你結果文件的存儲位置

360手機衛士對流量監測的使用方法如下:

1)進入安全保護tab頁,選擇流量監控;

2)進入後再切換到統計排行tab頁;


依次解答樓主的問題,相對濃縮簡介的回答:

一、手機軟體主要測試哪方面?

  • 兼容性測試
  • 性能測試(PCU、TPS、響應時間、CPU、內存、磁碟IO、網卡負載等)
  • 介面測試
  • 場景測試
  • 容量測試
  • 穩定性測試
  • 安全測試;

二、針對性能方面還需要測試(包含了手游)

  1. FPS、CPU、內存、流量 等基礎性能數據
  2. Drawcall、三角形數量等渲染數據
  3. Unity資源:展示紋理、網格、動畫、音頻資等源
  4. MONO內存分配、內存泄漏等

三、那性能測試用什麼去測試好?

針對第一點中提到的那些測試項目,我們整合了一系列的性能測試工具供外部的用戶使用:

客戶端性能測試:http://wetest.qq.com/product/cube

壓測大師:https://wetest.qq.com/gaps

APM客戶端性能線上監控:http://wetest.qq.com/cube/Apm

相信完全能夠滿足樓主的性能測試需求,目前工具免費開放中,歡迎體驗!


有人把手機端、web端都叫做前端,我覺得是有道理的,手機端和web端都是負責數據的展示,只是展示的平台不一樣,手機端在不同的OS上展現,web端在不同的瀏覽器。

不同的平台就有不同的技術棧,測web端時我們要掌握HTML/HTML5、JS、CSS,對應的我們在測試android就要求掌握java,測試iOS就要掌握swift和OC。

在有這些前提下,我們再來回答題主的問題,手機端要測什麼?答案是我們在web端要測的,在手機端一樣要測。

性能測試用什麼工具?拋開伺服器端的性能,只說APP的性能,先說性能有哪些指標,CPU/MEM/IO/電量使用率,還有個容易被忽略的是頁面流暢性也就是FPS。用哪個工具?iOS有自帶的調試工具可以明確顯示到每個方法使用的CPU和MEM,至於FPS自己寫兩行代碼就可以解決了。但是,重要的來了,性能測試中的數據收集並不是目的,而是手段,終極目標是性能優化,所以你看如果要做手機端的性能測試,先學好如何開發一款高性能的APP吧。


1、UI測試

2、功能測試

3、交叉事件測試

4、容量性測試

4.1 負載測試

4.2 強度測試

5、用戶手冊測試


手機app測試其實和網站測試一樣, 各種測試方法都可以實踐. 我們現在做的測試有:

1. 功能測試-包括兼容性測試和交互(系統和app)測試

2. 自動化測試-用appium框架

3. 雲測試平台-包含了功能, 性能等測試


這裡有一份非常完整的app測試資料及流程文檔,所有app測試的入門可以搞定:App測試全流程及完整資料合集

至於深入,就看自己悟了~


http://bbs.51testing.com/thread-1054486-1-1.html, 我寫的手機APP性能測試,可以看看


@武海峰 已經說的很全了,還有就是各種網路環境下的測試,保證在各種網路環境程序穩定。


性能測試一般我們測安裝時間、啟動時間、CPU佔用,內存佔用、流量、電量這幾個方面,國內有幾家在做的,我們用的是騰訊優測的,如果是缺幾個機型,可以用他的雲手機,缺哪個選哪個,可以實時看性能數據的變化;如果是想做全面機型覆蓋的性能測試,可以用他的自動化測試,基本這幾個數據指標都有了。


APP性能測試一般對以下幾個方面進行測試:

1.安裝和啟動時間;

2.CPU的佔用;

3.內存的佔用;

4.流量的耗用;

5.電量的耗用;

詳情:http://www.ineice.com


壓力測試,冒煙測試,Field testing


@武海峰老師說的很好啦,看了很受啟發,不過我覺得安裝卸載和界面也挺重要~~


最主要的還是FT測試


測試首先要抓住 系統的關鍵特徵

不同類型的應用,性能的關鍵特徵有相同點也有不同點

相同點,就是兼容性,需要在所以平台上面性能都要表現良好,特性①

特性①就會帶出一些關鍵特性,比如性能的自適應性,例如王者榮耀是可以調整畫面效果,視頻軟體是可以調整畫質的

不同點,

比如瀏覽器強調網頁載入速度,引擎的benchmark,緩存特性,後台非同步打開頁面可打開總數

遊戲強調幀率,幀率的穩定性

還有就是性能測試的通用模式

比如

涉及啟動類的,啟動時長,頁面跳轉時長

涉及網路的需要做過載測試,弱網無網故障注入,安全威脅建模,網路切換場景

涉及滑動類的有滑動幀率,過度繪製,流量消耗測試

內存有內存泄露和佔用

長時間使用的有電量和溫升

涉及大量用戶數據的還有用戶數據建模測試

有了目標再來談方法和工具,比如壓測工具,內存泄露檢測工具,strict mode, 過度繪製等等,甚至apm


索驥公司有免費提供100台手機用於研發測試的活動,大家可能會需要!


關注我的公眾號,學習手機專項測試

請微信搜索iTesting, 軟體測試全乾貨分享,你的軟體測試知識寶藏


補充2點:

1. 重點仍然在於同系統、其他應用的交互以及對不同機器的適配

2. 關於用戶體驗:需要深入了解當前產品以及競品後得出結論,敢於懷疑pm適時拋出自己觀點


@武海峰 說的已經很好了,我再補充一點,手機的app測試還要注意場景測試,包括來電來簡訊鬧鐘後台運行屏幕鎖定解鎖推送消息,還有和同類應用的交替使用


App的性能的測試其實說簡單也簡單複雜也很複雜的一件事情,黑白的App的代碼邏輯性測試,以及測試機型功能測試,以及實現效果的測試,機型解析度的測試..........一般版本升級後咋老版本的用戶量到達一定的量的時候才會出現的問題是米有辦法的版本的管理也是很麻煩的一件事情,近期我發下國內很多測試的平台都在做內測以及sdk Bug分析統計的事情,這個想當不錯,技術牛逼功能全面,穩定性強的應該算是蒲公英測試平台了,本人也是當接觸的覺得不錯,比較省事,哈哈哈


恩恩,是的,我也是想了解這個,還有保修的項目,就諮詢了一下,時間是第一年呢整機廠保,第二年開始終身保,保修項目呢①屏幕無顯示/錯字/漏劃②觸屏失靈/無法校準/錯位③不能正常登錄或通信④無振鈴等等很多。


推薦閱讀:

零基礎如何通過學習進入軟體測試行業?
軟體測試有哪些前景?
學習軟體測試,成為一名軟體測試員有什麼前途?
如何成為windows7的深度&專業&骨灰級使用者呢?
測試自動化的最高境界是?

TAG:測試 | 手機軟體 | 軟體測試 | 性能測試 |