2009/07/21

Tester vs. SQA - 3/5 SQA

前一篇文章,我們透過以下這張「品質的發展與演進趨勢」來介紹QI和QC。


在這一篇文章中,我們繼續使用這一張圖將進一步介紹QA,以及在軟體業內對於QA的期望。

QA


一開始的品質保証(QA)是建立在「品質是設計出來的」的精神上。

這個要從二次大戰時美國的飛機故障無法執行任務說起,根據事後的檢討發現原因出在真空管失效。但是研究人員同時也發現,飛機上的真空管,都是在出廠時即已檢定合格的產品,裝在飛機後卻無法發揮功能,頗令人費解。

經過研究人員鍥而不捨的找問題,終於發現真空管失去功能的原因,是以往廠商都只注意到生產階段的「廠內品管」,卻忽略了非生產階段的「廠外品管」--「產品運輸」和「使用階段」。這個問題牽涉到兩點:第一、產品設計能否提昇產品之使用年限。第二、產品在正常使用狀況下,如何減低故障率,延長產品保証不會損壞之年限。

於是發展出可靠度(如壽命運輸,環境等試驗)的理論與做法。同時,為了保證這兩個階段的產品可靠度,所以須在產品的企劃與設計階段就先行管制好,以確保在設計時就考慮了客戶需求。此外,也加入了設計審查,以確保產品設計時所考量的客戶需求,未改變或短少。

所以,由「產品是設計出來的」品質觀念所衍生出的品質制度,是一個在產品設甫開發過程即已考慮顧客需求的品質保証(QA)制度。

TQC


「全面品管」(TotalQuality Control,簡稱TQC)是建立在「品質是管理出來的」的觀念上。

提出該觀念的費根堡認為,品管觀念與作法不應侷限於與生產有關之部門而已,企業內任何部門(包括高級主管在內),都應有其份內與產品品質有關之品質作為。例如:管理者應建立品質政策及激勵措施,以促使員工重視品質;人事部門應負責依照工作需要甄選合格之員工、並安排適當教育訓練,以提昇員工之工作品質。

就在費根堡提出TQC觀念後,日本品管專家石川馨則進一步提出全企業品管或全員品管(Company-wide quality control,簡稱CWQC)觀念,較費根堡原先提出之TQC,在影響層面和作法上更加深入。

石川馨認為,產品品質不只是品管單位的責任,而是企業全體員工的工作。上自董事長,下至最基礎的每一個員工,不但需要俱備品質意識,還需要瞭解品管技巧使之活用於本身之工作。。故其品管觀念是屬於全員式之品管。後來費根堡也贊同石川馨之觀念,因此目前此二者已不分軒輊。

採用TQC觀念的企業,內部各單位開始組成品質改善小組(Quality Improve Team, QIT), 運用品質手法來解決自己週遭的品質問題,而品質管理委員會(或類似之組織)亦成為企業最高的品質指導單位。

最後,由「產品是管理出來的」品質觀念所衍生出的品質制度,從僅考慮顧客需求的產品設計(產品面),又融入了全員參與、全過程、全方位控制品質,向後延伸到含括售後服務(抱怨處理)。

軟體業的QA (SQA)


在軟體業中也有QA,被稱為SQA,不過在台灣的軟體業中的某些人、甚至是一些非常資深、高階的從業人員,常搞不清楚SQA和Tester的分別。如果你不相信,你可以直接在104內用「SQA」找應徵的工作、並看「工作內容」,就可以知道我所言不虛。以下就是我找到其中兩間企業對SQA工作內容的「看法」。

第一間


是某間很知名的企業,在台灣、大陸都有設廠,他要找的SQA的工作內容(和我的翻譯)如下:
  1. Hands-on experience in Linux system or Android platform handheld device testing,
    有測試在Linux系統或Android平台手持設備的實務經驗
  2. Familiar GSM/GPRS/EDGE/WCDMA wireless communication or TCP/IP protocol
    熟悉GSM / GPRS /的EDGE / WCDMA無線通信或TCP / IP協定
  3. Having related experiences with protable device and embedded system testing program development
    有可攜式設備和嵌入式系統的測試程序開發相關經驗
  4. Good teamwork and communication.
    良好的合作與溝通
  5. Good at problem shooting and creative problem solving skills
    擅長解決問題和建立解決問題的技巧
