測試時代首頁 | 測試時代論壇 | 測試交流會 | Blog社區 | 測試時代工作室 | 測試時代刊物 | 軟件測試資料

軟件測試的時代 - 軟件測試思想、軟件測試技術新體驗!
             
軟件測試的計劃與管理

                    瑪瑞 來源:中國軟件測試在線
  摘 要 軟件測試是軟件工程中值得專門計劃和管理的一項子工程。軟件測試在軟件系統研制過程中的定義和軟件測試的組織策略是軟件測試計劃與管理的重點。進一步分析軟件測試的本質、軟件靜態分析的作用、軟件測試的質量和軟件測試的可信度將有利于組織者在更高層次上計劃和管理軟件測試。

主題詞 軟件測試 計劃與管理 軟件問題 確認

1 引言... 1

2 軟件測試的工作框架... 1

2.1 軟件測試在軟件系統研制過程中的定義... 2

2.2 軟件測試在軟件研制中的作用... 2

2.2.1 軟件測試活動與其它軟件研制活動的關系... 2

2.2.2 軟件測試的對象... 2

2.2.3 軟件測試組織與軟件開發組織的界面... 2

2.2.4 軟件更動控制規范... 3

2.3 軟件測試的組織策略... 3

2.3.1 軟件測試遵循的標準... 3

2.3.2 軟件測試的工作范疇... 3

2.3.3 軟件測試環境... 4

2.3.4 軟件測試產品... 4

2.3.5 適用于軟件測試活動的軟件資源標識規則... 4

2.3.6 軟件測試的進度安排... 4

3 結論和討論... 4

3.1 軟件測試的重點... 4

3.2 軟件測試的難點... 5

3.3 軟件測試的進一步涵義... 5

3.3.1 軟件測試的本質... 5

3.3.2 軟件的靜態分析技術... 5

3.3.3 軟件測試的質量... 5

3.3.4 軟件測試的可信度... 6

1 引言
在工程化的軟件研制過程中,軟件測試活動貫穿整個軟件項目的生存周期;獨立的軟件測試組織始終與設計/實現/維護組織并行工作;軟件測試涉及的人/物/時間甚至可能超過軟件項目總消耗的一半以上。因此,軟件測試本身就是軟件工程中值得專門計劃和管理的一項子工程。

本文將基于一個大型實時軟件系統中軟件測試的實踐,從計劃和管理的角度來分析和介紹軟件測試的工作框架及其內容;然后討論在較高層次上計劃和管理軟件測試時可以進一步分析和研究的內容。

2 軟件測試的工作框架
軟件測試的基本組織原則為:

a.成立獨立的測試組織,以實現第三方測試(IV&V)的要求。

具體實現時可以采用:專職為主、兼職為輔和交叉測試的策略。

b.軟件測試工程化、規范化。

包括:統一制訂軟件測試的方法與規范;重視軟件測試文檔的編制;明確定義軟件測試環境,同時有重點地設計和開發軟件測試工具。

c.實現有效的測試過程管理。

包括:測試資源(數據與程序)的配置管理;測試/回歸測試的自動/半自動化執行;測試報告的自動/半自動化生成。

d.重視測試結果與測試結果的利用。

包括:加強結果收集統計和分析;指導軟件進展和質量評估。

根據基本組織原則,軟件測試的工作框架包括三個部分:軟件測試在軟件系統研制過程中的定義(外部聯系);軟件測試的組織策略(內部結構);軟件測試的過程控制(內部聯系)。前兩部分的定義相對穩定,是軟件測試計劃與管理的重點,以下分析和介紹其中的內容。

2.1 軟件測試在軟件系統研制過程中的定義
在軟件測試工作之初,組織者應與其他有關人員協調,以正確定位以下內容:

a. 軟件測試在軟件研制中的作用;

b. 軟件測試活動與其它軟件研制活動的關系;

c. 軟件測試的對象;

d. 軟件測試組織與軟件開發組織界面;

e. 軟件更動控制流程。

2.2 軟件測試在軟件研制中的作用
軟件測試的意義在于:

a. 發現軟件錯誤;

b. 有效定義和實現軟件成分由低層到高層的組裝過程;

c. 驗證軟件是否滿足任務書和系統定義文檔所規定的技術要求;

d. 為軟件質量模型的建立提供依據。

即軟件測試包括“找錯”、“組裝”、“確認”和“評估”四個層次的作用。

2.2.1 軟件測試活動與其它軟件研制活動的關系
圖1描述了軟件研制過程中各種活動的輸入/輸出關系?梢钥吹剑很浖䴗y試是軟件質量管理活動之一;軟件測試組織通過軟件配置管理組織獲得其測試對象:軟件產品(文檔/代碼/文件)或其中間形式;軟件測試結果通過軟件配置管理組織返回給軟件開發組織;測試結果是軟件質量控制的數據來源之一。

