軟件測試?yán)碚摶A(chǔ)第一天

1.軟件測試行業(yè)的基本介紹

1.1.為什么需要軟件測試

1.任何一款軟件都不能保證100%沒有問題,一款軟件從無到有會經(jīng)歷很多開發(fā)階段由不同的開發(fā)人員來參與開發(fā),所以更有可能存在問題,因此為了保證軟件功能是可用的,我們必須進(jìn)行測試。

2.現(xiàn)在已經(jīng)不是功能為王的時代了,現(xiàn)在除了基本功能的實現(xiàn),用戶更看重的是軟件是否容易上手,效率是否ok,等這也需要測試人員對軟件進(jìn)行大量的測試。

1.2.為什么選擇軟件測試

1.國內(nèi)軟件行業(yè)正慢慢注重軟件測試,軟件測試人員需求慢慢變大。

2.有些人喜歡創(chuàng)造世界所以選擇了開發(fā),而我們就是希望世界更完美。

1.3.為什么不讓開發(fā)自己做測試

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

2.思維方式:軟件開發(fā)人員更多的是想著怎么完成需求,而不會以用戶的角度去“奇葩”的使用這些功能。

3.測試力度:相對于開發(fā)來說產(chǎn)品就是他的“親兒子”,下手力度不會太大,僅僅測幾次得到想要的結(jié)果就完事了。

4.自己難以發(fā)現(xiàn)自己的錯誤,總覺得自己寫的是完美的,“不識廬山真面目,只緣身在此山中?!?/p>

2.軟件測試基本介紹

2.1軟件測試的定義

通過手動或自動(自動化測試)對軟件進(jìn)行測試,從而驗證實際結(jié)果與預(yù)想結(jié)果是否存在差異。

2.2軟件測試的作用

1.測試可以發(fā)現(xiàn)并修復(fù)軟件中存在的缺陷,避免用戶使用到有缺陷的軟件,使用戶對軟件更有信心。

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

2.3軟件測試的七個原則

所謂的原則就是我們進(jìn)行測試時要遵守的一些規(guī)則。

1.測試顯示軟件存在缺陷:意思就是測試的目的是為了證明軟件有缺陷,而不是證明軟件沒缺陷。測試的目的是盡量降低存在缺陷的可能性,即使沒有發(fā)現(xiàn)缺陷也不能證明軟件是完美的。

2.窮盡測試是不可能的:現(xiàn)在軟件規(guī)模越來越大,復(fù)雜度越來越高,想要做到完全性的測試是不可能的。測試人員可以根據(jù)風(fēng)險和優(yōu)先級來進(jìn)行集中的高強(qiáng)度的測試,來保證軟件的質(zhì)量。

3.測試盡早介入:測試人員一般在需求階段就開始介入,使缺陷在需求階段或設(shè)計階段就被發(fā)現(xiàn),缺陷發(fā)現(xiàn)越早,修復(fù)成本就越小。

4.缺陷集群性(2/8原則):缺陷集群性表明小部分模塊包含大部分缺陷。一般來說你在一個模塊發(fā)現(xiàn)的缺陷越多,那么這個地方未發(fā)現(xiàn)的缺陷也越多,未發(fā)現(xiàn)的缺陷和發(fā)現(xiàn)的缺陷成正比。2/8原則就是%80的缺陷出現(xiàn)在20%的模塊中。

5.殺蟲劑悖論:反復(fù)使用相同的殺蟲劑會導(dǎo)致蟲子對殺蟲劑產(chǎn)生免疫,從而無法殺死蟲子,測試也是如果一直使用一套測試方法或手段,無法發(fā)現(xiàn)新的bug。測試用例應(yīng)該定期修改和評審,增加新的測試用例和方法幫助發(fā)現(xiàn)更多的缺陷。

6.測試活動依賴測試內(nèi)容:軟件測試也分為不同的行業(yè),比如游戲,電商,金融,不同的行業(yè)不同的業(yè)務(wù),根據(jù)業(yè)務(wù)的不同測試的方法也不盡相同。

7.沒有錯誤是好事謬論:有可能99%沒有bug的軟件也不能用,這種情況出現(xiàn)在需求有誤時,軟件測試不僅要找出軟件的缺陷,也要確認(rèn)軟件是否滿足需求,如果開發(fā)出的軟件不滿足用戶的需求,即使找到了和修復(fù)了缺陷意義也不大。

3.測試對象

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

功能集合:就是測試軟件的主體功能是否有缺陷。

使用說明:就是按照說明書操作看有沒有缺陷,測試說明書的正確性。

配置數(shù)據(jù):就是測試使用配置數(shù)據(jù)有沒有缺陷,有沒有達(dá)到預(yù)期的效果。

1.需求分析階段:各種需求說明書

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

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

4.系統(tǒng)功能使用:軟件功能主體

4.測試級別

測試級別就相當(dāng)于開發(fā)中的開發(fā)模型,下面要說的是最常見的一種測試級別

1.單元測試:在軟件測試中單元是組成軟件最小的底層代碼,一般指類,函數(shù),用于測試方法或類的功能是否實現(xiàn)。

2.集成測試:將多個模塊組合在一起,然后測試它們之間溝通的“橋梁”能否正常工作(接口測試)。

3.系統(tǒng)測試:這是當(dāng)前行業(yè)做的最多的一種測試,由測試人員充當(dāng)用戶對軟件主體功能進(jìn)行測試。下面單獨說

