軟件質(zhì)量管理-第一章_第1頁
軟件質(zhì)量管理-第一章_第2頁
軟件質(zhì)量管理-第一章_第3頁
軟件質(zhì)量管理-第一章_第4頁
軟件質(zhì)量管理-第一章_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第一章軟件質(zhì)量管理問題概論

目錄1.引言2.軟件質(zhì)量屬性和質(zhì)量要素3.商業(yè)目標決定質(zhì)量目標4.質(zhì)量保證能夠保證質(zhì)量嗎5.質(zhì)量人員的狀況6.全面軟件質(zhì)量管理:模型7.全面軟件質(zhì)量管理:制定質(zhì)量計劃8.全面軟件質(zhì)量管理:技術評審9.全面軟件質(zhì)量管理:軟件測試10.全面軟件質(zhì)量管理:過程檢查11.全面軟件質(zhì)量管理:缺陷跟蹤工具參考書:《軟件工程與項目管理解析》,林銳著,電子工業(yè)出版社,20031.引言

軟件質(zhì)量管理是充滿爭論的話題。被人們奉為軟件質(zhì)量管理圣經(jīng)的CMM和ISO9001似乎并不奏效,現(xiàn)實和理想之間的差距太大。經(jīng)典軟件工程教科書以及CMM和ISO9001總是拋開商業(yè)目標談質(zhì)量管理,本末倒置,紙上談兵,誤導了大量讀者,所以質(zhì)量管理才變得那么艱辛。世界上還沒有萬能的軟件質(zhì)量管理圣經(jīng),我們不要迷信CMM和ISO9000。要多向有實戰(zhàn)經(jīng)驗的同行專家請教,但是不要輕信“紙上談兵”的專家。本文給出了一套實用主義的“全面軟件質(zhì)量管理”方法。重要的理念:商業(yè)目標決定質(zhì)量目標。提高軟件質(zhì)量的最終目的是為了贏利,而不是創(chuàng)造完美無缺的產(chǎn)品。因此對于普通商業(yè)軟件而言,并不是“質(zhì)量越高越好”,而是恰好讓廣大用戶滿意,并且將提高質(zhì)量所付出的代價控制在預算之內(nèi)。2.軟件質(zhì)量屬性和質(zhì)量要素

2.1如何描述質(zhì)量詞典對質(zhì)量的定義是:①典型的或本質(zhì)的特征;②事物固有的或區(qū)別于其他事物的特征或本質(zhì);③優(yōu)良或出色的程度。CMM對質(zhì)量的定義是:①一個系統(tǒng)、組件或過程符合特定需求的程度;②一個系統(tǒng)、組件或過程符合客戶或用戶的要求或期望的程度。上述定義很抽象,人們看了準會一臉迷惘。就讓我們用“人的健康”來類比解釋軟件質(zhì)量。古時候人們以為長得結實、飯量大就是健康,這顯然是不科學的。現(xiàn)代人總是通過考察多方面的生理因素來判斷是否健康,如測量身高、體重、心跳、血壓、血液、體溫等。如果上述因素都合格,那么表明這人是健康的。如果某個因素不合格,則表明此人在某個方面不健康,醫(yī)生會對癥下藥。通過類比,我們這樣理解軟件質(zhì)量:

軟件質(zhì)量是許多質(zhì)量屬性的綜合體現(xiàn),各種質(zhì)量屬性反映了軟件質(zhì)量的方方面面。人們通過改善軟件的各種質(zhì)量屬性,從而提高軟件的整體質(zhì)量(否則無從下手)。

2.軟件質(zhì)量屬性和質(zhì)量要素2.1如何描述質(zhì)量軟件的質(zhì)量屬性很多,如正確性、精確性,健壯性、可靠性、容錯性、性能、易用性、安全性、可擴展性、可復用性、兼容性、可移植性、可測試性、可維護性、靈活性等。上述這些質(zhì)量屬性之間“你中有我,我中有他”,非常纏綿。如果開發(fā)人員每天要面對那么多的質(zhì)量屬性咬文嚼字,不久就會迂腐得像孔乙己,因此我們有必要對質(zhì)量屬性做些分類和整合。質(zhì)量屬性可分為兩大類:“功能性”與“非功能性”,后者有時也稱為“能力”(Capability)。2.軟件質(zhì)量屬性和質(zhì)量要素