2.2.2 軟件測試的對象
在大型軟件系統中,軟件成分被劃分為多個層次。所有參加測試的人員都應了解其面對的軟件系統的構成,同時清楚自己實現哪些部分、哪些方面的測試。

各類系統定義文檔是軟件測試的依據,它們定義了各層次軟件成分的功能/性能/實現的要求。必要時,測試組織者應及時匯集、整理、完善軟件系統的成分樹/森林,明確各層次軟件成分的具體內容。當然,這部分信息也可能由其它組織提供。

2.2.3 軟件測試組織與軟件開發組織的界面
軟件測試組織與軟件開發組織的界面指:軟件開發組織完成編碼、調試、集成后通過軟件配置管理組織移交給軟件測試組織的軟件成分的層次,簡稱“軟件測試界面”。

對低于軟件測試界面的軟件成分進行的排錯的過程一般被稱為“軟件調試”;而對高于軟件測試界面的軟件成分進行的找錯的過程被稱為“軟件測試”,其修改的過程被稱為“軟件更動”。

一旦軟件成分被提交到配置管理庫中,則對其的修改就必須遵循軟件更動控制規范,將涉及不少人員,媒體轉移較頻繁,軟件修改周期也較長。因此代碼的測試不應過分依賴于測試組織,即:開發組織提交的軟件成分應足夠穩定。為了減少整個軟件測試過程(發現問題—改動軟件)的人力/物力/時間的消耗,測試組織與開發組織應達成共識:盡可能提高軟件測試界面。定義較高軟件測試界面的益處還在于:有利于開發組織更加主動關注其軟件開發過程的質量控制;同時,還有利于測試組織集中時間和資源來執行軟件高層測試(功能/性能的確認)。

2.2.4 軟件更動控制規范
由圖1知:軟件測試的對象是已置于軟件配置管理控制之下的軟件成分(程序、數據、文檔及各類受控的文件)。軟件更動控制是軟件配置管理的主要任務之一。

當軟件開發/測試/維護人員發現軟件問題(與軟件配置管理項相關的軟件錯誤、軟件不一致或未知原因的軟件異常狀態)時,須填寫軟件問題報告,按照軟件更動控制流程/算法,進入軟件更動循環,產生相應的軟件更動申請/報告。因此軟件更動控制規范應包含:軟件更動控制流程/算法、軟件問題報告和軟件更動申請/報告的格式。

由于軟件更動控制與軟件回歸測試的內在聯系緊密,因此測試組織應參與制訂軟件更動控制規范,以使該規范能在適用于系統的前提下更節省軟件研制的總消耗。

2.3 軟件測試的組織策略
在軟件測試的管理中,以下內容的定義反映測試工作的組織策略:

a.軟件測試遵循的標準;

b.軟件測試的工作范疇;

c.軟件測試環境;

d.軟件測試產品;

e.適用于軟件測試活動的軟件資源標識規則;

f.軟件測試的進度安排。

2.3.1 軟件測試遵循的標準
組織者在指定范圍內選擇軟件測試遵循的標準,并結合本軟件系統的具體要求,使之貫徹到整個軟件測試的計劃、實現和管理過程之中。根據標準,需要被明確的內容包括:測試階段和測試文檔類型。

可以從三個角度來劃分測試階段:面向測試操作類型的階段劃分、面向測試操作對象的階段劃分、面向測試實施者的階段劃分。測試操作類型包括:調試、集成、確認、驗證、組裝、驗收、操作等。測試操作對象可以是:單元、部件、配置項、子系統、系統等。測試實施者可以是:開發者、測試者、使用者、驗收者等。各類標準從不同角度定義測試評審階段,而測試組織者可以在符合所選標準的同時,結合多個劃分因素規定本系統的測試階段。

各標準規定的測試文檔類型也不盡相同。如國標《軟件產品開發文件編制指南》規定了兩類測試文檔:測試計劃、測試分析報告;國標《計算機軟件測試文件編制規范》定義了八類測試文檔:測試計劃、測試設計說明、測試用例說明、測試規程說明、測試項傳遞報告、測試日志、測試事件報告、測試總結報告;《XXXX軟件工程化技術文件》定義了三類測試文檔:測試計劃、測試說明、測試報告。我們認為最后這種規定較易操作:因為,太少的測試文檔類型不利于有步驟有層次地定義測試內容,也不利于測試用例和測試例程的良好表達;太多的測試文檔類型易使測試組織陷入到繁雜的文檔規范和編制中去;而第三種定義較為適中。其中:測試計劃在系統分析/設計階段提交,著重定義測試的資源、范圍、內容、安排、通過準則等;測試說明在測試計劃明確后開始編制,針對軟件需求和設計要求具體定義測試用例和測試規程;測試報告分析和總結測試結果,測試日志是其必要附件。

