C114通信網(wǎng)  |  通信人家園

技術(shù)
2018/7/31 13:22

中國(guó)移動(dòng)技術(shù)實(shí)踐分享:探索式測(cè)試方法介紹及應(yīng)用實(shí)踐

移動(dòng)Labs  周煜澄

任何一個(gè)軟件公司發(fā)布的產(chǎn)品都有缺陷,所以軟件測(cè)試是產(chǎn)品開(kāi)發(fā)過(guò)程中必不可少的一部分。經(jīng)過(guò)長(zhǎng)期的發(fā)展,軟件測(cè)試方法不斷完善,探索式測(cè)試方法也是其中的一種。本文將結(jié)合實(shí)際工作談?wù)剬?duì)探索式測(cè)試方法的理解。

作者介紹

孫小霞  中國(guó)移動(dòng)蘇州研發(fā)中心 大數(shù)據(jù)產(chǎn)品部 技術(shù)總監(jiān)

王均    中國(guó)移動(dòng)蘇州研發(fā)中心 大數(shù)據(jù)產(chǎn)品部 測(cè)試工程師

周煜澄  中國(guó)移動(dòng)蘇州研發(fā)中心 大數(shù)據(jù)產(chǎn)品部 測(cè)試工程師

探索式測(cè)試方法主要分為兩類:

局部探索式測(cè)試法針對(duì)測(cè)試人員在運(yùn)行任何一個(gè)測(cè)試用例時(shí)所需要作出的細(xì)微決定;

全局探索式測(cè)試法針對(duì)測(cè)試人員在編制測(cè)試計(jì)劃和測(cè)試用例設(shè)計(jì)時(shí)所需要考慮的廣泛的戰(zhàn)略性問(wèn)題。

一、局部探索式測(cè)試法

1 輸入:合法輸入、非法輸入

1)輸入篩選器

第一,開(kāi)發(fā)是否正確的實(shí)現(xiàn)了該功能?

第二,是否可以繞過(guò)屏蔽器?或者當(dāng)輸入值進(jìn)入系統(tǒng)后還可以修改?

2)輸入檢查

測(cè)試時(shí)必須仔細(xì)閱讀每一條錯(cuò)誤信息,檢查該信息是否寫錯(cuò)了,錯(cuò)誤信息還可以透漏開(kāi)發(fā)編程時(shí)的一些想法。

3)異常處理

如果測(cè)試看到一個(gè)通用出錯(cuò)信息,建議測(cè)試再反復(fù)測(cè)試同一段函數(shù),繼續(xù)使用剛才引發(fā)異常的輸入數(shù)據(jù),或稍微修改一下,看看會(huì)不會(huì)導(dǎo)致出錯(cuò)。嘗試運(yùn)行其他一些要調(diào)用該函數(shù)的測(cè)試用例,看看會(huì)發(fā)生什么情況。

4)常規(guī)輸入和非常規(guī)輸入

例如:

和Ctrl、Alt、Esc按鍵組合的字符,操作系統(tǒng)、編程語(yǔ)言、瀏覽器和運(yùn)行時(shí)環(huán)境的特定保留詞或按鍵。

5)使用輸出來(lái)指導(dǎo)輸入選擇

①首先確定希望程序產(chǎn)生的輸出結(jié)果,然后考察所有用戶場(chǎng)景,來(lái)確定輸入;

②先觀察輸出結(jié)果,再選擇新的輸入,使新的輸出為重新計(jì)算后的結(jié)果。

2 狀態(tài)

軟件的一個(gè)狀態(tài)就是狀態(tài)空間中的一個(gè)點(diǎn),它由所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的取值來(lái)唯一確定。

①使用狀態(tài)信息來(lái)幫助尋找相關(guān)的輸入,如果兩個(gè)或更多個(gè)輸入在某種程度上關(guān)聯(lián),那么它們應(yīng)該放在一起測(cè);

②使用狀態(tài)信息來(lái)辨識(shí)重要的輸入序列,當(dāng)一個(gè)輸入導(dǎo)致?tīng)顟B(tài)信息被更新時(shí),緊接著再多次使用同樣的輸入會(huì)導(dǎo)致一連串的狀態(tài)變化。

例如:

對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行多次更新,查看數(shù)據(jù)是否會(huì)溢出。

3 代碼路徑

測(cè)試需明確知道代碼的所有選擇結(jié)構(gòu),并理解哪些輸入會(huì)導(dǎo)致軟件走這條分支而不走另一條。

4 用戶數(shù)據(jù)

①如何模仿真實(shí)的用戶數(shù)據(jù)

