1.軟件測(cè)試行業(yè)的基本介紹
1.1.為什么需要軟件測(cè)試
1.任何一款軟件都不能保證100%沒(méi)有問(wèn)題,一款軟件從無(wú)到有會(huì)經(jīng)歷很多開(kāi)發(fā)階段由不同的開(kāi)發(fā)人員來(lái)參與開(kāi)發(fā),所以更有可能存在問(wèn)題,因此為了保證軟件功能是可用的,我們必須進(jìn)行測(cè)試。
2.現(xiàn)在已經(jīng)不是功能為王的時(shí)代了,現(xiàn)在除了基本功能的實(shí)現(xiàn),用戶(hù)更看重的是軟件是否容易上手,效率是否ok,等這也需要測(cè)試人員對(duì)軟件進(jìn)行大量的測(cè)試。
1.2.為什么選擇軟件測(cè)試
1.國(guó)內(nèi)軟件行業(yè)正慢慢注重軟件測(cè)試,軟件測(cè)試人員需求慢慢變大。
2.有些人喜歡創(chuàng)造世界所以選擇了開(kāi)發(fā),而我們就是希望世界更完美。
1.3.為什么不讓開(kāi)發(fā)自己做測(cè)試
1.專(zhuān)業(yè)度:軟件開(kāi)發(fā)和軟件測(cè)試分別屬于軟件行業(yè)中不同的技術(shù)方向,所以讓專(zhuān)人做專(zhuān)事對(duì)質(zhì)量更加有保障。
2.思維方式:軟件開(kāi)發(fā)人員更多的是想著怎么完成需求,而不會(huì)以用戶(hù)的角度去“奇葩”的使用這些功能。
3.測(cè)試力度:相對(duì)于開(kāi)發(fā)來(lái)說(shuō)產(chǎn)品就是他的“親兒子”,下手力度不會(huì)太大,僅僅測(cè)幾次得到想要的結(jié)果就完事了。
4.自己難以發(fā)現(xiàn)自己的錯(cuò)誤,總覺(jué)得自己寫(xiě)的是完美的,“不識(shí)廬山真面目,只緣身在此山中?!?/p>
2.軟件測(cè)試基本介紹
2.1軟件測(cè)試的定義
通過(guò)手動(dòng)或自動(dòng)(自動(dòng)化測(cè)試)對(duì)軟件進(jìn)行測(cè)試,從而驗(yàn)證實(shí)際結(jié)果與預(yù)想結(jié)果是否存在差異。
2.2軟件測(cè)試的作用
1.測(cè)試可以發(fā)現(xiàn)并修復(fù)軟件中存在的缺陷,避免用戶(hù)使用到有缺陷的軟件,使用戶(hù)對(duì)軟件更有信心。
2.測(cè)試可以記錄軟件運(yùn)行過(guò)程中產(chǎn)生的一些數(shù)據(jù),從而為決策提供數(shù)據(jù)支持。
2.3軟件測(cè)試的七個(gè)原則
所謂的原則就是我們進(jìn)行測(cè)試時(shí)要遵守的一些規(guī)則。
1.測(cè)試顯示軟件存在缺陷:意思就是測(cè)試的目的是為了證明軟件有缺陷,而不是證明軟件沒(méi)缺陷。測(cè)試的目的是盡量降低存在缺陷的可能性,即使沒(méi)有發(fā)現(xiàn)缺陷也不能證明軟件是完美的。
2.窮盡測(cè)試是不可能的:現(xiàn)在軟件規(guī)模越來(lái)越大,復(fù)雜度越來(lái)越高,想要做到完全性的測(cè)試是不可能的。測(cè)試人員可以根據(jù)風(fēng)險(xiǎn)和優(yōu)先級(jí)來(lái)進(jìn)行集中的高強(qiáng)度的測(cè)試,來(lái)保證軟件的質(zhì)量。
3.測(cè)試盡早介入:測(cè)試人員一般在需求階段就開(kāi)始介入,使缺陷在需求階段或設(shè)計(jì)階段就被發(fā)現(xiàn),缺陷發(fā)現(xiàn)越早,修復(fù)成本就越小。
4.缺陷集群性(2/8原則):缺陷集群性表明小部分模塊包含大部分缺陷。一般來(lái)說(shuō)你在一個(gè)模塊發(fā)現(xiàn)的缺陷越多,那么這個(gè)地方未發(fā)現(xiàn)的缺陷也越多,未發(fā)現(xiàn)的缺陷和發(fā)現(xiàn)的缺陷成正比。2/8原則就是%80的缺陷出現(xiàn)在20%的模塊中。
5.殺蟲(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。測(cè)試用例應(yīng)該定期修改和評(píng)審,增加新的測(cè)試用例和方法幫助發(fā)現(xiàn)更多的缺陷。
6.測(cè)試活動(dòng)依賴(lài)測(cè)試內(nèi)容:軟件測(cè)試也分為不同的行業(yè),比如游戲,電商,金融,不同的行業(yè)不同的業(yè)務(wù),根據(jù)業(yè)務(wù)的不同測(cè)試的方法也不盡相同。
7.沒(méi)有錯(cuò)誤是好事謬論:有可能99%沒(méi)有bug的軟件也不能用,這種情況出現(xiàn)在需求有誤時(shí),軟件測(cè)試不僅要找出軟件的缺陷,也要確認(rèn)軟件是否滿(mǎn)足需求,如果開(kāi)發(fā)出的軟件不滿(mǎn)足用戶(hù)的需求,即使找到了和修復(fù)了缺陷意義也不大。
3.測(cè)試對(duì)象
對(duì)于當(dāng)前的測(cè)試行業(yè)來(lái)說(shuō),我們最經(jīng)常測(cè)試的主體就是軟件。但我們要知道軟件不僅僅只有功能需要我們的測(cè)試。我們可以將軟件分為三個(gè)部分組成:功能集合+使用說(shuō)明(說(shuō)明書(shū))+配置數(shù)據(jù)(初始化數(shù)據(jù))
功能集合:就是測(cè)試軟件的主體功能是否有缺陷。
使用說(shuō)明:就是按照說(shuō)明書(shū)操作看有沒(méi)有缺陷,測(cè)試說(shuō)明書(shū)的正確性。
配置數(shù)據(jù):就是測(cè)試使用配置數(shù)據(jù)有沒(méi)有缺陷,有沒(méi)有達(dá)到預(yù)期的效果。
1.需求分析階段:各種需求說(shuō)明書(shū)
2.軟件架構(gòu)設(shè)計(jì):API接口文檔(接口測(cè)試)
3.編碼實(shí)現(xiàn)階段:白盒測(cè)試,單元測(cè)試
4.系統(tǒng)功能使用:軟件功能主體
4.測(cè)試級(jí)別
測(cè)試級(jí)別就相當(dāng)于開(kāi)發(fā)中的開(kāi)發(fā)模型,下面要說(shuō)的是最常見(jiàn)的一種測(cè)試級(jí)別
1.單元測(cè)試:在軟件測(cè)試中單元是組成軟件最小的底層代碼,一般指類(lèi),函數(shù),用于測(cè)試方法或類(lèi)的功能是否實(shí)現(xiàn)。
2.集成測(cè)試:將多個(gè)模塊組合在一起,然后測(cè)試它們之間溝通的“橋梁”能否正常工作(接口測(cè)試)。
3.系統(tǒng)測(cè)試:這是當(dāng)前行業(yè)做的最多的一種測(cè)試,由測(cè)試人員充當(dāng)用戶(hù)對(duì)軟件主體功能進(jìn)行測(cè)試。下面單獨(dú)說(shuō)
4.驗(yàn)收測(cè)試:分為α(內(nèi)測(cè))測(cè)試和β(公測(cè))測(cè)試以及UAT(USER ACCEPTANCE TEST)測(cè)試。
UAT測(cè)試就是客戶(hù)派出一些專(zhuān)業(yè)人員使用該軟件,來(lái)進(jìn)行測(cè)試。
5.系統(tǒng)測(cè)試分類(lèi)
1.功能測(cè)試:驗(yàn)證當(dāng)前軟件的主體功能是否可用。
2.兼容性測(cè)試:驗(yàn)證軟件在不同環(huán)境下是否還可已使用。
3.安全測(cè)試:驗(yàn)證軟件是否只能是授權(quán)用戶(hù)提供功能使用。
4.性能測(cè)試:相對(duì)于軟件消耗的資源,它的產(chǎn)出能力。
6.系統(tǒng)測(cè)試方法
1.按測(cè)試對(duì)象進(jìn)行分類(lèi)
? ? *白盒測(cè)試:這種測(cè)試主體就是軟件底層代碼,不在意外在界面是否ok,只要求底層功能實(shí)現(xiàn),同時(shí)邏輯正確。
? ? *黑盒測(cè)試:這種測(cè)試主要就是看外在的主體功能是否可用。
? ? *灰盒測(cè)試:介于兩者之間(接口測(cè)試)。
2.按測(cè)試對(duì)象是否執(zhí)行進(jìn)行分類(lèi)
? ? *靜態(tài)測(cè)試:測(cè)試對(duì)象不執(zhí)行。(一般是說(shuō)明書(shū),API接口文檔,靜態(tài)展示性質(zhì)的)。
? ? *動(dòng)態(tài)測(cè)試:將軟件運(yùn)行在真是的環(huán)境中進(jìn)行測(cè)試。
3.按測(cè)試手段進(jìn)行分類(lèi)
? ? *手動(dòng)測(cè)試:由測(cè)試人員手動(dòng)的對(duì)測(cè)試軟件進(jìn)行驗(yàn)證,優(yōu)點(diǎn)是可以靈活地改變測(cè)試操作。
? ? *自動(dòng)化測(cè)試:自動(dòng)化測(cè)試分為兩種,一種是測(cè)試人員編寫(xiě)的測(cè)試腳本,另一種是通過(guò)第三方工具測(cè)試。優(yōu)點(diǎn)是可以高效率的執(zhí)行一些人工無(wú)法執(zhí)行的操作。
7.軟件質(zhì)量特征
軟件質(zhì)量有6大特征
1.功能性:滿(mǎn)足用戶(hù)顯示或隱示的功能
2.易用性:易用性,好上手
3.可靠性:必須實(shí)現(xiàn)需求中指明的功能
4.效率性:性能
5.可維護(hù)性:要求軟件有將某個(gè)功能修復(fù)后在使用的能力
6.可移植性:可以講軟件從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái)仍然能用的能力
8.軟件測(cè)試流程
1.需求分析(不是分析需求,是分析需求的正確性。)
? ? *當(dāng)前階段的核心目的就是要梳理清楚業(yè)務(wù)。
2.設(shè)計(jì)用例
? ? *用例就是用戶(hù)為了測(cè)試軟件的某個(gè)功能而執(zhí)行的操作過(guò)程。
? ? *設(shè)計(jì)用例是有方法的(等價(jià)類(lèi)、邊界值、判定表……)
3.評(píng)審用例
? ? 對(duì)當(dāng)前的用例進(jìn)行評(píng)審修改或刪除
4.配置環(huán)境
? ? *環(huán)境指的是當(dāng)前被測(cè)對(duì)象運(yùn)行所需的執(zhí)行環(huán)境,作為測(cè)試人員需要拒賠配環(huán)境的能力。【一般情況下都會(huì)使用一鍵安裝的集成環(huán)境】
? ? *環(huán)境分類(lèi):操作幾桶+服務(wù)器軟件+數(shù)據(jù)庫(kù)+軟件底層代碼的執(zhí)行環(huán)境。
5.執(zhí)行用例
? ? 一般在執(zhí)行用例前我們會(huì)做一個(gè)冒煙測(cè)試,意思就是先快速的對(duì)當(dāng)前軟件的核心功能或主題執(zhí)行流程進(jìn)行驗(yàn)證。如果冒煙階段有問(wèn)題則將此版本回退給開(kāi)發(fā),如果冒煙測(cè)試通過(guò)才會(huì)開(kāi)展全面的測(cè)試。
6.回歸測(cè)試及缺陷跟蹤
? ? *回歸測(cè)試就是當(dāng)我們發(fā)現(xiàn)缺陷給到開(kāi)發(fā)人員并修復(fù)完成后,再次對(duì)其進(jìn)行測(cè)試。
? ? *缺陷跟蹤就是指當(dāng)我們發(fā)現(xiàn)某個(gè)缺陷后需要一直對(duì)其進(jìn)行狀態(tài)跟蹤(是否修復(fù),是否回測(cè))。
7.輸出測(cè)試報(bào)告
? ? 將測(cè)試過(guò)程中產(chǎn)生的數(shù)據(jù)進(jìn)行可視化的輸出。方便其他人查看。
8.測(cè)試結(jié)束
? ? 將整個(gè)測(cè)試過(guò)程中產(chǎn)生的一些文檔進(jìn)行整理歸檔,方便以后使用。
9.軟件架構(gòu)【科普】
B/S????browser/server? ? 瀏覽器到服務(wù)端? ? ? ? ? ? 優(yōu)點(diǎn):標(biāo)準(zhǔn),安全? ? 缺點(diǎn):效率不如C/S,因?yàn)镃/S中的客戶(hù)端會(huì)分擔(dān)一些數(shù)據(jù)處理
C/S? ? client/server? ? 客戶(hù)端到服務(wù)端? ? ? ? ? ? ? ? 優(yōu)點(diǎn):效率? ? ? ? ? ? ? ? 缺點(diǎn):開(kāi)發(fā)麻煩還得開(kāi)發(fā)客戶(hù)端