1.1 軟件的分類(lèi)
1.1.1 軟件的定義
一系列按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令的集合。
軟件 = 數(shù)據(jù) + 指令 + 文檔
問(wèn)題:常見(jiàn)軟件有哪些罐孝?
1.1.2 根據(jù)應(yīng)用場(chǎng)景分類(lèi)
工具類(lèi)軟件呐馆、游戲型軟件、媒體型軟件莲兢、電商型軟件等
1.1.3 根據(jù)軟件架構(gòu)分類(lèi)
單機(jī)版軟件汹来、分布式軟件
- 單機(jī)版軟件:office续膳、紅警等
- 分布式軟件:
C/S架構(gòu)軟件:客戶端需安裝專(zhuān)門(mén)軟件,如QQ 微信等
B/S架構(gòu)軟件:客戶端為瀏覽器 收班,如百度坟岔、hao123等
1.2 軟件測(cè)試的定義與原則
1.2.1 為什么需要軟件測(cè)試
事故:阿麗亞娜5號(hào)火箭爆炸,造成重大經(jīng)濟(jì)損失摔桦。
-
原因:程序中試圖將64位浮點(diǎn)數(shù)轉(zhuǎn)換成16位整數(shù)時(shí)發(fā)生溢出-----缺少錯(cuò)誤程序?qū)?shù)據(jù)溢出進(jìn)行管理
事故:拼多多2019年用戶可以領(lǐng)取100元無(wú)門(mén)檻券社付。
原因:程序中試圖將64位浮點(diǎn)數(shù)轉(zhuǎn)換成16位整數(shù)時(shí)發(fā)生溢出-----缺少錯(cuò)誤程序?qū)?shù)據(jù)溢出進(jìn)行管理
1.2.2 軟件測(cè)試的定義
通過(guò)人工或自動(dòng)化的方式來(lái)驗(yàn)證軟件的實(shí)際結(jié)果與用戶需求是否一致的過(guò)程
1.2.3 軟件測(cè)試的原則
-
原則一:測(cè)試顯示軟件存在缺陷
測(cè)試只能證明軟件中存在缺陷,但并不能證明軟件中不存在缺陷邻耕。軟件測(cè)試是為了降低存在缺陷的可能性鸥咖,即便是沒(méi)有找到缺陷,也不能證明軟件是完美的兄世。 -
原則二:窮盡測(cè)試是不可能的
現(xiàn)在軟件的規(guī)模越來(lái)越大啼辣,復(fù)雜度越來(lái)越高,想做到完全性的測(cè)試是不可能的碘饼。在測(cè)試階段熙兔,測(cè)試人員可以根據(jù)風(fēng)險(xiǎn)和優(yōu)先級(jí)來(lái)進(jìn)行集中和高強(qiáng)度的測(cè)試,從而保證軟件的質(zhì)量艾恼。 -
原則三:測(cè)試盡早介入
為什么測(cè)試要盡早介入呢,簡(jiǎn)單的說(shuō)就是保證軟件質(zhì)量麸锉,降低風(fēng)險(xiǎn)和成本钠绍。測(cè)試人員一般在需求階段就開(kāi)始介入,使缺陷在需求或設(shè)計(jì)階段就被發(fā)現(xiàn)花沉,缺陷發(fā)現(xiàn)越早柳爽,修復(fù)的成本就越小。 -
原則四:缺陷集群性(2/8原則)
缺陷集群性表明小部分模塊包含大部分的缺陷碱屁。軟件測(cè)試中存在Pareto原則:80%的缺陷發(fā)現(xiàn)在20%的模塊中磷脯。
一個(gè)功能模塊發(fā)現(xiàn)的缺陷越高,那存在的未被發(fā)現(xiàn)的缺陷也越高娩脾,故發(fā)現(xiàn)的缺陷與未發(fā)現(xiàn)的缺陷成正比赵誓。 -
原則五:殺蟲(chóng)劑悖論
反復(fù)使用相同的殺蟲(chóng)劑會(huì)導(dǎo)致害蟲(chóng)對(duì)殺蟲(chóng)劑產(chǎn)生免疫而無(wú)法殺死害蟲(chóng)。軟件測(cè)試也一樣柿赊。如果一直使用相同的測(cè)試方法或手段俩功,可能無(wú)法發(fā)現(xiàn)新的bug。
為了解決這個(gè)問(wèn)題碰声,測(cè)試用例應(yīng)當(dāng)定期修訂和評(píng)審诡蜓,增加新的或不同的測(cè)試用例幫助發(fā)現(xiàn)更多的缺陷。
測(cè)試人員不能一直依賴于現(xiàn)有的測(cè)試技術(shù)胰挑,而要不斷的提升測(cè)試方法以提高測(cè)試效率蔓罚。 -
原則六:測(cè)試活動(dòng)依賴于測(cè)試內(nèi)容
根據(jù)業(yè)務(wù)的不同椿肩,軟件測(cè)試內(nèi)部也分為不同的行業(yè),比如游戲行業(yè)豺谈、電商行業(yè)覆旱、金融行業(yè)。不同的行業(yè)核无,測(cè)試活動(dòng)的開(kāi)展都有所不同扣唱,比如測(cè)試技術(shù)、測(cè)試工具的選擇团南,測(cè)試流程都不盡相同噪沙,所以軟件測(cè)試的活動(dòng)開(kāi)展依賴于所測(cè)試的內(nèi)容。 -
原則七:沒(méi)有錯(cuò)誤是好是謬論
有可能99%沒(méi)有bug的軟件也是不能使用的吐根。如果對(duì)錯(cuò)誤的需求進(jìn)行了徹底的測(cè)試正歼,這種情況就發(fā)生了。軟件測(cè)試不僅是找出缺陷拷橘,同時(shí)也需要確認(rèn)軟件是否滿足需求局义。如果開(kāi)發(fā)出來(lái)的產(chǎn)品不滿足用戶的需求,即便找到和修復(fù)了缺陷也作用不大冗疮。 - 原則八:程序員應(yīng)避免檢查自己的程序
- 原則九:嚴(yán)格執(zhí)行測(cè)試計(jì)劃萄唇,排除測(cè)試的隨意性
- 原則十:應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面的檢查
- 原則十一:妥善保存測(cè)試計(jì)劃、測(cè)試用例术幔、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告另萤,為維護(hù)提供方便
- 原則十二:設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入數(shù)據(jù)和不合理的輸入數(shù)據(jù)
- 原則十三:測(cè)試用例應(yīng)由測(cè)試數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果這兩部分組成
1.3 開(kāi)發(fā)與測(cè)試模型的介紹
1.3.1 開(kāi)發(fā)模型
- 瀑布模型:
- 引入:做飯最終不能返回
- 定義:將軟件生命周期的各項(xiàng)活動(dòng)規(guī)定為按固定順序而連接的若干階段工作诅挑,形如瀑布流水四敞,最終得到軟件產(chǎn)品的項(xiàng)目。
- 優(yōu)點(diǎn):
為項(xiàng)目提供了按階段劃分的檢查點(diǎn)
當(dāng)前一階段完成后拔妥,只需要去關(guān)注后續(xù)階段忿危。 - 缺點(diǎn):
各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。
由于開(kāi)發(fā)模型是線性的浙垫,用戶只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開(kāi)發(fā)成果,從而增加了開(kāi)發(fā)風(fēng)險(xiǎn)努释。
通過(guò)過(guò)多的強(qiáng)制完成日期和里程碑來(lái)跟蹤各個(gè)項(xiàng)目階段。
瀑布模型的突出缺點(diǎn)是不適應(yīng)用戶需求的變化咬摇。
- 快速原型模型:在需求分析階段對(duì)軟件的需求進(jìn)行初步而非完全的分析和定義伐蒂,用戶與開(kāi)發(fā)者在過(guò)程中加強(qiáng)反饋,快速設(shè)計(jì)開(kāi)發(fā)出軟件系統(tǒng)可以運(yùn)行的模型肛鹏;
- 增量模型:把待開(kāi)發(fā)的軟件系統(tǒng)模塊化逸邦,第1個(gè)增量往往是產(chǎn)品的核心恩沛,將每個(gè)模塊作為一個(gè)增量組件,從而分批次地分析缕减、設(shè)計(jì)雷客、編碼和測(cè)試這些增量組件;
- 敏捷開(kāi)發(fā):先選擇產(chǎn)品桥狡,再進(jìn)行開(kāi)會(huì)搅裙、對(duì)產(chǎn)品計(jì)劃,然后對(duì)任務(wù)進(jìn)行分工裹芝,分工后開(kāi)始按照計(jì)劃執(zhí)行部逮,然后就做出了新的功能模塊,然后再進(jìn)行演示嫂易、回顧兄朋,最后再領(lǐng)取新的任務(wù),依次循環(huán)怜械。
1.3.2 測(cè)試模型
V模型:
V 模型的左邊下降的是開(kāi)發(fā)過(guò)程各階段颅和,與此相對(duì)應(yīng)的是右邊上升的部分,即各測(cè)試過(guò)程的各個(gè)階段缕允。
V 模型的優(yōu)點(diǎn)在于它非常明確地標(biāo)明了測(cè)試過(guò)程中存在的不同級(jí)別峡扩,并且清楚地描述了這些測(cè)試階段和開(kāi)發(fā)各階段的對(duì)應(yīng)關(guān)系。
W模型:
相對(duì)于V模型灼芭,W模型更科學(xué)有额。W模型是V模型的發(fā)展,強(qiáng)調(diào)的是測(cè)試伴隨著整個(gè)軟件開(kāi)發(fā)周期彼绷,而且測(cè)試的對(duì)象不僅僅是程序,需求茴迁、功能和設(shè)計(jì)同樣要測(cè)試寄悯。測(cè)試與開(kāi)發(fā)是同步進(jìn)行的堕义,從而有利于盡早地發(fā)現(xiàn)問(wèn)題猜旬。
1.4 軟件測(cè)試的流程
階段名 | 工作內(nèi)容 | 產(chǎn)出物 |
---|---|---|
測(cè)試準(zhǔn)備階段 | 項(xiàng)目立項(xiàng)、需求分析倦卖、需求評(píng)審 | 需求文檔洒擦、產(chǎn)品PRD |
測(cè)試計(jì)劃階段 | 編寫(xiě)測(cè)試計(jì)劃、計(jì)劃評(píng)審 | 測(cè)試計(jì)劃 |
測(cè)試設(shè)計(jì)階段 | 提取測(cè)試點(diǎn)怕膛、編寫(xiě)測(cè)試用例熟嫩、用例評(píng)審 | 測(cè)試用例 |
測(cè)試執(zhí)行階段 | 冒煙測(cè)試、執(zhí)行測(cè)試用例褐捻、提bug掸茅、回歸測(cè)試 | 缺陷報(bào)告 |
測(cè)試完成階段 | 驗(yàn)收測(cè)試椅邓、編寫(xiě)測(cè)試報(bào)告、項(xiàng)目上線 | 測(cè)試報(bào)告 |
1.5 軟件測(cè)試的分類(lèi)
1.5.1 按技術(shù)劃分
黑盒測(cè)試昧狮、白盒測(cè)試景馁、灰盒測(cè)試
黑盒測(cè)試(Black Box -Test):把被測(cè)試的軟件看做一個(gè)黑盒子,我們不去關(guān)心盒子里邊的結(jié)構(gòu)是什么樣子逗鸣,只關(guān)心軟件的輸入數(shù)據(jù)和輸出結(jié)果
有人把黑盒測(cè)試比作中醫(yī)合住,通過(guò)“望聞問(wèn)切”來(lái)判斷是否有問(wèn)題。
“望”:觀察軟件的行為是否正常撒璧。
“聞”:檢查輸出的結(jié)果是否正確透葛。
“問(wèn)”:輸入各種信息,結(jié)合“望”沪悲,“聞”來(lái)觀察軟件的響應(yīng)获洲。
“切”:像中醫(yī)一樣給軟件“把把脈”,敲擊一下軟件的某些“關(guān)節(jié)”白盒測(cè)試:是一種按照程序內(nèi)部邏輯結(jié)構(gòu)和編碼結(jié)構(gòu)設(shè)計(jì)測(cè)試數(shù)據(jù)并完成測(cè)試的測(cè)試方法
-
灰盒測(cè)試:一種基于程序運(yùn)行時(shí)的外部表現(xiàn)同時(shí)又結(jié)合程序內(nèi)部結(jié)構(gòu)來(lái)設(shè)計(jì)測(cè)試數(shù)據(jù)的測(cè)試方法
1.5.2 按階段劃分
單元測(cè)試殿如、集成測(cè)試贡珊、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試
單元測(cè)試:對(duì)一個(gè)模塊涉馁、一個(gè)函數(shù)或者一個(gè)類(lèi)來(lái)進(jìn)行正確性檢驗(yàn)的測(cè)試方法
集成測(cè)試:?jiǎn)卧獪y(cè)試后门岔,將單獨(dú)的模塊按照設(shè)計(jì)要求組裝成為子系統(tǒng)或系統(tǒng),作為整體進(jìn)行測(cè)試的測(cè)試方法
系統(tǒng)測(cè)試:集成測(cè)試后烤送,將硬件寒随、軟件看作一個(gè)整體,對(duì)系統(tǒng)的功能及性能的總體測(cè)試
-
驗(yàn)收測(cè)試:系統(tǒng)測(cè)試后以用戶測(cè)試為主,或有測(cè)試人員共同參與檢驗(yàn)軟件質(zhì)量的測(cè)試方法
1.5.3 按內(nèi)容劃分
功能測(cè)試帮坚、性能測(cè)試妻往、兼容性測(cè)試
1.5.3.1 功能測(cè)試:
- 界面測(cè)試、冒煙測(cè)試试和、回歸測(cè)試讯泣、業(yè)務(wù)邏輯測(cè)試、易用性測(cè)試
- 功能測(cè)試:根據(jù)產(chǎn)品操作描述和需求文檔阅悍,測(cè)試一個(gè)產(chǎn)品的特性和可操作行為是否滿足用戶需求的測(cè)試方法
- 界面測(cè)試:測(cè)試用戶界面的功能模塊的布局是否符合客戶使用習(xí)慣好渠,界面操作便捷性、導(dǎo)航簡(jiǎn)單易懂性的測(cè)試
- 冒煙測(cè)試:驗(yàn)證系統(tǒng)的核心功能是否能夠正常運(yùn)行的測(cè)試方法
- 回歸測(cè)試:指修改了舊代碼后节视,重新進(jìn)行測(cè)試以確認(rèn)修改沒(méi)有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤的測(cè)試方法
- 業(yè)務(wù)邏輯測(cè)試:在基本的功能點(diǎn)都已合格的基礎(chǔ)上拳锚,準(zhǔn)備多種測(cè)試數(shù)據(jù),來(lái)驅(qū)動(dòng)各種約束條件下業(yè)務(wù)流程寻行,確定最終輸出的結(jié)果是否符合預(yù)期的測(cè)試
- 易用性測(cè)試:指用戶使用軟件時(shí)是否感覺(jué)方便的測(cè)試
1.5.3.2 性能測(cè)試:
- 性能測(cè)試:通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常霍掺、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行校驗(yàn)的測(cè)試方法
- 壓力測(cè)試:通過(guò)逐步增加系統(tǒng)負(fù)載,測(cè)試系統(tǒng)性能的變化,并確定在什么條件下系統(tǒng)性能處于失效狀態(tài)
- 負(fù)載測(cè)試:通過(guò)逐步增加系統(tǒng)負(fù)載抗楔,測(cè)試系統(tǒng)性能的變化棋凳,在滿足性能指標(biāo)的情況下,系統(tǒng)所能承受的最大負(fù)載量的測(cè)試
- 并發(fā)測(cè)試:是一個(gè)負(fù)載測(cè)試和壓力測(cè)試的過(guò)程连躏,即逐漸增加并發(fā)用戶數(shù)負(fù)載直到系統(tǒng)的瓶頸剩岳,通過(guò)分析資源監(jiān)控指標(biāo)等來(lái)確定系統(tǒng)并發(fā)性能
1.5.3.3 兼容性測(cè)試:
- app
- Android/IOS版本
- 廠商
- 型號(hào)
- 分辨率
- 屏幕:全屏、水滴屏入热、劉海屏拍棕、曲面屏、折疊屏勺良、雙面屏
- web
- 瀏覽器:四類(lèi)绰播,根據(jù)瀏覽器內(nèi)核(78)
1.5.4 按其他劃分
- 冒煙測(cè)試、隨機(jī)測(cè)試尚困、安全性測(cè)試蠢箩、探索性測(cè)試、回歸測(cè)試事甜、Alpha測(cè)試谬泌、Beta測(cè)試
- 隨機(jī)測(cè)試:隨機(jī)測(cè)試主要是根據(jù)測(cè)試者的經(jīng)驗(yàn)無(wú)需測(cè)試用例對(duì)軟件進(jìn)行功能和性能抽查的測(cè)試方法
- 安全性測(cè)試:通過(guò)不同的測(cè)試方法,檢驗(yàn)程序逻谦、網(wǎng)絡(luò)掌实、數(shù)據(jù)庫(kù)安全性的測(cè)試方法
- 探索性測(cè)試:碰到問(wèn)題時(shí)能隨機(jī)應(yīng)變,強(qiáng)調(diào)測(cè)試人員的主觀能動(dòng)性明確整體的測(cè)試計(jì)劃的測(cè)試方法
- Alpha測(cè)試:俗稱(chēng)內(nèi)測(cè)邦马,α測(cè)試贱鼻。內(nèi)部環(huán)境下的測(cè)試;開(kāi)發(fā)人員或測(cè)試人員在現(xiàn)場(chǎng)
- Beta測(cè)試:俗稱(chēng)外測(cè)滋将、公測(cè)邻悬,β測(cè)試。生產(chǎn)環(huán)境下的測(cè)試随闽;開(kāi)發(fā)人員和測(cè)試人員都不在現(xiàn)場(chǎng)3
作者:Anwfly
鏈接:http://www.reibang.com/p/4d164616a415
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有拘悦。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處橱脸。