邏輯覆蓋、循環(huán)覆蓋、同行評審、桌前檢查、代碼走查、代碼評審、景泰數據流分析
單元測試是對軟件基本組成單元進行測試,
這里的基本單元不一定是指一個具體的函數
(
Function
或
Procedure
)
或一個類的方法,
“
單元
”
具有一些基本屬性,
如:
明確的功能、
規(guī)格定義,明確的接口定義,可清晰地與同一程序的其它單元劃分開來。
在純
C
語言的代碼中,為了操作方便期間,我們一般認為一個函數就是一個單元。
1.2.2
單元測試的主要目的:
1.
驗證代碼是與設計符合的
2.
跟蹤需求和設計的實現
3.
發(fā)現設計和需求中存在的錯誤
4.
發(fā)現在編碼過程中引入的錯誤
1.2.3
何時開展單元測試
一般地,
在編碼階段就應開展單元測試,
邊寫程序邊測試是一個好習慣。
一個組織不要
孤立的劃分出編碼和單元測試兩個階段,也不要等代碼都寫完了才開始單元測試。
有時候需要將單元測試時間推后到集成階段,甚至系統(tǒng)完成階段。
單元測試可以分為計劃、設計、實現、執(zhí)行幾個階段。
“
計劃
”
是作好人和時間的安排。
“
設計
”
確定采用什么樣的測試方法,
達到一個什么樣的覆蓋率標準等。
“
實現
”
是設計生成各
個測試用例。
“
執(zhí)行
”
包括驅動和樁函數的設計實現,測試數據準備,測試結果驗證等等。
”。
你要在測試策略中很明確的提出你進行測試時所使用的方法和步驟。 我看到過很多公司嚴格地按照一些測試策略模板來寫。
但是,其實不用模板,你也可以并且更高效地寫測試策略。下面是一些簡單的寫測試策略的技巧, 1)在測試策略中要包括產品的背景信息。
在測試策略文檔的第一段回答- stakeholder(項目利益相關者)為什么要開發(fā)這個產品?回答這個問題會幫助你更好更快地理解項目,并為所做的事情優(yōu)先級排序。 2)測試環(huán)境,它應該包括你在那個操作系統(tǒng)平臺上做測試,系統(tǒng)是基于那些補丁和安全更新。
例如,一個測試環(huán)境可能必須包含Window XP SP2 3)列出你將要測試的所有重要特征。如果你認為有些特征不屬于本次發(fā)布的一部分,那么就標注“不會被測試的特征”。
4)寫下在此項目測試中將應用到的測試方法。清楚的列出你將以那些類型的測試作為測試引導。
例如:功能測試,用戶交互界面測試,集成測試,壓力測試,安全測試等等。 5)回答以下問題:你如何進行功能測試?手動還是自動化?測試工具是什么?你將執(zhí)行在測試管理工具中的所有測試用例嗎? 6)用什么作為測試錯誤報告跟蹤工具?當測試人員發(fā)現一個新的bug之后,流程應該是什么? 7)測試進入和結束的標準分別是什么? 8)如何去跟蹤測試進度?什么度量可以用來記錄測試結束? 9)任務分布 – 定義每個組員的角色和職責,包括測試組長,測試員,項目經理等。
測試戰(zhàn)略將由開發(fā)人員review,確保測試的覆蓋率全面且沒有重疊處。測試經理和部門經理都要同意測試策略之后,測試工作才能展開。
測試小組的劃分及分工。 10)有哪些風險會阻礙測試的完成?例如,代碼的依賴性,測試工具的局限性等等。
要提前想到風險發(fā)生的解決辦法。 11)測試日程表- 每個測試計劃都應該包含一個預估時間來估計完成測試所需要的時間。
這需要幾個階段:一,測試人員必須至少完成一次的執(zhí)行全部用例。二,如果一個錯誤被測試人員發(fā)現,開發(fā)人員將修復此錯誤。
測試員重新測試此用例,直到其功能正確為止。最后,但很重要的一點是測試員必須對修改過的地方執(zhí)行回歸測試以保證開發(fā)人員在修復一個錯誤的時候沒有引入另外的代碼錯誤。
測試日程表要包含每個測試部分涉及的測試人員。時間往往很難估計,因為測試中有很多不確定性的事情發(fā)生。
其中一個比較好的辦法是參照前一個發(fā)布來估計。 12)回歸測試的方法- 一個錯誤被修復后,必須要保證產品功能按用例標準運行。
回歸測試是為了在修復一個問題時不引入另外的錯誤。因此相關的測試用例要在被執(zhí)行一次,從而確保沒有特殊的東西被引進。
在這個階段,就要定義回歸測試的方法。有的公司講相關模塊的單元測試用例全部遍歷一遍,從而確保產品的質量。
弄清楚這些問題,你就可以寫一個詳細的測試策略出來了。
軟件測試的方法根據軟件工程的組織和實現方式,有很大差別,有些是比較技術化的方法,有些則是工程方法,主要分為: 黑盒測試方法群:等價類劃分、邊界值、因果圖、基路徑法、專家測試法、smoking、場景測試等 白盒測試方法群:同行評審、需求審查、代碼審查、接口測試(調用測試和返回測試,需要結合等價類和因果圖方法)等。
當在單元層面黑盒而在集成層面白盒時,基本上兩類方法就會有結合了,就會出現習慣上說的灰盒測試(說實話,不做到純產品級開發(fā),基本上都是用的灰盒測試)。
軟件測試計劃是指導測試過程的綱領性文件,包含了產品概述,測試策略,測試方法,測試區(qū)域,測試配置,測試周期,測試資源,風險分析等內容;借助軟件測試計劃,參與測試的項目成員,可以明確測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種變更。
測試計劃和測試用例間是戰(zhàn)略和戰(zhàn)術的關系,測試計劃主要從宏觀上規(guī)劃測試活動的范圍,方法和資源配置;而測試用例是完成測試任務的具體戰(zhàn)術。
測試計劃中,最重要的是測試策略和測試方法。
測試計劃工作的關鍵是
1. 明確測試的目標,增強測試計劃的實用性---測試計劃中的測試范圍必須高度覆蓋功能需求,測試方法必須切實可行,測試工具具有較高的實用性,便于使用,生成的測試結果直觀準確。
2. 堅持“5W”規(guī)則,明確內容與過程
“5W”規(guī)則指:what,why,when,where,how;用例5w規(guī)則創(chuàng)建軟件測試計劃,可幫助測試團隊理解測試目的(why),明確測試范圍和內容(what),確定測試開始和結束日期(when),指出測試的方法和工具(what),給出測試文檔和軟件存放位置(where)3. 采用評審和更新機制,保證測試計劃滿足實際需求
測試策略描述測試工程的總體方法和目標。
描述目前在進行哪一階段的測試(單元測試、集成測試、系統(tǒng)測試)以及每個階段內在進行的測試種類(功能測試、性能測試、覆蓋測試等)。
測試策略的制定主要包含三個方面的內容:
(1)確定測試過程要使用的測試技術和工具;
(2)制定測試啟動、停止、完成標準;
(3)進行風險分析和應對方案。例如測試與外部接口或者模擬物理損壞、安全性威脅。測試計劃最關鍵的一步就是將軟件分解成單元,按照需求編寫測試計劃。
擴展資料。
測試英文名Test、Measure;中文拼音cè shì;由中文"測"與中文"試"兩個字組成的詞語。
是動詞、名詞。
測試行為,一般發(fā)生于為檢測特定的目標是否符合標準而采用專用的工具或者方法進行驗證,并最終得出特定的結果。
測試策略
Test Strategy;test policy;testing strategy
例句:
文章主要討論了編碼完成后的方法的測試和類的測試,并分別給出了測試策略。
This paper discusses both the method testing and the class testing after finishing the coding.
而后,測試策略也將必須遵循測試管理框架。
Following this, the testing strategy will also have to follow the test management framework.
有了決策表,我們就可以根據測試策略輕松的添加和刪除條件。
With a decision table, it is easy to add and remove conditions, depending on the test strategy.
軟件測試策略把軟件測試用例的設計方法集成到一系列已經周密計劃過的步驟中去,從而使得軟件的開發(fā)得以成功的完成。
同樣重要的是,軟件測試策略為軟件開發(fā)人員、質量保證組織、和客戶提供了一個路線圖——這個路線圖描述了測試的步驟,以及當這些步驟在計劃和實施的過程中,需要多少工作量、時間、和資源。 因此,任何測試策略都必須和測試計劃、測試用例設計、測試執(zhí)行、還有測試結果數據的收集與分析結合在一起。
一種軟件測試策略應當具備足夠的靈活性,這樣在必要的時候它能夠有足夠的創(chuàng)造性和可塑性來應付所有的大軟件系統(tǒng)。與此同時,軟件測試策略還必須保證足夠的嚴格,這樣才能保證對項目的整個進程進行合理的計劃和跟蹤管理。
Shooman[SHO83]對這個問題進行了探討: 在許多情況下,測試是一個獨立的過程,不同的測試類型的數量和不同的開發(fā)方法是一樣多。許多年以來,我們對付程序出錯的唯一武器就是謹慎的設計,以及程序員個人的智慧。
我們現在處于這樣的一個時代——現代設計技術(和正式的技術復審)正在幫助我們減少代碼中存在的初始錯誤。 類似地,不同的測試方法正在開始聚合為有限的幾種方法和思想。
這些方法和思想就是我們所說的策略。在第16章中,我們已經介紹了軟件測試技術①。
在本章中,我們將會把注意力放在軟件測試策略上。
聲明:本網站尊重并保護知識產權,根據《信息網絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:2.836秒