2.2十大軟件質(zhì)量因素功能性質(zhì)量因素:正確性,健壯性,可靠性非功能性質(zhì)量因素:性能,易用性,清晰性,安全性,可擴展性,兼容性,可移植性為什么是“十大”質(zhì)量因素逐一解釋“十大”質(zhì)量因素(參見《高質(zhì)量程序設計指南——C++/C語言》)2.軟件質(zhì)量屬性和質(zhì)量要素2.3軟件質(zhì)量要素什么是軟件質(zhì)量要素?(1)從技術角度講,對軟件整體質(zhì)量影響最大的那些質(zhì)量屬性才是質(zhì)量要素;(2)從商業(yè)角度講,客戶最關心的、能成為賣點的質(zhì)量屬性才是質(zhì)量要素。對于一個特定的軟件而言,我們首先判斷什么是質(zhì)量要素,才能給出提高質(zhì)量的具體措施,而不是一股腦地想把所有的質(zhì)量屬性都做好,否則不僅做不好,還可能得不償失。如果某些質(zhì)量屬性并不能產(chǎn)生顯著的經(jīng)濟效益,我們可以忽略它們,把精力用在對經(jīng)濟效益貢獻最大的質(zhì)量要素上。簡而言之,只有質(zhì)量要素才值得開發(fā)人員下功夫去改善。2.軟件質(zhì)量屬性和質(zhì)量要素

2.4正確性正確性是指軟件按照需求正確執(zhí)行任務的能力?!罢_性”的語義涵蓋了“精確性”。正確性無疑是第一重要的軟件質(zhì)量屬性。技術評審和測試的第一關都是檢查工作成果的正確性。機器不會主動欺騙人,軟件運行出錯通常都是人造成的,所以不要找借口埋怨機器有毛病。2.軟件質(zhì)量屬性和質(zhì)量要素2.5健壯性健壯性是指在異常情況下,軟件能夠正常運行的能力。正確性描述軟件在需求范圍之內(nèi)的行為,而健壯性描述軟件在需求范圍之外的行為。開發(fā)者往往把異常情況錯當成正常情況而不作處理,結果降低了健壯性。用戶才不管正確性與健壯性的區(qū)別,反正軟件出了差錯都是開發(fā)方的錯。所以提高軟件的健壯性也是開發(fā)者的義務。健壯性有兩層含義:一是容錯能力,二是恢復能力。從語義上理解,恢復不及容錯那么健壯。Unix容錯能力很強,可惜不好用。Windows容錯能力較差,但是恢復能力很好,而且很好用。占了90%的操作系統(tǒng)市場。2.軟件質(zhì)量屬性和質(zhì)量要素2.6可靠性可靠性是指在一定的環(huán)境下,在給定的時間內(nèi),系統(tǒng)不發(fā)生故障的概率??煽啃员緛硎怯布I域的術語。比如某個電子設備在剛開始工作時挺好的,但由于器件在工作中其物理性質(zhì)會發(fā)生變化(如發(fā)熱),慢慢地系統(tǒng)的功能或性能就會失常。所以一個從設計到生產(chǎn)完全正確的硬件系統(tǒng),在工作中未必就是可靠的。

軟件在運行時不會發(fā)生物理性質(zhì)的變化,人們常以為如果軟件的某個功能是正確的,那么它一輩子都是正確的??墒俏覀儫o法對軟件進行徹底地測試,無法根除軟件中潛在的錯誤。平時軟件運行得好好的,說不準哪一天就不正常了,如有千年等一回的“千年蟲”問題,司空見慣的“內(nèi)存泄露”、“誤差累積”問題等等。

2.軟件質(zhì)量屬性和質(zhì)量要素2.6可靠性軟件可靠性分析通常采用統(tǒng)計方法,遺憾的是目前可供第一線開發(fā)人員使用的成果很少見,大多數(shù)文章限于理論研究??谡Z中的可靠性含義寬泛,幾乎囊括了正確性、健壯性。只要人們發(fā)現(xiàn)系統(tǒng)有毛病,便歸結為可靠性差。從專業(yè)角度講,這種說法是確切的。時隱時現(xiàn)的錯誤一般都屬于可靠性問題,糾錯的代價很高。例如當維護人員十萬火急地趕到現(xiàn)場時,錯誤消失了;等維護人員回家后,錯誤又出現(xiàn)了。…軟件可靠性問題主要是在編程時候埋下的禍害(很難測試出來),應當提倡規(guī)范化程序設計,預防可靠性禍害。2.軟件質(zhì)量屬性和質(zhì)量要素2.7性能性能通常是指軟件的“時間-空間”效率,而不僅是指軟件的運行速度。人們總希望軟件的運行速度高些,并且占用資源少些。既要馬兒跑得快,又要馬兒吃的少。性能優(yōu)化的關鍵工作是找出限制性能的“瓶頸”,不要在無關痛癢的地方瞎忙乎。例如在大學里當教師,光靠使勁講課或者埋頭做實驗,職稱是升不快的。有些人找到了突破口,一年之內(nèi)“造”它幾十篇文章,爭取破格升副教授、教授。程序員可以通過優(yōu)化數(shù)據(jù)結構、算法和代碼來提高軟件的性能。例如數(shù)據(jù)庫程序的優(yōu)化。算法復雜度分析是很好的方法,可以達到“未卜先知”的功效。2.軟件質(zhì)量屬性和質(zhì)量要素2.7性能性能優(yōu)化就好像從海綿里擠水一樣,你不擠,水就不出來,你越擠海綿越干。有些程序員認為現(xiàn)在的計算機不僅速度越來越高,而且內(nèi)存越來越大,因此軟件性能優(yōu)化的必要性下降了。這種看法是不對的,殊不知隨著機器的升級,軟件系統(tǒng)也越來越龐大了和復雜了,性能優(yōu)化仍然大有必要。最具有代表性的是三維游戲軟件,例如《DeltaForce》、《古墓麗影》、《反恐精英》等,如果不對軟件(關鍵是游戲引擎)做精益求精的優(yōu)化,要想在一臺普通的PC上順暢地玩游戲是不太可能的。2.軟件質(zhì)量屬性和質(zhì)量要素2.8易用性易用性是指用戶使用軟件的容易程度。現(xiàn)代人的生活節(jié)奏快,干啥事都想圖個方便。所以把易用性作為重要的質(zhì)量屬性對待無可非議。

