從0到1建立軟件測試質(zhì)量體系

1.1軟件測試行業(yè)基本介紹

一、為什么需要軟件測試

1.一款軟件從無到有會經(jīng)歷很多的開發(fā)階段由不同的人來參與開發(fā),所以最終產(chǎn)出的軟件功能可能會存在問題。因此為了保證軟件的功能是可用的,我們必須要進行測試。


2.當(dāng)前的軟件件行業(yè)已經(jīng)不在是功能為王了,用戶不僅僅只盯著軟件的功能是否滿足需求, 還會對軟件是否容易上手,執(zhí)行效率是否 OK .....等一系列其它體驗都有了更高的要求,所以 這也需要我們對軟件進行大量的測試。


二、為什么選擇軟件測試


1. 國內(nèi)的軟件行業(yè)對于專業(yè)的軟件測試人員需求是慢慢變大。?


2. 有些人喜歡創(chuàng)造世界所以他們做了開發(fā),?而我們就是希望這個世界變得更加美好所以做了測試。?


三、為什么不讓開發(fā)自已做測試


1.當(dāng)前行業(yè)有許多的測試從業(yè)人員本身之前都是開發(fā)崗。?


2.專業(yè)度:軟件測試和軟件開發(fā)分別屬于軟件行業(yè)當(dāng)中二個不同的技術(shù)方向。所以讓專人做專事對于質(zhì)量更加有保證。?


3.思維定式:?在軟件的開發(fā)周期中?對于程序員來說他們大多數(shù)的時間都是在思考如何實現(xiàn)具體的軟件功能,而不會去從用戶的角度考慮如何去"奇葩"的使用這些功能。?


4.測試力度:?相對于開發(fā)來說,產(chǎn)器就相當(dāng)于是他們的"孩子"。所以"下手"就不會那么狠。?



1.2?軟件測試基本介紹?


一、軟件測試定義



通過手工或者工具對 "被測對象"進行測試操作,從而驗證實際結(jié)與預(yù)期結(jié)果之間是否存在差異。?


二、軟件測試的作用


1.通過測試工作可以發(fā)現(xiàn)并修復(fù)軟件當(dāng)中存在的缺陷,從而提高用戶對產(chǎn)品的使用信心。?

2.測試可以記錄軟件運行過程中產(chǎn)生的一些數(shù)據(jù),從而為決策提供數(shù)據(jù)支持。?


3.測試可以降低同類型產(chǎn)品開發(fā)遇到問題的風(fēng)險。?


三、測試原則:


所謂的測試原則指的就是我們在執(zhí)行測試工作時必須要遵守的一些規(guī)則。?


1.測試證明軟件存在缺陷:無論執(zhí)行什么樣的測試操作都保能證明當(dāng)前軟件是有缺陷的。?

2.不能執(zhí)行窮盡測試:有些功能是沒有辦法將所有的測試情況都邏列出來,所以任何的測試操作都有結(jié)束的時間。?

3.缺陷存在群集現(xiàn)象:對于軟件功能說,核心功能占 20%,非核心是 80%。在實際工作中我們會集中測試 20%的核心功能,所以這個部分發(fā)現(xiàn)缺陷的幾率就會高于 80%。因此我們我們就會遇到缺陷都集中在 20% 功能模塊里的現(xiàn)象。

4.某些測試需要依賴特殊的環(huán)境?

5.測試應(yīng)盡早介入:為了更多的發(fā)現(xiàn)和更好的解決軟件中的缺陷,我們追求測試工作盡早的開展。?

6.殺蟲劑現(xiàn)象:同樣的一個測試用例不能重的執(zhí)行多次,因為軟件會對它產(chǎn)生免疫。

7.不存在缺陷謬論:任何軟件不可能是完美的。?


1.3 測試對象介紹


對于當(dāng)前的測試行業(yè)來說我們最經(jīng)常測試的主體就是?軟件( 主體功能 ),但是需要我們明白是一個軟件也不僅僅只有功能需要測試。我們可以將軟件分為三個部分組成:功能集合+使用說明書 + 配置數(shù)據(jù)。?


對于一款軟件來說從無到有需要不同的過程,我們可以將這個過程分為不同階段,然后每個階段都會相應(yīng)有測試對象?

1. 需求分析階段:各種需求規(guī)格說明書。?

2. 軟件架構(gòu)設(shè)計:API 接口文檔( 接口測試 )

3. 編碼實現(xiàn)階段:源代碼(?白盒測試、單元測試?)?

4. 系統(tǒng)功能使用:軟件功能主體(?當(dāng)前行業(yè)做的最多的一種測試?)?