從上面的要求來看,第1~4項根本就是對Tester的要求,第5項不論是誰都需要,只有第6項比較接近我認為的SQA的工作技能,差別只在於解決的是root cause還是表面的問題。

所以,從這間企業的人力需求部門所提供對SQA「工作內容」的要求可以知道,他們並不十分清楚地知道SQA在作什麼!我們繼續看下一間:

第二間


是某間知名生產手機的企業,他要找的SQA的工作內容如下:
  1. 撰寫自動化測試scripts
  2. 手機軟體測試
  3. 手機相關工具(Production tool, download tool...etc)測試
  4. 測項建立與維護
  5. Bug 分析與追蹤
從上面的要求來看,第1~4項還是對Tester的要求,只有第5項比較「接近」我認為的SQA的工作內容,但也不完全是。因為二者的目的和方法仍然有所不同:Tester是為了知道要測試那些項目才需要知道Bug status;而SQA則是要用特定的方式(如:CAR、8D Report)追蹤這些bug的root cause是否真的被解決了!

所以,從這間企業的人力需求部門所提供對SQA「工作內容」的要求,我們還是知道他們仍然不清楚SQA在作什麼!

SQA的工作內容


以下的列表,是我好久以前在應徵工作時就蒐集到的SQA工作內容(因為這篇文章我很久之前就想寫了),也是我個人認為SQA真正應該作的工作:
  1. Define SW Process
    定義軟體(開發)流程
  2. Establish Software Quality Assurance Plan (SQAP)
    建立軟體品質保證計畫
  3. Process Training to Project Stakeholder
    對專案關係人實施流程訓練
  4. Attend Work Product Inspection Meeting, Project review Meeting
    出席工作/產品 Inspection會議、專案Review會議
  5. Perform Process/Product auditing
    稽核流程/產品
  6. Support Customer SQA Activity
    支援顧客SQA活動
  7. Define Process Improvement Plan
    定義流程改善計畫
第一項工作,SQA必須確認軟體的開發流程,不論你要用瀑布式的、是Agile Process (敏捷的)、是螺旋式、是極限式(XP),只要適合開發團隊的成熟度、也適合專案的性質都可以,此外,在流程內的每個不同的階段,都必須要有V&V的Process,以確保專案需求沒有偏移、短少、錯誤。

第二項工作,SQA必須制定出對應這個發開流程的品質保證計畫,包括最基本的:需求(變更)管理方式、組態(變更)管理方式、Issues管理方式。

第三項工作,SQA必須對和專案有關的人員提出教育與訓練,讓他們了解前面兩項要求並使之有能力操作,同時在實施的過程V&V此二者,以確保它們不但可以執行而且有效。

第四項工作,SQA必須對出席專案執行過程中所需的 Inspection、Review會議,除了能確保這些會議已被確實執行,也能藉由這些會議觀察開發成員的成熟度。

第五項工作,SQA在專案執行中、結束時,都可以對專案的過程文件、產品本身進行稽核以確保這些流程的有效性、符合性、落實性。

第六項工作,SQA能對(廣義的)顧客(如:外包商、客戶)提出支援,項目包括前述這五項。

第七項工作,SQA必須有能力對流程和品質保計畫,針對不足的部份進行改善。

小結


從第一、二段介紹的QA、TQC來看我提出的SQA 的「工作內容」,你會發現,SQA所需要作的工作絕不只上述的項目,但能作到以上的工作項目,SQA才算是完成「最基本」的QA要求。

至於Tester和SQA的關係和比較,下一篇文章我將繼續說明。

  1. 晨晰統計部落格(問卷與統計的討論園地) - 《品質階段-品保(QA)
  2. - 中国汽车技术论坛 -《13.品質觀念的演進2 - 『品质管理』
  3. MBA智库百科-《全面质量控制

2 則留言:

  1. Frankly, it seems to me that "Define SW Process" is SEPG's job function, rather than SQA. Of course, I agree that in a smaller company, SQA and SEPG are interchangable.

    回覆刪除
  2. Hi 喲哪桑:
    我同意你說的「"Define SW Process" is SEPG's job function」,但現實情況中,知道SEPG的公司都不多了,更何況是成立的?

    在現實情況(和我的經驗)中,大多是由SQA主導,經過與Leader溝通、討論後,就開始施行。

    這個過程其實很接近SEPG,只是沒有一個正式的組織。

    回覆刪除