迅速找出重要程序問題
1.首先測試經(jīng)過變更的部分,然后測試沒有變化的部分,修改和更改都意味著新的風險
2.首先測試核心功能,然后測試輔助功能,測試產(chǎn)品所完成的關鍵和常用功能,測試完成產(chǎn)品基本任務的功能
3.首先測試能力,然后測試可靠性。先測試每個功能是否完全能用,然后再深入檢查任何一個功能在很多不同 條件下表現(xiàn)如何
4.首先測試常見情況,然后測試少見情況,使用常用的數(shù)據(jù)和使用場景
5.首先測試常見威脅,然后測試罕見威脅。用最有可能出現(xiàn)的壓力和錯誤情況進行測試
測試人員對產(chǎn)品越了解越有可能找出重要問題
黑盒測試:測試員只知道軟件做什么即可,只要進行輸入,程序輸出即可
白盒測試:可以看到代碼,并通過檢查代碼來協(xié)助測試,進行白盒測試要冒一些風險
因為要調(diào)整測試程序以適應代碼操作,所以很容易形成偏見,無法進行客
觀測試
靜態(tài)測試:不運行程序,只是檢查和審閱
動態(tài)測試:運行程序,檢查各項功能
靜態(tài)黑盒測試:測試產(chǎn)品說明書屬于靜態(tài)黑盒測試
對產(chǎn)品說明書進行高級審查:1.理解產(chǎn)品說明書背后的原因和操作方式,就可以更
好的仔細檢查
2.設身處地為客戶著想:”滿足客戶要求”是質(zhì)量的定
義.
3.研究現(xiàn)有的標準和規(guī)范:接口標準
4.審查和測試同類軟件
閉著眼睛測試軟件
動態(tài)黑盒測試:如果沒有產(chǎn)品說明書時,使用探索測試
測試用例設計方法:
等價劃分:分步驟地把過多的測試用例減小到同樣有效的小范圍的過程,在尋找
等價區(qū)間時,想辦法把軟件的相似輸入,輸出,操作分成組,這些組就是等
價區(qū)間
數(shù)據(jù)測試:對數(shù)據(jù)進行測試,就是在檢查用戶輸入的信息,返回結(jié)果以及中間計算結(jié)
果是否正確
數(shù)據(jù)的例子:1.在字處理程序中輸入的文字
2.電子表格中輸入數(shù)字
3.圖像軟件打印的圖片
4.
邊界條件:
總結(jié):邊界值和等價劃分的一個弱點是未對輸入條件的組合進行分析
因果圖分析:因果圖有助于用一個系統(tǒng)的方法選擇出高效的測試用例集,還有一個
好處是可以指出規(guī)格說明的不完整性和不明確之處
因果圖生成測試用例的過程:1.將規(guī)格說明分成可執(zhí)行的片段
2
錯誤猜測:
白盒測試;邏輯覆蓋測試
語句覆蓋:通常沒有什么用處
判定覆蓋:較強一些的邏輯覆蓋準則,該準則要求編寫足夠的測試用例,使得每一個
判斷都至少有一個為真和為假的輸出結(jié)果,判定覆蓋通常能滿足語句覆
蓋
至少有三條例外情況:1.程序中不存在判斷
2.程序或子程序有多重入口,只有從程序的特定入口進入時
某條特定的語句才會被執(zhí)行
判定覆蓋要求每個判斷都必須有是或否的結(jié)果,每個入口必須被調(diào)用一次
條件覆蓋:比判定覆蓋更強的準則是條件覆蓋,編寫足夠的測試用例以確保一個判
斷的每個條件的所有可能的結(jié)果至少執(zhí)行一次
判定/條件覆蓋:設計充足的測試用例,講一個判斷中的每個條件的所有可能的結(jié)果
至少執(zhí)行一次,,將每個判斷的所有可能的結(jié)果至少執(zhí)行一次,將每
個入口點都至少調(diào)用一次
優(yōu)缺點:盡管看上去所有條件的所有結(jié)果似乎都執(zhí)行到了,但由于有些特定的條件
會屏蔽掉其他的條件
多重條件覆蓋:
根據(jù)項目流程階段劃分軟件測試
[圖片上傳失敗...(image-dea6e0-1514886749592)]
v型軟件開發(fā)流程
單元測試:單元測試是對程序中的單個子流程或具有獨立功能的代碼段進行測試的過程
集成測試:集成測試是單元測試的基礎上,見通過單元測試模塊組裝成系統(tǒng)或子系統(tǒng),再進行測試,重點是檢
查模塊之間的接口是否正確
系統(tǒng)測試:系統(tǒng)測試是針對整個產(chǎn)品系統(tǒng)進行的測試,驗證系統(tǒng)是否滿足了需求規(guī)格的定義,以及軟件系統(tǒng)的
正確性和性能等是否滿足其規(guī)約所指定的要求
驗收測試:驗收測試是部署軟件之前的最后一個測試操作。驗收測試的目的是確保軟件準備就緒,向軟件購買
者展示該軟件系統(tǒng)滿足其用戶的需求
白盒測試、黑盒測試、灰盒測試
白盒測試與黑盒測試,主要是根據(jù)在軟件測試工作中對軟件代碼的可見程度進行的劃分
黑盒測試:指的是把被測的軟件看做是一個黑盒子,我們不去關心盒子里面的結(jié)構(gòu)是什么樣子的,只關心軟件
的輸入數(shù)據(jù)和輸出結(jié)果
它只檢查程序呈現(xiàn)給用戶的功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟?
收輸入數(shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要
針對軟件界面和軟件功能進行測試
白盒測試:指的的是把盒子打開,去研究里面的源代碼和程序執(zhí)行結(jié)果
它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設計規(guī)格說明書的規(guī) 定正常進行,檢驗程序中的每條通路是否能按照預定要求正確工作
灰盒測試:介于黑盒測試與白盒測試之間
灰盒測試關注輸出對于輸入的正確性,同時也關注內(nèi)部表現(xiàn),單這種關注不像白盒那樣詳細、完
整,只是通過一些表征性的現(xiàn)象、事件、標志來判斷內(nèi)部的運行狀態(tài),有時候輸出是正確的,但
內(nèi)部其實已經(jīng)錯誤啦,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需
要采取這樣的一種灰盒測試的方法
功能測試和性能測試:從對軟件的不同測試點可以劃分為功能測試和性能測試
功能測試:功能測試檢查實際的功能是否符合用戶的需求。測試的大部分工作也是圍繞軟件的功能進行,設計
軟件的目的也就是滿足客戶對其功能的需求。如果偏離這個目的任何測試工作都是沒有意義的
功能測試又可以分:邏輯功能測試,界面功能測試,易用性測試,安裝測試,兼容性測試等
性能測試:性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指
標進行測試
軟件的性能包括很多方面,主要有時間性能和空間性能
時間性能:主要是指軟件的一個具體響應時間。比如一個登陸所需要的時間,一個交易所需要的時間等。
空間性能:主要指軟件運行時所消耗的系統(tǒng)資源,比如硬件條件,cpu,內(nèi)存,網(wǎng)絡帶寬消耗等
自動化測試
自動化測試又可分為:功能自動化測試與性能自動化測試
冒煙測試、回歸測試、隨機測試
冒煙測試:是指對一個新版本進行系統(tǒng)大規(guī)模的測試之前,先驗證一下軟件的基本功能是否實現(xiàn),是否具備可
測性
回歸測試:回歸測試是指修改了代碼后,重新進行測試以確認修改后沒有引入新的錯誤或?qū)е缕渌a產(chǎn)生錯
誤
回歸測試一般是在進行軟件的第二輪測試開始的,驗證第一輪中發(fā)現(xiàn)的問題是否得到修復。當然,
回歸也是一個循環(huán)的過程,如果回歸的問題不通過,則需要開發(fā)人員修改后再次進行回歸,直至
通過為止。
隨機測試:是指測試中的所有輸入數(shù)據(jù)都是隨機生成的,其目的是模擬用戶的真是操作,并發(fā)現(xiàn)一些邊緣性的
錯誤
隨機測試可以發(fā)現(xiàn)一些隱藏的錯誤,但是也有很多缺點,比如測試不系統(tǒng),無法統(tǒng)計代碼覆蓋率
和需求覆蓋率,發(fā)現(xiàn)的問題難以重現(xiàn),一般放在測試的最后執(zhí)行
探索性測試:可以說是一種測試思維技術(shù)。它沒有很多實際的測試方法、技術(shù)工具,但是卻是所有測試人員
都應該掌握的一種測試思維方式。探索性強調(diào)測試人員的主觀能動性,拋開繁雜的測試計劃和
測試用例設計過程,強調(diào)在碰到問題時及時改變測試策略
探索式測試是一種軟件測試風格(style),它強調(diào)獨立測試人員的個人自由和職責,為了持續(xù)優(yōu)化其工作的價值,將測試相關學習、測試設計、測試執(zhí)行和測試結(jié)果分析作為相互支持的活動,在整個項目過程中并行的執(zhí)行
測試學習:學習任何可以指導測試的知識,可能要學習的內(nèi)容包括行業(yè)背景,領域知識,技術(shù)平臺,測試技 術(shù),產(chǎn)品缺陷,項目風險等
測試設計:安排測試計劃,擬定測試策略,開發(fā)測試想法,制作測試支持材料
測試執(zhí)行:執(zhí)行測試并收集結(jié)果,測試可以手工執(zhí)行,也可以自動執(zhí)行
測試結(jié)果分析:分析并解讀從測試中學到的知識,可能的活動包括判定測試是否通過,理解產(chǎn)品實現(xiàn),發(fā)掘風 險區(qū)域,評估測試方法是否有效等
探索性測試旨在將測試學習,測試設計,測試執(zhí)行和測試結(jié)果分析作為一個循環(huán)快速迭代,以不斷收集反饋,調(diào)整測試,優(yōu)化價值,并降低軟件項目的風險
產(chǎn)品說明書的檢查清單
1.完整。是否有遺漏和丟失,完全嗎,
2.準確。既定解決方案正確嗎,目標明確嗎,有沒有錯誤
3.精準、不含糊、清晰。描述是否一清二楚,容易看懂和理解嗎
4.一致。產(chǎn)品功能描述是否自相矛盾,與其他功能有沒有沖突
5.合理。
6.代碼無關
7.可測試性