導致軟件易用性差的根本原因:理工科大學教育存在缺陷:沒有開設人機工程學、美學、心理學這些必修課,大部分開發(fā)人員不知道如何設計易用的軟件產(chǎn)品。開發(fā)人員犯了“錯位”的毛?。核詾橹灰约河闷饋矸奖悖脩粢簿蜁M意。

軟件的易用性要讓用戶來評價。當用戶真的感到軟件很好用時,一股溫暖的感覺油然而生,于是就用“界面友好”、“方便易用”等詞來評價軟件產(chǎn)品。

2.軟件質(zhì)量屬性和質(zhì)量要素2.9清晰性清晰意味者所有的工作成果易讀、易理解,可以提高團隊開發(fā)效率,降低維護代價。開發(fā)人員只有在自己思路清晰的時候才可能寫出讓別人易讀、易理解的程序和文檔??衫斫獾臇|西通常是簡潔的。一個原始問題可能很復雜,但高水平的人就能夠把軟件系統(tǒng)設計得很簡潔。如果軟件系統(tǒng)臃腫不堪,它遲早會出問題。所以簡潔是人們對工作“精益求精”的結果,而不是潦草應付的結果。與簡潔對立的是“羅里羅嗦”。千萬不要把在學校里“造文章”的手法用于開發(fā)產(chǎn)品!如果把文章寫得很簡潔,讓人很容易理解,投稿往往中不了;只有加上一些玄乎的東西,把本來簡單的弄成復雜的,才會增加投稿的命中率。2.軟件質(zhì)量屬性和質(zhì)量要素2.10安全性

這里安全性是指信息安全,英文是Security而不是Safety。安全性是指防止系統(tǒng)被非法入侵的能力,既屬于技術問題又屬于管理問題。信息安全是一門比較深奧的學問,其發(fā)展是建立在正義與邪惡的斗爭之上。這世界似乎不存在絕對安全的系統(tǒng),連美國軍方的系統(tǒng)都頻頻遭黑客入侵。如今全球黑客泛濫,真是“道高一尺,魔高一丈”啊!開發(fā)商和客戶愿意為提高安全性而投入的資金是有限的,他們要考慮值不值得。

究竟什么樣的安全性是令人滿意的呢?

一般地,如果黑客為非法入侵花費的代價(考慮時間、費用、風險等因素)高于得到的好處,那么這樣的系統(tǒng)可以認為是安全的。對于普通軟件,并不一點要追求很高的安全性,也不能完全忽視安全性,要先分析黑客行為。

2.軟件質(zhì)量屬性和質(zhì)量要素2.11可擴展性

可擴展性反映軟件適應“變化”的能力。在軟件開發(fā)過程中,“變化”是司空見慣的事情,如需求、設計的變化,算法的改進,程序的變化等等。由于軟件是“軟”的,是否它天生就容易修改以適應“變化”?關鍵要看軟件的規(guī)模和復雜性如果軟件規(guī)模很小,問題很簡單,那么修改起來的確比較容易,這時就無所謂“可擴展性”了。要是軟件的代碼只有100行,那么“軟件工程”也就用不著了。如果軟件規(guī)模很大,問題很復雜,倘若軟件的可擴展性不好,那么該軟件就像用卡片造成的房子,抽出或者塞進去一張卡片都有可能使房子倒塌。2.軟件質(zhì)量屬性和質(zhì)量要素2.11可擴展性

