iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
IT 管理

葬送的軟體測試 - 不懂不想做是會出事系列 第 14

2024 Day14 測試管理是什麼

  • 分享至 

  • xImage
  •  

軟體專案可能會因產品品質不佳, 測試時間不足, 過早發布和資源不足等核心原因而失敗. 在美國低劣的軟體品質, 每年造成近2.41 兆美元的損失. 因此, 如何藉由測試, 來管控產品品質, 對產品開發來說是重要的工作.

那何謂軟體測試管理呢? 我們先來那他跟傳統管理做個比較:

何謂傳統的專案管理呢?

在 特定的 環境下
對組織所擁有的資源, 進行有效的歸劃, 組織, 領導和控制
以便達成既定的 組織目標 的過程

從這邊中可以了解, 你要知道在什麼環境下, 你有什麼資源, 所以你要做出一些規劃. 最重要的, 你是要達到組織的目標. 而不是只是做計畫, 一切都要依照目標不斷調整.

那何謂軟體測試管理呢?

在 軟體開發 過程
對專案所擁有的資源, 進行有效的歸劃, 組織, 領導和控制
以便 確保軟體品質 的過程

在這個定義中, 他是針對軟體開發這個環境, 來進行規劃. 目的是要確保軟體的品質.

看起來和傳統專案管理很像. 但事實上有個很大的差異

  1. 它是由開發驅動
    為什麼需要做測試, 就是要驗證開發出來的東西是否正確, 沒有開發就不需要做, 有改動的話就可能會出現問題. 測試是依附在開發活動後.

  2. 需依據開發狀況來調整
    如果這段程式品質, 錯誤百出, 你就需要多花時間測試, 還要看可能被他牽連的地方是否也出包. 所以測試能做多快, 不是測試人員決定的. 還是看原先開發人員在撰寫程式的品質如何, 如果他做得越差, 測試就需要越多時間. 所以測試會做不完, 都是開發人員害的.

另外, 測試的本質是在提供品質的服務. 前面一開始說過, 每個人對品質的要求不同, 因此對每個角色要提供的服務重點就不同. 開發團隊的客戶是使用系統的用戶. 而測試團隊的客戶則是以下兩類:

  1. 開發人員
    開發人員在意的是程式碼, 測試人員需要給他建議, 哪些地方可能遇到什麼類型的問題, 讓他在開發階段就考量進去, 把大部分的問題處理掉.
    此外, 當找到 bug 時, 開發人員要的不是通知他有 bug, 他當然知道他的程式有 bug, 他想要的資訊是如何解掉這個 bug, 哪些地方有解問題的線索.

  2. 管理人員
    管理人員在意的是專案要準時結案, 目前系統的品質是否可以有出貨水準. 因此, 測試人員要即時回報目前抓到哪些問題, 尤其是嚴重的問題, 讓管理人員可以及早思考接下來要如何調整.

在測試過程中, 我們需要考慮誰來進行測試的活動, 一般會有以下幾種做法

  1. 開發人員
    整個測試活動都是由開發人員自己來進行. 這算是常見的狀況, 有些公司或是專案資源不多, 所以就開發人員自己來. 或者是有些公司他沒有分開發和測試兩種角色, 它就是開發人員一起處理.

• 好處
因為程式就是自己寫的, 所以非常了解細節. 有問題發生時, 修復和驗證的時間也比較短.

• 壞處
通常自己都不忍心打自己的小孩, 所以開發人員自己進行測試時, 下手都不會很狠. 也會說我的小孩不會這樣, 我的程式沒問題都是你亂用, 環境不該這樣, 輸入的值不是這些東西. 在想法上面, 總之比較樂觀天真.

  1. 開發團隊
    跟前面狀況類似, 但是就不見得是自己測試自己寫的程式, 會相互幫忙測試.

• 好處
因為都是開發人員, 大家的技術程度比較接近. 彼此之間是同事, 問起問題來也比較容易. 但是不是測自己的程式, 所以會比較客觀公正.

• 壞處
雖然是其他開發人員測試, 但是一般開發人員還是比較缺乏測試技能, 測試起來還是比較樂觀, 比較是從技術角度出來, 而非客戶好不好用, 合不合適用的角度去思考. 更慘的還可能因為同事的壓力, 下手會留點情份.

