當前位置:編程學習大全網 - 編程語言 - sqa(軟件測試)的五條規則

sqa(軟件測試)的五條規則

軟件質量保證(SQA)是建立壹套有計劃的、系統的方法,以確保擬定的標準、程序、慣例和方法能被所有項目正確采用。

軟件質量保證的目的是使軟件過程對管理者可見。它通過審查和審計軟件產品和活動來驗證軟件是否符合標準。軟件質量保證團隊在項目開始時參與計劃、標準和過程的建立。這些將使軟件項目滿足機構政策的要求。

壹.基本目標

目標1:計劃軟件質量保證。

目標2:客觀地驗證軟件項目的產品和工作是否遵循適當的標準、過程和需求。

目標3:向相關團體和個人通報軟件質量保證工作和結果。

目標4:高級管理層暴露於項目中無法解決的不符合問題。

二、QA的起源

我們知道很多國外大公司都是QA負責測試(主要是系統測試),比如IBM,CA,PeopleSoft。其實剛開始的時候,幾乎所有的公司都是這樣。後來由於缺乏有效的項目規劃和項目管理,留給系統測試的時間不多了(註:我之前做的壹個項目,項目經理明確告訴我系統測試是1天,沒得商量)。另外,需求變化太快,沒有完整的需求文檔,測試人員只能根據自己的想象進行測試。這樣測試就很難保證產品的質量,預防的QA功能就應運而生了。

其實提前預防是基於TQM的,也符合軟件工程中“缺陷發現得越早,修改得越早,越經濟”的原則。這些思想的源頭可以追溯到中國古代的典故,如屈突西的俸祿、扁鵲的醫術論等。尤其是扁鵲醫術理論這個典故,我是偶然在國外的壹篇文章裏看到的(後來在芮林的壹篇文章裏也看到了),經常感嘆我們的人民幾乎失去了祖先的思想文化遺產。

第三,質量保證的現狀

目前,越來越多的企業正在實施CMM。CMM模型要求建立QA角色。這裏的QA類似於過程警察,主要職責是檢查開發和管理活動是否與既定的過程策略、標準和過程壹致,工作產品是否遵循模板中指定的內容和格式。在這些企業中,壹般要求QA獨立於項目組,以保證評價的客觀性。從國內來看,大部分QA都沒有技術背景,檢測出來的偏差大多微不足道。另外,他們沒有令人信服的背景,領導也不支持他們。當然,這是很難做到的。

缺乏信任和支持只是壹方面,QA本身就很有挑戰性。它要求QA具備軟件工程、軟件開發、行業背景、數理統計、項目管理、質量管理等知識。

我們經常會遇到這樣的問題,改善到壹定程度就很難突破了。當我們覺得自己願意做的事情超出了自己的能力範圍時,我們就開始感到沮喪。後來通過學習,訓練,交流,思想和技能得到了升華,找到了木桶裏最短的那壹塊,然後就開始改進,然後就遇到了玻璃天花板,然後就陷入了抑郁的循環。

如果我們掌握了所有的知識,能夠突破所有的玻璃天花板,QA會壹帆風順嗎?答案是否定的,QA角色定義本身就有很大的局限性。QA就像壹個流程警察,不管流程有無意義都武斷地強制執行,容易導致項目團隊中的敵對關系和排斥,而這個警察的態度也破壞了團隊精神。這樣QA也需要人際交往能力,比如質量平衡,QA是否應該獨立於項目組?“,藝術地處理好這段關系。

第四,QA的未來

從某種程度上說,獨立的QA審查機制是瀑布模型的產物。隨著現代軟件開發技術的演進和螺旋模型、叠代模型的興起,QA機制正在悄然發生變化。這個變化是從獨立的全職QA到全程的兼職QA。在CMMI模式中,這種兼職QA也是允許的。為什麽會發生這種變化?無論是XP、RUP還是其他先進的方法論,都是先生成架構,然後增量開發,直到完成。在這種模型中,需求和設計缺陷在每個叠代周期中盡可能早地被發現和修復,質量也被構建到架構和過程中,項目的成本和進度也得到了保證。

那時候,獨立的QA會不會不復存在?壹些成熟度不高的企業還是需要的,主要是保證流程執行的有效性和評價的客觀性。

動詞 (verb的縮寫)SQA的理論探索

1,對流程的理解

