一、軟件測試分類
1痹升、按照開發(fā)階段劃分
① 單元測試
一般要讀程序和代碼建炫。大多數(shù)時候,單元測試都是由開發(fā)人員自己去完成(交叉)(但是一般不認(rèn)為是在做測試)疼蛾。測試人員為什么不做單元測試肛跌?(大家不懂代碼和算法)
- 又稱為模塊測試,是針對軟件設(shè)計的最小單位(程序模塊)進(jìn)行正確性檢驗的測試工作
- 其目的在于檢查每個程序單元能否正確實現(xiàn)詳細(xì)設(shè)計說明中的模塊功能、性能衍慎、接口和設(shè)計約束等要求转唉,發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯誤
- 單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例
- 多個模塊可以平行地獨立進(jìn)行單元測試
② 集成測試
比較多的設(shè)計到接口測試(接口測試工具和方法專門學(xué)習(xí)),企業(yè)非常需要接口測試工程師西饵。它是一個持續(xù)不斷的過程
- 也叫組裝測試酝掩。通常在單元測試的基礎(chǔ)上,將所有的程序模塊進(jìn)行有序的眷柔、遞增的測試
- 集成測試時檢驗程序單元或部件的接口關(guān)系期虾,逐步集成為符合概要設(shè)計要求的程序部件或整個系統(tǒng)
③ 確認(rèn)測試
一般都是正向的測試(功能是否實現(xiàn)),有時也稱為冒煙測試驯嘱,一般不作為正式的測試環(huán)節(jié)
- 也叫有效性測試镶苞。是在模擬的環(huán)境下,驗證軟件的所有功能和性能及其特性是否與用戶的預(yù)期要求一致
- 通過了確認(rèn)測試之后的軟件鞠评,才具備進(jìn)入系統(tǒng)測試階段的資質(zhì)
④ 系統(tǒng)測試
全面的:對系統(tǒng)所有功能的測試茂蚓;模擬所有的軟件用戶的操作;全方位的:和硬件系統(tǒng)的聯(lián)系剃幌,和系統(tǒng)軟件的聯(lián)系聋涨,和其他軟件的關(guān)系
- 是在真實的系統(tǒng)運行的環(huán)境下,檢查完整的程序系統(tǒng)能否和系統(tǒng)(包括硬件负乡、外設(shè)牍白、網(wǎng)絡(luò)和系統(tǒng)軟件绣张、支持平臺等)正確配置院崇、連接孤钦,并最終滿足用戶的所有需求
⑤ 驗收測試
一般供求雙方询刹。有三種驗收測試的主體:α測試(軟件開發(fā)商自己進(jìn)行的交付前的測試)笼沥、β測試(軟件的需求方自己進(jìn)行的測試)沦泌、γ測試(第三方的軟件測試)
- 是軟件產(chǎn)品檢驗的最后一個環(huán)節(jié)
- 按照項目任務(wù)書或合同烙常、供需雙方約定的驗收依據(jù)文檔進(jìn)行的對整個系統(tǒng)的測試和評審荆永,決定是否接收或者拒收系統(tǒng)
2朝捆、按照測試技術(shù)劃分
① 黑盒測試
- 通過軟件的外部表現(xiàn)來發(fā)現(xiàn)其他缺陷和錯誤
- 把測試對象看成一個黑盒子般渡,完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程
- 在程序界面處進(jìn)行測試,只是檢查程序是否按照需求規(guī)格說明書的規(guī)定正常實現(xiàn)
② 白盒測試
- 通過對程序內(nèi)部結(jié)構(gòu)分析芙盘、檢測來尋找問題
- 把程序看成裝在一個透明的盒子里驯用,檢查是否所有的結(jié)構(gòu)及路徑都是正確的,檢查軟件內(nèi)部動作是否按照設(shè)計說明的規(guī)定正常進(jìn)行
- 又稱為結(jié)構(gòu)測試
③ 灰盒測試
- 介于白盒和黑盒測試之間的測試
- 關(guān)注輸出對于輸入的正確性何陆,同時也關(guān)注內(nèi)部表現(xiàn)晨汹,但這種關(guān)注不像白盒測試那樣詳細(xì)、完整贷盲,只是通過一些表征性的現(xiàn)象淘这、時間剥扣、標(biāo)志來判斷內(nèi)部的運行狀態(tài)
3、按照代碼運行劃分
① 靜態(tài)測試
- 不實際運行被測對象铝穷,知識靜態(tài)的檢查程序代碼钠怯、界面或文檔中可能存在錯誤的過程
- 代碼測試:主要測試代碼是否符合相應(yīng)的標(biāo)準(zhǔn)和規(guī)范
- 界面測試:主要測試軟件的實際界面與需求中的說明是否相符
- 文檔測試:主要測試用戶手冊和需求說明是否真正符合用戶的實際需求
② 動態(tài)測試
- 實際運行被測對象,輸入相應(yīng)的測試數(shù)據(jù)曙聂,檢查實際輸出結(jié)果和預(yù)期結(jié)果是否相符的過程
- 判斷一個測試時動態(tài)/靜態(tài)測試晦炊,唯一的標(biāo)準(zhǔn)就是看是否運行程序
4、按照軟件特性分類
① 功能測試
- 是黑盒測試的一方面宁脊,檢查實際軟件的功能是否符合用戶的需求
- 邏輯功能測試
- 界面測試
- 易用性測試
- 安裝/卸載測試
- 兼容性測試
② 性能測試
- 功能的另一個指標(biāo)断国,主要關(guān)注軟件中的某一功能在指定的時間、空間條件下榆苞,是否使用正常
- 軟件的性能包括很多方面稳衬,主要有時間和空間性能兩種
③ 安全性測試
- 驗證安裝在系統(tǒng)內(nèi)的保護(hù)機制能否在實際應(yīng)用中對系統(tǒng)進(jìn)行保護(hù),使之不被非法入侵坐漏,不受各種因素的干擾
5薄疚、其他測試類型
① 回歸測試
- 指對軟件的新版本測試時,重復(fù)執(zhí)行之前某一個重要版本的所有測試用例
- 目的:1.驗證之前版本產(chǎn)生的所有缺陷已全部被修復(fù)赊琳;2.確認(rèn)修復(fù)這些缺陷沒有引發(fā)新缺陷
② 冒煙測試
- 在對一個新版本進(jìn)行系統(tǒng)大規(guī)模的測試之前街夭,先驗證一下軟件基本功能是否實現(xiàn),是否具備可測性
- 也叫可測性測試
③ 隨機測試
- 測試人員基于經(jīng)驗和直覺的測試躏筏,發(fā)現(xiàn)一些邊緣性的錯誤
④ 猴子測試
- 把自己當(dāng)成不懂產(chǎn)品的笨蛋或小動物板丽,隨便亂點,沒有任何的主觀意識和想法參與進(jìn)來寸士,讓一些意想不到的操作造成錯誤的結(jié)果
6檐什、按照測試運行主體劃分
① 手工測試
- 功能測試碴卧,點點點
② 自動化測試
- 利用工具軟件弱卡,或者編寫代碼的方式,測試被測的軟件系統(tǒng)(游戲外掛)
7住册、總結(jié)
圖1 軟件測試分類總結(jié)
二婶博、軟件測試的原則
1、遇到的問題
- 測試時間不夠的情況下荧飞,還有大量的內(nèi)容沒有測試凡人,軟件能不能發(fā)布/上線/發(fā)版?
- 有的嚴(yán)重bug沒修復(fù)叹阔,但是趕著上線挠轴,能不能通融/放任?
- 需求重要么耳幢?錯誤的需求對測試有什么樣的影響岸晦?
- 你覺得軟件測試在什么階段介入比較好欧啤?為什么?
- 軟件發(fā)布了启上,但是有缺陷邢隧,是測試人員的錯么?
- 你寫過測試計劃么冈在?包含什么內(nèi)容倒慧?測試計劃可以被修改么?
- 設(shè)計和編寫測試用例有什么區(qū)別包券?設(shè)計是一項腦力活動纫谅,編寫是一項體力活動,將設(shè)計好的內(nèi)容通過文字的形式表現(xiàn)出來
- 針對已經(jīng)發(fā)現(xiàn)了缺陷的模塊溅固,如何進(jìn)行深入測試系宜?對發(fā)現(xiàn)缺陷模塊使勁測,另外關(guān)聯(lián)的模塊也要進(jìn)行測試(缺陷有一種集群效應(yīng))
- 軟件項目上線了/發(fā)布了发魄,還要進(jìn)行測試么盹牧?
- 你覺得你有什么樣的缺點?(不能說的:粗心励幼、耐心不夠汰寓、不善與人溝通、語言表達(dá)能力不行)(斤斤計較苹粟、窮追不舍有滑、軸...、認(rèn)死理嵌削、說話聲音大毛好、性格急)
2、測試的原則
- 所有的測試標(biāo)準(zhǔn)都是建立在用戶需求上
- 軟件測試必須基于“質(zhì)量第一”的思想去開展各項工作苛秕,當(dāng)時間和質(zhì)量沖突時肌访,時間要服從質(zhì)量
- 事先定義好產(chǎn)品的質(zhì)量標(biāo)準(zhǔn),只有有了質(zhì)量標(biāo)準(zhǔn)艇劫,才能根據(jù)測試的結(jié)果吼驶,對產(chǎn)品的質(zhì)量進(jìn)行分析和評估
- 軟件項目一啟動,軟件測試也就是開始店煞,而不是等程序?qū)懲晷费荩砰_始進(jìn)行測試
- 窮舉測試是不可能的
- 第三方進(jìn)行測試會更客觀,更有效
- 軟件測試計劃是做好軟件測試工作的前提
- 測試用例是設(shè)計出來顷蟀,不是寫出來的酒请,所有要根據(jù)測試的目的,采用相應(yīng)的方法去設(shè)計測試用例鸣个,從而提高測試的效率羞反,更多地發(fā)現(xiàn)錯誤哮兰,提高程序的可靠性
- 對發(fā)現(xiàn)錯誤較多的程序段,應(yīng)進(jìn)行更深入的測試苟弛。一般來說喝滞,一段程序中已發(fā)現(xiàn)的錯誤數(shù)越多,其中存在的錯誤概率也就越大
- 重視文檔膏秫,妥善保存一切測試過程文檔(測試計劃右遭、測試用例、測試報告等)
- 應(yīng)該把“盡早和不斷地測試”缤削,作為測試人員的座右銘
- 回歸測試的關(guān)聯(lián)性一定要引起充分的注意窘哈,修改一個錯誤而引起更多錯誤出現(xiàn)的現(xiàn)象并不少見
- 測試應(yīng)從“小規(guī)模”開始亭敢,逐步轉(zhuǎn)向“大規(guī)墓鐾瘢”
- 不可將測試用例置之度外,排除隨意性
- 必須徹底檢查每一個測試結(jié)果
- 一定要注意測試中的錯誤集中發(fā)生現(xiàn)象帅刀,這和程序員的編程水平和習(xí)慣有很大的關(guān)系
- 對測試錯誤結(jié)果一定要有一個確認(rèn)的過程