現(xiàn)代軟件產(chǎn)品通常采用“增量開發(fā)模式”,不斷推出新版本,獲取增值利潤??蓴U展性越來越重要??蓴U展性是系統(tǒng)設計階段重點考慮的質(zhì)量屬性。談到軟件的可擴展性,開發(fā)人員首先想到的是怎樣提高可擴展性,于是努力去設計很好的體系結構來提高可擴展性,卻不考慮該不該做這件事。從商業(yè)角度考慮,如果某個軟件將不斷地推出新版本,那么可擴展性很重要。但是如果軟件永遠都不會有下個版本(一次性買賣),那么根本無需提高可擴展性,何必自找苦吃呢!2.軟件質(zhì)量屬性和質(zhì)量要素2.12兼容性兼容性是指不同產(chǎn)品(或者新老產(chǎn)品)相互交換信息的能力。例如兩個字處理軟件的文件格式兼容,那么它們都可以操作對方的文件,這種能力對用戶很有好處。兼容性的商業(yè)規(guī)則:弱者設法與強者兼容,否則無容身之地;強者應當避免被兼容,否則市場將被瓜分。如果你經(jīng)常看香港拍的“黑幫”影片,你就很容易明白這個道理。金山軟件公司的WPS與微軟的Word之爭。WPS一定要與Word兼容,否則活不下去。但是Word絕對不會與WPS兼容,除非WPS又在中國稱老大。中國聯(lián)通和中國移動的手機互聯(lián)互通問題。(互聯(lián)網(wǎng)的價值與用戶數(shù)量的平方成正比)2.軟件質(zhì)量屬性和質(zhì)量要素2.13可移植性軟件的可移植性指的是軟件不經(jīng)修改或稍加修改就可以運行于不同軟硬件環(huán)境(CPU、OS和編譯器)的能力,主要體現(xiàn)為代碼的可移植性。編程語言越低級,用它編寫的程序越難移植,反之則越容易。這是因為,不同的硬件體系結構(例如IntelCPU和SPARCCPU)使用不同的指令集和字長,而OS和編譯器可以屏蔽這種差異,所以高級語言的可移植性更好。Java程序號稱“一次編譯,到處運行”,具有100%的可移植性。為了提高Java程序的性能,最新的Java標準允許人們使用一些與平臺相關的優(yōu)化技術,這樣優(yōu)化后的Java程序雖然不能“一次編譯,到處運行”,仍然能夠“一次編程,到處編譯”。軟件設計時應該將“設備相關程序”與“設備無關程序”分開,將“功能模塊”與“用戶界面”分開。3.商業(yè)目標決定質(zhì)量目標3.1教科書的片面觀點大凡軟件工程教科書為了強調(diào)質(zhì)量的重要性,總是要舉一些歷史上發(fā)生過的重大軟件質(zhì)量事故,例如航天飛機爆炸、核電站失事、愛國者導彈發(fā)生故障等等。這些事故的確不是危言聳聽,給人們敲響了質(zhì)量的警鐘。

學術界總是喜歡宣揚質(zhì)量至上的理念,而忽視企業(yè)的商業(yè)利益,將質(zhì)量目標凌駕于商業(yè)目標之上。我不能評判這種現(xiàn)象是好還是壞,但是的確誤導了大量讀者。許多軟件人員都有“質(zhì)量越高越好”的觀念,這是被教科書灌輸?shù)?,而不是他自己領悟出來的。

我曾在著作《高質(zhì)量程序設計指南——C++/C語言》中大肆宣揚了高質(zhì)量程序設計的理念,力求使C++程序達到“零缺陷”的質(zhì)量目標。盡管此書得到了許多程序員的贊同,但是我經(jīng)過反思之后改變了質(zhì)量觀念,我要著重指出的是:重視軟件質(zhì)量是應該的,但是“質(zhì)量越高越好”并不是普適的真理。只有極少數(shù)軟件應該追求“零缺陷”,對絕大多數(shù)軟件而言,商業(yè)目標決定了質(zhì)量目標,而不該把質(zhì)量目標凌駕于商業(yè)目標之上。3.商業(yè)目標決定質(zhì)量目標3.2嚴格系統(tǒng)對質(zhì)量的要求航空航天等系統(tǒng)對質(zhì)量要求極高,任何缺陷都有可能導致機毀人亡,所以人們不惜一切代價去消除缺陷。在發(fā)射航天器之前,只要發(fā)現(xiàn)任何異常,就會立即取消發(fā)射指令,直到異常被消除為止。前蘇聯(lián)做得最過分,許多重大武器系統(tǒng)的負責人都簽了生死狀,系統(tǒng)研制成功則獲得英雄勛章,失敗則被槍斃。在這種壓力下沒有人敢對質(zhì)量有一絲松懈。3.商業(yè)目標決定質(zhì)量目標3.3普通商業(yè)軟件:商業(yè)目標決定質(zhì)量目標上述嚴格系統(tǒng)畢竟是少數(shù),絕大多數(shù)普通軟件的缺陷并不會造成機毀人亡這樣的重大損失,否則沒有人敢從事軟件開發(fā)了。在日常工作中,我們接觸過的軟件幾乎都是有缺陷的,即便是軟件業(yè)老大Microsoft,它的軟件產(chǎn)品也經(jīng)常出錯甚至導致死機,人們罵幾句后還會照樣使用有缺陷的軟件。企業(yè)的根本目標是為了獲取盡可能多的利潤,而不是生產(chǎn)完美無缺的產(chǎn)品。如果企業(yè)銷售出去的軟件的質(zhì)量比較差,輕則挨罵,重則被退貨甚至被索賠,因此為了提高用戶對產(chǎn)品的滿意度,企業(yè)必須提高產(chǎn)品的質(zhì)量。但是企業(yè)不可能為了追求完美的質(zhì)量而不惜一切代價,當企業(yè)為提高質(zhì)量所付出的代價超過銷售收益時,這個產(chǎn)品已經(jīng)沒有商業(yè)價值了,還不如不開發(fā)。企業(yè)必須權衡質(zhì)量、效率和成本,產(chǎn)品質(zhì)量太低了或者太高了,都不利于企業(yè)獲取利潤。企業(yè)理想的質(zhì)量目標不是“零缺陷”,而是恰好讓廣大用戶滿意,并且將提高質(zhì)量所付出的代價控制在預算之內(nèi)。

