天天看點

手機軟體測試總結

一個合格的手機軟體測試工程師要掌握的東西是很多很多的。在我個人了解中,一個合格的進階手機軟體測試工程師應該具有最基本的兩點知識:軟體測試理論知識和一定的開發技能。 

1. 軟體測試理論知識 

這個不用多說,軟體測試工程師必須要掌握的,軟體測試如何融入整個開發的流程,什麼時候介入,什麼時候結束,如何搭建測試環境,如何設計測試用例 (包括設計測試用例的方法,如:等價類劃分,邊界值法等),如何使用測試工具,還有測試領域專用的一些術語等等。 

2. 開發技能 

合格的進階軟體測試工程師,程式設計技能不可缺少。在手機測試中,比如自動化測試,完全可以開發工具來實作自動化測試。是以掌握一門紮實的程式設計語言,C或者C++還是非常重要的,能夠自己開發測試工具,也是一個進階手機軟體測試工程師應該具備的素質。我認為我們不應該隻是單純的發現bug,而應該從更深層次的去探究這個 bug的原因,甚至可以定位bug。 

另外從技能上講,面向不同的技術方向,像作業系統、網絡、通信等都要從專業上深入了解。這些是除去工作時間外必須去加強充電的部分。有這些做後盾,做起事來也會事半功倍。 

另外手機測試中應該注意的問題 

首先是正确性測試,正确性測試又可稱為功能性測試,我們首先就是要測試所有功能是否都已實作、正确、是否滿足需求規格說明。 

正确性測試還要考慮到使用者界面,軟體産品始終是關注軟體使用者——客戶的體驗,手機螢幕小,界面有限,是以手機軟體的使用者界面更需有一定的規範和标準:正确性、一緻性、直覺性、實用性、靈活性、舒适性便是最基本的标準。 

正确性一般比較明顯,比較容易發現,例如某個視窗沒有被完全顯示,文字沒有對齊,文字拼寫錯誤,密碼輸入時沒有以*的形式自動屏蔽等。 

一緻性包括軟體自身的一緻性以及手機作業系統或與其它軟體的一緻性,具體表現在使用的術語,字型是否一緻,界面的各參數風格是否前後一緻等。特别也要注意中英

文版本下界面風格是否一緻,是否有中英文混合的情況。 

直覺性要求軟體功能特性易懂、清晰,使用者界面布局合理,對操作的響應是否在使用者的預期中,如使用者做了非法操作後,界面是否有錯誤的提示資訊,提示資訊是否完整,是否明确,是否能讓使用者立即明白問題所在。 

實用性不是指軟體本身是否實用,而僅僅是指具體的某個特性是否實用,是否有助于使用者執行該軟體的功能,手機軟體是安裝在手機上的第三方軟體,手機不同于PC機,功能沒有PC機強大,在手機上實作的功能也不同于在PC機上的功能,是以功能不應複雜,無用的功能隻會增加程式的複雜度,産生不必要的軟體缺陷。但是個人覺得有些必要的功能還是一定要有的,如:随時可以退出應用程式這個功能還是很必要的,使用者進入多層之後,若想退出應用程式,但是又要一層一層傳回到最上一層才能退出時,也是一件很煩很頭疼的事。 

靈活性,按我個人現在的了解,具體表現在,如果多種狀态之間的切換,例如界面的不停切換,操作步驟的複雜,增加了程式設計的難度,可能也會降低軟體的可靠性,這時軟體的靈活性将會大打折扣。特别是在我們測試觸屏手機的時候,界面的切換經常會導緻一些界面卡住,亂碼,黑屏,當機的情況,是以我們在測帶有觸屏手機時,一定要注意到靈活性。 

舒适性主要強調界面美觀,色彩運用恰當,按鈕的立體感以及增加動感動畫等。例如顔色的搭配,有些背景色跟文字或圖檔的顔色搭配在模拟器可以較清晰的顯示出來,但是到了手機由于其分辨率問題就不那麼明顯了。顔色搭配要以清晰美觀為基礎,還要适當考慮使用者心理等問題。 

除了測試軟體的正确功能,及其更需要考慮一些異常的情況,異常的情況也分多種考慮,如下: 

1、容錯性測試 

容錯性測試是一種對抗性的測試過程。在這種測試中,把應用程式或系統置于異常條件下,例如輸入特殊字元或異常字元,具體可以通過輸入超過邊界值的字元(這也相當于用例設計方法中的邊界值分析法)看背景有沒有相應的容錯處理。手機用戶端界面會給出什麼樣的提示資訊。另外還要測試多個用戶端同時送出請求,測試背景的多線程處理能力,看能同時處理多少使用者的同時請求,平均響應時間是多少,是否在可接受範圍内。 

  2、測試應用程式中的一個功能正在執行過程中,同時另外一個事件或操作對該過

