阿里技术专家麒烨:修炼测试基本功
中生代技術(shù)
鏈接技術(shù)大咖,分享技術(shù)干貨
接力技術(shù),鏈接價值
阿里QA導(dǎo)讀:當(dāng)郭靖遇到洪七公,當(dāng)楊過斷臂遇雕兄,當(dāng)張無忌落入昆侖洞,當(dāng)令狐沖思過風(fēng)清揚,當(dāng)段譽摔進無量洞,當(dāng)虛竹誤解珍瓏局,少室山下的少年還在苦練基本功,許多年后,再回少室山,以一敵三,一句你們?nèi)齻€一塊上吧,好霸氣蕭峰!不是所有人都有奇遇,也不是每個人都會斷臂,勤奮苦練,也能頂天立地。做夢的少年郎,贈你測試基本功,愿你固本培元,早入山門。
認識軟件質(zhì)量
軟件產(chǎn)品質(zhì)量屬性
這一章會從軟件質(zhì)量的基本概念出發(fā),以標(biāo)準(zhǔn)化(ISO/IEC25010)的軟件定義,介紹軟件產(chǎn)品質(zhì)量模型和使用質(zhì)量模型。里面的內(nèi)容都可以在《GBT25000.10-2016系統(tǒng)與軟件工程系統(tǒng)與軟件質(zhì)量要求和評價(SQuaRE)第10部分系統(tǒng)與軟件質(zhì)量模型》中找到詳細解釋,這里主要列出我們測試工作中常用且必須關(guān)注的質(zhì)量特性以及實際場景中如何運用。
系統(tǒng)/軟件產(chǎn)品質(zhì)量屬性有8個特性:功能性、性能效率、兼容性、易用性、可靠性、信息安全性、維護性和可移植性。其中功能性,性能效率,可靠性、易用性(人工差錯防御)是我們著重需要關(guān)注的質(zhì)量特性,也是導(dǎo)致線上90%故障的主要因素。
產(chǎn)品質(zhì)量特性說明和理解:
我們從8個方面去闡述產(chǎn)品質(zhì)量特性
功能性
性能效率
可靠性
易用性
兼容性
信息安全性
可維護性
可移植性
1. 功能性
在指定條件下使用時,產(chǎn)品或系統(tǒng)提供滿足明確和隱含要求的功能的程度。包括:
功能完備性
功能正確性
功能適合性
功能性的依從性
從定義上來理解,功能性并不止?jié)M足 “明確” 的要求,還有很多 “隱含” 的質(zhì)量特性。我們在做功能測試的時候,“明確”+“隱含”需求一起覆蓋才是完整的測試場景。我們在工作中如何能前置讓隱含的需求明確,是質(zhì)量同學(xué)的一項重要能力,這個過程包括在需求前期跟PD的明確,比如需求文檔里描述了想要實現(xiàn)的功能,但沒有寫明對性能和用戶體驗的要求,測試同學(xué)就是需要在評審階段就對焦明確,這樣在TC設(shè)計,測試策略以及后面業(yè)務(wù)方驗收測試中才能充分被覆蓋到。還是一個基本原則,問題越前置被識別并解決,是成本最低的做法。
| 完備性 | 功能集對指定的任務(wù)和用戶目標(biāo)的覆蓋程度; |
| 正確性 | 產(chǎn)品或系統(tǒng)提供具有所需精度的正確的結(jié)果的程度; |
| 適合性 | 功能促使指定的任務(wù)和目標(biāo)實現(xiàn)的程度 |
| 功能性的依從性 | 產(chǎn)品或系統(tǒng)遵循與功能性相關(guān)的標(biāo)準(zhǔn)、約定或法規(guī)以及類似規(guī)定的程度。 |
2. 性能效率
性能效率的評估與在指定條件下所使用的資源量有關(guān)。包括時間特性、 資源利用率 、容量、性能效率的依從性。
實際工作中,我們基礎(chǔ)架構(gòu)的彈性能力,常態(tài)化壓測能力、大促的全鏈路壓測等都是這一質(zhì)量屬性的測試體現(xiàn)。后面在測試進階能力中,會有專門篇幅介紹性能測試和全鏈路壓測的內(nèi)容。
| 實踐特性 | 產(chǎn)品或系統(tǒng)執(zhí)行其功能時,其響應(yīng)時間、處理時間及吞吐率滿足需求的程度; |
| 容量 | 產(chǎn)品或系統(tǒng)參數(shù)的最大限量滿足需求的程度; |
| 資源利用率 | 產(chǎn)品或系統(tǒng)執(zhí)行其功能時,所使用資源數(shù)量和類型滿足需求的程度; |
| 性能效率的依從性 | 產(chǎn)品或系統(tǒng)遵循與性能效率相關(guān)的標(biāo)準(zhǔn)、約定或法規(guī)以及類似規(guī)定的程度。 |
3. 可靠性
系統(tǒng)、產(chǎn)品或組件在指定條件下、指定時間內(nèi)執(zhí)行指定功能的程度。包括成熟性、可用性、容錯性、易恢復(fù)性、可靠性的依從性。
質(zhì)量同學(xué)在評估方案時經(jīng)常會出現(xiàn)這樣的靈魂拷問:怎樣設(shè)計測試場景保障線上不出問題、如何設(shè)計架構(gòu)讓主流程不受阻塞、強弱依賴如何解耦、準(zhǔn)備怎樣的預(yù)案讓問題發(fā)生時也能快速恢復(fù)等,都是對可靠性質(zhì)量屬性的測試實踐,可靠性也是我們在設(shè)計評審中需要著重關(guān)注的特性。
| 成熟性 | 系統(tǒng)、產(chǎn)品或組件在正常運行時滿足可靠性要求的程度; |
| 可用性 | 系統(tǒng)、產(chǎn)品或組件在需要使用時能夠進行操作和訪問的程度; |
| 容錯性 | 盡管存在硬件或軟件故障,系統(tǒng)、產(chǎn)品或組件的運行符合預(yù)期的程度; |
| 易恢復(fù)性 | 在發(fā)生中斷或失效時,產(chǎn)品或系統(tǒng)能夠恢復(fù)直接受影響的數(shù)據(jù)并重建期望的系統(tǒng)狀態(tài)的程度; |
| 可靠性的依從性 | 產(chǎn)品或系統(tǒng)遵循與可靠性相關(guān)的標(biāo)準(zhǔn)、約定或法規(guī)以及類似規(guī)定的程度。 |
4. 易用性
在指定的使用環(huán)境中,產(chǎn)品或系統(tǒng)在有效性、效率和滿意度特性方面為了指定的目標(biāo)可為指定用戶使用的程度。包括可辨識性、易學(xué)性、易操作性、人工差錯防御性、易訪問性、易用性的依從性。
易用性的另一個描述就是功能級別的用戶體驗(下一章會介紹使用級別的用戶體驗),我們新零售技術(shù)質(zhì)量的愿景就是“做用戶體驗的捍衛(wèi)者”,因此易用性是測試過程中很重要的一個覆蓋范圍。易用性里核心需關(guān)注的是人工差錯防御,我們有很多故障或線上問題都來自于人工操作或配置類錯誤,這都是人工差錯防御范圍。
| 可辨識性 | 用戶能夠辨識產(chǎn)品或系統(tǒng)是否適合他們的要求的程度; |
| 易學(xué)性 | 在指定的使用環(huán)境中,產(chǎn)品或系統(tǒng)在有效性、效率、抗風(fēng)險和滿意度特性方面為了學(xué)習(xí)使用該產(chǎn)品或系統(tǒng)這一指定的目標(biāo)可為指定用戶使用的程度; |
| 易操作性 | 產(chǎn)品或系統(tǒng)具有易于操作和控制的屬性的程度; |
| 人工差錯防御性 | 系統(tǒng)預(yù)防用戶犯錯的程度;用戶界面舒適性:用戶界面提供令人愉悅和滿意的交互的程度; |
| 易訪問性 | 在指定的使用環(huán)境中,為了達到指定的目標(biāo),產(chǎn)品或系統(tǒng)被具有最廣泛的特征和能力的個體所使用的程度; |
| 易用性的依從性 | 產(chǎn)品或系統(tǒng)遵循與易用性相關(guān)的標(biāo)準(zhǔn)、約定或法規(guī)以及類似規(guī)定的程度。 |
5. 兼容性
在共享相同的硬件或軟件環(huán)境的條件下,產(chǎn)品、系統(tǒng)或組件能夠與其他產(chǎn)品、系統(tǒng)或組件交換信息,和/或執(zhí)行其所需的功能的程度。
包括共存性、互操作性、兼容性的依從性。 兼容性測試在移動應(yīng)用測試和跨平臺組件應(yīng)用上需著重評估。
6. 信息安全性
產(chǎn)品或系統(tǒng)保護信息和數(shù)據(jù)的程度,以使用戶、其他產(chǎn)品或系統(tǒng)具有與其授權(quán)類型和授權(quán)級別一致的數(shù)據(jù)訪問度。包括保密性、完整性、抗抵賴性、可核查性、真實性、信息安全的依從性。
這部分質(zhì)量屬性直接對應(yīng)安全性測試,已經(jīng)是測試領(lǐng)域里獨立的一個重要方向。后面的進階篇會有詳細介紹。
7. 可維護性
產(chǎn)品或系統(tǒng)能夠被預(yù)期的維護人員修改的有效性和效率的程度。包括 模塊化、可重用性、易分析性、易修改性、易測試性、維護性依從性。 可維護性更多體現(xiàn)在對設(shè)計方案的評估過程中。
8. 可移植性
系統(tǒng)、產(chǎn)品或組件能夠從一種硬件、軟件、或者其他運行(或使用)環(huán)境遷移到另一種環(huán)境的有效性和效率的程度。包括適應(yīng)性、易安裝性、易替換性、可移植性的依從性。 遷移類項目和版本升級類變更需評估。
產(chǎn)品使用質(zhì)量屬性
使用質(zhì)量屬性是從用戶使用體驗的角度進行定義,質(zhì)量同學(xué)作為用戶體驗的捍衛(wèi)者,除了產(chǎn)品質(zhì)量,使用質(zhì)量也需要關(guān)注。它描述了產(chǎn)品(系統(tǒng)或軟件產(chǎn)品)對利益相關(guān)方造成的影響。它是由軟件、硬件和運行環(huán)境的質(zhì)量,以及用戶、任務(wù)和社會環(huán)境的特性所決定的。所有這些因素均有利于系統(tǒng)的使用質(zhì)量。
產(chǎn)品使用質(zhì)量屬性說明:
有效性: 用戶實現(xiàn)指定目標(biāo)的準(zhǔn)確性和完備性。
效率: 與用戶實現(xiàn)目標(biāo)的準(zhǔn)確性和完備性相關(guān)的資源消耗。
滿意度: 產(chǎn)品或系統(tǒng)在指定的使用環(huán)境中使用時,用戶的要求被滿足的程度。包括有用性:用戶對實用目標(biāo)的實現(xiàn)感到滿意的程度,包括使用的結(jié)果和使用后產(chǎn)生的后果;可信性:用戶或者其他利益相關(guān)方對產(chǎn)品或系統(tǒng)將如預(yù)期地運行有信心的程度;愉悅性:用戶因個人要求被滿足而獲得愉悅感的程度;舒適性:用戶生理上感到舒適的程度。
抗風(fēng)險: 包括經(jīng)濟風(fēng)險緩解性:在預(yù)期的使用環(huán)境中,產(chǎn)品或系統(tǒng)在經(jīng)濟現(xiàn)狀、高效運行、商業(yè)財產(chǎn)、信譽或其他資源方面緩解潛在風(fēng)險的程度;健康和安全風(fēng)險緩解性:在預(yù)期的使用環(huán)境中,產(chǎn)品或系統(tǒng)緩解人員潛在風(fēng)險的程度;環(huán)境風(fēng)險緩解性:在預(yù)期的使用環(huán)境中,產(chǎn)品或系統(tǒng)在財產(chǎn)或環(huán)境方面緩解潛在風(fēng)險程度。
周境覆蓋: 在指定的使用周境和超出最初設(shè)定需求的周境中,產(chǎn)品或系統(tǒng)在有效性、效率、抗風(fēng)險和滿意度特性方面能夠被使用的程度。包括周境完備性:在所有指定的使用環(huán)境中,產(chǎn)品或系統(tǒng)在有效性、效率、抗風(fēng)險和滿意度特性方面能夠被使用的程度;靈活性:在超出最初設(shè)定需求的環(huán)境中,產(chǎn)品或系統(tǒng)在有效性、效率、抗風(fēng)險和滿意度特性方面能夠被使用的程度。
認識軟件測試
對軟件質(zhì)量思考的不同角度,形成了不同的測試類型,不同類型對應(yīng)不同的測試方法,而不同的測試方法針對不同的質(zhì)量特性。要修煉更深更廣的測試覆蓋度,需要了解更多的測試方法用于設(shè)計測試用例。這類方法的介紹書籍非常多,下圖是一個質(zhì)量特性對應(yīng)測試方法的展示。實際項目中測試時間和資源往往有限,測試工程師就需要不斷的思高效的質(zhì)量保障手段。下圖很多方法都已能通過工具或技術(shù)手段來完成,比如異常測試,故障輸入,冪等,灰度驗證等等。因此質(zhì)量特性對應(yīng)的方法更多只是一個范圍的參考,給測試同學(xué)一個基本原則,如何保障好這個特性,需要我們不斷的思考測試技術(shù)的突破來實現(xiàn)。
測試類型
根據(jù)測試方法不同的類型
黑盒測試 - 也稱功能測試或基于需求的測試,測試設(shè)計時把被測對象當(dāng)成一個黑盒子,不關(guān)心盒子的內(nèi)部結(jié)構(gòu),主要通過輸入/輸出數(shù)據(jù)驅(qū)動功能用例。這類測試中理論上的充分測試標(biāo)準(zhǔn)就是“窮舉輸入”,而窮舉肯定是不可能的,因此我們還需要其他的測試類型進行補充。
白盒測試 - 也稱為邏輯驅(qū)動測試,針對性較強,需要對代碼邏輯有了解。理論上的充分測試是所有的條件、語句、路徑組合都被覆蓋,對技術(shù)和成本都有一定要求。
灰盒測試 - 介于白盒與黑盒之間的測試方式,根據(jù)實際測試場景、資源、復(fù)雜度等情況進行結(jié)合,也是目前我們使用最多的測試類型。
每種測試類型都對應(yīng)很多測試分析方法,后面進階篇也會針對各種測試方向進行深入介紹,這里不對基本概念和原理多做贅述。
軟件測試的基本原則
基本功修煉的最后,我們可以歸納出一系列重要的測試指導(dǎo)原則,可作為我們?nèi)粘9ぷ鞯奶嵝选T瓌t大部分看上去顯而易見,淺顯易懂。但往往故障都發(fā)生在這些常見的場景中,用一位開發(fā)TL在某次故障復(fù)盤會上的話,給“修煉測試基本功”這一章做個結(jié)束語:故障中的一切問題看似天災(zāi)人禍,實則人事不修。
| 1 | 窮盡測試是不可能的 -窮舉測試解決不了覆蓋問題,多思考創(chuàng)新采用技術(shù)手段豐富覆蓋度 |
| 2 | 測試左移和測試右移(Shift left testing and Shift right testing) - 測試應(yīng)盡早介入,問題發(fā)現(xiàn)越晚修復(fù)代價越大。同時測試活動也不應(yīng)停止于發(fā)布前,線上業(yè)務(wù)監(jiān)控,回歸以及系統(tǒng)恢復(fù)都是測試職責(zé)范圍。 |
| 3 | 缺陷集群效應(yīng) - 一旦某個模塊發(fā)現(xiàn)了較多問題,那一定隱藏了更多的問題 |
| 4 | 殺蟲劑悖論 - 測試用例和自動化腳本、工具、數(shù)據(jù)等要定期更新,用同樣的內(nèi)容測變化的系統(tǒng)會越來越難發(fā)現(xiàn)問題。 |
| 5 | 測試依賴于上下文 - 質(zhì)量保障不能僅僅考慮需求本身,還需要考慮關(guān)聯(lián)的上下游等諸多因素 |
| 6 | **沒有不存在缺陷的系統(tǒng) **- 要充分對系統(tǒng)進行風(fēng)險分析,沒發(fā)現(xiàn)問題不代表沒有缺陷。 |
| 7 | 測試用例的設(shè)計不僅要考慮有效輸入輸出,也應(yīng)該考慮無效和未預(yù)測到的輸入情況,異常測試必須覆蓋 |
| 8 | 檢查系統(tǒng)是否“沒有完成應(yīng)該完成的”,僅僅是測試的一半,另一半是檢查系統(tǒng)是否“做了不應(yīng)該做的”。 |
| 9 | 隨時沉淀,隨時總結(jié),隨時思考,質(zhì)量保障是持續(xù)性的,創(chuàng)造性的,富有挑戰(zhàn)性的工作。 |
- To Be Continued?-
阿里P9專家右軍:大話軟件質(zhì)量穩(wěn)定性
阿里P9專家右軍:以終為始的架構(gòu)設(shè)計
假如把支付寶存儲服務(wù)器炸了,里面的錢還在么?
19歲P8入駐阿里?從阿里的人才成長體系學(xué)習(xí)
阿里P8架構(gòu)師:淘寶技術(shù)架構(gòu)從1.0到4.0的架構(gòu)變遷!12頁PPT詳解
阿里技術(shù):如何畫出一張合格的技術(shù)架構(gòu)圖?
? ?END ? ?? #接力技術(shù),鏈接價值# 點分享點點贊點在看
總結(jié)
以上是生活随笔為你收集整理的阿里技术专家麒烨:修炼测试基本功的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVa 10844 (大数)
- 下一篇: poj - 2356 Find a mu