4.質(zhì)量保證能夠保證質(zhì)量嗎4.1美麗的謊言CMM對軟件質(zhì)量保證是這樣描述的:軟件質(zhì)量保證(QualityAssurance)的目的是為管理者提供有關軟件過程和產(chǎn)品的適當?shù)目梢曅浴Kㄔu審和審核軟件產(chǎn)品及其活動,以驗證其是否遵守既定的規(guī)程和標準,并向有關負責人匯報評審和審核的結果。

質(zhì)量保證(QualityAssurance,QA)是CMM和ISO9001最為推崇的改善軟件質(zhì)量的方法?;谖矣H身實踐和調(diào)查研究,我敢冒天下之大不諱說一句:質(zhì)量保證并不能保證質(zhì)量,它是個美麗的謊言。4.質(zhì)量保證能夠保證質(zhì)量嗎4.1美麗的謊言簡而言之,質(zhì)量保證活動就是檢查軟件項目的“工作過程和工作成果”是否符合既定的規(guī)范。如此簡單的活動為什么被冠以“質(zhì)量保證”這等份量的術語呢?沒有歷史典故,經(jīng)我考究,猜想是源于一個天真的假設:

過程質(zhì)量與產(chǎn)品質(zhì)量存在某種程度的因果關系,通?!昂玫倪^程”產(chǎn)生“好的產(chǎn)品”,而“差的過程”將產(chǎn)生“差的產(chǎn)品”。假設企業(yè)已經(jīng)制定了軟件過程規(guī)范,如果質(zhì)量保證人員發(fā)現(xiàn)某些項目的“工作過程以及工作成果”不符合既定的規(guī)范,那么馬上可以斷定產(chǎn)品存在缺陷。反之,如果質(zhì)量保證人員沒有發(fā)現(xiàn)不符合既定規(guī)范的東西,那么也可以斷定產(chǎn)品是合格的。符合既定規(guī)范的東西并不意味著質(zhì)量一定合格,僅靠規(guī)范無法識別出產(chǎn)品中可能存在的大量缺陷(以高手與新手的設計、編程為例)。質(zhì)量保證的技術含量太低了,只能檢查出膚淺的缺陷,不能對付有技術難度的缺陷。所以單獨的“質(zhì)量保證”其實并不能“保證質(zhì)量”。4.質(zhì)量保證能夠保證質(zhì)量嗎4.2CMM3級企業(yè)QA人員的迷惘(email摘錄) 我很迷茫,很想找一個人聊聊,希望你能給我點主意,化解我心中的謎團。 昨天我們公司拿到了CMM3的證書,但是我一點都高興不起來。公司宣稱,我們的軟件質(zhì)量大大提高了,但是我卻沒有信心。我們的過程執(zhí)行得很好,但是我覺得并沒有在很大程度上改善產(chǎn)品的質(zhì)量。今天還有一個項目經(jīng)理跟我訴苦:前一階段大家都忙于執(zhí)行過程,但是他的產(chǎn)品質(zhì)量令人很不滿意,尤其是測試做的很不到位。我是這個項目的SQA,所以我很理解他,但是我?guī)筒簧纤拿?。因為他們的過程執(zhí)行得很好,這個項目可是通過CMM3級正式評估了的。當然,執(zhí)行CMM有不少好處,比如文檔全面完整了,項目管理的可視性提高了。但是對于我們公司而言,它并沒有在根本上提高我們公司的軟件能力。比如概要設計,開發(fā)人員根本就不知道用來干嗎的,怎么能指望他們寫出高質(zhì)量的概要設計說明書出來。而在做技術評審的時候,他們很少能找出邏輯性的錯誤,只能發(fā)現(xiàn)一些諸如錯別字之類的小錯誤。我們幾乎每一個配置項都要經(jīng)過評審,但是大部分評審都只能發(fā)現(xiàn)一些無關痛癢的問題。公司已經(jīng)通過CMM3級了,我認為過程執(zhí)行得很好了,可是軟件質(zhì)量仍然比較差。這是怎么回事啊,你覺得原因在哪里?結論:公司按照CMM3級的要求執(zhí)行,而且質(zhì)量人員也認為執(zhí)行過程符合既定的規(guī)范,但是軟件產(chǎn)品的質(zhì)量仍然低下。所以說“質(zhì)量保證并不能保證質(zhì)量”,這句話一點都不過分。質(zhì)量保證對于保證質(zhì)量而言只是必要的手段,而不是充分的手段。5.質(zhì)量人員的狀況5.1郁悶QA人員訴苦:我現(xiàn)在覺得很郁悶,CMM評估前還有目標,評估完了冷靜下來卻覺得效果很差,很沒勁。項目經(jīng)理向我訴苦,他們過程執(zhí)行的很好,但是對產(chǎn)品質(zhì)量很不滿意,我卻無能為力,我這個QA還有什么用處??!所以我現(xiàn)在干活沒有動力,因為不能產(chǎn)生效益,做再多的工作也覺得是白干。而且我現(xiàn)在手頭有5個項目要跟蹤,還不包括一些整理培訓記錄的雜活,我覺得自己連工人也不如。我有一些很好的想法卻無處發(fā)揮,所以我很迷茫,很矛盾地考慮去留問題。