2.3.2 軟件測試的工作范疇
軟件測試工作包括兩個層次:

a. 測試工作的組織與管理,包括:制定測試方法與規范、控制測試進度、管理測試資源。

b. 測試工作的實施,包括:編制符合標準的測試文檔、研制測試環境、與開發組織協作實現各階段的測試活動。

軟件測試工作可以分為四個方面:

a.測試管理。測試小組是質量保證組織的一個成分,因此測試管理工作應被置于軟件質量管理工作范圍內。

b.測試計劃。獨立的測試組織負責定義軟件測試的方法與規范。開發組織負責編制單元測試的計劃和說明;測試組織主要負責編制其它各測試階段的測試計劃和說明。

c.測試實施。測試實施組織的作用是:按測試計劃與測試說明的定義對測試對象進行相應的測試;填寫測試報告中相應的表格。

d.測試評審。依據軟件測試評審準則在各測試階段評審時提交類型完整的測試文檔。

2.3.3 軟件測試環境
軟件測試環境包括設計環境、實施環境和管理環境。

軟件測試設計環境指:編制測試計劃/說明/報告及與測試有關的文件所基于的軟/硬件設備和支持。

軟件測試實施環境指:對軟件系統進行各級測試所基于的軟/硬件設備和支持。測試實施環境包括被測軟件的運行平臺和用于各級測試的工具。

軟件測試管理環境指:管理測試資源所基于的軟/硬件設備和支持。測試資源指測試活動所利用或產生的有形物質(如軟件、硬件、文檔)或無形財富(如人力、時間、測試操作等)。廣義的測試管理環境包含測試設計環境、測試實施環境,和專門的測試管理工具。

對軟件測試環境的定義包括兩個方面:折衷需求和實際條件來選擇已有的測試工具;有重點地自行開發測試輔助工具。軟件測試必須依托工具,以便:測試過程的自動/半自動執行和測試結果的自動/半自動評審和報告。目前市場上測試工具分為三類:代碼分析工具、自動/半自動測試過程管理工具和測試資源管理工具。

2.3.4 軟件測試產品
軟件測試工作所產生的文檔、程序、服務、以及相關的文件的總和稱之為軟件測試產品,它是軟件產品的一部分。

除了所選標準規定在各評審階段需提交的測試文檔外,還可以根據實際情況編制其它類型軟件測試文檔。

測試組織需提交的程序是其開發測試工具及其測試環境。

測試組織提供的服務包括:培訓與技術支持,包括為開發組織使用測試工具與環境提供幫助、為開發組織提供測試計劃/說明/報告的編寫指導、協助開發組織實施相應測試;協調與建議,包括在充分理解軟件系統工作原理和流程的基礎上,為軟件系統質量保證工作提供盡可能多的信息。

2.3.5 適用于軟件測試活動的軟件資源標識規則
測試者除了要統一給出各類測試文檔的標識(或定義規則),還要定義其它測試文件,如文檔審查項列表、代碼審查項列表、軟件審查報告、軟件問題報告、軟件更動申請、軟件更動報告、軟件測試日志,等的標識。

軟件測試組織應獲得或自行整理其所面對的軟件系統中各級軟件成分對應的文檔/文件/代碼的標識。另外,測試組織自行開發的測試輔助工具也將置入配置管理庫,因此對其的標識定義應符合整個軟件系統的標識定義規則。

2.3.6 軟件測試的進度安排
軟件測試工作是整個軟件研制工作的一部分,因此測試進度的初步安排應在軟件開發計劃中定義。在各階段測試計劃中將對測試進度的安排給出更具體的定義。

軟件測試實施的開始時間將受限于軟件開發的進度;每個測試階段的進度控制將受限于測試資源(人/物/時間)。

軟件測試的組織者可以在每個月末向軟件質量管理組織提交:本月的<測試工作的活動匯總>、下一月的<測試工作的初步安排>和當前狀態的測試文檔,以利于軟件質量管理組織評估軟件系統的質量、控制軟件系統的測試進度。

3 結論和討論

3.1 軟件測試的重點
軟件測試的重點是:

a. 測試用例和測試例程的良好設計。測試用例及測試例程的設計是整個軟件測試工作的核心。測試用例反映對被測對象的質量要求,決定對測試對象的質量評估。

b. 測試工作的管理。尤其是對包含多個子系統的大型軟件系統,其測試工作涉及大量人力和物力,有效的測試工作管理是保證有效測試工作的必要前提。