https://ithelp.ithome.com.tw/upload/images/20240807/20161809KOJkJVHddR.png
圖 14-1 開發團隊自己負責測試

  1. 開發團隊中的測試人員
    有些團隊中, 會編製一些測試人員, 他們專職處理整個測試工作. 當開發人員寫完後, 他們就接手負責測試.

• 好處
因為都處在同一個團隊, 彼此是同事, 所以方便問問題, 回覆也比較快速. 這些測試人員會更中立, 因為他們本身不負責開發. 比較會從用戶角度來思考系統該有什麼行為.

• 壞處
雖然在同一個團隊, 但是一個開發, 一個測試, 還是容易會有對立的狀況發生. 也會因為抓太兇, 會感到有壓力, 不好意思直說.

https://ithelp.ithome.com.tw/upload/images/20240807/20161809wZhrSFJBB1.png
圖 14-2 開發團隊中的測試人員負責測試

  1. 組織內獨立測試團隊
    有些公司, 他沒有為每個開發團隊都分配專屬的測試人員, 但是他們的做法是成立一個獨立的測試團隊, 當作共用的資源, 幫助各個開發團隊去進行測試的工作.

• 好處
因為這個團隊是專門做測試, 所以專業性非常足夠.

• 壞處
因為他們沒有和開發團隊在同一個團隊, 對受測產品的功能和領域知識會比較差點, 比較不容易在短時間內就能掌握. 並且因為在不同團隊, 溝通會比較花時間, 一來一回可能就半天不見了.

https://ithelp.ithome.com.tw/upload/images/20240807/20161809tJZUDvjLBp.png
圖 14-3 組織內的獨立測試團隊負責測試

  1. 組織外測試團隊
    這個是公司沒有測試相關的人員, 直接請外面公司來幫忙測試.

• 好處
因為這個公司是專門做測試, 所以專業性非常足夠. 並且也絕對中立.

• 壞處
前面一個獨立測試團隊的缺點他都有, 此外, 還有一個蠻嚴重的問題, 就是可能價格會不便宜.

https://ithelp.ithome.com.tw/upload/images/20240807/20161809smnZZTLLFG.png
圖 14-4 組織外的測試團隊負責測試

基本上, 軟體測試管要處理的事情, 可以分成以下幾部分:

https://ithelp.ithome.com.tw/upload/images/20240807/20161809ld2cx0kHxH.png
圖 14-5 測試管理的重點

  1. 測試規劃
    定義測試的範圍和目標, 確定利害關係人是誰, 以及誰可以加入測試團隊, 並且制定測試計劃

• 需求與風險分析
首先評估與任何專案相關的潛在風險, 早期進行此操作, 將有助於減輕後續的影響.

• 測試估計
對專案的測試工作, 里程碑進行預測, 這會使後續的調度和計劃更加準確. 這裏不僅是預測所需的時間, 還需要包括有關必要的資源:從人員, 技能到設備等等.

• 測試計劃
掌握了以上資訊後, 就可以製定比較具體的計劃了. 包括專案範圍、測試目標、所採用的方法、必要的資源、時間表和具體測試可交付成果等資訊.

  1. 測試設計

• 建構測試個案
設計有效的測試個案, 是測試管理中很重要的事情. 測試人員需要有能力, 去創建較高覆蓋率的測試個案.

• 測試個案檢視
藉由檢視活動, 了解測試個案開立狀況, 並且提供機會幫助員工成長.

  1. 測試執行

• 測試監控
收集和記錄整個專案和測試活動的資訊, 將當前狀態與原先評估的計畫進行比較. 如果測試未按計劃進行, 需要馬上做出調整.

• Bug 管理
測試經理負責 Bug 追蹤和管理, 確保找到的 bug 有被記錄, 分類並確定解決的優先順序. 有效的 bug 管理, 可以促進開發和測試團隊之間的溝通, 以達到更快地解決問題.

• 測試報告及評估
測試完成後, 將製作一份報告, 對整個測試過程進行評估. 它不僅包括流程的結果, 還包括實現這些結果的方法, 從問題中學到的知識, 以及與利害關係人和開發人員相關的任何其他資訊.

所以在後面的章節, 將會圍繞在這些主題, 跟大家深入介紹測試管理的各種事情.


上一篇
2024 Day13 軟體測試現狀調查
下一篇
2024 Day15 軟體測試管理面臨的挑戰
系列文
葬送的軟體測試 - 不懂不想做是會出事18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言