qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          軟件測試軟環境的構建與優化

          摘要:軟件測試是軟件質量保證的一個重要組成部分,除了要具備一定的客觀條件外,還受到許多主觀因素特別是測試人員、組織和管理等方面的影響.在對這些主觀因素以及軟件測試軟環境的構成與優化作了一些研究和探討后,提出了一些可行性建議。

            關鍵詞:軟件測試;單元測試;測試文檔;

            一、引言

            軟件測試作為軟件開發的一個重要階段,除了必須具備被測軟件、測試工具、測試技術等一些必備的客觀條件外,還受到測試人員、組織管理、測試策略等相關主觀性較強的因素的影響。這些因素的綜合作用——本文稱之為軟件的“測試軟環境”,決定了軟件測試的成敗。

            二、軟件測試軟環境的構成要素

            1、測試人員

            測試人員是軟件測試的執行者,他們的素質將直接影響到軟件測試的成敗。軟件測試是一項嚴謹的工作,一名優秀的軟件測試工程師應具備以下的素質:

             (1)溝通能力。測試者必須能夠與測試涉及的所有人員(包括技術人員和非技術人員)進行溝通。由于人本身具有排他性,因此,當你試圖從別人的程序中尋找 錯誤或缺陷時,往往會遭到反對或對抗。測試者應盡量避免沖突和發生矛盾,要對每個人具有足夠的理解和同情,具備了這種能力可以將測試人員與相關人員之間的 沖突和對抗降低到最低程度。

            (2)技術能力。由于開發人員對不懂技術的通常持一種不屑或輕視的態度,因此,一旦測試小組的某個成員作出 了一個錯誤的判斷,將直接導致他甚至整個測試小組的可信度降低,相反,則會大大增強測試人員的信心和測試工作的說服力。一個優秀的測試人員必須既明白被測 軟件系統的概念,又要熟悉并會使用相關的工具,而要做到這一點需要有幾年的編程經驗,只有通過這樣的經驗積累才會對軟件的開發有更加深刻的了解。

            (3)耐心。軟件測試是一項非常煩瑣的工作,很容易使人變得懶散,甚至煩躁不安。作為一個測試人員,你必須要有足夠的耐心和自律能力,有時你需要花費驚人的時間去識別、排除一個故障,有些看似毫無成就的工作,往往就在你的苦思冥想后豁然開朗。

            (4)興趣和自信心。測試者應對自己所從事的工作具有濃厚的興趣,對自己的觀點有足夠的自信,如果具備了這兩點,那么在開發過程中,不管遇到什么樣的困難,都能克服。

            (5)懷疑與探索精神。一個軟件從開發到投入使用通常要經歷許多的循環往復,難免出現這樣或那樣的錯誤和缺陷,測試人員應具有叛逆心理,敢于懷疑,勇于探索,在可能的條件下,充分發揮自己的潛能,創造性地開展工作,力求尋找出軟件中存在的故障。

            (6)其它方面的素質。具有良好的判斷能力,有一定的幽默感,邏輯思維敏捷等等。

            2、組織與管理

            (1)測試小組

             由于軟件故障的產生主要來源于軟件需求分析、設計和編碼階段,因此,需求分析、軟件設計和程序編碼等各個階段所得到的文檔資料,包括需求規格說明書、設 計規格說明書以及源程序都是軟件測試的對象,而由此產生的測試組織與管理也是分階段的,測試小組的人員組成方式也是不一樣的。

            需求分析階段。這一階段的測試人員應包括:用戶、項目經理、系統分析員、軟件設計、開發以及測試人員。他們需要進行多次討論和協商來確定軟件的功能,以此作為評價需求規格說明書的依據。

            軟件設計階段。人員組成應包括:系統分析員、軟件設計人員、測試負責人以及用戶。這一階段的主要工作是按照需求分析規格說明書的要求對系統結構的合理性以及過程處理的正確性進行審查,用戶的作用在這一階段不是非常突出。

            軟件測試階段。軟件測試作為保障軟件質量的一個重要的手段,通常包含以下一些測試:單元測試、集成測試、確認測試、系統測試和驗證測試。其中,單元測試由編程小組內部的編程人員交叉進行,其它測試工作則要由測試組來完成,此時,測試組成員的組成應包括:測試經理、測試技術人員、軟件開發人員、相關技術支持人員以及用戶。需要注意的是,在單元測試階段,要嚴格杜絕編程人員測試自己編寫的程序。

          (2)測試管理

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

            首先,軟件測試的有效實施需要測試組織與開發組織充分配合。雖然測試活動看似是對開發人員勞動成果的不斷“挑剔”,但測試工作的出發點是:確保 開發人員的勞動成果成為可被接收的、更高品質的軟件產品。測試經理應在組織協調各組織工作方面發揮作用,并和他們一起工作,甚至對公司以外的個人和組織都 是如此。測試經理在工作中所要處理的人員關系可用圖1表示。此外,測試經理所處的職位要求他能提交日常主要工作的有關信息,如狀態報告、測試計劃、評估報 告等,同時,還要根據當前的狀態做出一些重大決策,這些決策可能會對整個測試過程產生一定的影響。

          圖1 測試經理的人際關系角色

            其次,為確保軟件測試在軟件質量保證中發揮應有的作用,建立和完善軟件測試管理體系是十分必要的。從軟件工程的角度出發,軟件測試管理所涉及的管理對象包含以下幾個方面:

            ● 測試資源。包括對人員分配、工作環境、相關設施等的管理。

            ● 測試計劃。根據資源配備情況,制定總體測試計劃,確定各個階段的測試目標和策略。

            ● 分析與設計。測試分析與設計就是確定測試目標并且如何以一種高效執行的方式組織測試的過程。這個過程需要根據測試計劃選擇合適的測試方案,設計出好的測試用例。

            ● 測試實施。測試實施是指測試人員根據測試計劃,利用測試資源來運行測試用例以獲得測試數據、開發測試規程的過程。這個過程涉及到測試環境的設置、測試數據的收集以及測試驗證等具體的工作。

            ● 測試管理。測試管理作用于測試的各個階段,其管理的對象包括測試組織的建立、測試過程的控制、測試計劃和測試規程的制訂與管理等等。

            三、測試軟環境的構建

            1、測試人員

            在一個測試小組中,并不是所有的測試人員都需要具有同樣的技能,由于分工不同,他們所起的作用也不同。一般情況下,測試小組中測試人員的構成一般包括:

            開發人員。最好的情況是:讓開發人員去做單元測試,如果需要的話還可以讓他們做集成測試。

            用戶。通常在測試階段會給測試提供很好的幫助。

            技術支持人員。熟悉軟件產品的流程,與用戶有更多的溝通,往往更能理解用戶的想法。

            QA人員。他們了解產品質量的重要性,對測試小組的工作是一個很好的補充。

            技術文員。這是測試工作中必不可少的一個角色。由于工作的需要,他們關注測試過程中的很多細節問題,并按照要求完成相關的技術文檔的編制,使得整個測試工作都有據可查。

           2、測試組織

            由于軟件的規模大小不一,軟件測試的方法也比較多,因此,測試組織的構成形式也多種多樣。表l列出了各種測試組織的一些優缺點。測試組織如何進行內部構造和設置職位,這在很大程度上取決于政策、企業文化、質量標準、成員的技術和知識水平,以及產品的風險。

          表1 各種測試組織的優點和缺點

            3、工作環境

            對許多測試人員和管理人員來說,工作環境似乎不是最重要的問題,而且長期以來也沒有得到重視,但測試人員所處的工作環境對他們的生產力和工作效果所起的作用是非常重要的。

            測試人員為了完成他們的工作,需要有特定的基本需求,他們需要有一個自己的辦公空間,能夠方便地與小組中的其他人員進行交流而不互相干擾,在資源配置許可的情況下可以自由使用各項設施,所有這些條件的滿足都會對整個小組的工作效率產生很大的影響。

            四、測試軟環境的優化

            從測試軟環境的構成來看,由于測試人員的主觀性較強,測試管理和測試策略的靈活性較大,因此這幾個方面都可以作為軟環境優化的出發點,以提高軟件測試的效率。

            1、測試小組的優化

            挑選合適的人員來從事適當的工作,這是每一個管理者都必須面臨的挑戰。事實上,由于很少有大學會設立軟件測試方面的 課程,因此,要在很短的時間里尋找到合適的軟件測試員是非常困難的。通常情況下,優秀的軟件測試人員都是經過長期的經驗積累后由開發人員轉變而來。另外, 確定測試小組的其他人員也是要考慮的一個重要方面。

            技能培訓作為測試人員提高自身素質的重要手段,對整個測試工作的實施能夠起到事半功倍的作用。在確定了測試小組的組 成人員后,管理者有責任、有必要對他們進行相關的技能培訓。這種培訓包括:專業技能、業務知識、交流能力等。培訓的方式可以采用指導、內部培訓、由相關培 訓機構實地培訓等多種形式。


           2、測試管理的優化

            前面已經提到,對測試過程的有效控制是測試工作順利進行的基礎,而對測試工作的有效管理則是提高測試效率的有力保障。

            (1)測試規范化

            軟件測試是一項相當煩瑣的工作,必須加以規范,避免隨意性。測試文檔的編寫就是測試工作規范化的一個重要組成部分。軟件測試文檔通常分為兩類, 測試計劃和測試分析報告。測試計劃用來指導一個測試過程,包括測試的目的、內容、策略、進度等,而測試報告則對測試的結果進行分析說明,指出軟件所具有的 功能以及存在的缺陷。通常情況下,軟件測試文檔規定了進行軟件測試所必須具備的條件,這些條件作為測試資源必須在測試進行之前落實。

            (2)管理制度化

            測試管理是整個軟件產品質量保證的一個重要組成部分,管理的制度化是保證有效測試工作的必要前提。由于測試工作長期以來沒有受到足夠的重視,幾 乎沒有可供參考的、已實現的、完整的測試管理方面的資料。通常情況下,可以將管理工程的一些基本原理用于測試工作中,根據測試過程的進展情況,吸收其他組 織或行業的先進經驗,對整個測試工作進行計劃和管理,使得一些行之有效的方法和機制逐漸制度化,進一步規范整個測試過程。

            五、小結

            長期以來,由于軟件測試在軟件開發中沒有得到足夠的重視,使得可遵循的測試規范尤其是測試管理方面的知識及相關資料非常缺乏,本文所提到的測試 軟環境及其構成要素在很多軟件開發方面的書籍中有所提及,而在一些專門講述軟件測試的書中往往更多地注重講解各種測試策略和測試方法。而忽略了組織與管 理,隨著人們對軟件開發過程的認識逐漸加深,軟件測試也越來越得到了應有的重視。

          posted on 2013-01-18 10:13 順其自然EVO 閱讀(373) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄defalut managerment system 缺陷管理系統

          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 通辽市| 青神县| 资溪县| 东丰县| 滦平县| 民权县| 无锡市| 沐川县| 吕梁市| 大邑县| 甘谷县| 锡林郭勒盟| 张家口市| 东阿县| 吴川市| 冕宁县| 吉隆县| 灵丘县| 噶尔县| 赣州市| 东源县| 新野县| 榆社县| 葵青区| 淳化县| 峨眉山市| 进贤县| 肥东县| 鹤庆县| 行唐县| 浦县| 通河县| 麻城市| 错那县| 怀来县| 灵璧县| 合川市| 镇雄县| 达日县| 固阳县| 晋中市|