手機(jī)軟件測試經(jīng)驗總結(jié)
手機(jī)軟件測試總結(jié)
沙晶晶
一個合格的手機(jī)軟件測試工程師要掌握的東西是很多很多的。在我個人理解中,一個合格的高級手機(jī)軟件測試工程師應(yīng)該具有最基本的兩點知識:軟件測試?yán)碚撝R和一定的開發(fā)技能。
1.軟件測試?yán)碚撝R
這個不用多說,軟件測試工程師必須要掌握的,軟件測試如何融入整個開發(fā)的流程,什么時候介入,什么時候結(jié)束,如何搭建測試環(huán)境,如何設(shè)計測試用例(包括設(shè)計測試用例的方法,如:等價類劃分,邊界值法等),如何使用測試工具,還有測試領(lǐng)域?qū)S玫囊恍┬g(shù)語等等。
2.開發(fā)技能
合格的高級軟件測試工程師,編程技能不可缺少。在手機(jī)測試中,比如自動化測試,完全可以開發(fā)工具來實現(xiàn)自動化測試。所以掌握一門扎實的編程語言,C或者C++還是非常重要的,能夠自己開發(fā)測試工具,也是一個高級手機(jī)軟件測試工程師應(yīng)該具備的素質(zhì)。我認(rèn)為我們不應(yīng)該只是單純的發(fā)現(xiàn)bug,而應(yīng)該從更深層次的去探究這個bug的原因,甚至可以定位bug。
另外從技能上講,面向不同的技術(shù)方向,像操作系統(tǒng)、網(wǎng)絡(luò)、通信等都要從專業(yè)上深入了解。這些是除去工作時間外必須去加強(qiáng)充電的部分。有這些做后盾,做起事來也會事半功倍。
另外手機(jī)測試中應(yīng)該注意的問題
首先是正確性測試,正確性測試又可稱為功能性測試,我們首先就是要測試所有功能是否都已實現(xiàn)、正確、是否滿足需求規(guī)格說明。
正確性測試還要考慮到用戶界面,軟件產(chǎn)品始終是關(guān)注軟件使用者客戶的體驗,手機(jī)屏幕小,界面有限,所以手機(jī)軟件的用戶界面更需有一定的規(guī)范和標(biāo)準(zhǔn):正確性、一致性、直觀性、實用性、靈活性、舒適性便是最基本的標(biāo)準(zhǔn)。
正確性一般比較明顯,比較容易發(fā)現(xiàn),例如某個窗口沒有被完全顯示,文字沒有對齊,文字拼寫錯誤,密碼輸入時沒有以*的形式自動屏蔽等。
一致性包括軟件自身的一致性以及手機(jī)操作系統(tǒng)或與其它軟件的一致性,具體表現(xiàn)在使用的術(shù)語,字體是否一致,界面的各參數(shù)風(fēng)格是否前后一致等。特別也要注意中英文版本下界面風(fēng)格是否一致,是否有中英文混合的情況。
直觀性要求軟件功能特性易懂、清晰,用戶界面布局合理,對操作的響應(yīng)是否在用戶的預(yù)期中,如用戶做了非法操作后,界面是否有錯誤的提示信息,提示信息是否完整,是否明確,是否能讓用戶立即明白問題所在。
實用性不是指軟件本身是否實用,而僅僅是指具體的某個特性是否實用,是否有助于用戶執(zhí)行該軟件的功能,手機(jī)軟件是安裝在手機(jī)上的第三方軟件,手機(jī)不同于PC機(jī),功能沒有PC機(jī)強(qiáng)大,在手機(jī)上實現(xiàn)的功能也不同于在PC機(jī)上的功能,所以功能不應(yīng)復(fù)雜,無用的功能只會增加程序的復(fù)雜度,產(chǎn)生不必要的軟件缺陷。但是個人覺得有些必要的功能還是一定要有的,如:隨時可以退出應(yīng)用程序這個功能還是很必要的,用戶進(jìn)入多層之后,若想退出應(yīng)用程序,但是又要一層一層返回到最上一層才能退出時,也是一件很煩很頭疼的事。
靈活性,按我個人現(xiàn)在的理解,具體表現(xiàn)在,如果多種狀態(tài)之間的切換,例如界面的不停切換,操作步驟的復(fù)雜,增加了編程的難度,可能也會降低軟件的可靠性,這時軟件的靈活性將會大打折扣。特別是在我們測試觸屏手機(jī)的時候,界面的切換經(jīng)常會導(dǎo)致一些界面卡住,亂碼,黑屏,死機(jī)的情況,所以我們在測帶有觸屏手機(jī)時,一定要注意到靈活性。
舒適性主要強(qiáng)調(diào)界面美觀,色彩運用恰當(dāng),按鈕的立體感以及增加動感動畫等。例如顏色的搭配,有些背景色跟文字或圖片的顏色搭配在模擬器可以較清晰的顯示出來,但是到了手機(jī)由于其分辨率問題就不那么明顯了。顏色搭配要以清晰美觀為基礎(chǔ),還要適當(dāng)考慮用戶心理等問題。
除了測試軟件的正確功能,及其更需要考慮一些異常的情況,異常的情況也分多種考慮,如下:
1、容錯性測試
容錯性測試是一種對抗性的測試過程。在這種測試中,把應(yīng)用程序或系統(tǒng)置于異常條件下,例如輸入特殊字符或異常字符,具體可以通過輸入超過邊界值的字符(這也相當(dāng)于用例設(shè)計方法中的邊界值分析法)看后臺有沒有相應(yīng)的容錯處理。手機(jī)客戶端界面會給出什么樣的提示信息。另外還要測試多個客戶端同時發(fā)出請求,測試后臺的多線程處理能力,看能同時處理多少用戶的同時請求,平均響應(yīng)時間是多少,是否在可接受范圍內(nèi)。
2、測試應(yīng)用程序中的一個功能正在執(zhí)行過程中,同時另外一個事件或操作對該過程進(jìn)行干擾。
例如:運用程序運行時,切換程序到外部,做一些與運用程序相關(guān)的操作,再切換到應(yīng)用程序中,查看剛剛的操作是否對正在執(zhí)行的運用程序有影響。另外來電,短信,電量不足等一些事件警告的出現(xiàn)也有可能導(dǎo)致程序出錯,也要作出相應(yīng)的處理。有些網(wǎng)絡(luò)程序由于設(shè)置了數(shù)據(jù)通訊時不處理來電,這時候最好能在低電量情況下測試,看是否做了恰當(dāng)?shù)奶幚。我們需要測試一下這些干擾的沖突事件會不會導(dǎo)致應(yīng)用程序core,手機(jī)死機(jī)、花屏等嚴(yán)重的問題出現(xiàn)。
3、我們一定要考慮到對手機(jī)存儲空間滿后的壓力測試。
手機(jī)的內(nèi)存空間資源是有限,不像PC機(jī)有著巨大的存儲空間,我們很容易做到手機(jī)存儲空間已滿,所以我們一定要考慮剩余空間不足或存儲空間為零的情況下,應(yīng)用軟件的運行是否正常?我們要在手機(jī)沒有存儲空間或達(dá)到最大的承載極限時,對手機(jī)軟件可編輯修改的模塊進(jìn)行編輯修改,保存之后,并對手機(jī)軟件進(jìn)行任何操作測試,如果程序員不做相應(yīng)的處理或者處理不好的話,很容易造成配置文件讀寫錯誤或無法寫入,從而導(dǎo)致手機(jī)軟件系統(tǒng)出現(xiàn)core掉或者手機(jī)出現(xiàn)死機(jī)、無法退出的情況。雖然手機(jī)本身在磁盤空間已滿的情況下也會出現(xiàn)不少問題,我們的應(yīng)用程序也無法避免,但是我們一定要確保我們的程序不會出現(xiàn)core,程序無法退出,手機(jī)死機(jī)等這些嚴(yán)重情況出現(xiàn)。
4、極限發(fā)散性測試
我個人經(jīng)常喜歡說成是暴力測試或壓力測試,我的做法是通過各種操作步驟或途徑、異;蚍欠▓(zhí)行,站在不正常的用戶角度,如快速按按鈕或快速劃屏、對某個功能做大量的重復(fù)性的操作等(如在登錄過程中,不停的做登錄和取消操作,不停地按幾十下幾百下),不把程序搞崩潰誓不罷休的暴力發(fā)散性測試,往往開發(fā)會狡辯與理論這是不正常的變態(tài)的測試,如果用戶做此操作出現(xiàn)了問題由用戶自己負(fù)責(zé),確實世界上沒有十全十美的東西,任何東西都會有瑕疵,軟件也不例外,不可能做到零缺陷,我們不求做到最好,我們只求做到更好,試想用戶的操作是多種多樣的,誰能確保用戶不會做到那些異常的非法的操作,我們不僅要確保正常功能實現(xiàn)的準(zhǔn)確無誤,一定還要做到異常非法的功能也要處理的準(zhǔn)確無誤,那樣才能降低軟件的缺陷率。通過我多次實踐,發(fā)現(xiàn)不少嚴(yán)重致命的bug往往是由此操作導(dǎo)致,個人認(rèn)為這與開發(fā)人員在異常情況下考慮不充分有一定的關(guān)系。
5、邊界值測試
程序員會容易漏掉對邊界值的處理,通過我多個版本的測試經(jīng)歷發(fā)現(xiàn),每個版本都會出現(xiàn)這種邊界值數(shù)組越界導(dǎo)致程序core掉的致命bug,曾經(jīng)測試過手機(jī)界面顯示N個縮略圖片的功能,顯示幾百張圖片功能無誤,但是超過某個數(shù)字即幾千張之后,應(yīng)用程序會立即出現(xiàn)一些致命的錯誤;同時在刪除列表界面的第一個或者末尾一個圖片時,也出現(xiàn)了嚴(yán)重問題。所以我們不僅僅只考慮到能編輯的文本框下邊界值的測試,還要考慮到其他一切盡可能輸入的情況。
6、性能測試
我們不僅要測試軟件功能的正確性,還要測試軟件的性能,軟件的運行速度,是否有延時,軟件的運行時間,長期的運行是否會增加對存儲空間的額外占用情況等。在軟件運行時,要懂得不定時的查看資源的利用率,查看cpu的占用情況,內(nèi)存泄露會造
成程序隨機(jī)的莫名其妙core、卡屏、手機(jī)死機(jī)的情況,而往往由內(nèi)存泄露導(dǎo)致的問
題,重啟手機(jī)之后,問題不容易重現(xiàn),并且再次內(nèi)存泄露時,出現(xiàn)的現(xiàn)象也會不同,對我們測試重現(xiàn)問題來說是一個比較頭疼的事,所以不定時的查看內(nèi)存情況,查看內(nèi)存是否泄露,出現(xiàn)的不易重現(xiàn)的嚴(yán)重問題是否與內(nèi)存泄露有關(guān),其實也是一種定位問題的方法。
7、數(shù)據(jù)請求或傳輸?shù)刃钑r較多的過程要確保有提示界面,最好有動畫顯示數(shù)據(jù)在傳輸過程中,請用戶耐心等待。另外要注意在這個過程中對重復(fù)按鍵予以忽略,因為等待時間過長或響應(yīng)遲鈍時,用戶趨向于重復(fù)按手機(jī)按鈕。曾經(jīng)測試過刪除某個文件,文件比較大,刪除很慢,界面沒有任何反應(yīng),無法判斷是否在刪除文件,迫不及待的重新亂按手機(jī)其他鍵,導(dǎo)致系統(tǒng)出現(xiàn)錯誤。
擴(kuò)展閱讀:手機(jī)軟件測試的經(jīng)驗總結(jié)
手機(jī)軟件測試的經(jīng)驗總結(jié)
1.在提交高通前務(wù)必要檢查文檔與實際程序的功能表現(xiàn)是否相同,比如說,游戲增加了密
技功能,在文檔中就要有相應(yīng)的說明。
2.在模擬器上圖像處理速度較快,所以不會出現(xiàn)游戲中移動的圖像變模糊的現(xiàn)象,但是由于手機(jī)的分辨率相對低,所以一般在模擬器顯示正常的速度,到了手機(jī)就應(yīng)該讓開發(fā)
人員適當(dāng)調(diào)慢,否則將會出現(xiàn)移動物體變模糊不能清晰辨認(rèn)的情況。
3.有些游戲使用了很多的圖片資源,當(dāng)在兩個界面之間(例如在主菜單界面和幫助界面之間,主界面菜單是由許多圖片組成的,幫助界面是一個html文件的瀏覽顯示),連續(xù)按若干次使其在兩個界面之間連續(xù)切換,會出現(xiàn)圖像重疊現(xiàn)象,其原因是手機(jī)的CPU處理速度跟不上刷新速度,而且主界面的圖片資源一直沒有釋放,導(dǎo)致圖像的殘留。一般可模
擬Grinder把這些類似的問題測出來。
4.是否正確處理來電。如果沒有適當(dāng)正確的來電處理,有些來電會使游戲畫面變亂,有些直接退出,甚至死機(jī)。Brew程序員往往會在來電處理后的恢復(fù)中忘了對游戲音樂的處理,比如說原先選擇了關(guān)閉音樂的,來電處理后音樂又自動開始播放了。有時候需要模擬兩個或以上的連續(xù)的來電以發(fā)掘程序深層的邏輯錯誤,這些錯誤大多是來電處理后的恢復(fù)過程的錯誤。另外短信,電量不足等一些事件警告的出現(xiàn)也有可能導(dǎo)致程序出錯,也要作
出相應(yīng)的處理。
5.注意確保游戲說明和幫助的完整清晰,檢查系統(tǒng)提示信息,確保在游戲中出現(xiàn)的文
字的正確拼寫,沒有錯別字。要盡量用敬稱“您”而不用“你”。
6.標(biāo)題,菜單等的文字顯示要盡量用小字體,盡量縮短文字,能用簡短文字說明清楚的就不要用長句,例如“按2,4鍵可以左右移動圖片”就可改成“按2,4鍵左右移動圖片”,或者甚至改成“按2,4鍵移動圖片”。因為不同的手機(jī)顯示屏幕寬度不一樣,在一款手機(jī)上顯示正確不代表在其他款式都能正確顯示,然而用小字體,短句子就能適應(yīng)大多
數(shù)手機(jī)的屏幕寬度。
7.線程的處理,有些游戲設(shè)有多個線程,如果沒有處理好線程的調(diào)用釋放問題的話,就很可能出現(xiàn)線程爭用的問題。例如一個寵物游戲,寵物死亡后,會調(diào)用一個新的線程循環(huán)播放哀吊音樂,有些程序員由于粗心大意忘記了釋放這個線程,當(dāng)重新開始游戲時,就
會出現(xiàn)這個線程播放的音樂與游戲過程的背景音樂交替播放的情況。
8.文件處理。當(dāng)涉及文件讀寫操作的時候,要特別注意測試文件操作帶來的內(nèi)存問題。比如說,有些游戲需要用文件記錄游戲最高分或分值等,要注意測試第一次運行程序時的退出操作(此時沒有最高分記錄或其他分值記錄),程序是否申請了文件指針或文件資源而沒有釋放。如果是的話,則會導(dǎo)致退出時的內(nèi)存錯誤。另外對于Brew,應(yīng)用程序的文件包中不得包含零字節(jié)的文件,每個文件至少有一個字節(jié),同時還要求不能包含無用的文件
或文件夾,目的是節(jié)省手機(jī)上有限的存儲資源。
9.顏色的搭配,有些背景色跟文字或圖片的顏色搭配在模擬器可以較清晰的顯示出來,但是到了手機(jī)由于其分辨率問題就不那么明顯了。顏色搭配要以清晰美觀為基礎(chǔ),還要適
當(dāng)考慮游戲的種類,用戶心理等問題。
10.用模擬器模擬網(wǎng)絡(luò)不通的情況。目的是測試軟件的網(wǎng)絡(luò)連接,網(wǎng)絡(luò)資源請求,緩沖區(qū)存儲等模塊的性能,看看內(nèi)存是否有正確釋放等?梢酝ㄟ^斷開網(wǎng)絡(luò)連接的方法模擬手機(jī)網(wǎng)絡(luò)不通的情況,具體就是把本地連接的狀態(tài)設(shè)成禁用或者直接拔掉網(wǎng)絡(luò)連接線。
11.數(shù)據(jù)請求或傳輸?shù)刃钑r較多的過程要確保有提示界面,最好有動畫顯示數(shù)據(jù)在傳輸過程中,請用戶耐心等待。另外要注意在這個過程中對重復(fù)按鍵予以忽略,因為等待時間
過長或響應(yīng)遲鈍時,用戶趨向于重復(fù)按手機(jī)按鈕。
12.不要忽略了對后臺數(shù)據(jù)正確性的測試。輸入特殊字符或異常字符,看后臺有沒有相應(yīng)的容錯處理(當(dāng)然這些也可由手機(jī)端處理)。多個客戶端同時發(fā)出請求,測試后臺的多線程處理能力,看能同時處理多少用戶的同時請求,平均響應(yīng)時間是多少,是否在可接受
范圍內(nèi)。
13.來電,短信,電量不足等一些事件警告的出現(xiàn)也有可能導(dǎo)致程序出錯,也要作出相應(yīng)的處理。有些網(wǎng)絡(luò)程序由于設(shè)置了數(shù)據(jù)通訊時不處理來電,這時候就要在低電量情況下測試,用電量不足的警告事件來觸發(fā)程序的suspend和resume處理事件,看是否做了恰當(dāng)
的處理。
以上經(jīng)驗同樣適合開發(fā)人員參考,以便盡量避免類似問題的出現(xiàn)。
友情提示:本文中關(guān)于《手機(jī)軟件測試經(jīng)驗總結(jié)》給出的范例僅供您參考拓展思維使用,手機(jī)軟件測試經(jīng)驗總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。