郁悶的滋味各色各樣,只有正在郁悶的人感受最真切。我發(fā)現(xiàn)在軟件職業(yè)里,質(zhì)量人員是最郁悶的一族。郁悶的共同特征有:(1)在執(zhí)行質(zhì)量保證活動時,經(jīng)常受別人的氣,真是吃力不討好。(2)如果項目取得成功,主要功勞都被項目主管霸占了,領導們至多會給質(zhì)量人員一些口頭上的感謝。領導們嘴上重視產(chǎn)品的質(zhì)量,但是內(nèi)心并不重視質(zhì)量人員。(3)質(zhì)量人員沒有實質(zhì)性的權力,沒有成就感,但是卻對質(zhì)量負有最多的責任。(4)待遇一般,看不到升遷的機會,沒有盼頭,要么成為打雜的,要么另尋出路。

5.質(zhì)量人員的狀況5.1郁悶聲援:我也做過傷害質(zhì)量人員的事情,非常后悔。我所認識的公司內(nèi)外的質(zhì)量人員都是性格溫和、細致耐心的人,他們的優(yōu)點在于人格而不是技術。平心而論,他們比某些技術出色但是情商不高的技術人員更值得交朋友。質(zhì)量檢查是他們的工作職責,誰也不會有意干擾項目,所以任何人都不應該向他們發(fā)火。

5.質(zhì)量人員的狀況5.2路在何方軟件行業(yè)里的人嘴上都說質(zhì)量很重要,可是大多數(shù)企業(yè)并沒有給質(zhì)量人員提供良好的職業(yè)發(fā)展空間。質(zhì)量人員通常僅給企業(yè)起到心里安慰的作用。這樣下去,有能耐的質(zhì)量人員會跑光的。我所認識的多數(shù)質(zhì)量人員要么改行了(如當老師),要么讀工程碩士,MBA等,以圖將來發(fā)展事業(yè)。在大多數(shù)的軟件企業(yè)里,男性處于支配地位,女性職位相對比較低。而質(zhì)量人員通常是女性,很多男性主管從未真正地把質(zhì)量人員當成企業(yè)的寶貴人才看待,這種偏見是非常有害的。任何素質(zhì)合格的員工都是寶貴的人才,很多默默無聞的人才其實是被不懂得質(zhì)量管理的領導給荒廢了。質(zhì)量人員之所以沒有發(fā)揮預期的效果,不是性別緣故,主要過失在于領導者。5.質(zhì)量人員的狀況5.2路在何方建議:(1)無論是企業(yè)領導還是質(zhì)量人員,都要好好學習全面軟件質(zhì)量管理方法,結合企業(yè)的特點給出真正有效的質(zhì)量管理方案。(2)只有當企業(yè)領導采用了正確的質(zhì)量管理方案,用了合格的質(zhì)量人員,才可能看得到比較明顯的質(zhì)量改善,才能形成良性循環(huán)。(3)如果想讓質(zhì)量人員負起比較重的責任,那么就要給她相應的權力。在企業(yè)中,責任和權利是成正比的。如果質(zhì)量人員的地位無足輕重,那么必然導致質(zhì)量管理無足輕重。(4)給質(zhì)量人員一個適宜的升遷機會和薪資待遇,讓她能夠快樂地工作,而不是成天無奈地檢查質(zhì)量。5.質(zhì)量人員的狀況5.3贊美詩中國遭受了非典型肺炎(SARS)的肆虐,人們在危難之際想起了醫(yī)護人員的好處,因此涌現(xiàn)了許多對醫(yī)護人員的贊美詩。我碰巧在網(wǎng)上搜索到一位軟件詩人獻給質(zhì)量人員的贊美詩“晚上八九點鐘的太陽”,我認為沒有必要等到軟件質(zhì)量災難降臨的時候才想起質(zhì)量人員,于是摘錄這首詩公布于此。詩中的“狼人”和“銀彈”是軟件工程的典故,寓意深刻。衷心感謝這位不知姓名的浪漫軟件詩人。晚上八九點鐘的太陽

