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:它是一種分層的圖片。?