• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件測試 QA 的角色和分工

    發表于:2012-11-05來源:博客園作者:SoftwareTeacher點擊數: 標簽:qa
    測試的角色 (Test) 要獨立出來么 ? 獨立出來的測試角色怎么才能發揮作用?

      測試的角色 (Test) 要獨立出來么 ?

      獨立出來的測試角色怎么才能發揮作用?

      有些成功人士和成功的公司號稱沒必要有獨立的測試角色 (Test), 你怎么看?

      最近又看到一些關于開發人員要不要負責測試的討論。 例如:

      http://www.aqee.net/on-testers-and-testing/

      大多數的開發團隊并不需要一個獨立的測試角色。即使有一個,他的所有的開發時間比上所有的測試時間應該 >20:1。

      [注: 這個翻譯就有錯誤, 原文指 開發: 測試 的比例應該 > 20:1 ]

      我正好在寫相關的教案, 也來湊個熱鬧。

      [這篇文章的一些事例來自于我曾經和現在的團隊。 希望這些例子不足以影響相關人物和團隊的偉大形象。 任何軟件團隊都會犯錯誤, 偉大的團隊有勇氣面對自己的錯誤并不斷改進。]

      首先, 明確兩個概念:

      軟件測試 (Test):運用定義好的流程,工具去驗證軟件能實現預先設計的功能和特性, 工作的流程和結果通常是可量化的, 例如, 測試用例, bugs, 代碼覆蓋率, MTTF, 軟件效能的參數。 [注: 正因為流程和結果是可明確定義的, 可量化的, 很多測試工作可以自動化]

      軟件質量保證工作 (Quality Assurance):軟件團隊的成員為了讓軟件達到事先定義的質量而進行的所有活動,包括測試工作。

      對于這兩個術語, 不同人有不同的定義, 有人認為它們是互通的, 在《現代軟件工程》的上下文中我盡量使用上述的定義.

      測試的角色 (Test) 要獨立出來么 ?

      回答: 首先, 我相信有分工是好事, 軟件團隊中應該有獨立的測試 (Testing) 角色。所有人都可以參與QA 的工作 (報告bug 什么的), 但是最后要有一個角色對QA 這件事負責。 不但角色要獨立,而且在最后軟件發布的時候, 必須得到此角色的簽字保證 (sign off)。我在微軟參與的項目都是這樣做的。

      在開始論證之前, 先引用斯密特 ·亞當斯的 《國富論》 來暖場 (我沒讀過這本書, 直接從網上抄的)。

      分工理論

      亞當斯認為,分工的起源是由人的才能具有自然差異。… 假定個人樂于專業化及提高生產力,經由剩余產品之交換行為,促使個人增加財富,此等過程將擴大社會生產,促進社會繁榮,并達私利與公益之調和。 他列舉制針業來說明。“如果他們各自獨立工作,不專習一種特殊業務,那么他們不論是誰,絕對不能一日制造二十枚針,說不定一天連一枚也制造不出來。他們不但不能制出今日由適當分工合作而制成的數量的二百四十分之一,就連這數量的四千八百分之一,恐怕也制造不出來。”

      分工促進勞動生產力的原因有三:第一,勞動者的技巧因專業而日進;第二,由一種工作轉到另一種工作,通常需損失不少時間,有了分工,就可以免除這種損失;第三,許多簡化勞動和縮減勞動的機械發明,只有在分工的基礎上方才可能。

      引用

      我們看團隊形式的職業體育比賽, 各個位置的分工都很明確, 拿足球來說, 有專注進攻的, 有專注防守的, 但是在我的印象中, 那些偉大的前鋒大多數只管一件事 - 進攻。 亨利 (Thierry Henry)參加防守么?

      當然一些球賽也有沒有分工的時候, 原因 有好幾個:

      事太小, 幾個小孩踢個半場。

      無知, 小孩們剛開始玩球。

      人手不夠, 一對一打籃球, 你要參與防守么? 沙灘排球,兩人都是全攻全守。

      如果你的軟件團隊做的事情和上面的情況類似, 那當然不必分工。你們做的很可能不是商用軟件, 你的軟件團隊大概也不用受什么軟件工程規律的束縛。 (參見: 軟件工程概論).

      任何產業產業成熟到一定階段的時候, 獨立的質量保證角色是不可避免的。團隊內部有QA 角色, 團隊外部也有獨立的QA 角色。

      拿藥品和食品來做例子, 除了生產廠家自己的檢測之外, 這些產品還要接受行業主管部門相關機構的檢測和認可 (藥品檢驗, 食品檢驗), 才能上市。 在出現爭議的情況下, 還要第三方機構來進行測試或認證。

      有人也許這樣建議:

      這些藥品都是藥廠同一批工人一邊制造一邊測試出來的, 特別有保證! 不用測了, 趕緊吃了吧!

      也許還有人這樣建議:

      這個十字坡夫妻店的農家飯都是他們自己親手做的, 很可信, 咱們今晚就去吃飯住一宿吧。

      我們每天經常使用的電子產品, 從大彩電到電影插座, 也經歷了很多團隊內部的和外部的測試, 請隨手拿過任何一個電器, 你會在背面看到密密麻麻的小字, 其中肯定有下列標記之一:

    clip_image002[4]
    clip_image004[4]
    clip_image006[4]

      沒有這些標記的產品電子產品, 市面上很少看到。

      在軟件和互聯網產業, 目前沒有這些認證, 相反的, 倒是有“人肉認證” :

      你想申請某個著名專業網站的賬戶或者郵箱, 但是又擔心這個網站對用戶信息的保護程度不夠。有人說, 沒關系的, 這個網站的創始人也用賬戶, CTO , 總監什么的還經常發軟件安全博客, 賬戶一定是非常安全的! 這里不存在獨立的質量認證, 只能通過人肉 (創始人/CTO/總監)來認證產品的質量。

      其實這種認證未必安全… (密碼門事件) (明文密碼事件)(郵箱密碼漏洞)

      如果有第三方的認證 “此網站對用戶信息的保護程度是X級, 我們認證它不會明文存儲用戶密碼… ” 我就放心了。 在第三方認證出現之前, 我希望團隊內部至少有獨立的QA 角色, 來確保軟件的質量。否則我是不樂意使用這些軟件/服務的。

      [補充一句, 互聯網服務的各種認證也在發展, 例如verisign 公司提供的各種認證。]

      獨立出來的質量保證角色怎么才能發揮作用?

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>