—獻給軟件測試和質(zhì)保人員

我更喜愛晚上八九點鐘的太陽,雖然人們都已把他遺忘,但他還是艱難地懸掛在天上。

我更喜愛晚上八九點鐘的太陽,因為他將奏出黎明的交響。沒有他又怎會呼喚出一片明亮?我更喜愛晚上八九點鐘的太陽,因為他會化成早上的朝陽。沒有他又怎會有什么希望?

我更喜愛晚上八九點鐘的太陽,因為他是上帝的臂膀。沒有他,又怎會創(chuàng)造萬物的光芒。

狼人望月嚎叫,它知道月亮映出的太陽之光,終將化為銀彈,射入它的胸膛。

我更喜愛晚上八九點種的太陽。

6.全面軟件質(zhì)量管理:模型6.1郎中治病的故事質(zhì)量的死對頭是缺陷(defect,bug…),缺陷是混在產(chǎn)品中的人們不喜歡、不想要的東西,它對產(chǎn)品沒有好處只有壞處。缺陷越多質(zhì)量越低,缺陷越少質(zhì)量越高,提高軟件質(zhì)量的基本手段是消除軟件缺陷。中國郎中看病的故事在中國古代,有一家三兄弟全是郎中。其中老三是名醫(yī),人們問他:“你們兄弟三人誰的醫(yī)術最高?”他回答說:“我常用猛藥給病危者醫(yī)治,偶爾有些病危者被我救活,于是我的醫(yī)術遠近聞名并成了名醫(yī)。我二哥通常在人們剛剛生病的時候馬上就治愈他們,臨近村莊的人說他是好郎中。我大哥不外出治病,他深知人們生病的原因,所以能夠預防家里人生病,他的醫(yī)術只有我們家里才知道?!崩芍腥值苁侨N治病方式的代言人。6.全面軟件質(zhì)量管理:模型6.2消除軟件缺陷的三種方式老大治病的方式最高明,如果人們能夠預防生病的話,那么沒病就用不著看醫(yī)生了。提高軟件質(zhì)量最好的辦法是:在開發(fā)過程中有效地防止工作成果產(chǎn)生缺陷,將高質(zhì)量內(nèi)建于開發(fā)過程之中。主要措施是“不斷地提高技術水平,不斷地提高規(guī)范化水平”,其實就是練內(nèi)功,通稱為“軟件過程改進”。

即使一個人嚴守養(yǎng)生之道,身體狀況良好,但總是會意外地得病的,得了病就要去看醫(yī)生。老二治病的方式就是醫(yī)院的模式,病人越早看病,就越早治好,治病的代價就越低。同理,在開發(fā)軟件的時候,即使人們的技術水平很高,并且嚴格遵守規(guī)范,但是人非機器,總是會犯錯誤的,因此無法完全避免軟件中的缺陷。當工作成果剛剛產(chǎn)生時馬上進行質(zhì)量檢查,及時找出并消除工作成果中的缺陷。這種方式效果比較好,人們一般都能學會。最常用的方法是技術評審、軟件測試和過程檢查,已經(jīng)被企業(yè)廣泛采用并取得了成效。

6.全面軟件質(zhì)量管理:模型6.2消除軟件缺陷的三種方式老三治病的方式代價最高,只能是不得已而為之??稍诂F(xiàn)實之中,大多數(shù)軟件企業(yè)采用老三的方式來對付質(zhì)量問題。典型現(xiàn)象是:在軟件交付之前,沒有及時消除缺陷。當軟件交付給用戶后,用著用著就出錯了,趕緊請開發(fā)者來補救??尚Φ氖?,當軟件系統(tǒng)在用戶那里出故障了,那些現(xiàn)場補救成功的人倒成了英雄,好心用戶甚至還寄來感謝信。6.全面軟件質(zhì)量管理:模型6.3模型借鑒老大、老二治病的方法,我們提煉出全面軟件質(zhì)量管理的模型,如下圖所示。項目中的所有人員幾乎都參與了質(zhì)量活動,只是介入的程度不同而已,后面幾節(jié)將逐一介紹這些質(zhì)量活動。