我們都知道壹個項目的主要內容是:成本、進度、質量;好的項目管理就是整合三個因素,平衡三個目標,最終按照目標完成任務。項目的這三個方面相互制約、相互影響,有時這三個方面的平衡策略甚至成為企業層面的需求,決定了企業的行為。我們知道IBM的軟件是最重要的目標,微軟的“足夠好的軟件”策略更是耳熟能詳。這些質量目標實際上是基於企業的戰略目標。因此,SQA的質量保證工作也應該立足於企業的戰略目標,從這個角度思考SQA,並形成對SQA的理論認識。

軟件行業已經達成共識,影響軟件項目進度、成本和質量的主要因素是“人、過程和技術”。首先要明確,這三個因素中,人是第壹位的。

目前很多實施CMM的人沈迷於CMM理論,過於強調“過程”,這是壹種非常危險的傾向。這種思想傾向在國外受到了嚴厲的批判,從某種意義上說,各種敏捷過程方法的提出是對強調過程的壹種反思。《XP》中的壹個觀點“人比過程更重要”值得思考。個人意見堅持“以人為本”,在過程改進中強調過程與人的和諧。

根據對現代軟件工程中許多失敗項目的調查,發現管理是項目失敗的主要原因。這個事實的重要性在於“要保證項目不失敗,就要更加重視管理”。註意,這個事實並不能說明另壹個問題:“好的管理才能保證項目的成功”。目前,許多人基於壹種粗糙的邏輯從壹個事實中推斷出這個結論,這在邏輯上是錯誤的,這種錯誤形成了壹種更錯誤的做法,這在SQA的認識中得到了深刻的反映。

如果我們考證歷史沿革,應該更容易理解CMM的本質。CMM最早是作為“評估標準”出現的,主要評估美國國防部供應商的質量保證能力。CMM關註的軟件生產具有以下特征:

(1)質量問題。

(2)規模大

這就是CMM的起因。介紹了全面質量管理的思想,特別是全面質量管理中的過程方法,並介紹了統計過程控制的方法。可以說,這兩種思想是CMM背後的基礎。

這些內容形成了我對軟件過程的地位和價值的基本認識;在此基礎上,我們可以討論SQA。

2.生產線的隱喻

如果將壹個軟件產品與壹個工廠的產品相比較。然後生產線就是流程,按照生產線的指定流程生產產品。SQA的職責是保證流程的執行,也就是保證生產線的正常執行。

管理系統模型抽象如下。該模型表明,壹個過程系統至少應該包括“決策、執行和反饋”三個重要方面。

QA的職責是確保過程的有效實施,並根據過程監督項目活動;它不負責監督產品質量,向管理層提供項目信息,代表管理層進行管理,而是代表管理層保證流程的實施。

3.SQA和其他作品的結合

在很多企業中,SQA的工作與QC、SEPG和組織級項目經理的工作混在壹起,有時甚至比SQA本人的工作更關註其他方面。

根據hjhza的觀點,“中國的QA基本上有三種類型(根據優先級不同):壹種是過程改進,壹種是配置管理,壹種是測試”。我個人認為這是因為SQA的工作是與其他不同的工作結合在壹起的。

以下是根據我的經驗對兩者關系的解釋。

4.質量保證和質量控制

兩者的基本職責

QC:檢查產品質量,確保產品滿足客戶需求;是產品質量檢驗員;

QA:審核流程質量,確保流程正確執行;成為過程質量審核員;

註意檢查和審計的區別。

檢查:就是我們常說的找茬,就是找茬;

審核:確認項目按要求進行的證據;仔細看看CMM中各個KPA對SQA的檢查所用的術語,審核的內容主要是過程;看看項目經理和高級經理對照CMM的評審內容。他們更關註具體的內容。

根據上述管理體系模型,QC進行質量控制,並向管理層反饋質量信息;QA確保QC按照流程進行質量控制活動,並按照流程向管理層報告檢驗結果。這就是QA和QC的關系。

在這個分工原則下,QA只需要檢查項目是否按照流程進行了壹項活動,生產出了壹個產品;QC將檢查產品是否符合質量要求。

如果企業原來有QC人員,QA人員配備不夠,可以確定QC也要做QA。但也只能是暫時的,獨立的QA人員應該有,因為QC工作也要遵循流程要求,接受審核。這種良莠不齊的局面很難保證QC工作的過程質量。

5.質量保證和SEPG

兩者的基本職責

SEPG:建立流程,實施流程改進;

QA:確保流程正確執行。

SEPG要提供過程指導,幫助項目組制定項目過程,幫助項目組做計劃;從而幫助項目團隊有效地工作和執行過程。如果項目和質量保證之間對過程的理解有爭議,SEPG將作為最終仲裁者。為了進行有效的過程改進,SEPG必須分析項目數據。

