摘要:軟件測試是軟件質量保證的一個重要組成部分,除了要具備一定的客觀條件外,還受到許多主觀因素特別是測試人員、組織和管理等方面的影響.在對這些主觀因素以及軟件測試軟環境的構成與優化作了一些研究和探討后,提出了一些可行性建議。
關鍵詞:軟件測試;單元測試;測試文檔;
一、引言
軟件測試作為軟件開發的一個重要階段,除了必須具備被測軟件、測試工具、測試技術等一些必備的客觀條件外,還受到測試人員、組織管理、測試策略等相關主觀性較強的因素的影響。這些因素的綜合作用——本文稱之為軟件的“測試軟環境”,決定了軟件測試的成敗。
二、軟件測試軟環境的構成要素
1、測試人員
測試人員是軟件測試的執行者,他們的素質將直接影響到軟件測試的成敗。軟件測試是一項嚴謹的工作,一名優秀的軟件測試工程師應具備以下的素質:
(1)溝通能力。測試者必須能夠與測試涉及的所有人員(包括技術人員和非技術人員)進行溝通。由于人本身具有排他性,因此,當你試圖從別人的程序中尋找 錯誤或缺陷時,往往會遭到反對或對抗。測試者應盡量避免沖突和發生矛盾,要對每個人具有足夠的理解和同情,具備了這種能力可以將測試人員與相關人員之間的 沖突和對抗降低到最低程度。
(2)技術能力。由于開發人員對不懂技術的通常持一種不屑或輕視的態度,因此,一旦測試小組的某個成員作出 了一個錯誤的判斷,將直接導致他甚至整個測試小組的可信度降低,相反,則會大大增強測試人員的信心和測試工作的說服力。一個優秀的測試人員必須既明白被測 軟件系統的概念,又要熟悉并會使用相關的工具,而要做到這一點需要有幾年的編程經驗,只有通過這樣的經驗積累才會對軟件的開發有更加深刻的了解。
(3)耐心。軟件測試是一項非常煩瑣的工作,很容易使人變得懶散,甚至煩躁不安。作為一個測試人員,你必須要有足夠的耐心和自律能力,有時你需要花費驚人的時間去識別、排除一個故障,有些看似毫無成就的工作,往往就在你的苦思冥想后豁然開朗。
(4)興趣和自信心。測試者應對自己所從事的工作具有濃厚的興趣,對自己的觀點有足夠的自信,如果具備了這兩點,那么在開發過程中,不管遇到什么樣的困難,都能克服。
(5)懷疑與探索精神。一個軟件從開發到投入使用通常要經歷許多的循環往復,難免出現這樣或那樣的錯誤和缺陷,測試人員應具有叛逆心理,敢于懷疑,勇于探索,在可能的條件下,充分發揮自己的潛能,創造性地開展工作,力求尋找出軟件中存在的故障。
(6)其它方面的素質。具有良好的判斷能力,有一定的幽默感,邏輯思維敏捷等等。
2、組織與管理
(1)測試小組
由于軟件故障的產生主要來源于軟件需求分析、設計和編碼階段,因此,需求分析、軟件設計和程序編碼等各個階段所得到的文檔資料,包括需求規格說明書、設 計規格說明書以及源程序都是軟件測試的對象,而由此產生的測試組織與管理也是分階段的,測試小組的人員組成方式也是不一樣的。
需求分析階段。這一階段的測試人員應包括:用戶、項目經理、系統分析員、軟件設計、開發以及測試人員。他們需要進行多次討論和協商來確定軟件的功能,以此作為評價需求規格說明書的依據。
軟件設計階段。人員組成應包括:系統分析員、軟件設計人員、測試負責人以及用戶。這一階段的主要工作是按照需求分析規格說明書的要求對系統結構的合理性以及過程處理的正確性進行審查,用戶的作用在這一階段不是非常突出。
軟件測試階段。軟件測試作為保障軟件質量的一個重要的手段,通常包含以下一些測試:單元測試、集成測試、確認測試、系統測試和驗證測試。其中,單元測試由編程小組內部的編程人員交叉進行,其它測試工作則要由測試組來完成,此時,測試組成員的組成應包括:測試經理、測試技術人員、軟件開發人員、相關技術支持人員以及用戶。需要注意的是,在單元測試階段,要嚴格杜絕編程人員測試自己編寫的程序。
(2)測試管理
測試工作的管理,尤其是對于包含多個子系統的大型軟件系統,其測試工作涉及大量的人力和物力,有效的測試管理是保證有效測試工作的必要前提。
首先,軟件測試的有效實施需要測試組織與開發組織充分配合。雖然測試活動看似是對開發人員勞動成果的不斷“挑剔”,但測試工作的出發點是:確保 開發人員的勞動成果成為可被接收的、更高品質的軟件產品。測試經理應在組織協調各組織工作方面發揮作用,并和他們一起工作,甚至對公司以外的個人和組織都 是如此。測試經理在工作中所要處理的人員關系可用圖1表示。此外,測試經理所處的職位要求他能提交日常主要工作的有關信息,如狀態報告、測試計劃、評估報 告等,同時,還要根據當前的狀態做出一些重大決策,這些決策可能會對整個測試過程產生一定的影響。
圖1 測試經理的人際關系角色
其次,為確保軟件測試在軟件質量保證中發揮應有的作用,建立和完善軟件測試管理體系是十分必要的。從軟件工程的角度出發,軟件測試管理所涉及的管理對象包含以下幾個方面:
● 測試資源。包括對人員分配、工作環境、相關設施等的管理。
● 測試計劃。根據資源配備情況,制定總體測試計劃,確定各個階段的測試目標和策略。
● 分析與設計。測試分析與設計就是確定測試目標并且如何以一種高效執行的方式組織測試的過程。這個過程需要根據測試計劃選擇合適的測試方案,設計出好的測試用例。
● 測試實施。測試實施是指測試人員根據測試計劃,利用測試資源來運行測試用例以獲得測試數據、開發測試規程的過程。這個過程涉及到測試環境的設置、測試數據的收集以及測試驗證等具體的工作。
● 測試管理。測試管理作用于測試的各個階段,其管理的對象包括測試組織的建立、測試過程的控制、測試計劃和測試規程的制訂與管理等等。
原文轉自:http://www.blogjava.net/qileilove/archive/2013/01/18/394378.html