6.全面軟件質(zhì)量管理:模型6.4角色職責誰對軟件質(zhì)量負責?是全員負責。任何與軟件開發(fā)、管理工作相關的人員都對質(zhì)量產(chǎn)生影響,都要對質(zhì)量負責。所以人們不要把質(zhì)量問題全部推出質(zhì)量人員或測試人員。誰對軟件質(zhì)量負最大的責任?誰的權利越大,他所負的質(zhì)量責任就越大。質(zhì)量人員是成天與質(zhì)量打交道的人,但他個人并不對產(chǎn)品質(zhì)量產(chǎn)生最大的影響,所以也不負最大的責任。質(zhì)量人員的主要職責:(1)負責制定質(zhì)量計劃(很重要但是工作量比較少);(2)負責過程檢查(類似于CMM中的質(zhì)量保證),約占個人工作量的20%;(3)參與技術評審,約占個人工作量的30%;(4)參與軟件測試,約占個人工作量的30%;(5)參與軟件過程改進(面向整個機構),約占個人工作量的20%;*上述工作量的比例僅供參考,在實際應用時必須根據(jù)項目的特征而定。

7.全面軟件質(zhì)量管理:制定質(zhì)量管理計劃質(zhì)量管理計劃就是為了實現(xiàn)質(zhì)量目標的計劃。而質(zhì)量目標則是由商業(yè)目標決定的。開發(fā)軟件產(chǎn)品的最終目的是為了賺錢,所以人們?yōu)樘岣哕浖|(zhì)量所付出的代價是有上限的,項目負責人當然希望代價越低越好。質(zhì)量管理計劃是全面質(zhì)量管理的行動綱領。

誰制定質(zhì)量管理計劃?由項目核心成員和質(zhì)量人員共同協(xié)商制定,主要由質(zhì)量人員起草,由項目經(jīng)理審批即可。

質(zhì)量管理計劃的主要內(nèi)容(模板見word文件):1.質(zhì)量要素分析

2.質(zhì)量目標

3.人員與職責

4.過程檢查計劃

5.技術評審計劃

6.軟件測試計劃

7.缺陷跟蹤工具

8.審批意見

8.全面軟件質(zhì)量管理:技術評審8.1概念技術評審(TechnicalReview,TR)的目的是盡早地發(fā)現(xiàn)工作成果中的缺陷,并幫助開發(fā)人員及時消除缺陷,從而有效地提高產(chǎn)品的質(zhì)量。技術評審最初是由IBM公司為了提高軟件質(zhì)量和提高程序員生產(chǎn)率而倡導的。技術評審方法已經(jīng)被業(yè)界廣泛采用并收到了很好的效果,它被普遍認為是軟件開發(fā)的最佳實踐之一。

技術評審的主要好處有:通過消除工作成果的缺陷而提高產(chǎn)品的質(zhì)量;技術評審可以在任何開發(fā)階段執(zhí)行,不必等到軟件可以運行之際,越早消除缺陷就越能降低開發(fā)成本;開發(fā)人員能夠及時地得到同行專家的幫助和指導,無疑會加深對工作成果的理解,更好地預防缺陷,一定程度上提高了開發(fā)生產(chǎn)率。8.全面軟件質(zhì)量管理:技術評審8.1概念技術評審有兩種基本類型:正式技術評審(FTR)。FTR比較嚴格,需要舉行評審會議,參加評審會議的人員比較多。非正式技術評審(ITR)。ITR的形式比較靈活,通常在同伴之間開展,不必舉行評審會議,評審人員比較少。

8.全面軟件質(zhì)量管理:技術評審8.2正式技術評審的流程技術評審報告的模板見word文檔9.全面軟件質(zhì)量管理:軟件測試9.1觀點技術評審和軟件測試的目的都是為了消除軟件的缺陷,兩者的主要區(qū)別是:前者無需運行軟件,評審人員和作者把工作成果擺放在桌面上討論;而后者一定要運行軟件來查找缺陷。技術評審在軟件測試之前執(zhí)行,尤其是在需求開發(fā)和系統(tǒng)設計階段。相比而言,軟件測試的工作量通常比技術評審的大,發(fā)現(xiàn)的缺陷也更多。在制定質(zhì)量計劃的時候,已經(jīng)確定了本項目的主要測試活動、時間和負責人,之后再考慮軟件測試的詳細計劃和測試用例。9.全面軟件質(zhì)量管理:軟件測試9.1觀點如果機構沒有專職的軟件測試人員的話,那么開發(fā)人員可以兼職做測試工作。當項目開發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論