軟件測試詳解
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
為了保證軟件的質量和可靠性,應力求在分析、設計等各個開發階段結束前,對軟件進行嚴格技術評審。但由于人們能力的局限性,審查不能發現所有的錯誤。而且在編碼階段還會引進大量的錯誤。這些錯誤和缺陷如果遺留到軟件交付投入運行之時,終將會暴露出來。但到那時,不僅改正這些錯誤的代價更高,而且往往造成很惡劣的后果。 軟件測試就是在軟件投入運行前,對軟件需求分析、設計規格說明和編碼的最終復審,是軟件質量保證的關鍵步驟。如果給軟件測試下定義,可以這樣講:軟件測試是為了發現錯誤而執行程序的過程。或者說,軟件測試是根據軟件開發各階段的規格說明和程序的內部結構而精心設計的一批測試用例(即輸入一些數據而得到其預期的結果),并利用這些測試用例去運行程序,以發現程序錯誤的過程。 軟件測試在軟件生存期中橫跨兩個階段:通常在編寫出每一個模塊之后就對它做必要的測試(稱為單元測試)。編碼與單元測試屬于軟件生存期中的同一個階段。在結束這個階段之后,對軟件系統還要進行各種終合測試,這是軟件生存期的另一個階段,即測試階段,通常由專門的測試人員承擔這項工作。 大量統計資料表明,軟件測試的工作量往往占軟件開發總工作量的40%以上,在極端情況,測試那種關系人的生命安全的軟件所花費的成本,可能相當于軟件工程其他開發步驟總成本的三倍到五倍。因此,必須高度重視軟件測試工作,絕不要以為寫出程序之后軟件開發工作就接近完成了,實際上,大約還有同樣多的開發工作量需要完成。僅就測試而言,它的目標是發現軟件中的錯誤,但是,發現錯誤并不是我們的最終目的。軟件工程的根本目標是開發出高質量的完全符合用戶需要的軟件。 軟件測試的目的 基于不同的立場,存在著兩種完全不同的測試目的。從用戶的角度出發,普遍希望通過軟件測試暴露出軟件中陷藏的錯誤和缺陷,以考慮是否可以接受該產品。而從軟件開發者的角度出發,則希望測試成為表明軟件產品中不存在錯誤的過程,驗證該軟件已正確地實現了用戶的要求,確立用戶對軟件質量的信心。 1. 測試是為了發現程序中的錯誤而執行程序的過程; 2. 好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案; 3. 成功的測試是發現了至今為止尚未發現的錯誤的測試。 從上述規則可以看出,測試的正確定義是“為了發現程序中的錯誤而執行程序的過程”。這和某些人通常想象的“測試是為了表明程序是正確的”,“成功的測試是沒有發現錯誤的測試”等等是完全相反的。正確認識測試的目標是十分重要的,測試目標決定了測試方案的設計。如果為了表明程序是正確的而進行測試,就會設計一些不易暴露錯誤的測試方案;相反,如果測試是為了發現程序中的錯誤,就會力求設計出最能暴露錯誤的測試方案。 由于測試的目標是暴露程序中的錯誤,從心理學角度看,由程序的編寫者自己進行測試是不恰當的。因此,在綜合測試階段通常由其他人員組成測試小組來完成測試工作。此外,應該認識到測試決不能證明程序是正確的。即使經過了最嚴格的測試之后,仍然可能還有沒被發現的錯誤潛藏在程序中。測試只能查找出程序中的錯誤,不能證明程序中沒有錯誤。 術語、名詞定義 1. 黑盒測試 2. 白盒測試 3. 灰盒測試 4. 文檔測試 5. 命名規范測試 6. 需求完整性測試 7. 鏈接完整性測試 8. 頁面完整性測試 9. UI合理性測試 o 提示、菜單、幫助的格式是否一致; o 提示、菜單、幫助中的術語是否一致; o 各個控件之間的對齊方式是否一致; o 輸入界面和輸出界面在外觀、布局、交互方式上是否一致; o 功能類似的相關界面在外觀、布局、交互方式上是否一致; o 同一層次的文字在同一種提示場合(一般情況、特殊字體、警告等)在文字大小、字體、顏色、對齊方式方面是否一致,字體大小是否與界面的大小比例協調; o 多個連續界面依次出現的情況下,界面的外觀、操作方式是否一致; o 系統是否拒絕客戶的錯誤輸入并做出提示; o 系統是否在用戶完成操作時給出操作成功的提示; o 用戶界面是否存在空白空間,沒有空白空間的界面是雜亂無章的,易用性差; o 各個控件的間隔是否一致,垂直和水平方向上是否對齊; o 是否允許動作的可逆性,返回原有操做; 10. 數據和數據庫完整性測試 11. 功能測試 12. 壓力測試 13. 安全性測試 o 執行添加、刪除、修改等動作中是否做過登錄檢測。 o 退出系統之后的操作是否可以完成。 o 所有插入表單操作中輸入特殊字符是否可以正常輸正常存儲,特殊字符為:!?#¥%……—*()~——-+=[]{}、|;:‘”?/《》<>,。 o 在帶有參數的回顯數據的動作中更改參數,把參數改為特殊字符并加入操作語句看是否出錯。 o 測試表單中有沒有做標簽檢測,標簽檢測是否完整。 o 在插入表單中加入特殊的HTML代碼,例如:<marquee>表單中的字本是否移動?</marquee>。 14. 頁面腳本測試 15. 提示文本測試 16. 瀏覽器測試 17. 安裝測試 自定義測試 在常規測試時可能表中的測試項不能滿足測試要求,如果有特殊測試項請測試人員自己定義修改測試的類型。 軟件命名規范 1. 軟件版本階段說明 o Base版: 此版本表示該軟件僅僅是一個假頁面鏈接,通常包括所有的功能和頁面布局,但是頁面中的功能都沒有做完整的實現,只是做為整體網站的一個基礎架構。 o Alpha版: 此版本表示該軟件在此階段主要是以實現軟件功能為主,通常只在軟件開發者內部交流,一般而言,該版本軟件的Bug較多,需要繼續修改。 o Beta版: 該版本相對于α版已有了很大的改進,消除了嚴重的錯誤,但還是存在著一些缺陷,需要經過多次測試來進一步消除,此版本主要的修改對像是軟件的UI。 o RC版: 該版本已經相當成熟了,基本上不存在導致錯誤的BUG,與即將發行的正式版相差無幾。 o Release版: 該版本意味“最終版本”,在前面版本的一系列測試版之后,終歸會有一個正式版本,是最終交付用戶使用的一個版本。該版本有時也稱為標準版。一般情況下,Release不會以單詞形式出現在軟件封面上,取而代之的是符號(R)。 2. 版本命名規范 版本號定修改規則: o 主版本號(1):當功能模塊有較大的變動,比如增加多個模塊或者整體架構發生變化。此版本號由項目決定是否修改。 o 子版本號(1):當功能有一定的增加或變化,比如增加了對權限控制、增加自定義視圖等功能。此版本號由項目決定是否修改。 o 階段版本號(1):一般是 Bug 修復或是一些小的變動,要經常發布修訂版,時間間隔不限,修復一個嚴重的bug即可發布一個修訂版。此版本號由項目經理決定是否修改。 o 日期版本號(051021):用于記錄修改項目的當前日期,每天對項目的修改都需要更改日期版本號。此版本號由開發人員決定是否修改。 o 希臘字母版本號(beta):此版本號用于標注當前版本的軟件處于哪個開發階段,當軟件進入到另一個階段時需要修改此版本號。此版本號由項目決定是否修改。 3. 文件命名規范 如果是同一版本同一階段的文件修改過兩次以上,則在階段標識后面加以數字標識,每次修改數字加1,項目外包平臺測試報告 4. 版本號的階段標識
測試任務描述 在軟件的開發過程中每個版本都會經歷四次測試任務,分別為:單元測試、集成測試、系統測試、驗收測試,在這四次測試任務中,每次測試都有不同的測試方向和重點。 1. 單元測試 2. 集成測試 3. 系統測試 驗收測試 驗收測試屬于黑盒測試范圍,是對系統測試修改后的復審,這方面和集成測試有些類似,首先確認系統測試中的BUG已經按要求修改完成,然后檢測一下功能是否符合用戶的需求、文檔是否完整、有沒有前面測試中遺漏沒有測試出來的BUG。要說明的一點是,此處的驗收測試并非客戶驗收測試,這里沒有客戶參與測試,只有測試人員參與測試。驗收測試是開發結束或進入下一版本的標志性測試。 驗收測試的重點測試內容包括:鏈接完整性測試、UI合理性測試、功能測試、壓力測試、頁面完整性測試、提示文本測試、瀏覽器測試、安裝測試。 測試工作流程圖 軟件在開發過程中共有五個版本,分別是Base版、Alpha版、Beta版、RC版、Release版,每個版本的開發中都需要經過上述四次測試,但是每個版本中各階段的測試重點是不一樣的,詳細的測試流程和重點請看下面各版本流程圖: 1. Base版各個測試階段流程圖 測試提交文檔 測試文檔使用方法 在測試的過程中測試人員會用到三張表,第一張表是“測試任務表”,這張表中記錄的是軟件在每個版本的每個階段中需要做的具體測試任務,如果測試中不確定需要做哪些測試,在這張表中可以查詢各個階段中所要進行的測試項。 測試文檔下載 · 測試任務表 · 白盒缺陷測試報告 黑盒缺陷測試報告 注: 在每次的測試中測試人員需要按表中的要求進行添寫測試報告,然后由項目經理來分配給開發人員處理,開發人員修改完BUG之后再交由項目經理來分配給測試人進行修改后的復審,檢查前面測試出來的BUG是否已經修改完成,在此要特別說明的一點是:為了讓測試報告更方便查看,如果在復審過程中查出還有BUG沒有修改完或是根本沒有修改,則在復審描述中說明原因,然后把此處標注成新的BUG索引項指到新的BUG編號上,詳細情況請看下面截圖: 測試方法和方式 測試方式主要以手工測試為主,在條件允許的情況下使用自動化測試工具進行測試。
說明:黑盒測試是依據用戶能看到的規格說明,即針對命令、信息、報表等用戶界面及體現他們的輸入數據與輸出數據之間的對應關系,特別是針對功能進行測試。主要由客戶或系統使用者完成執行黑盒測試。
· 測試用例覆蓋:測試的每一個用例都被測試過。 · 輸入覆蓋:測試過程中所輸入的數據或資料必須一再的試驗,如在程序安裝過程中輸入用戶名時,測試者必須反復輸入不同長度的中文、英文或數字等來做測試。 輸出覆蓋:測試過程中程序所產生的行為、反映及數據必須都一再的試驗,如不同情況的對話窗口的內容、運算結果數據等都必須反復地測試審核。 通過測試的標準 一般有“基于測試用例”和“基于缺陷密度”兩種評比準則,在這里我們采用前者。
實施建議 對于系統的一些實施建議: o 對系統測試人員進行必要的培訓,提高他們的測試效率。 項目經理和測試小組根據項目的資源、時間等限制因素,設法合理地減少測試的工作量,例如減少“冗余或無效”的測試。
附錄一:缺陷分類
附錄三:優先級
附錄四:測試計劃審批意見
該文章在 2010/12/14 14:49:26 編輯過 |
關鍵字查詢
相關文章
正在查詢... |