• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    關于Rational與軟件質量保證

    發布: 2009-4-27 17:34 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 48次 | 進入軟件測試論壇討論

    領測軟件測試網 軟件質量保證,即 SQA ,全稱是 Software Quality Assurance 。

        問:SQA 目的是什么?

        答:對于任何的行業,講到質量控制,歸根結底都是為客戶提供更高品質的產品,更好地滿足客戶的需求。質量有問題的話就不能滿足客戶的需求。在 CMMI 里邊就有 " 集成流程產品開發 IPPD (Integrated Product & Process Development)" ,為什么要集成呢?就是說產品的研發不僅僅是開發團隊的工作,還要把市場團隊、銷售團隊、整個的流程、包括客戶的反饋都要考慮進來、集成進來。目的是為了什么?其實就是為了更好地滿足客戶的需求。六西格瑪里面說 DPMO (Defect Per Million Opportunities) ,百萬產品里有缺陷的產品只有三個。這是為什么?就是為了減少差錯,從而讓客戶享受非常高質量的服務。

        問:SQA 等于測試?

        答:測試其實只是 SQA 的一個環節, SQA 的全稱是軟件質量保證。在國外很多的大型的企業,比如說摩托羅拉、愛立信,他們的研發團隊里面都專門有一個 QA 部門,其實他們并不是做測試工作的。 QA 部門其實是管理開發流程的執行,并專門負責制定產品開發流程。比如說 RUP 里面有一個角色,叫 Process Engineer ,過程工程師,他就屬于 QA 部門,他的工作就是負責制定整個軟件開發的流程。因為如果說要保證質量的話,不能只靠測試來保證。而必須在整個開發流程的各個環節都要做得很好,才能夠真正地提升軟件的質量。而測試只是整個開發流程最后的一個階段。所以說一個好的流程就決定了一個軟件的開發能不能按時交貨,能否保證軟件質量。這個流程就是由 QA 部門來制定的。 QA 部門還有另外一個職責,就是保證整個研發團隊能夠嚴格按照這個流程來運作。在項目到達每一個里程碑的時候, QA 部門的 QA 經理就會介入,對項目做一個審核,檢查前一階段的工作是否按照公司制定的流程來運作?纯丛撚械墓ぜ遣皇嵌加辛,該有的步驟是不是都有了。開發團隊要證明給 QA 人員看。只有過了這一關, QA 部門才會同意說開發團隊可以往下走,進行下一步的工作。所以嚴格來講,眾廣義上理解, SQA 是針對整個軟件開發流程的,它關心的是怎樣在軟件開發生命周期中來保證好軟件的質量。這是一個非常大的概念。

        問:SQA 在 RUP 中是如何體現的?

        答:其實 RUP 整個流程都在講 SQA 。業界常見的模型,譬如 CMM/CMMI ,六西格瑪, ISO9000 , RUP ,它們做的基本上是同一件事情 -- 都是在做流程改進,都在做質量控制,但是各自的側重點不一樣。像 RUP 和 SDP 專門側重于從軟件開發的整個生命周期來保證軟件質量,所以對軟件開發商特別適合。而其它的模型,側重點則在其它的環節,比如說 ISO9000 ,用在制造業比較多一些; CMM ,原來是應用在軟件這個行業的,后來擴展到 CMMI ,就擴展到其它行業它也適用。但適用面越廣,它拉的層次就越高,可實際操作的東西就越少。 RUP 是專門側重于軟件項目開發的。怎樣來保證做好 QA 呢? RUP 里定義了一個軟件生命周期模型,分成四個階段 -- 初始階段、細化階段、構造階段、交付階段,每個階段有不同的側重點,通過多次的迭代,每次迭代里面都要做質量控制。

        質量控制從需求開始,有很多需求分析需求管理方面的技巧和技術方法,它們從需求方面來保證軟件的質量;到了設計,就有很多成熟的設計方法,例如可視化建模,基于構件的架構設計和現在提出的模型驅動開發方法;再到實現,到測試等方面,都有很多的方法和技巧來提高軟件的質量。這里面每一個環節的目的都是為了提高整個軟件開發的質量。

        開發過程中,什么樣的問題會造成質量問題呢?其實最主要的就是溝通方面的問題,以及對系統復雜度把握程度的問題。我們逐漸發展了一些技術來幫助我們解決這些方面的問題,例如用 UML 這種標準化的語言來增強團隊的溝通,用面向對象的技術來幫助加強對復雜度的控制能力。

        原來這個系統很復雜,使用面向對象的方法,本身就是為了簡化系統構建的復雜度。改變你看問題的角度,你對問題的把握程度就會不一樣。譬如人看一個二維迷宮很容易就能找到出路,但螞蟻在里面就走不出來,因為看問題的角度不一樣。面向對象方法和可視化建模技術可以讓開發人員可以更好地去把握系統,增強對系統的可控制能力,從而從這些維度上來提高和保證軟件的質量。

        現在有很多自動化的工具,如 IBM Rational RAD (Rational Application Developer) / RSA (Rational Software Architect) ,都是支持 MDA 的開發方法,在模型這一級進行開發,從模型直接生成代碼。在開發方面我們有很多輔助工具,幫助開發人員盡量將人工做的工作、復雜的重復性的工作、不具有創造性的工作讓工具來做。讓人去關注他應該關注的方面,比如開發人員應該關注業務邏輯的處理,但是軟件的構建方面我們是盡量讓工具來降低構建細節上的難度。這樣也是有助于提高質量的。

        然后產品出來了,需要進行測試,有測試流程、測試規范來幫助保證質量,這是最直接的。然后還有很多的環節還會發生錯誤,比如配置管理、版本的管理,也需要相關的支持來保證軟件的質量。所以說軟件質量保證不應該只是在一個環節上,比如測試環節來保證,而應該是整個的流程,我們應該全面地去改進流程來保證質量。

        問:做 SQA 這方面的人員,在溝通方面需要的什么樣技巧和能力?

        答:首先從大的方面說,整個團隊的溝通,首先是大家要講同樣的語言。 UML 只是這種語言的一部分,我們不要狹義地理解這種溝通語言就是 UML 。它還包括采用一個什么樣的流程方法,整個團隊都要理解。譬如你說項目正處于 " 精化 (Elaboration)" 階段,這個團隊都要能理解這個術語。

        還有就是整個組織機構內部大家采用的流程都是要一樣的。舉個例子來說, Rational 有很多產品,其中很多都是收購來的。不同的產品團隊采用的開發方法、開發工具都是不一樣的,他們到了 Rational 之后做的第一件事就是整合。這個整合一方面是說產品要整合起來(我們有 Suite 產品);同時也是針對開發團隊開發方法的整合,例如 Rational 花了一兩年的時間把所有產品團隊統一到 RUP 和 ClearCase/ClearQuest 平臺之上,這是我們的首選。實際上到了 IBM 之后也是一樣, IBM 現在正在做的計劃就是讓所有的實驗室、研發團隊都要使用 IBM Rational 自己的開發工具,他們都在使用 IBM 自己的開發方法、開發平臺。這就是讓大家的溝通基于一個統一的基礎架構 ―― 統一的軟件開發平臺,這也是增強溝通的一種方式。另外,講到 SQA 的人員,在 RUP 里對應的就應該是 Process Engineer 。他的主要的職能就是定義流程,保證流程的執行,并且不斷地改進流程。對他的要求就是要對流程要比較了解,有實際項目的開發經驗,不然沒有辦法理解流程,這是技能方面;另外就是與人的溝通能力要強,跟一般的開發人員和項目經理是有區別的,溝通的能力一定要強,他要負責說服項目團隊來遵循標準。

        問:QA 人員與目經理和開發人員之間的關系是怎樣的?

        答:首先彼此之間是一個合作的關系。如果片面理解 QA 人員只是 " 過程警察 " 的話,就可能把他和其他的角色對立起來了。實際上在一個團隊內部要避免這種認識。因為大家都是在一個組織架構內部的,大家的目標是一致的,就是要把公司的業務做好。所以 QA 人員的職責和任務就是幫助這個項目團隊更好地進行軟件的開發。既然已經定義的流程是比較適合企業的,項目就應該遵守這個流程來進行開發。如果有時候項目因為趕工,或是其它的原因違背一些流程上的規定的話,就會對軟件的質量會造成一定影響,他就有責任來幫助開發團隊來糾正這方面的一些錯誤。還有就是進度方面的問題。如果不按照流程來走的話,短期內看起來進度是快了一點,但從整個項目的周期來看,有可能是給以后的工作帶來隱患,客觀上肯定是延長整個開發的進度的。所以對于一些流程管理得比較好的企業,你會發現他們的 QA 部門和開發團隊是相處得比較融洽的,配合是比較緊密的。在我們的客戶里就看到過他們的開發團隊非常感謝自己的質量控制人員,覺得他們對自己是給了很大的幫助。

        QA 人員跟每一個角色的關系,如果你對應到 RUP 的話, RUP 里就定義好每一個角色是做什么工作的。 RUP 里分了 9 個規程 (discipline) ,流程工程師是在環境規程里邊,項目經理是在項目管理規程里邊。每一個規程其實就是一類開發活動,其中的角色和他們所產生的工件集合,是一個分類?梢园秧椖拷浝硐嚓P的工作,他所涉及到的工件,比如說軟件開發計劃、風險管理計劃、質量保證計劃都放在一起,放在這個規程里面。所以 QA 人員跟項目經理的關系就是去檢查項目經理在這個崗位上所做的職責是否到位,是不是跟流程相符合。其他的角色也是一樣的,譬如一個測試人員,就要看你有沒有根據規定把缺陷按正確的測試流程匯報,發現缺陷之后是否能夠得到改正,并作一個復審,還有回歸測試的時候有沒有考慮測試的完備性等問題,就是看測試人員有沒有做好具體的工作。 QA 人員和整個項目團隊在工作中的關系就是看每一個角色是不是很好地完成了自身角色所應該完成的開發任務。標準是什么?就是這個組織的流程,流程是保證質量很重要的一個依據。

        問:QA 人員如何判斷其工作效果和質量?

        答:最直接就是 RUP 里的工件?梢匀z查這些工件,可以根據檢查的結果來判斷角色是否達到了要求。既然是檢查這個結果的話,就有必要涉及到統一流程和工具的問題。就是說開發團隊有必要采用統一的開發方法和流程。不然的話每一個開發團隊各自采用不同的開發流程,流程工程師就很難去評價,沒有一個可對照的標準,沒有可比性。另外,和采用的工具也有關系,就是說團隊要盡量采用統一的開發平臺。采用統一的開發平臺,工具會幫助自動收集很多的信息。比如說我們的 Project Console 可以幫助收集很多量化的指標;現在有 Portfolio Manager ,項目組合管理平臺,可以幫助了解項目進度還有項目進行過程中產生的各種結果;還有包括測試的報告等等,這些都最好有一個統一的標準。打個比方來說,現在的航空公司都會選擇相同飛機制造廠商的機型,就是要降低維護的成本。因為機型比較統一的話,就比較好進行管理。在一個軟件企業的話,在內部采用統一的軟件開發平臺也能有助于企業判斷項目的情況,判斷的方法也會相對比較簡單,工作量會降低。

        這是從 QA 的角度來看,其次從整個團隊的角度來說,今天是做這個項目,明天做另外一個項目,作為企業的管理人員肯定不希望員工今天做這個項目用一個工具,明天做另外一個項目用另外的工具,這樣學習成本就太高了。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: rational Rational RATIONAL 軟件 質量


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>