QA也要進行流程規範,所以最有經驗最有能力的QA可以參加SEPG,但是要註意兩者的區別。

如果企業的SEPG員工有很深的開發背景,可以做SQA,有利於流程的持續改進;但由於立法和執法壹體化,容易造成SQA過於強勢,影響項目的獨立性。

管理流程成熟的企業,由於企業的文化和管理機制得到了改善,SQA職責範圍內的工作較少,往往只針對具體項目制定有明確優先級的SQA計劃,這樣SQA的審計工作就會大大減少,從而可以同時審計更多的項目。

另壹方面,由於細致的分工和管理系統的復雜性,經常需要專職的SEPG人員。這些人員要求了解企業的所有管理流程和操作,並在此基礎上制定流程改進的總體計劃。此時,了解全局的SQA人員是專職SEPG的主要人選;這些SQA人員將逐漸成為SEPG人員,並更好地了解管理知識,SQA工作將逐漸成為他們的兼職。

這種情況在很多CMM5企業中比較常見,有時在項目組中看不到或很少看到SQA人員。SEPG和SQA的這種整合特別有利於組織的過程改進。SEPG確定過程改進的內容,SQA計劃側重於這些改進,特別有利於滿足CMM5的要求,以確保有效的改進。從這個角度來看,就不難理解為什麽國外的SQA人員工資高,也決定了目前國內的SQA人員相對被鄙視的原因;因為管理流程不完善,我們的SQA人員沒有產生如此大的價值!

6.質量保證和組織層面的監督和管理

為了更好的監督管理項目,壹些企業設立了壹個角色,我稱之為“組織級監督經理”。他們的職責是以統壹的方式跟蹤、監督和管理所有項目,以確保管理層對所有項目的可見性和可管理性。

為了有效地管理項目,“組織級主管”必須分析項目數據。

他們的職責是執行與上述模型相比的“反饋”功能。

QA本身並不反饋,最多是對流程執行的信息進行反饋。

最好不要把SQA的職責和“組織級項目經理”的職責混在壹起,否則很容易出現SAQ困境:壹方面,SQA無法準確定位自己的工作,另壹方面,流程執行者對SQA人員有戒心。

如果建立了良好的管理流程,項目的可見度將會提高,從而確保企業更好地管理所有項目;和質量保證,以確保這壹管理過程的運作。

動詞 (verb的縮寫)SQA的工作內容和方法

1,計劃

為特定項目制定SQA計劃,以確保項目團隊正確執行流程。制定SQA計劃時應註意以下幾點:

重點:根據企業目標和項目情況確定審計的重點。

明確審計內容:明確審計活動和產品。

明確審核方法:確定如何進行審核。

明確報告審計結果的規則:向誰報告審計結果?

2.審計/確認

根據SQA計劃進行SQA審計,並按規定出具審計結果報告。

註意,審核必須有項目組成員陪同,不允許突擊。雙方都應該開誠布公。

審核內容:相應的活動是否按工藝要求進行,相應的產品是否按工藝要求生產。

3.問題跟蹤

要求項目組對審計中發現的問題進行改進,並進行跟蹤,直到問題得到解決。

第六,SQA的素質

以過程為中心:要從過程的角度考慮問題。只要流程有保障,QA就盡職盡責。

服務精神:為項目組服務,幫助項目組保證流程的正確執行。

了解流程:對企業的工程有深入的了解,有壹定的流程管理理論知識。

了解開發:了解開發工作的基本情況,能夠了解項目的活動。

溝通能力:善於溝通,能營造良好的氛圍,避免審計活動成為壹種找茬活動。

七。SQA活動

軟件質量保證(SQA)是應用於整個軟件過程的活動,包括:

1,壹種質量管理方法

2、有效的軟件工程技術(方法和工具)

3.在整個軟件過程中采用正式的技術評審。

4.多層次測試策略

5.軟件文件及其修改的控制

6.確保軟件符合軟件開發標準。

7.衡量和報告機制

SQA與兩個不同的參與者有關——做技術工作的軟件工程師和負責質量保證的計劃、監督、記錄、分析和報告的SQA團隊。

軟件工程師通過采用可靠的技術方法和措施,進行正式的技術評審和進行周密計劃的軟件測試,完成軟件質量保證和質量控制活動,來考慮質量問題。

SQA團隊的職責是協助軟件工程團隊獲得高質量的最終產品。SQA團隊完成了:

(1)為項目準備SQA計劃。當項目計劃由所有感興趣的相關部門制定和評審時,計劃就確定了。

需要審計和審查;

項目可以采用的標準;

錯誤報告和跟蹤程序;

SQA小組制作的文件;