程進行幹擾。 

例如:運用程式運作時,切換程式到外部,做一些與運用程式相關的操作,再切換到應用程式中,檢視剛剛的操作是否對正在執行的運用程式有影響。另外來電,短信,電量不足等一些事件警告的出現也有可能導緻程式出錯,也要作出相應的處理。有些網絡程式由于設定了資料通訊時不處理來電,這時候最好能在低電量情況下測試,看是否做了恰當的處理。我們需要測試一下這些幹擾的沖突事件會不會導緻應用程式core,手機當機、花屏等嚴重的問題出現。 

3、我們一定要考慮到對手機存儲空間滿後的壓力測試。 

手機的記憶體空間資源是有限,不像PC機有着巨大的存儲空間,我們很容易做到手機存儲空間已滿,是以我們一定要考慮剩餘空間不足或存儲空間為零的情況下,應用軟體的運作是否正常?我們要在手機沒有存儲空間或達到最大的承載極限時,對手機軟體可編輯修改的子產品進行編輯修改,儲存之後,并對手機軟體進行任何操作測試,如果程式員不做相應的處理或者處理不好的話,很容易造成配置檔案讀寫錯誤或無法寫入,進而導緻手機軟體系統出現core掉或者手機出現當機、無法退出的情況。雖然手機本身在磁盤空間已滿的情況下也會出現不少問題,我們的應用程式也無法避免,但是我們一定要確定我們的程式不會出現core,程式無法退出,手機當機等這些嚴重情況出現。 

4、極限發散性測試 

我個人經常喜歡說成是暴力測試或壓力測試,我的做法是通過各種操作步驟或途徑、異常或非法執行,站在不正常的使用者角度,如快速按按鈕或快速劃屏、對某個功能做大量的重複性的操作等(如在登入過程中,不停的做登入和取消操作,不停地按幾十下幾百下),不把程式搞崩潰誓不罷休的暴力發散性測試,往往開發會狡辯與理論這是不正常的變态的測試,如果使用者做此操作出現了問題由使用者自己負責,确實世界上沒有十全十美的東西,任何東西都會有瑕疵,軟體也不例外,不可能做到零缺陷,我們不求做到最好,我們隻求做到更好,試想使用者的操作是多種多樣的,誰能確定使用者不會做到那些異常的非法的操作,我們不僅要確定正常功能實作的準确無誤,一定還要做到異常非法的功能也要處理的準确無誤,那樣才能降低軟體的缺陷率。通過我多次實踐,發現不少嚴重緻命的bug往往是由此操作導緻,個人認為這與開發人員在異常情況下考慮不充分有一定的關系。 

5、邊界值測試 

程式員會容易漏掉對邊界值的處理,通過我多個版本的測試經曆發現,每個版本都

會出現這種邊界值數組越界導緻程式core掉的緻命bug,曾經測試過手機界面顯示N個縮略圖檔的功能,顯示幾百張圖檔功能無誤,但是超過某個數字即幾千張之後,應用程式會立即出現一些緻命的錯誤;同時在删除清單界面的第一個或者末尾一個圖檔時,也出現了嚴重問題。是以我們不僅僅隻考慮到能編輯的文本框下邊界值的測試,還要考慮到其他一切盡可能輸入的情況。 

6、性能測試 

我們不僅要測試軟體功能的正确性,還要測試軟體的性能,軟體的運作速度,是否有延時,軟體的運作時間,長期的運作是否會增加對存儲空間的額外占用情況等。在軟體運作時,要懂得不定時的檢視資源的使用率,檢視cpu的占用情況,記憶體洩露會造

成程式随機的莫名其妙core、卡屏、手機當機的情況,而往往由記憶體洩露導緻的問

題,重新開機手機之後,問題不容易重制,并且再次記憶體洩露時,出現的現象也會不同,對我們測試重制問題來說是一個比較頭疼的事,是以不定時的檢視記憶體情況,檢視記憶體是否洩露,出現的不易重制的嚴重問題是否與記憶體洩露有關,其實也是一種定位問題的方法。 

  7、資料請求或傳輸等需時較多的過程要確定有提示界面,最好有動畫顯示資料在傳輸過程中,請使用者耐心等待。另外要注意在這個過程中對重複按鍵予以忽略,因為等待時間過長或響應遲鈍時,使用者趨向于重複按手機按鈕。曾經測試過删除某個檔案,檔案比較大,删除很慢,界面沒有任何反應,無法判斷是否在删除檔案,迫不及待的重新亂按手機其他鍵,導緻系統出現錯誤。