1.4 測試級別


軟件的開發(fā)都會依據(jù)相應(yīng)的開發(fā)模型,?則測試級別指的就在這個模型當(dāng)中我們?nèi)藶槎x的開發(fā)步驟。其中對于測試來說我們最常見的一種級別分類如下:?


1.單元測試[ UT unit test ]:在軟件測試中單元指的就是組成軟件最小的底層代碼結(jié)構(gòu),?

一般就是類、函數(shù)、組件(?當(dāng)下的軟件測試行業(yè),不會刻意要求測試人員對源代碼進行測試?)。?

2.集成測試( IT system ingertaion test ):將多個單元模塊組合在一起,然后驗證它們之間溝通的"橋梁"是否能正常工作( 接口測試 )

3.系統(tǒng)測試( ST system test ):這是當(dāng)前行業(yè)做的最多的一種測試。由測試人員充當(dāng)用戶然后對軟件的功能主體進行測試。?


4.驗收測試:

(1) a測試 ---- 內(nèi)測?

(2) b測試 -----公測?

(3) UAT( user acceptance test )測試---- 由客戶派出對于業(yè)務(wù)非常精通的人員來使用該軟件,從而對功能進行測試。?

(4) 驗收測試的核心就是讓用戶為當(dāng)前軟件 "買單"

1.5 系統(tǒng)測試分類

1. 功能測試:驗證當(dāng)前的軟件主體功能是否可用。?

2. 兼容性測試:驗證當(dāng)前軟件在不同的環(huán)境下是否還可以使用。?

3. 安全測試:驗證軟件是否只是能授權(quán)用戶提供功能使用。?

4. 性能測試:相對于當(dāng)前軟件消耗的資源?它的產(chǎn)出能力。?

1.6 常見的系統(tǒng)測試方法

一、按測試對象進行分類

1.白盒測試:這種測試的主體就是軟件的底層代碼,不會在意外在的界面是否 OK ,只要求底層功能實現(xiàn),同時邏輯正確。?

2.黑盒測試:這種測試就是指測試軟件外在主體功能是否可用。?

3.灰盒測試:介于二者之間(?接口測試?)?

4.上述三種方法當(dāng)中的 "盒" 指的就是被測對象。?

二、按測試對象是否執(zhí)行分類

1.靜態(tài)測試:指的就是測試不執(zhí)行。?

2.動態(tài)測試:將軟件運行在真實的使用環(huán)境中進行測試。?

三、按測試手段進行分類

1.手工測試:由測試人員手動的對被測對象進行驗證,優(yōu)點就是可以靈活的改變測試操作及環(huán)境。?

2.自動化測試:所謂自動化主要有二種形,一種是自已寫測試腳本,另外一種就是通過第三方的工具對被測對象進行測試。優(yōu)點就是可以高效率的去執(zhí)行一些人工無法實現(xiàn)的操作。?

1.7 軟件質(zhì)量

描述當(dāng)前軟件是否好用,在當(dāng)前的軟件行業(yè)里我們所采用的一套標準是基于 ISO 組織制定的。需要我們記憶的就是軟件質(zhì)量的六大特性:?

1. 功能性:軟件需要滿足用戶顯式或者穩(wěn)式的功能。?

2. 易用性:軟件易于學(xué)習(xí)?和上手使用。?

3. 可靠性:指的就是軟件必須實現(xiàn)需求當(dāng)中指明的具體功能。?

4. 效率性:類似于軟件的性能。?

5. 可維護性:要求軟件具有將某個功能修復(fù)之后繼續(xù)使用的能力。?

6. 可移植性:當(dāng)前軟件可以從一個平臺移植到另一個平臺上去使用的能力。?

【?功能靠用,效率可"以" 】?

1.8 軟件測試流程

1. 需求分析?

(1) 當(dāng)前階段的核心目的就是梳理清楚我們需要設(shè)計的點是什么。?

(2) 需求的來源:需求規(guī)格說明書、API 文檔、竟品分析、個人經(jīng)驗?


2. 設(shè)計用例:?

(1) 用例就是用戶為了測試軟件的某個功能而執(zhí)行的操作過程。?

(2) 設(shè)計用例是有方法的(?等價類、邊界值、判定表...... )?

3. 評審用例:對當(dāng)前的用例進行添加或者刪除。?

4. 配置環(huán)境?

(1) 環(huán)境:指的就是當(dāng)前被測對象運行所需要的執(zhí)行環(huán)境,做為測試人員需要具備配環(huán)境的能力?!?一般情況下都會使用一鍵安裝的集成環(huán)境?】?

