如果做好測試項目組管理者
1 如何認識測試
測試是一個方法論而不是一個技術論;
2 軟件測試的誤區
* 軟件開發完成后進行軟件測試;
*軟件質量問題是測試人員的錯誤,軟件發布后如果發現問題,那是軟件策劃四人員的錯;
*測試技術要求不高比編程容易,隨便找一個人就可以完成;
*測試跟著開發動,有時間就多測試,沒時間就少測。
* 測試是測試人員的事,與開發人員無關;
軟件測試從這里開始
* 需求測試和設計測試也是軟件測試的一種;
* 軟件測試應該涵蓋整個軟件生命周期。同時軟件測試本身也應被測試。
* 測試要執行所有可能測輸入;
在測試中,窮舉測試工作量太大,實踐上行不通,一般采用等價類和邊界值分析等措施來進行實際的軟件測試;
* 好的測試一定要使用很多的測試工具。
工具所能發揮的作用依賴于使用工具的人,因此,對工具的過分依賴將降低人的能動性,并最終使測試本身受到損害。適當的使用測試工具能夠減輕策劃人員的機械性工作,提高工作效率,而濫用工具會降低測試的質量。并不是任何工作都適合自動化的,如何合理的自動化測試,合理的選擇適當的測試工具已經是研究人員感興趣的一個課題。
3 測試工程師的素質
3.1基本素質
溝通能力,自信心,幽默感記憶力,耐心,懷疑精神,自我督促,洞察力;
廣泛的經驗;
表達能力,問題描述能力;
會提問,會尋求help;
邏輯思維能力;
團隊協作能力;處理日常事務的能力和處理突發事件的能力;
3.2基本素質
對于系統測試,把握需求是第一位,對產品熟練,能夠快速熟悉新的產品需求,很強的需求理解能力顯得很重要。
測試基礎:明確測試流程中各個階段的工作,對測試的認知程度,決定了測試流程管理的規范性,測試工作的質量;
測試方案的分析設計能力,測試案例的設計能力;
測試工具的使用;
團隊協作能力,與各個小組之間的溝通能力;
測試管理,管理決定了工作質量,尤其是測試經理,需要管理團隊的測試能力。
4測試工程師的分類
測試工程師一般分為兩類:測試工具軟件開發工程師和軟件測試工程師。
測試工具軟件開發工程師主要負責編寫測試工具代碼,并利用測試工具對軟件進行測試,或者開發測試工具為軟件測試工程師服務。
軟件測試工程師主要負責理解產品的功能要求,然后對其進行測試,檢查軟件有沒有錯誤,決定軟件是否具備穩定性,并寫出想要的測試規范和測試案例。
按照測試對象分類:web測試工程師,數據庫測試工程師,數據庫測試工程師,c/s測試工程師,個人軟件測試工程師;
5測試工作的未來
bug 預防和早期檢測
因為現在把重點放在產品交付的質量上來,預防實踐和靜態分析儀這樣的檢測工具將成為主流。
第四章 軟件測試基礎 第2章軟件質量體系
2.1 軟件能力成熟度模型:cmm
cmm為企業的軟件過程能力提供了一個階級式的進化框架,接替工五級。
第一級:初始級,第二級:可重復級;第三極:已定義級;第四級:受管理級; 第五級:優化級;
第二級:可重復級;第三極:已定義級;第四級:受管理級;第五級:優化級;
初始級:工作方式處于救火狀態,不斷的應對突如其來的危機;
工作組:軟件開發組,工程組;
需要建立項目過程管理,建立各種計劃,開展qa活動;
2.2可重復級
人們總結出軟件開發的首要問題不是技術問題而是管理問題。因此第二級的焦點集中在軟件管理過程上,一個可管理的過程則是一個可重復的過程,可重復的過程才能逐漸改進和成熟。可重復級的管理過程包括需求管理,項目管理,質量管理,配置管理和子合同管理5個方面
關注點:引入需求管理,項目管理,質量管理,配置管理,子合同管理;
引入工作組:測試組,評估組,質量保證組,配置管理組,合同組,文檔支持組,培訓組;
2.3 在可重復級定義了管理的基本過程,而沒有定義執行的步驟標準。在第三極則要求制定企業范圍的工程化標準,并將這些標準集成到企業軟件開發標準過程中去,所有開發的項目需求根據這個標準過程,剪裁出與項目適宜的過程,并且按照過程執行,過程的裁剪不是隨意的,在使用前必須經過企業有關人員的批準。
關注點:文檔化,標準的一致化;軟件過程標準話文檔化,質量可以得到控制;工作組:sepg軟件評估組。提高:對軟件過程定量分析,加強質量管理。
第三章 軟件的生命周期
3.1 需求管理:
需求應當具備一下特點:
完整性:每一項需求都必須將所要實現的功能描述清楚,以使開發人員獲得設計和實現這些功能所需的所有必要信息。
正確性:每一項需求都必須準確滴陳述其要開發的功能。
一致性:一致性是指與其它軟件需求或者高層需求不相矛盾。
可行性:每一項需求都必須是在已知系統和環境的權能和限制范圍內可以實施的。
無二義性:對所有需求說明的讀者都只能有一個明確統一的解釋,由于自然語言極易導致二義性,所以盡量巴
每項需求用簡潔明了的用戶性的語言表達出來。
致二義性:所以盡量巴每項需求用簡潔明了的用戶性的語言表達出來。
健壯性:需求的說明中是否對可能出現的異常進行分析,并且對這些異常進行了容錯出來。
必要性:可以理解為每項需求都是用來授權你編寫文檔的根源,要使每項需求都能回溯至某項客戶的輸入,如use case或者別的來源。
可測試性:每項需求都能通過設計測試用力或者其他的驗證方法來進行測試。
可修改性:每項需求只應該在srs中出現一次,這樣更改時易于保持一致。另外,使用目錄表,索引和相互參照列表方法將使軟件需求規格說明書更容易修改。
可跟中性:應能在每項軟件需求與他的根源和設計元素,源代碼,測試用例之間建立起連接連,這種可跟蹤要求每項需求以一種結構化的,粒度好的方式編寫單獨標明,而不是大段大段的敘述。
3.2需求建模
需求的建模包括巴需求轉換成圖形模型或者形式語言模型。需求的圖形化分析模型包括數據流圖,實體關系圖,狀態轉換圖,對話圖,和類圖,這些圖形化模型一般都需要借助一定的工具,選擇好的分析工具應該有助于獲得需求質量特性,包括有效性一致性可靠性 可存活性可用性 正確性 可維護行 可測試性 可擴展性 可交互性 可重用性 可攜帶x帶性等。
3.3審查
需求必須經過產品經理,軟件經理 系統測試組,軟件工程組,系統工程組,質量保障組,軟件配置管理組,文檔支持組等小組審查。
通過靜態手工方法進行需求測試中最常用的手段是同行評審。
3.4執行
建議需求文檔,分配需求文檔 修改需求。
需求的管理需求在應用領域和軟件工程方面經驗比較豐富的人來擔任。
建議使用配套的需求管理工具
除了建立相關的文檔,還需要對所有軟件工程組人員進行項目應用領域的培訓。
3.5需求變更
變更審查:
變更對現有約定的影響;
提出需求變更引起的后續軟件活動變更,評估風險,建立文檔,全程跟蹤。
3.6交付工件
程序陳述和需求說明書;
需求文檔的分類:用戶需求cr,技術需求tr,項目需求pr;
需求的狀態:已批準已分配已實現。。
3.7 軟件項目計劃
為軟件工程的運作和軟件項目獲得的管理提供合理的基礎和可行的工作計劃。
3.8 設計階段
包括功能的描述和設計
交付工件:設計說明書和功能說明書
3.9編碼階段
包括實施源代碼,對目標代碼進行單元測試
交付工件:軟件,文檔和產品信息
3.91 核實階段
包括各種測試行為
第二節 軟件開發過程中常見的問題
需求說明差
不切合實際的時間表
測試不充分
不斷的增加功能
交流問題
第三節 流程中的組及工作
3.31 流程中的組
系統分析人員
提出測試需求并跟中,確定測試的對象/方法和范圍。
軟件開發人員
提供開發計劃sdp,參與制定和評審測試計劃;
提供軟件功能需求規格/需求分析/測試建議等文檔,參與制定和評審測試方案和案例;
響應測試需求,跟蹤解決缺陷。
配置管理人員
對測試文檔測試代碼及相關配置項進行配置管理。
質量保證人員
質量保證,參與相關評審,由于質量保證和測試關系比較密切,多謝一點
保障軟件組織流程體系得到遵守,促使軟件組織過程改進,指導項目實施流程,增加卡發貨的透明度,評審項目活動,審核工作產品,協助工作產品問題解決,度量數據采集,分析,提供決策參考,進行缺陷預防,實現質量目標。
組織和協調產品開發組對標內部的軟件技術和開發標準,流程的培訓和教育。
部門的和特定的產品的軟件開發過程量,以及軟件產品質量的度量
指出產品開發過程中應該準尋的有關軟件開發的標準和流程,并監督開發過程標準和流程的符合度。
軟件質量管理,采用inspection review audit技術
通過軟件開發流程及標準的推行以及對軟件開發過程的不斷總結和優化,使軟件開發過程得到持久不斷的優化和提高
4.1.1測試定義:IEEE中對測試的定義:使用人工或者自動手段來運行或者測試某段系統的過程。其目的在于檢驗他是否滿足規定的需求或者是弄清語氣結果與實際結果之間的差異。
4.1.2測試前提
軟件可測試性:是一個計算機程序能夠被測試的容易程序。
軟件可測試性檢查表:
可操作性--運行滴越好,被測試的效率越高。
可觀察性--所看見的,就是所測試的。
可控制性--對軟件的控制越好,測試越能夠被自動執行與優化。
可分解性----通過控制測試范圍,能夠更好滴分解問題,執行更靈巧的在測試。
簡單性--需要測試的內容越少測試的的速度越快。
穩定性--改變越少,對測試的破壞性越小。
易理解性--得到的信息越多,進行的測試越靈活。
4.1.3測試的目的
目的:發現程序中的錯誤,提高產品的可靠性。
4.1.4 測試規律
規律:木桶原理/八二原則。
4.1.4.1木桶原理
產品質量的關鍵因素是分析,設計和實現,測試應該是溶于其中的補充檢查手段,其他管理,支持,甚至文化因素也會影響最終產品的質量,應該說,測試是提高產品質量的必要條件,也是提高產量質量的最直接的最快捷的手段,單絕不是根本手段,反過來說,如果將提高產品質量的卻嗎全部壓在測試上,那將是一個恐怖而漫長的災難。
第二節測試生命周期
4.2.1測試生命周期
對測試人員進行業務培訓
測試需求分析
編寫測試計劃
編寫測試案例
測試執行
編寫測試報告
4.2.2流程中的文檔
4.2.2.1測試計劃
測試計劃和產品開發緊密相關,有多個部分組成,所以大型的商業軟件都需要完整的測試計劃,需要具體的每一步驟,并且每一部分都要符合規范要求。
測試計劃包括內容:1,概述;2測試目標和發布標準,3計劃將測試的領域,4測試方法描述5測試進度表6測試資源7配置范圍和測試工具;
4.2.2.3測試案例
測試案例是指描述如何測試某一個領域的文檔。這些文檔負荷測試規范中的需求說明,根據測試規范的測試想定開發,根據測試反饋信息,對于沒有考慮的心問題,不斷增加測試案例。測試案例沒有固定格式,只要清楚表名了測試步驟和需求驗證的事實,使得任何一個測試人員都可以根據測試案例的描述完好成測試。
測試報告
測試管理人員以測試報告的形式向整個產品開發部門報告測試結果及發現的缺陷或者錯誤。撰寫測試報告的目的為了讓整個產品開發部門了解產品開發的進展情況,以使缺陷或者才錯誤能夠迅速得到修復,測試報告的格式并無定式要求能夠完整清楚的翻頁當前的測試進展情況 要易懂不要使人迷惑或者產生誤解
4.4.1測試分類
白盒測試 黑盒測試
4.4.2黑盒測試的測試用力設計方法:
等價類化分方法
邊界值分析方法
錯誤推測方法
因果圖方法
判定表驅動分析方法
正交實驗設計方法
功能圖分析方法
4.4.3系統測試類型
恢復測試;
完整>安全>性能測試;
強度測試
容量測試
結構測試
性能測試
配置測試
安裝,卸載測試
用戶界面測試
功能測試
比較測試
可移植性
接口間測試
數據庫測試