關鍵字:質量保證(SQA)何去何從
QA的由來
我們知道,國外很多的大公司,QA的職責就是測試(主要是系統測試),比如IBM、CA、PeopleSoft等。其實在最初,幾乎所有的公司都是這樣的。后來,由于缺乏有效的項目計劃和項目管理,留給系統測試的時間很少(注:我以前做的一個項目,項目經理就明確告訴我系統測試就1天,沒得商量)。另外,需求變化太快,沒有完整的需求文檔,測試人員就只能根據自己的想象來測試。這樣一來,測試就很難保障產品的質量,事先預防的QA職能就應運而生。
事先預防其實是借鑒了TQM的思想,而且也符合軟件工程“缺陷越早發現越早修改越經濟”的原則。這些思想的淵源還可以追溯到中國古代的典故中,比如曲突徙薪、扁鵲論醫術等。特別是扁鵲論醫術這個典故,我偶然在國外的一篇文章中看到了(后來在林銳的文章中也看到了),常感嘆我們國人連祖先的思想文化遺產都丟的差不多了。
QA的現在
目前,實施CMM的企業越來越多了。CMM模型就要求建立QA角色。這里的QA類似于過程警察,主要職責是,檢查開發和管理活動是否與已定的過程策略、標準和流程一致,檢查工作產品是否遵循模板規定的內容和格式。在這些企業中,一般還要求QA獨立于項目組,以保障評價的客觀性。從國內來看,多數的QA沒有技術背景,檢查出的偏差多為雞毛蒜皮,再加上自己沒有令人信服的背景,領導也不支持,當然做起來就很困難了。
缺乏信任和支持只是一個方面,QA工作本身就很具挑戰性。它要求QA具有軟件工程的知識、軟件開發的知識、行業背景的知識、數理統計的知識、項目管理的知識、質量管理的知識等等。
我們常常遇到這樣的問題,改進到一定程度就很難突破,感覺心有余而力不足了,就開始郁悶了。后來通過學習、培訓、交流,思想和技能得到升華,又發現了木桶中最短的那塊,然后又開始改進,然后又遇到了玻璃天花板,然后……就這樣處于郁悶的循環中。
假使我們掌握了所有的知識,能突破所有的玻璃天花板,那是不是QA就可以一帆風順了。答案是否定的。QA角色定義本身就有很大的局限性。QA充當的是過程警察的角色,無論是否有意義,都專橫地強制過程的執行,容易在項目組中造成敵對的關系,受到排擠,而且這種警察的姿態也破壞了團隊精神。如此一來,QA工作還需要的是人際關系技能,就如我以前寫的《質量平衡》和《QA應該獨立于項目組嗎?》一樣,藝術化地處理這種關系。
QA的未來
從某種程度上說,獨立的QA審查機制是瀑布模型的產物。隨著現代軟件開發技術的演變,螺旋模型和迭代模型的興起,QA機制正在悄然發生變化。這種變化就是從獨立專職的QA向貫穿過程的兼職QA演變。在CMMI模型中,這種兼職的QA也是被允許的。為什么會發生這種改變呢?無論是XP、RUP還是其它先進的方法論,都是先產生架構,然后再增量開發,直到完成。這種模式中,需求和設計缺陷在各個迭代周期被所盡早發現和修復,質量也內建于架構和過程中,項目的成本和進度也得到保障。
到那時,是不是獨立的QA就不復存在了呢?有些成熟度較低的企業還是需要的,主要是保證過程執行的有效性和評價的客觀性。
文章來源于領測軟件測試網 http://www.k11sc111.com/