(2) 環(huán)境分類:操作系統(tǒng) + 服務(wù)器軟件 + 數(shù)據(jù)庫 + 軟件底層代碼的執(zhí)行環(huán)境。?

5. 執(zhí)行用例?

(1)?一般在執(zhí)行用例之前我們會做一個冒煙測試。?這種測試的核心就是快速的對當(dāng)前軟件的核心功能或者主體執(zhí)行流程進行驗證。如果冒煙測試階段有問題,則可以將此版本回退給開發(fā)。?

(2) 如果冒煙測試通過那么才會開展示全面的測試。?

6. 回歸測試及缺陷跟蹤?

(1) 回歸測試指的就是當(dāng)我們將某個缺陷提交給開發(fā)之后,由它們進行修復(fù),修復(fù)完成之后需要測試認員再次對其進行測試【回歸測試】?

(2) 缺陷跟蹤:指的就是當(dāng)測試人員發(fā)現(xiàn)某個缺陷之后需要一直對其進行狀態(tài)的跟蹤。?

7. 輸出測試報告?

將當(dāng)前的測試過程中產(chǎn)生的數(shù)據(jù)進行可視化的輸出。方便其它人去查看。?

8. 測試結(jié)束?

當(dāng)將整個測試過程中產(chǎn)生的一些文檔進行整理歸檔,方便后續(xù)版本使用。?

1.9 軟件架構(gòu)

所謂的軟件架構(gòu)我們可以理解為是用來指導(dǎo)我們軟件開發(fā)的一種思想。?目前來說最常見的二種架構(gòu)模式就是 B/S C/S

?B---browser 瀏覽器?

C---clent 客戶端?

S---server 服務(wù)端?

一、二種架構(gòu)的比較?

?1.標準:相對于 CS 架構(gòu)來說 BS 架構(gòu)的二端都是在使用現(xiàn)成的成熟產(chǎn)品。所以 BS 會顯示的標準一些。?

2.效率:相對于 BS 架構(gòu)來說 CS 中的客戶端可以分擔(dān)一些數(shù)據(jù)的處理,因此執(zhí)行效率會高一些。?

3.安全:B S 架構(gòu)當(dāng)中的數(shù)據(jù)傳輸都是以 HTTP 協(xié)議進行的輸出,而 HTTP 協(xié)議又是明文輸出??梢员蛔グ韵鄬τ?CS 架構(gòu)來說 BS 就顯得不那么安全【相對的】?

4.升級:?架構(gòu)只需要在服務(wù)器端將數(shù)據(jù)進地更新,?前臺只需要刷新頁面就可以完成升級, BS CS 架構(gòu)當(dāng)中必須要將二端都進行更新。?

5.開發(fā)成本:相對于 BS 架構(gòu)來說 CS 當(dāng)中的客戶端需要自已開發(fā),所以相對于來說成本會高一些。?


1.10 瀏覽器基本介紹


一、瀏覽器是什么


瀏覽器本質(zhì)就是一款軟件,安裝在操作系統(tǒng)之上。一般給用戶提供瀏覽網(wǎng)頁的服務(wù)。目前來說我們會人為的將所有瀏覽器總結(jié)出一個所謂的五大生產(chǎn)廠商?!?對于瀏覽器來說最核心技術(shù)就是內(nèi)核?】?


如果對軟件測試有興趣,想了解更多的測試知識,解決測試問題,以及入門指導(dǎo),幫你解決測試中遇到的困惑,我們這里有技術(shù)高手。如果你正在找工作或者剛剛學(xué)校出來,又或者已經(jīng)工作但是經(jīng)常覺得難點很多,覺得自己測試方面學(xué)的不夠精想要繼續(xù)學(xué)習(xí)的,想轉(zhuǎn)行怕學(xué)不會的, 都可以加入我們1079636098,群內(nèi)可領(lǐng)取最新軟件測試大廠面試資料和Python自動化、接口、框架搭建學(xué)習(xí)資料!

二、五大瀏覽器生產(chǎn)廠商


1.IE( 微軟 )-----trident

2.Chrome ( 谷歌 )----blink

3.Firefox( 火狐 )-----gecko

4.Safari( 蘋果 )-----webkit

5.Opera( 歐朋 )----presto【?現(xiàn)在已經(jīng)放棄自已東西完全向 chrome 】?

1.11 常見的圖片類型

1. Jpg(jpeg) :這是一種可以高度保留圖片色彩信息的格式。?

2. Png:該類型的圖片可以實現(xiàn)透明。?

3. Gif:圖片所占體積小,可以實現(xiàn)動圖?

4. Psd:它是一種分層的圖片。?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容