“探索性測試”在敏捷項(xiàng)目中的運(yùn)用 | IDCF

內(nèi)容來源:七姑娘日記
作者:是七姑娘呀
一、什么是探索性測試



二、敏捷項(xiàng)目中如何運(yùn)用探索性測試


商業(yè)區(qū):用戶花錢買軟件就是因?yàn)檐浖奶匦允沟盟麄兊臉I(yè)務(wù)得以完成。商業(yè)區(qū)測試類型著重于測試軟件的主要特性,因此,需要頻繁地進(jìn)行回歸測試,以持續(xù)保證這些主要特性的可用性。由于具有很高的重復(fù)性,“商業(yè)區(qū)”的測試將是自動化測試關(guān)注的重點(diǎn)。 旅游區(qū):對于軟件,有些特性對新用戶更有吸引力。這一點(diǎn)也涉及到部分用戶權(quán)限的測試。 歷史區(qū):軟件也一樣具有前版本的歷史遺留代碼,這個(gè)區(qū)域的測試目的就是測試遺留代碼和遺留缺陷。這一點(diǎn)在遺留系統(tǒng)改造項(xiàng)目中體現(xiàn)的尤為明顯?!靶麻_發(fā)特性不影響原有特性”將成為測試重點(diǎn)。 旅館區(qū):當(dāng)軟件“休息”時(shí),它實(shí)際上還是非常忙碌的。旅館區(qū)模型關(guān)注的是一些輔助功能,比如軟件后臺運(yùn)行等。 娛樂區(qū):對于軟件,比如一個(gè)購物網(wǎng)站,商業(yè)區(qū)是搜索商品、加入購物車、生成訂單、付款等,而其娛樂區(qū)就是指漂亮美觀的UI、友好的用戶界面等。這就需要關(guān)注到用戶體驗(yàn)和兼容性測試。 破舊區(qū):不同于旅游,軟件的破舊區(qū)可能存在嚴(yán)重的缺陷、安全及性能問題。這部分可能是軟件的重災(zāi)區(qū),需要關(guān)注異常測試、性能測試和安全測試。

Feature 1:包含Story A、B、C、C、D、E、F Feature 2:包含Story G、H、I、J、K Feature 3:包含Story L、M、N、O、P、Q Feature 4:包含Story R、S、T、U

首先,由于每個(gè)Story為最小業(yè)務(wù)單元,每個(gè)Story都需要在當(dāng)前迭代獨(dú)立完成測試,這就是所謂的單個(gè)特性測試; 其次,由于部分Story之間有依賴關(guān)系,比如迭代1中的Story A和Story B、當(dāng)A和B獨(dú)立完成測試之后,我們要關(guān)注這兩個(gè)Story之間交互的測試。一個(gè)典型例子就是,A為某個(gè)頁面的UI、B為后端實(shí)現(xiàn)。測試Story A時(shí),我們關(guān)心前端展示、校驗(yàn)、交互等;測試Story B時(shí),很可能A還沒有完成開發(fā),我們需要通過API測試,人為地通過控制入?yún)硗瓿珊蠖诉壿嫷尿?yàn)證。然而,我們?nèi)绾伪WC前端在與后端交互時(shí),傳遞給后端的入?yún)⑹钦_的呢?對于開發(fā)同學(xué)來說,“聯(lián)調(diào)”就是在解決這個(gè)問題,對于測試人員,這便是最小交互特性測試。 再者,通過迭代1和迭代2,我們基本完成了Feature 1和Feature 2的所有story的開發(fā)和測試,可以完成第一次Release啦。在Release之前,我們需要完成一輪回歸測試,測試范圍為Feature 1和Feature 2。假設(shè)Feature 1為“注冊”、Feature 2為“登錄”,我們已經(jīng)分別完成了注冊和登錄功能的驗(yàn)收,但是“新注冊的賬號是否能夠正常登錄”并沒有完全得到驗(yàn)證。這就是交互特性測試,旨在發(fā)現(xiàn)特性在各個(gè)特性在交互時(shí)的潛在缺陷。 然后,在迭代3中,Story N與已經(jīng)發(fā)布在生產(chǎn)環(huán)境的Story I發(fā)生關(guān)聯(lián),為了更好地是適配,很有可能Story N的需要被重構(gòu)。那么我們在測試Story I時(shí),要同同時(shí)關(guān)注與Story N的交互。 最后,在迭代4以后,我們完成了全部4個(gè)Feature的開發(fā)和測試,又要進(jìn)行一次上線發(fā)布啦。同樣,在上線之前,我們又要進(jìn)行一輪回歸測試。不過這次的回歸測試范圍不僅包括迭代3和迭代4新開發(fā)的內(nèi)容,還要包含之前所有已經(jīng)發(fā)布在線上的特性,也就是截至目前整個(gè)系統(tǒng)的測試。這就是系統(tǒng)交互測試,以便發(fā)現(xiàn)整個(gè)系統(tǒng)中各業(yè)務(wù)單元之間交互的潛在缺陷。
將需求明確的、業(yè)務(wù)穩(wěn)定的、需要重復(fù)回歸測試的部分用自動化測試來實(shí)現(xiàn); 將需求不明確、變動頻繁的、無需重復(fù)測試的、或者需要日志等特殊形式驗(yàn)證結(jié)果的部分,配合探索性測試思路,通過手工測試來完成。

單元測試:旨在測試程序中的最小可測單元,隔離性很高、無需其他依賴、執(zhí)行速度較快,因此建議在每次提交完代碼并且通過編譯之后、部署測試環(huán)境之前完成“單元測試”。 API測試:主要關(guān)注在系統(tǒng)架構(gòu)的業(yè)務(wù)邏輯層,我們通過工具或代碼方式去調(diào)用特定的API,給定輸入、獲取輸出,驗(yàn)證響應(yīng)結(jié)果。API測試不僅要關(guān)注正常場景,更要關(guān)注異常場景。API測試執(zhí)行效率比較高,可以根據(jù)項(xiàng)目環(huán)境穩(wěn)定情況,設(shè)置每次部署環(huán)境之后啟動測試,也可以每天在固定的時(shí)間執(zhí)行測試。 UI測試:UI測試關(guān)注用戶界面及用戶體驗(yàn)。通過代碼或工具模擬用戶通過鍵盤輸入或鼠標(biāo)操作等行為來與系統(tǒng)交互。由于UI測試執(zhí)行效率相對較低,建議在每天環(huán)境相對穩(wěn)定的時(shí)間段執(zhí)行測試。 E2E測試:端到端測試應(yīng)該覆蓋那些業(yè)務(wù)價(jià)值最高的路徑,并不關(guān)注異常場景。要做到這一點(diǎn),需要在設(shè)計(jì)測試時(shí),從最終用戶的角度來考慮,通過用戶畫像和User Journey來確定測試場景。E2E測試是回歸測試的好幫手,可能會在版本發(fā)布前的一段時(shí)間頻繁執(zhí)行。 冒煙測試:冒煙測試是一種針對軟件版本包的快速驗(yàn)證策略,如果冒煙測試沒有通過,則不必進(jìn)行更深入的測試。因此,我們可以從E2E測試中抽取兩到三條最核心的場景設(shè)置為冒煙測試,在每次環(huán)境部署之后啟動測試,從而快速驗(yàn)證本次版本的可用性。
Case 1:第一個(gè)人猜“66”,法官回答“大了”。
Case 2:第二個(gè)人猜“63”,法官回答“小了”。
《探索性軟件測試》James A. Whittaker 《探索性測試實(shí)踐之路》史亮、高翔

評論
圖片
表情