提供給軟件項目團隊的反饋數量。

(2)參與開發項目的軟件過程描述。審查過程描述,以確保過程與組織策略、內部軟件標準、外部標準和項目計劃的其他部分壹致。

(3)評審各種軟件工程活動,驗證它們是否符合定義的軟件過程。記錄並跟蹤與流程的偏差。

(4)審核指定的軟件工作產品,以驗證它們是否滿足預定義的要求。審查產品,識別、記錄和跟蹤偏差;驗證是否已被糾正;定期向項目經理匯報工作結果。

(5)確保軟件工作和產品中的偏差已被記錄並按照預定的程序進行處理。

(6)記錄所有不符合項,並向高層領導報告。

八。正式技術審查(FTR)

正式的技術評審是由軟件工程師和其他人進行的軟件質量保證活動。

1.目標:

(1)發現功能、邏輯或實現錯誤。

(2)驗證被評審的軟件確實滿足需求。

(3)確保軟件的表示符合預定義的標準。

(4)以壹致的方式開發軟件。

(5)使項目更易管理。

2.評審會

3-5名參加者,不超過2小時,由評審主席、評審員和制片人參加,必須作出下列決定之壹:

(1)工作產品是否可以不加修改的接受;

(二)因嚴重錯誤而拒絕工作成果的;

(3)工作產品的臨時驗收。

3、審查總結報告,回答

判斷什麽?誰來評判?結論是什麽?

審查總結報告是項目歷史記錄的壹部分,它確定產品中存在問題的領域,並作為管理項目的清單,指導生產者進行糾正。

4、審查指南

(1)審查產品,不審查生產者。註意禮貌地指出錯誤,讓氣氛輕松起來。

(2)不要跑題,限制論點。不要爭論意見不壹致的問題,而要記錄在案。

(3)對所有問題發表意見。問題解決應該在評審會議之後進行。

(4)為每個要評審的工作產品建立壹個清單。應該為分析、設計、編碼和測試文檔建立檢查表。

(5)分配資源和時間。評審應該作為軟件工程任務來安排。

(6)復習之前的復習。

九、統計軟件質量保證

1,分類統計所有錯誤。

IES協議不完整或規格錯誤。

MCC不理解用戶的意圖。

IDS故意偏離規範

VPS違反了編程標準。

EDR數據表示中的錯誤。

ICI組件接口不壹致。

EDL的設計邏輯有問題

IET測試不完整或錯誤。

IID不準確或不完整的文件

PLT設計中編程語言的翻譯錯誤

人機界面不清晰或不壹致

MIS雜項錯誤

根據嚴重性、平均和次要級別,以及所有錯誤的數量和百分比,統計各種錯誤的百分比。例如,創建壹個類似於下面的表。

然後考慮“重要少數”的錯誤指標,提出改進建議。

2.根據軟件過程中的每壹步計算錯誤指數。

Ei =第I次發現的錯誤總數。

Si =嚴重錯誤的數量

Mi =壹般錯誤的數量

Ti =小錯誤的數量

PS =第壹步的產品規模(LOC、設計聲明、文件頁數)

Ws、Wm、Wt分別為嚴重、壹般、輕微誤差的加權因子,推薦值為Ws=10、Wm=3、Wt=1。

在過程的每壹步中,軟件工程計算每個階段的階段指數。

PIi = Ws(Si/Ei)+Wm(Mi/Ei)+Wt(Ti/Ei)

誤差指數

Ei= ∑(i×PIi)/ PS

=(pi 1+2pi 2+3pi 3+…+I * PIi)/PS

結合上表收集的信息,可以利用錯誤指數得出軟件質量的整體改進指數。七。質量保證和檢查

為了保證每個開發過程的質量,防止軟件錯誤擴散到下壹個過程,因此,檢查的目的是雙重的:

1.有效管理開發階段,檢查每個開發階段的質量保證。

2.提前防止軟件錯誤給用戶造成損失。

檢驗的類型有:

1.供貨檢驗:對委托其他單位承擔開發作業後購買或轉讓的構成軟件產品的組件、規格、半成品或產品的檢驗。

2.中間檢查/階段審查

目的是判斷是否可以進入下壹階段進行後續開發,避免將錯誤擴散到後續工作中。

3.驗收檢查:

確認產品是否達到產品檢驗的質量要求。

4.產品檢測:

確定提供給用戶的軟件產品是否達到滿意的水平。

妳可以看看這些。...

  • 上一篇:如何用java啟動windows命令行程序
  • 下一篇:從事遊戲開發,需要什麽技能?
  • copyright 2024編程學習大全網