4.驗收測試:分為α(內(nèi)測)測試和β(公測)測試以及UAT(USER ACCEPTANCE TEST)測試。

UAT測試就是客戶派出一些專業(yè)人員使用該軟件,來進(jìn)行測試。

5.系統(tǒng)測試分類

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

2.兼容性測試:驗證軟件在不同環(huán)境下是否還可已使用。

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

4.性能測試:相對于軟件消耗的資源,它的產(chǎn)出能力。

6.系統(tǒng)測試方法

1.按測試對象進(jìn)行分類

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

? ? *黑盒測試:這種測試主要就是看外在的主體功能是否可用。

? ? *灰盒測試:介于兩者之間(接口測試)。

2.按測試對象是否執(zhí)行進(jìn)行分類

? ? *靜態(tài)測試:測試對象不執(zhí)行。(一般是說明書,API接口文檔,靜態(tài)展示性質(zhì)的)。

? ? *動態(tài)測試:將軟件運行在真是的環(huán)境中進(jìn)行測試。

3.按測試手段進(jìn)行分類

? ? *手動測試:由測試人員手動的對測試軟件進(jìn)行驗證,優(yōu)點是可以靈活地改變測試操作。

? ? *自動化測試:自動化測試分為兩種,一種是測試人員編寫的測試腳本,另一種是通過第三方工具測試。優(yōu)點是可以高效率的執(zhí)行一些人工無法執(zhí)行的操作。

7.軟件質(zhì)量特征

軟件質(zhì)量有6大特征

1.功能性:滿足用戶顯示或隱示的功能

2.易用性:易用性,好上手

3.可靠性:必須實現(xiàn)需求中指明的功能

4.效率性:性能

5.可維護(hù)性:要求軟件有將某個功能修復(fù)后在使用的能力

6.可移植性:可以講軟件從一個平臺移植到另一個平臺仍然能用的能力

8.軟件測試流程

1.需求分析(不是分析需求,是分析需求的正確性。)

? ? *當(dāng)前階段的核心目的就是要梳理清楚業(yè)務(wù)。

2.設(shè)計用例

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

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

3.評審用例

? ? 對當(dāng)前的用例進(jìn)行評審修改或刪除

4.配置環(huán)境

? ? *環(huán)境指的是當(dāng)前被測對象運行所需的執(zhí)行環(huán)境,作為測試人員需要拒賠配環(huán)境的能力?!疽话闱闆r下都會使用一鍵安裝的集成環(huán)境】

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

5.執(zhí)行用例

? ? 一般在執(zhí)行用例前我們會做一個冒煙測試,意思就是先快速的對當(dāng)前軟件的核心功能或主題執(zhí)行流程進(jìn)行驗證。如果冒煙階段有問題則將此版本回退給開發(fā),如果冒煙測試通過才會開展全面的測試。

6.回歸測試及缺陷跟蹤

? ? *回歸測試就是當(dāng)我們發(fā)現(xiàn)缺陷給到開發(fā)人員并修復(fù)完成后,再次對其進(jìn)行測試。

? ? *缺陷跟蹤就是指當(dāng)我們發(fā)現(xiàn)某個缺陷后需要一直對其進(jìn)行狀態(tài)跟蹤(是否修復(fù),是否回測)。

7.輸出測試報告

? ? 將測試過程中產(chǎn)生的數(shù)據(jù)進(jìn)行可視化的輸出。方便其他人查看。

8.測試結(jié)束

? ? 將整個測試過程中產(chǎn)生的一些文檔進(jìn)行整理歸檔,方便以后使用。

9.軟件架構(gòu)【科普】

B/S????browser/server? ? 瀏覽器到服務(wù)端? ? ? ? ? ? 優(yōu)點:標(biāo)準(zhǔn),安全? ? 缺點:效率不如C/S,因為C/S中的客戶端會分擔(dān)一些數(shù)據(jù)處理

C/S? ? client/server? ? 客戶端到服務(wù)端? ? ? ? ? ? ? ? 優(yōu)點:效率? ? ? ? ? ? ? ? 缺點:開發(fā)麻煩還得開發(fā)客戶端

?著作權(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)容

  • -----轉(zhuǎn)載----- 1、問:你在測試中發(fā)現(xiàn)了一個bug,但是開發(fā)經(jīng)理認(rèn)為這不是一個bug,你應(yīng)該怎樣解決? ...
    花開沉浮閱讀 7,733評論 4 88
  • 一、 軟件測試基本概念 1 bug的概念 bug類型:defect、fault、problem、error… pr...
    三口一個瓜閱讀 4,031評論 0 12
  • 什么是軟件測試 在規(guī)定的條件下對程序進(jìn)行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計要求進(jìn)行評估的過程...
    CT9955閱讀 6,650評論 2 21
  • 1****、問:你在測試中發(fā)現(xiàn)了一個bug****,但是開發(fā)經(jīng)理認(rèn)為這不是一個bug****,你應(yīng)該怎樣解決?首先...
    一箭閱讀 9,211評論 1 205
  • 1、問:你在測試中發(fā)現(xiàn)了一個bug,但是開發(fā)經(jīng)理認(rèn)為這不是一個bug,你應(yīng)該怎樣解決? 首先,將問題提交到缺陷管理...
    小灰輝先生閱讀 1,408評論 0 3

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