②使用真實(shí)的用戶數(shù)據(jù)時(shí),應(yīng)考慮如何解決“隱私問(wèn)題”。

5 執(zhí)行環(huán)境

是指測(cè)試使用的操作系統(tǒng)及其當(dāng)前的配置,還包括運(yùn)行在同一操作系統(tǒng)上會(huì)和被測(cè)試軟件進(jìn)行交互的其他一些應(yīng)用程序,以及會(huì)間接或直接影響被測(cè)試軟件本身或影響被測(cè)試軟件運(yùn)行的任何驅(qū)動(dòng)程序、代碼、文件、設(shè)置等,還包括軟件當(dāng)前連接的網(wǎng)絡(luò)情況、網(wǎng)絡(luò)的可用帶寬、性能等。

二、全局探索式測(cè)試法(漫游測(cè)試)

在軟件測(cè)試中,我們可以把整個(gè)測(cè)試過(guò)程比喻成游客在城市中旅游的過(guò)程,測(cè)試類型對(duì)應(yīng)城市中的不同區(qū)域,針對(duì)每個(gè)區(qū)域制定不同的游覽路線。以下將結(jié)合實(shí)際測(cè)試過(guò)程中的案例,來(lái)簡(jiǎn)單闡述全局探索式測(cè)試法的應(yīng)用。

1 商業(yè)區(qū)測(cè)試類型(軟件的重要功能模塊)

1)指南測(cè)試法:

測(cè)試嚴(yán)格遵照用戶手冊(cè)的建議執(zhí)行操作。在測(cè)試一個(gè)全新的軟件之前,測(cè)試人員需要詳細(xì)閱讀需求文檔或使用手冊(cè),積極與開(kāi)發(fā)人員溝通以充分了解產(chǎn)品功能;在測(cè)試產(chǎn)品的新版本之前,查看jira中的新特性描述、新的需求文檔以及之前版本存在bug的用例。

2)地標(biāo)測(cè)試法:

通過(guò)指南測(cè)試法確定關(guān)鍵的軟件特性(地標(biāo)),再確定地標(biāo)的前后順序,然后從一個(gè)地標(biāo)執(zhí)行到另一個(gè)地標(biāo)來(lái)探索應(yīng)用程序,直到訪問(wèn)了所有的地標(biāo)。在這個(gè)過(guò)程中,需要記錄已經(jīng)使用過(guò)哪些地標(biāo)。

例如:

在BC-ETL的某次測(cè)試過(guò)程中,需要測(cè)試數(shù)據(jù)流中的多個(gè)流程,此時(shí)每個(gè)流程都作為一個(gè)地標(biāo),通過(guò)多次調(diào)換、添加或刪除流程的來(lái)測(cè)試整個(gè)數(shù)據(jù)流能否順利執(zhí)行。

3)極限測(cè)試法

也稱找麻煩測(cè)試法,即故意設(shè)置各種障礙來(lái)觀察軟件如何反應(yīng)。

例如:

在羅網(wǎng)項(xiàng)目某次迭代中,測(cè)試基站查詢模塊,選擇使用基站名稱查詢,在搜索框中輸入覆蓋范圍很大的區(qū)域名稱(如:南通)進(jìn)行查詢,頁(yè)面因加載時(shí)間過(guò)長(zhǎng)導(dǎo)致卡死。

4)深夜測(cè)試法

當(dāng)下班之后軟件執(zhí)行各種維護(hù)任務(wù),將數(shù)據(jù)歸檔,備份文件等,程序不自動(dòng)執(zhí)行的時(shí)候,測(cè)試人員強(qiáng)制程序執(zhí)行。

2 歷史區(qū)測(cè)試類型

歷史區(qū):

指遺留的代碼,或是在前幾個(gè)版本就已經(jīng)存在的軟件特性,也指那些用于修復(fù)已知bug的代碼。

1)惡鄰測(cè)試法

某個(gè)區(qū)域代碼bug很多,建議對(duì)鄰近區(qū)域進(jìn)行詳細(xì)的測(cè)試,以此來(lái)驗(yàn)證那些修復(fù)已知bug的代碼沒(méi)有引入新的缺陷。

2)博物館測(cè)試法

找出遺留代碼和老的可執(zhí)行文件,并確保它們?cè)跍y(cè)試中受到和新代碼同樣的待遇。在實(shí)際測(cè)試過(guò)程中,可以理解為對(duì)新版本中沒(méi)有改動(dòng)的功能進(jìn)行回歸冒煙測(cè)試。

例如:

在羅網(wǎng)項(xiàng)目的某次回歸冒煙測(cè)試中,測(cè)試研判模型的多案時(shí)空碰撞模塊,正確創(chuàng)建分析任務(wù),在任務(wù)列表中查看分析結(jié)果,頁(yè)面右上角提示出錯(cuò),無(wú)法查看。

3 娛樂(lè)區(qū)測(cè)試類型(輔助特性)

1)配角測(cè)試法

鼓勵(lì)測(cè)試專注于某些特定功能,特別是緊鄰主要功能的輔助功能。

羅網(wǎng)項(xiàng)目的主要功能為通過(guò)研判模型對(duì)各類案件及人員進(jìn)行分析,然而每次審批幾乎都離不開(kāi)新建工單的過(guò)程,所以測(cè)試時(shí)對(duì)研判模型的每個(gè)模塊都增加了許多新建工單的用例。

2)通宵測(cè)試法

即使程序長(zhǎng)時(shí)間運(yùn)行,不去關(guān)閉,觀察程序是否會(huì)發(fā)生異常。

4 旅游區(qū)測(cè)試類型(快速訪問(wèn)軟件的各種功能)

1)收藏家測(cè)試法

收集軟件的輸出,越多越好。確保能觀察到軟件能生成的任何一個(gè)輸出。此方法龐大,通常以小組為單位進(jìn)行。

例如:

在廣西上網(wǎng)行為分析項(xiàng)目中,為確保接收到的數(shù)據(jù)格式和內(nèi)容都正確,需提前造出大量用戶數(shù)據(jù),模擬實(shí)際的運(yùn)行環(huán)境批量發(fā)送數(shù)據(jù),批量查看輸出結(jié)果。

2)超模測(cè)試法

只測(cè)試界面顯示。

例如:

在采購(gòu)部供應(yīng)鏈大數(shù)據(jù)平臺(tái)的某次測(cè)試中,由于前端頁(yè)面沒(méi)有設(shè)置按比例縮放,導(dǎo)致頁(yè)面在小屏幕上無(wú)法顯示完全。

5 旅館區(qū)測(cè)試類型(經(jīng)常被忽略或者在測(cè)試計(jì)劃中較少描述的次要及輔助功能)

1)取消測(cè)試法

啟動(dòng)操作然后停止它?梢詫(duì)任何提供取消功能或者需要較長(zhǎng)時(shí)間才能完成的功能做同樣的操作。如果沒(méi)有取消按鈕,對(duì)于在瀏覽器中運(yùn)行的程序可以試著按Esc鍵或是程序中的回退按鈕。

2)懶漢測(cè)試法

測(cè)試人員做盡量少的實(shí)際工作。接受所有默認(rèn)值,保持輸入字段繼續(xù)為空,在表單中盡可能少填數(shù)據(jù),在進(jìn)入下一個(gè)界面時(shí)不點(diǎn)擊任何按鈕或者輸入任何數(shù)據(jù)等等。

傳統(tǒng)的手工測(cè)試方法需要提前編寫測(cè)試用例,然后嚴(yán)格地依次執(zhí)行每一個(gè)用例,引入探索式測(cè)試方法可以在測(cè)試過(guò)程中更及時(shí)地發(fā)現(xiàn)問(wèn)題并補(bǔ)充用例,兩種方法相結(jié)合才能更有效地把控產(chǎn)品的質(zhì)量。

如果未來(lái)開(kāi)發(fā)技術(shù)大幅進(jìn)步,也許會(huì)有一天,測(cè)試人員不再是必需的了。這當(dāng)然是軟件廠商和用戶的福音,但是在可預(yù)見(jiàn)的未來(lái),檢測(cè)軟件缺陷的最好方法還是使用測(cè)試技術(shù),而不是開(kāi)發(fā)技術(shù)。原因很簡(jiǎn)單,太多的不確定因素,太多的場(chǎng)景,可能導(dǎo)致自動(dòng)化測(cè)試失效的情況太多了,無(wú)法一一跟蹤。這一切都需要“人腦”的介入,現(xiàn)在如此,下個(gè)十年不會(huì)變,再過(guò)幾十年可以依然如此。

給作者點(diǎn)贊
0 VS 0
寫得不太好

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與C114通信網(wǎng)無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。

熱門文章
    最新視頻
    為您推薦

      C114簡(jiǎn)介 | 聯(lián)系我們 | 網(wǎng)站地圖 | 手機(jī)版

      Copyright©1999-2024 c114 All Rights Reserved | 滬ICP備12002291號(hào)

      C114 通信網(wǎng) 版權(quán)所有 舉報(bào)電話:021-54451141