一厘肮、前言
1.1 軟件測試的目的
- 測試的目的就是發(fā)現(xiàn)軟件中的各種缺陷。
- 測試只能證明軟件存在缺陷,不能證明軟件不存在缺陷蔫仙。
- 測試可以使軟件中缺陷降低到一定程度,而不是徹底消滅丐箩。
- 以較少的用例摇邦、時間和人力找出軟件中的各種錯誤和缺陷,以確保軟件的質(zhì)量屎勘。
1.2 軟件測試的原則
- Good-enough: 一種權(quán)衡投入/產(chǎn)出比的原則施籍。
- 保證測試的覆蓋程度,但窮舉測試是不可能的概漱。
- 所有的測試都應追溯到用戶需求丑慎。
- 越早測試越好,測試過程與開發(fā)過程應是相結(jié)合的犀概。
- 測試的規(guī)模由小而大立哑,從單元測試到系統(tǒng)測試。
- 為了盡可能地發(fā)現(xiàn)錯誤姻灶,應該由獨立的第三方來測試铛绰。
- 不能為了便于測試擅自修改程序。
- 既應該測試軟件該做什么产喉,也應該測試軟件不該做什么捂掰。
二敢会、準備工作
2.1 測試準備
- 在測試工作之前,首先要拿到項目的設計文檔这嚣、UI/UE鸥昏、需求文檔等資料,并與開發(fā)人員交流姐帚,了解熟悉項目的設計思想吏垮、設計方法和設計方案,以此來確定測試范圍與測試方法罐旗。
2.2 工作內(nèi)容與職責
- 估算項目測試的工作量及時間進度
- 安排測試進度與測試人員膳汪,制定測試計劃
- 準備文檔資料
- 需求分析文檔與設計文檔的評審,提交評審結(jié)果
- 根據(jù)項目需求及性質(zhì)九秀,決定測試過程所使用的測試技術遗嗽、測試方法及測試工具
- 搭建測試環(huán)境
- 編寫測試用例
- 編寫測試程序
- 評審測試用例
- 根據(jù)測試用例進行測試并記錄測試過程
- 記錄測試BUG
- 匯總提交測試記錄、測試BUG
- 根據(jù)測試記錄匯總并編排測試文檔
- 管理與歸檔各類測試文檔
三鼓蜒、基本測試過程
3.1 測試流程
-
對需要測試的任何產(chǎn)品痹换,都需要有一個測試的進入標準、測試執(zhí)行的開始標準都弹、測試執(zhí)行的結(jié)束標準以及測試執(zhí)行好壞的評價標準娇豫。其過程主要包括測試的進入、執(zhí)行缔杉、報告锤躁、分析、結(jié)束或详。測試的進入往往是在需求分析即將結(jié)束時進行的系羞,這樣測試過程與開發(fā)過程基本同步,有助于盡早發(fā)現(xiàn)系統(tǒng)設計的問題霸琴;這樣做的另一好處還在于測試準備充分椒振,開發(fā)結(jié)束可立即進入測試階段,有助于縮短項目進度梧乘。測試執(zhí)行前的準備工作對于測試來說是至關重要的澎迎,這些準備工作主要包括從系統(tǒng)需求分析報告和概要設計文檔里面獲取產(chǎn)品信息及產(chǎn)品功能特點,并對此進行相關的分析选调、總結(jié)夹供,然后進行測試設計:包括選擇測試方法,確定測試內(nèi)容仁堪、測試工具哮洽,結(jié)合產(chǎn)品特點確定是否進行性能、負載弦聂、壓力鸟辅、安全等方面內(nèi)容的測試氛什;制定測試計劃;制定詳細測試執(zhí)行計劃及設計測試案例匪凉。
下圖是測試過程的結(jié)構(gòu)層次圖枪眉,我們可以看到整個過程中,測試和開發(fā)之間的關系以及對應的測試過程再层。
測試與開發(fā)流程對比
3.2 測試方法設計
- 根據(jù)測試需求贸铜,在了解熟悉被測試項目的主要功能情況后,有針對性的對測試任務進行具體的測試方法設計树绩,讓測試有效而簡潔萨脑,盡量避免重復勞動隐轩,以此來提高效率饺饭。
- 測試的方法和種類有很多,根據(jù)實際被測試項目的測試需求來選擇需要的职车、適用的測試方式瘫俊,以及測試工具。
- 測試過程按4個階段進行悴灵,即單元測試扛芽、組裝測試、確認測試和系統(tǒng)測試积瞒。
- 單元測試(白盒川尖、自動、靜態(tài))茫孔,集中對用源代碼實現(xiàn)的每一個程序單元進行測試叮喳,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能。在單元測試時缰贝,測試者需要依據(jù)詳細設計說明書和源程序清單馍悟,了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),主要采用白盒測試的測試用例剩晴,輔之以黑盒測試的測試用例锣咒,使之對任何合理的輸入和不合理的輸入,都能鑒別和響應赞弥。
- 集成測試(白盒毅整、黑盒、自動绽左、靜態(tài))悼嫉,把已測試過的模塊組裝起來,主要對與設計相關的軟件體系結(jié)構(gòu)的構(gòu)造進行測試妇菱。
- 系統(tǒng)測試(黑盒承粤、自動暴区、手工),把已經(jīng)經(jīng)過確認的軟件納入實際運行環(huán)境中辛臊,與其它系統(tǒng)成份組合在一起進行測試仙粱。
- 用戶驗收/確認測試(黑盒、自動彻舰、手工)伐割,是要檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全刃唤、正確隔心。
3.3 測試計劃
- 在執(zhí)行測試之前,需規(guī)劃好具體測試過程尚胞,編寫測試計劃硬霍,測試計劃需結(jié)合測試資源,估算測試預期進度笼裳,安排好測試人員以及風險管理唯卖;確定測試的范圍和測試數(shù)據(jù)的生成;指出測試方法和測試需要用到的工具及工具的開發(fā)躬柬;測試完成的標準以及對測試的影響因素的考慮拜轨。
3.4 評審
- 制定好測試計劃和方案之后,以文字形式將測試方法允青、計劃橄碾、方案、記錄下來颠锉,并提交給管理人員法牲,與開發(fā)人員一起交流討論,測試設計是否合理可行木柬,測試設計被確認后皆串,開始執(zhí)行測試
3.5 測試用例
- 測試用例的設計是整個軟件測試工作的核心,反映對被測試對象的質(zhì)量要求眉枕,決定對測試對象的質(zhì)量評估恶复。
- 測試用例控制著軟件測試的執(zhí)行步驟,是對測試方案中每個測試項的進一步實例化速挑。根據(jù)被測試的項目的界面和功能設計測試用例谤牡,不放過任何細節(jié)地進行模塊分類,每個具體測試用例都將包括下列詳細信息:版本號姥宝、模塊名稱翅萤、用例編號、用例名稱腊满、用例級別套么、預知條件培己、驗證步驟、期望結(jié)果(含判斷標準)胚泌、測試結(jié)果省咨、測試時間、測試人員等玷室。避免冗長狹隘的視角零蓉,避免交叉,最好的測試覆蓋穷缤。記錄每一個測試用例執(zhí)行結(jié)果敌蜂,標記、整理總結(jié)津肛、分析缺陷章喉。
3.6 環(huán)境準備
- 根據(jù)測試計劃搭建測試環(huán)境,選擇并安裝所需測試工具快耿、測試程序等囊陡。
3.7 測試執(zhí)行
- 按照測試計劃和測試案例執(zhí)行測試過程,尋找被測試對象的缺陷掀亥。
3.8 缺陷分析與匯報
- 按照測試用例執(zhí)行測試后,將實際輸出情況與預期輸出情況不符妥色,以及發(fā)現(xiàn)意外的缺陷等測試結(jié)果記錄下來搪花,并編號,分析并記錄缺陷的具體情況嘹害、所屬模塊撮竿、缺陷嚴重級別等相關信息,并將結(jié)果匯報給研發(fā)人員進行修改完善笔呀。
3.9 回歸測試
- 在原測試環(huán)境下幢踏,將研發(fā)人員修復缺陷后的項目進行驗證測試,再次檢測修復后的項目是否還在存在該問題许师,并記錄對應的結(jié)果房蝉。
3.10 隨機、異常測試
- 完成一般的測試后微渠,設計隨機測試用例搭幻,模擬用戶進行非正常流程操作,以此來發(fā)現(xiàn)正常操作途徑難以發(fā)現(xiàn)的隱藏問題逞盆,并記錄測試結(jié)果檀蹋,以及將測試發(fā)現(xiàn)的缺陷記錄并提交給研發(fā)人員進行修復。
3.11 測試報告
- 匯總測試數(shù)據(jù)云芦,統(tǒng)計分析測試記錄俯逾,根據(jù)統(tǒng)計數(shù)據(jù)評估被測試項目的質(zhì)量贸桶,并以文字形式記錄成測試報告文檔,提交審核測試報告桌肴。