QA是什麼?
Quality Assurance ,即質量保證,我們的QA更確切的將應該是SQA,在CMMI裏QA的全稱是PPQA(Process and Product Quality Assurance)。顧名思義,就是過程和質量保證。很多人將QA、QC、測試混爲一談,這裏簡單做一下解釋。
QA和QC
QC:檢驗產品的質量,保證產品符合客戶的需求;是產品質量檢查者;QC進行質量控制,向管理層反饋質量信息,簡言之就是檢查產品是否符合質量要求,關注的是最終產品。
QA:評審過程和產品的質量,特別要保證過程被正確執行,通過保證過程質量來保證產品質量 。 QA確保QC和過程實施者按照過程進行質量控制活動,按照過程將檢查結果向管理層彙報。簡言之是檢查項目按照過程進行了某項活動沒有,產出了某個產品沒有。更多關注的是過程。
QA和測試
首先來看一個企業的開發過程、支持過程的關係:
從圖中我們也可以看出來,測試是軟件生命週期中下游的活動,而質量保證活動貫穿於整個軟件生命週期過程及其支持過程,包括測試過程。QA活動和測試過程可能同時關注同一個產品,但是關注的角度不同。
QA職責
概括的講QA的職責包括過程指導、過程評審、產品審計、過程改進、過程度量。當然QA活動貫穿整個軟件生命週期,在特定的階段有特定的職責。
一般一個合格的QA應該充當三種角色:
老師:具備學習和培訓的能力。此角色在項目前期輔助項目經理制定項目計劃包括根據質量體系中的標準過程裁剪得到項目定義的過程,幫助項目進行估算,設定質量目標等;對項目成員進行過程和規範的培訓以及在過程中進行指導等。
醫生:通過度量數據對項目過程進行診斷,幫助分析原因,開處方。此角色在項目過程中也可以承擔收集、統計、分析度量數據的工作,用於支持管理決策。
警察:以企業流程爲依據,但要告訴大家流程背後的原因;如果和項目組針對某些問題意見相左,可以直接彙報高層。此角色在項目過程中有選擇性地參加項目的評審,定期對項目的工作產品和過程進行審計和評審。
QA應該具備的知識
首先我們先來看某組織對QA的要求:
1)項目管理實踐經驗(要求比項目經理更懂項目管理),至少2年以上;
2)質量管理理論和實踐經驗(要求比項目控制人員更懂質量),至少2年以上;
3)質量或研發管理經驗(要求從事過質量或研發管理崗位,否則怎麼能站在管理者視角看問題,首先必須做過管理者),至少1年以上;
4)行業知識背景(否則如何和客戶打交道);
5)技術知識背景(否則怎麼和項目組進行技術層面的基礎對話);
6)良好的培訓技能和溝通能力(否則怎麼和各層面的人員打交道);
7)問題的推動解決能力。
要求好高啊!是不是覺得這麼厲害的人讓其做QA覺得可惜?但該組織說:
1)一個管理者的智囊團,就應該具備這些技能。若人全部陷於到實務,何來企業級的思考。
2)一個組織的管理者的思維高度決定了企業的長遠發展之路。
當然這裏並不是說我現在有這麼厲害,只是說明要成爲一個優秀的QA應該努力的方向。普遍認爲QA應該具備如下特質:
軟性特質:
1、先知先覺的思想,真正吃透過程改進思想,抓住CMMI的脈絡。
2、謙虛的服務意識
3、良好的人際溝通技巧
4、良好的文采及演講才能
5、嚴謹的邏輯思維能力
6、持續的自我反省
7、堅韌的毅力與決心
硬性特質:
1、軟件工程體系
2、質量體系
3、部分項目管理與開發經驗
4、配置管理知識
5、測試知識
6、統計分析知識
如此看來要學習的還是挺多的,看來不努力是沒有理由的啊。
QA工作實踐預先讀
網上看到一些有關QA工作實踐的內容,其中有些還是挺有用的。
QA的工作思路有兩種:
第一:以過程爲導向,通過改進過程,逐步完善度量體系,最終達到組織級的能力的提升。
第二:以度量爲導向,建立度量體系,以度量數據推動過程改進,最後達到組織級的能力的提升。
當公司還沒有建立起比較完善的軟件開發整個週期的體系的時候,我們需要以過程爲導向,首先建立過程體系。這樣可以理順項目開發的流程,階段標準等,但是,當這個過程體系建立起來後,我們再單純的強調過程而不做過程改進的分析就很難推動過程改進,也就很難使組織級的能力有一個質的提升。因此,當過程體系建立起來之後,我們需要強化度量體系,從過程中提煉數據,找出過程瓶頸,這樣才能做到持續改進的目的。不管採用哪種思路,執行力是關鍵。執行力不夠。任何好的流程如果不能有效的執行,最後也只能是束之高閣的條文,相反,即使不全面的流程,如果能很好的執行,也會彌補流程不足。
目前我們公司還沒有建立起比較完善的軟件開發整個週期的體系,因此我暫時應該以過程爲導向,過程體系建立起來了纔可以開展後續的工作。
以下還有幾點對QA的建議,我覺得也挺有用的:
1.QA進入項目組要根據項目的實際情況爲自己確定度量指標;
2.對改進計劃和度量至少每雙週Review一次,保持每雙週和項目組溝通(這條可以借鑑)
3.QA保持一顆平常心要以服務者的身份存在,QA要學會當醫生,幫助項目組針對問題,識別風險(服務者身份,這點很重要)
4.QA要學會沉默,也就是說我們的QA要學會如何聽,從別人的交流中識別改進點(這點也很重要)
5.以項目經理的身份進入項目計劃,和項目經理一樣關注任務的SIPOC
6.QA要知道如何根據項目特點選擇進入項目的時機,可以選擇你觀察/評價/跟蹤過程的顆粒度
其他幾點暫時沒有體會到或領悟到,應該也可以借鑑。
到此,對QA的介紹告一段落了,如果你堅持從頭讀到此的化,是不是看完覺得對QA有了新的認識了呢?
最後還有一點非常重要:
軟件質量的提升是團隊全體成員共同努力的結果,不是某一個人或者某一個部門就能保證的。