新聞中心
今天我們來談?wù)勔苿?dòng)測試的測試策略與測試架構(gòu)。

創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、咸寧網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為咸寧等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
首先我們將移動(dòng)應(yīng)用的范圍限定在智能移動(dòng)操作系統(tǒng)(比如Android、iOS、WinPhone等)上,包括手機(jī)應(yīng)用,智能設(shè)備應(yīng)用等。
智能手機(jī)和智能設(shè)備的普及需要大量的應(yīng)用來支撐。隨著應(yīng)用數(shù)量的增多,業(yè)務(wù)復(fù)雜度的提高,移動(dòng)應(yīng)用也越來越需要各種測試來保證應(yīng)用以及設(shè)備本身的正確和穩(wěn)定運(yùn)行。因此移動(dòng)應(yīng)用測試的需求也越來越大,大量關(guān)于移動(dòng)應(yīng)用測試的書籍應(yīng)運(yùn)而生,比如《Android移動(dòng)性能實(shí)戰(zhàn)》,《騰訊iOS測試實(shí)踐》、《移動(dòng)APP性能評(píng)測與優(yōu)化》、《深入理解Android自動(dòng)化測試》、《精通移動(dòng)App測試實(shí)戰(zhàn):技術(shù)、工具和案例》等。
這些書都介紹了大量的移動(dòng)應(yīng)用測試實(shí)踐,但是無論看多少本書,學(xué)習(xí)多少種測試方法、測試技術(shù)或者測試工具和框架,首先還是需要學(xué)習(xí)并使用測試策略與測試架構(gòu)。如果沒有在一開始制定好的測試策略和測試架構(gòu),而是盲目進(jìn)行各種測試,很有可能事倍功半。
對(duì)于移動(dòng)應(yīng)用,首先它本質(zhì)上也是軟件系統(tǒng),所以通用的軟件測試方法技術(shù)都可以使用。其次它又擁有嵌入式的特征,比如開發(fā)需要交叉編譯、需要遠(yuǎn)程調(diào)試、硬件資源相對(duì)不足等。所以移動(dòng)應(yīng)用的測試也有其特殊之處,比如也需要交叉編譯、遠(yuǎn)程測試以及各種硬件相關(guān)測試等。對(duì)應(yīng)的移動(dòng)應(yīng)用的測試策略和測試架構(gòu)也有其特殊性之處。
制定測試策略
我將移動(dòng)測試分為三種類型,分別是基礎(chǔ)測試、進(jìn)階測試和產(chǎn)品測試,其中基礎(chǔ)測試是產(chǎn)品能正確并快速交付的基本保障,擴(kuò)展測試主要是為了增強(qiáng)軟件系統(tǒng)的健壯性,而產(chǎn)品測試主要是通過產(chǎn)品角度以及用戶角度去思考而進(jìn)行的測試。下面分別列舉了常見的三種類型測試。
1. 基礎(chǔ)測試
- 功能測試 (Function Test)1
- 集成測試(Integration Test )
- 單元測試(Unit Test)
- 契約測試(Contract Test)2
2. 進(jìn)階測試
- 兼容測試(Compatibility Test)
- UI視覺測試(UI Visual Test)
- 性能輪廓(Profiling)
- 安全測試(Security Test)
- 異常測試(Exception Test)3
- 猴子測試(Monkey Test)
- 安裝、升級(jí)和卸載測試(Install、Upgrade and Uninstall Test)
- 耐久測試(Endurance Test)
- 耗電測試(Power Consumption Test)
- 流量測試(Network Traffic Test)
- 其他硬件功能專項(xiàng)測試4
3. 產(chǎn)品測試
- 易用性測試(Usability Test)
- A/B測試(A/B Test)
- 產(chǎn)品在線測試(Product Verification Test or Product Online Test)
- 用戶測試(Customer Test)5
對(duì)于一個(gè)中小型項(xiàng)目來講,很多時(shí)候資源都是十分有限的,很難做到全面類型的測試,大型項(xiàng)目更是如此,更難有足夠多的資源做所有類型的測試。而且可能還由于團(tuán)隊(duì)人員的技術(shù)能力不足,或者所擁有的測試相關(guān)的技術(shù)棧的局限,以及開發(fā)測試環(huán)境和軟件系統(tǒng)架構(gòu)的限制,有些類型的測試是無法進(jìn)行的。
所以,制定測試策略的關(guān)鍵點(diǎn)在于根據(jù)質(zhì)量需求的優(yōu)先級(jí),并參考團(tuán)隊(duì)的各種限制來指定。
首先通過和PO、PM等進(jìn)行討論得到產(chǎn)品質(zhì)量需求的優(yōu)先級(jí),然后根據(jù)優(yōu)先級(jí)指定相應(yīng)類型的測試。再根據(jù)團(tuán)隊(duì)的資源、項(xiàng)目周期、技術(shù)能力以及各種限制來制定相應(yīng)的測試方法和測試技術(shù),其中包括使用自動(dòng)化測試還是手動(dòng)測試、使用什么測試工具和測試框架、測試的范圍和程度等。
下表是一個(gè)典型手機(jī)應(yīng)用的測試策略表的樣例(這個(gè)只是一個(gè)模擬項(xiàng)目的樣表,真實(shí)項(xiàng)目中的各類信息應(yīng)該更多,并且可以根據(jù)具體情況添加新列。并且注意,這些測試并不一定由測試人員或者QA來做,應(yīng)該由整個(gè)團(tuán)隊(duì)一起協(xié)作完成):
表中的質(zhì)量需求優(yōu)先級(jí)的獲取是一個(gè)比較繁瑣的過程,需要和各個(gè)利益相關(guān)者一起討論并且協(xié)商獲得。
根據(jù)這個(gè)測試優(yōu)先級(jí)表,就知道應(yīng)該把資源優(yōu)先投入到高優(yōu)先級(jí)的測試中。等高優(yōu)先級(jí)的測試做到團(tuán)隊(duì)可以接受的程度后,再按照優(yōu)先級(jí)做下一個(gè)類型的測試。這個(gè)表中的優(yōu)先級(jí)在開發(fā)過程中不是絕對(duì)不變的。如果PO、PM等利益相關(guān)者對(duì)于產(chǎn)品質(zhì)量需求的優(yōu)先級(jí)發(fā)生了改變,在得到團(tuán)隊(duì)同意后,還需要改變這個(gè)表中的測試優(yōu)先級(jí)。所以需要經(jīng)常與團(tuán)隊(duì)更新測試進(jìn)度,并及時(shí)獲得團(tuán)隊(duì)各個(gè)角色對(duì)于測試和產(chǎn)品質(zhì)量需求的反饋與更新。
其次可以根據(jù)測試金字塔等模型來思考不同類型測試之間的關(guān)系和工作量,但是很多情況下也可以不用參考這些測試模型,因?yàn)橐苿?dòng)應(yīng)用的復(fù)雜度一般不會(huì)特別高,并且當(dāng)前大多數(shù)情況下,移動(dòng)應(yīng)用中復(fù)雜的業(yè)務(wù)邏輯都會(huì)盡量在服務(wù)器端進(jìn)行處理,所以移動(dòng)應(yīng)用很多時(shí)候只是一個(gè)用戶交互系統(tǒng),所以應(yīng)該盡可能的完成會(huì)影響用戶使用的E2E流程測試,然后再繼續(xù)做其他類型的測試。
但是對(duì)于在移動(dòng)應(yīng)用中實(shí)現(xiàn)復(fù)雜業(yè)務(wù)的項(xiàng)目,測試策略還是應(yīng)該盡量思考測試類型之間測試用例重復(fù)的問題,盡量避免重復(fù)的用例,降低測試成本。
制定測試架構(gòu)
通過測試優(yōu)先級(jí)表,我們獲得了簡易版的測試策略,然后就應(yīng)該制定測試架構(gòu)了。由于嵌入式軟件的特殊性,其測試架構(gòu)也與常規(guī)的桌面系統(tǒng)和服務(wù)器系統(tǒng)有一定的區(qū)別。下圖為針對(duì)上面樣列測試策略相對(duì)應(yīng)的功能測試架構(gòu):
圖中只針對(duì)功能測試進(jìn)行了進(jìn)一步的詳細(xì)架構(gòu)設(shè)計(jì),并沒有對(duì)其他測試比如集成測試、兼容性測試和穩(wěn)定測試等進(jìn)行詳細(xì)架構(gòu)設(shè)計(jì),感興趣的讀者可以根據(jù)自己項(xiàng)目的實(shí)際情況自己嘗試一下。
通過這個(gè)架構(gòu)圖,可以比較系統(tǒng)以及直觀的了解各種類型測試的分布、關(guān)系和測試系統(tǒng)的架構(gòu)等。
然后配合測試優(yōu)先級(jí)表就可以較好的指導(dǎo)團(tuán)隊(duì)進(jìn)行有效的測試,比如制定更好的測試計(jì)劃,制定更適合的自動(dòng)化測試系統(tǒng)等。并且還可以更有效的評(píng)估產(chǎn)品質(zhì)量,比如什么類型的測試沒有做,那么那些特定方面就存在較高的風(fēng)險(xiǎn)。
不過任何軟件系統(tǒng)都是存在缺陷和風(fēng)險(xiǎn)的,關(guān)鍵是看這些缺陷對(duì)于開發(fā)商和用戶產(chǎn)生的影響有多大,風(fēng)險(xiǎn)是不是在可控范圍內(nèi)的。永遠(yuǎn)不要嘗試去找到所有缺陷并消除,而是要從風(fēng)險(xiǎn)大小、影響程度等各方面綜合考慮,增加團(tuán)隊(duì)對(duì)于產(chǎn)品質(zhì)量的信心,并且不要對(duì)客戶產(chǎn)生嚴(yán)重的大范圍的影響。
注:
1. 后臺(tái)常住應(yīng)用測試也屬于功能測試。
2. 單機(jī)應(yīng)用可以不用考慮做契約測試。
3. 異常測試包括弱網(wǎng)測試,比如低速網(wǎng)絡(luò)信號(hào)、網(wǎng)絡(luò)時(shí)斷時(shí)續(xù),網(wǎng)絡(luò)切換以及無網(wǎng)絡(luò)等,突然斷電等。
4. 其他硬件功能專項(xiàng)測試包括硬件功能關(guān)閉,硬件功能異常等。
5. 用戶測試包括收集用戶使用信息,并生成用戶真實(shí)使用的測試用例來對(duì)系統(tǒng)進(jìn)行測試。
【本文是專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號(hào):思特沃克,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】
戳這里,看該作者更多好文
分享文章:移動(dòng)應(yīng)用的測試策略與測試架構(gòu)
文章分享:http://www.fisionsoft.com.cn/article/cdeidpj.html


咨詢
建站咨詢
