目錄
- 軟件測試基本概念
- 軟件測試模型
- 軟件測試工作流程
- 測試左移和測試右移
一侮措、軟件測試
- 通過手工或者工具對“被測對象”進(jìn)行測試
- 驗(yàn)證實(shí)際結(jié)果與預(yù)期結(jié)果之間是否存在差異
1、軟件測試作用
- 通過測試工作可以發(fā)現(xiàn)并修復(fù)軟件當(dāng)中存在的缺陷做盅,從而提高用戶對產(chǎn)品的使用信心缤削。
- 測試可以降低同類型產(chǎn)品開發(fā)遇到問題的風(fēng)險(xiǎn)。
2言蛇、軟件缺陷
- 軟件缺陷被測試工程師和開發(fā)工程師們稱作bug
- 軟件缺陷會(huì)導(dǎo)致軟件不能正常運(yùn)行僻他,它的存在會(huì)在一定程度上導(dǎo)致軟件不能滿足用戶的需求,甚至有可能破壞或泄漏用戶的重要數(shù)據(jù)
3腊尚、軟件測試原則
- 測試顯示缺陷的存在
- 窮盡測試是不可能的
- 測試盡早介入
- 缺陷集群性(2/8原則):一個(gè)模塊發(fā)現(xiàn)了bug吨拗,說明這個(gè)模塊還會(huì)有更多的bug。80%的bug集中在20%的模塊中婿斥。
- 殺蟲劑悖論:一個(gè)測試用例不能拿來執(zhí)行多次劝篷,軟件也會(huì)對其產(chǎn)生免疫效果。
- 測試活動(dòng)依賴于測試內(nèi)容:測試活動(dòng)要與程序運(yùn)行的環(huán)境可能存在的風(fēng)險(xiǎn)要相關(guān)聯(lián)民宿,沒有兩個(gè)系統(tǒng)可以使用相同的方法進(jìn)行測試娇妓。不同系統(tǒng)的測試重點(diǎn)不一樣。
- 沒有錯(cuò)誤是好活鹰,這個(gè)觀點(diǎn)是謬論:任何軟件都不可能是完美的哈恰,沒有發(fā)現(xiàn)錯(cuò)誤,不代表軟件沒有錯(cuò)誤志群。
4着绷、軟件測試對象
- 需求分析階段:需求文檔、接口文檔
- 編碼實(shí)現(xiàn)階段:源代碼
- 系統(tǒng)功能使用:軟件程序
5锌云、測試用例
- 為特定的目的而設(shè)計(jì)的一組測試輸入荠医、執(zhí)行步驟和預(yù)期的結(jié)果,以便測試產(chǎn)品否滿足某個(gè)特定需求的文檔
二、軟件測試模型
1彬向、V模型
- V模型是瀑布模型的一種改進(jìn)
- V模型標(biāo)明了測試過程中的不同階段
image.png
- 需求分析:需求文檔
- 概要設(shè)計(jì):系統(tǒng)架構(gòu)兼贡、模塊劃分、模塊與模塊之間的接口
- 詳細(xì)設(shè)計(jì):模塊內(nèi)部實(shí)現(xiàn)的邏輯和方法
- 編碼:用代碼實(shí)現(xiàn)設(shè)計(jì)的內(nèi)容
- 單元測試:測試代碼中最小模塊是否符合詳細(xì)設(shè)計(jì)
- 集成測試:測試各個(gè)模塊組成到一起后是否可以正常使用
- 系統(tǒng)測試:測試已經(jīng)集成在一起的產(chǎn)品是否符合需求文檔中的要求
- 驗(yàn)收測試:測試產(chǎn)品是否符合用戶的需求
V模型的優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
- 既有底層測試又有高層測試娃胆。
- 將開發(fā)階段清楚的表現(xiàn)出來,便于控制開發(fā)的過程遍希。
- 缺點(diǎn)
- 容易讓人誤解為測試是在開發(fā)完成之后的一個(gè)階段。
- 由于它的順序性缕棵,當(dāng)編碼完成之后孵班,正式進(jìn)入測試時(shí),這時(shí)發(fā)現(xiàn)的一些bug可能不容易找到其根源招驴,并且代碼修改起來很困難篙程。
- 如果需求變更較大,導(dǎo)致要重復(fù)變更需求别厘、設(shè)計(jì)虱饿、編碼、測試触趴。返工量大氮发。
2、W模型
- W模型明確表示出了測試與開發(fā)的并行關(guān)系
- W模型中測試伴隨著整個(gè)軟件開發(fā)周期冗懦,并且測試的對象不僅僅是程序爽冕,需求和設(shè)計(jì)同樣要測試
image.png
W模型的優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
- 將測試貫穿到整個(gè)軟件的生命周期中,且除了代碼要測試披蕉,需求颈畸、設(shè)計(jì)等都要測試。
- 更早的介入到軟件開發(fā)中没讲,能盡早的發(fā)現(xiàn)缺陷進(jìn)行修復(fù)眯娱。
- 測試與開發(fā)獨(dú)立起來,并與開發(fā)并行爬凑。
- 缺點(diǎn)
- 無法支持迭代的開發(fā)模型
- 對有些項(xiàng)目徙缴,開發(fā)過程中根本沒有文檔產(chǎn)生,故W模型無法使用嘁信。
- 對于需求和設(shè)計(jì)的測試技術(shù)要求很高于样,實(shí)踐起來很困難。
H模型
- 軟件開發(fā)中需求潘靖、設(shè)計(jì)百宇、編碼等活動(dòng)被分階段執(zhí)行、但是實(shí)踐中秘豹,他們并不是完全串行的,它們之間更多時(shí)候是交叉進(jìn)行的昌粤,更多的是迭代執(zhí)行
- 把測試活動(dòng)完全獨(dú)立出來既绕,形成一個(gè)完全獨(dú)立的流程啄刹,將測試準(zhǔn)備活動(dòng)和測試執(zhí)行活動(dòng)清晰地體現(xiàn)出來
image.png
H模型的優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
- 軟件測試完全獨(dú)立,貫穿整個(gè)生命周期凄贩,且與其他流程并發(fā)進(jìn)行
- 軟件測試活動(dòng)可以盡早準(zhǔn)備誓军、盡早執(zhí)行,具有很強(qiáng)的靈活性
- 缺點(diǎn)
- 測試就緒點(diǎn)分析困難
- 對于整個(gè)項(xiàng)目組的人員要求非常高
三疲扎、軟件測試工作流程
1昵时、傳統(tǒng)測試流程
image.png
2、系統(tǒng)測試流程
image.png
3椒丧、bug管理流程
image.png
四壹甥、測試左移和測試右移
1、測試左移
- 左移是往測試之前的開發(fā)階段移
- 測試團(tuán)隊(duì)在軟件開發(fā)周期早期就開始介入
- 對代碼進(jìn)行測試
- 從發(fā)現(xiàn)bug到預(yù)防bug
測試左移-質(zhì)量保障手段
- 代碼評審(code review)
- 代碼審計(jì)
- 單元測試
- 自動(dòng)化冒煙測試
- 研發(fā)自測
2壶熏、測試右移
- 右移是往發(fā)布之后移句柠。
- 產(chǎn)品上線后進(jìn)行線上監(jiān)控。
測試右移-線上監(jiān)控
- 閉環(huán)的線上問題反饋-檢查-解決-更新流程
- 更便捷的日志查看棒假、回傳服務(wù)
- 豐富有效的log溯职,便于問題的快速定位
- 豐富的監(jiān)控指標(biāo)(例如業(yè)務(wù)異常點(diǎn)指標(biāo))
- 業(yè)務(wù)監(jiān)控(例如短信發(fā)送等)
- 關(guān)鍵指標(biāo)每日監(jiān)控(服務(wù)器指標(biāo))
- 生產(chǎn)數(shù)據(jù)監(jiān)控(警報(bào))