c. 測試環境的建立。軟件測試的工作量很大,重復/繁雜的勞動很多,在有限的測試條件下,建立測試環境、提供測試輔助工具是減少軟件研制費用的重要措施。

3.2 軟件測試的難點
軟件測試的難點在于:

a. 測試用例及測試例程是其設計者對被測對象實現原理和外部需求的理解,能否正確反映對被測對象的質量要求,很大程度上取決于其設計者的分析、理解和設計能力。這是一種缺乏指導性方法的、不易制訂標準或規范的、需要“技巧”的設計活動。

b. 目前缺乏測試管理方面的資料,幾乎沒有可供參考的、已實現的、完整的測試管理與測試實施模式。

c. 軟件測試的有效實施需要開發組織與測試組織充分配合。雖然測試活動看似是對開發人員勞動成果的不斷“挑剔”,但測試工作的出發點是:確保開發人員的勞動成果成為可被接收的、更高品質的軟件產品。因此,測試人員應向開發人員謙虛求教,在測試工作中真正發揮作用,為保證軟件產品的高質量起盡可能大的作用。測試的組織者應在促進上級組織協調各組織工作方面發揮作用。

d. 有效的測試工作需要投入足夠的人力和物力,需要對工作的難度和消耗有充分的估計。測試的組織者也應在促進上級組織對資源的統一調度方面發揮作用。

3.3 軟件測試的進一步涵義
進一步分析和研究以下內容,會更有利于軟件測試的組織者在較高層次上計劃和管理軟件測試工作。

3.3.1 軟件測試的本質
軟件測試的本質是對比和模擬(仿真)。檢驗軟件是否有錯或是否滿足要求的兩個前提是:存在預期的參考;存在軟件的運行環境。

理想的軟件研制過程是:每一階段的軟件產品與前一階段的軟件產品在邏輯上等價。其蘊涵了一個假設:盡管每個階段的描述方式不同,但其描述的內容都是精確的、完全的和一致的。這個假設在實際軟件工程中是不容易滿足的,因此不能期望理想的軟件研制過程。

更廣義的軟件測試指:軟件研制中某兩個階段工作結果的對比。

3.3.2 軟件的靜態分析技術
相對軟件動態測試技術(亦稱計算機測試技術),審查會(Inspection)、人工運行(或叫走查,Walkthrough)和靜態檢驗(Desk checking )等軟件的靜態分析技術是在軟件研制的較早階段對非形式化軟件產品的人工測試方式,如對文檔-文檔的靜態分析(需求說明與結構設計的對比)或對文檔-代碼的靜態分析(詳細設計與源代碼的對比)。

在軟件靜態分析技術中,軟件(文檔/代碼)的“運行環境”是在人頭腦中模擬生成的。

強調軟件靜態分析技術的原因在于:越早期的軟件描述越不易形式化,其“隱含”的語義越多,其等價轉換到下一階段描述的難度越大。

靜態分析技術主要用來發現本階段產品的缺陷,但當發現前面階段軟件產品的問題時,就要填寫軟件問題報告,遵循軟件更動控制規范。

3.3.3 軟件測試的質量
通過對比,應用軟件測試技術可以發現以下三類軟件問題:

a. “錯誤”,即:前一階段導出語義為A,本階段導出語義為B,而A1B。

b.“缺少”,即:前一階段導出語義為A,本階段無此導出語義。

c.“多余”,即:本階段導出語義為B,前一階段無此導出語義。

發現第一類軟件問題的過程即謂“找錯”,發現后兩類軟件問題的過程即謂“確認”。設計不周密的測試用例可能并不能區分這三類軟件問題。

軟件測試本身的質量在于:其提供的關于軟件產品質量的信息含量。發現軟件問題并能區分其類型的軟件測試被稱為是優質的。

3.3.4 軟件測試的可信度
軟件測試的結果是衡量軟件產品質量的依據。但軟件測試的依據、設計和操作的可靠性又由什么來保證呢?因而軟件測試結果本身就帶有可信度。相信軟件測試結果的前提是:認可測試設計者/實現者/實施者的能力和責任感,同時認可其所依賴測試工具的可靠性。

在ISO 9001標準中規定:任何測試工具所參考的標準都不應低于使用它的軟件項目的標準。對于所選購的測試工具,可以獲得生產商提供的質量認證;對于自行開發的測試輔助工具,測試組織可以遵循標準,提供研制測試輔助工具的全部開發/測試文檔,以提高其提供的測試結果的可信度。


測試時代首頁 | 測試時代論壇 | 測試交流會 | Blog社區 | 測試時代工作室 | 測試時代刊物 | 軟件測試資料
 
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97