​測試執行流程避免回應開發

綜覽

​隨著裝置日趨複雜,測試團隊在產品上市的時間壓力也與日俱增,因此能制定最佳化的測試策略就更加重要。測試工程師要不僅要為後續產品開發新的測試機,還要同時維護之前的測試機,工作可謂困難重重。本文章探討測試工程師所面臨的主要挑戰,並說明測試架構如何藉由提升生產力、減少重複作業與維護作業,協助您解決這些難題。文章最後還會提到 NI TestStand,這個現成可用的解決方案能夠建立與維護測試架構,同時著重說明如降低風險、靈活部署與功能實作等方面的附加優點。

內容

困在測試設計惡性循環中

測試工程師需要優先處理的工作,就是確保交付給終端客戶的產品能正常運作。但隨著產品日益複雜,相關的測試也變得更加複雜。舉燈泡為例,智慧型燈泡內建 Wi-Fi 和藍芽連線功能,有些產品甚至還具有喇叭功能。這表示過去幾年來,燈泡測試團隊除了電力電子之外,還要再測試無線連線功能與聲音功能。

延長產品開發時間圖

圖 1:先進的產品功能使得開發時間延長,因而導致可供測試開發的時間縮短。

圖 1 顯示出每個階段預計花費時間與實際花費時間的差距。由於最終期限不變,前期每一個階段的時間延長,就會壓縮到測試開發的時間,最後測試工程師就必須在更短時間內測試更多功能。一旦我們占用到測試開發階段的時間,測試工程師就只能處於被動,無法主動進行測試,因為他們根本沒時間思考如何有效解決這個問題。

回應測試開發成本

這種短時間進行更多測試的風氣在業界行之有年,但由於這類回應式開發所耗的成本並非立即可見,所以普遍不會有人注意。回應式開發最明顯的一個缺點就是缺乏靈活性,這可能會使得測試工程師必須耗費時間,設法為複雜又死板的測試機新增功能,導致生產力降低。到了一定程度,持續在同一台測試機上新增功能只會變得效率不彰,工程師也不得不一再重頭開始,浪費時間重新建立相同的功能。 

這不僅會造成大量的重複作業,還會導致需要維護的測試機數量增加。維護階段本身也有其挑戰,如果建造測試機的工程師未留下充足的說明文件就離職,情況就會更加嚴重;更甚者,公司還可能因此必須重建整個系統。

使用擴充架構進行測試

要脫離這種回應式作業的惡性循環,一個方法就是建立測試架構。測試架構是一種高階軟體應用程式,可用於開發、執行、部署自動化測試序列並製作相關報告。

使用 TestStand 所省下的時間百分比

圖 2:NI 客戶將 TestStand 整合到公司後所省下的時間百分比。

如欲取得更多相關資訊,請查看建置或購買指南

公司在使用這種架構後,便可省下最多 75% 的開發時間,同時減少花在維護作業的時間達 67%。

良好測試架構包含哪些條件?

如果對一組測試機進行比較,您會發現到當中既有共同點,也有獨特點。確認這些共同點之後,您就可以據此為測試部門打造出重複使用的模型。舉例來說,大部分測試機都需要使用者介面;然而,介面的各方面設計都必須符合使用者的喜好與能力。

共同點:

測試管理軟體

  • 操作介面
  • 使用者管理
  • 測試流量控制
  • 限制檢查
  • 平行執行緒管理
  • 測試結果處理

獨特點:

測試開發軟體

  • 儀器控制
  • 激發
  • 量測作業
  • DUT 控制
  • 數位訊號處理器 (DSP)

清單 1:測試機共同點與獨特點分析範例

為了避免一再建立測試系統,您必須找出當中所有的共同點並整合到一個架構,讓所有的測試機都能重複使用。這個架構不僅是支援這些共同點的關鍵,同時也必須具有足夠靈活度,才能支援現在與未來各個測試機的獨特點。

使用測試架構優點

程式碼重複使用提升 

所有測試團隊藉由單一測試架構來標準化作業之後,就能更輕易地分享程式碼。分享作業既適用於共同點,也適用於獨特點。

程式碼重複使用性提升說明圖

圖 3:3 種不同機型的機板,其中最大的差異就是第二塊機板加入了藍芽功能,第三塊機版則是 Wi-Fi 連線功能。

舉例來說,圖 3 當中有 3 種機板機型。第二塊和第三塊機型的額外功能可能幾年後才會加入,但是機板的測試基本原理仍維持不變。這時候如果公司的測試部門採用回應式方式,便可能需要重複開發同一套基本測試系統 3 次。這種方式不但使得前期測試機的成本增加,同時也會影響長期的維護成本。

提高生產力

只有在工程師能盡其所長時,才能獲得最大的生產力。然而,工程師往往被迫投入大量時間從事不相關的工作,例如建立使用者介面或產生報告等。如果能為所有測試機建立一個共通架構,就能大幅提升開發新測試機的效率。由於所有的標準元件已經建立,測試工程師能夠專心建立測試裝置所需的功能,進而使得新產品上市的時程縮短。

減少維護作業

維護是測試機生命週期中最長的一個階段。這個階段包括加入新測試、在軟體或作業系統升級時維持整體相容性,或是修正偵測到的錯誤。測試系統解決方案的維護甚至會擴及說明文件。測試機開發階段所做的決策,都會關係到維護階段的作業耗時度或難易度。

NI TestStand 的優點

建立測試架構的難處之一,就是找到有足夠時間和能力的人。因此,NI 開發出現成可用的 TestStand,這種可客制化測試系統能應付您所有的測試作業。TestStand 提供您所有測試機可共用的架構,並且能簡化日後新測試機的開發作業。由於所有的標準元件已經建立,測試工程師能夠專心建立獨特的測試功能,進而減少變動並讓產品上市的時程縮短。

程式設計語言靈活性

測試工程師精通不同的程式設計語言,而我們必須讓他們能專心使用偏好的語言來建立測試步驟。TestStand 不受語言限制,因此測試部門能夠用各種語言 (包括 Python、C/C++ 和 .NET) 進行程式設計,然後再全部整合到同一架構。

降低風險 

開發測試管理解決方案只是整個工作的起頭。軟體成本並非一次性,而是需要持續投入資源維護。唯有適當維護,軟體才能符合下列目標:

  • 根據需求新增功能
  • 修正發現到的錯誤或瑕疵 
  • 使用新軟體時維持相容性
  • 跟上最新技術發展並能妥善利用

這種維護作業往往工程浩大,並且開發時間可能需要好幾個月。另一方面,NI TestStand 等立即可用的測試系統組合會由 NI 定期更新,因此能常保競爭力並確保隨時可用。這項政策讓您只需要花費一點成本,即可妥善利用最新的技術 (同時取得錯誤修正與新功能)。如欲取得更多相關資訊,請查看測試系統軟體 – 建置或購買?指南。

實作功能

在建立客制化測試系統當中最主要的成本,就是實作測試系統所有功能的前期開發成本。下表列出與測試架構相關的部分功能。當中顯示從頭實作每種功能預計所需的時間,並與使用 NI TestStand 實作相同功能所需的時間進行比較。

顯示使用 NI TestStand 所省下的時間表

圖 4:NI 與測試專業人士合作,確保使用 TestStand 可輕鬆實作所有標準功能。

如欲取得更多相關資訊,請查看建置或購買指南

這些功能不見得都適合所有團隊當下的情況,但這不代表未來也用不到。

在本章節中,我們將討論您可以使用 TestStand 輕鬆加入的部分重要功能,例如平行執行、報告產生、資料庫連結、使用者介面與除錯/部署工具等。 

平行執行

平行測試執行說明圖

圖 5:此圖說明 TestStand 能夠將序列像管線一般順暢執行並自動排程資源,讓使用者能夠一次進行多個 UUT (受測單元) 的測試。

要提升測試產能,其中一種方式就是同時在不同裝置上執行測試作業。若我們觀察開發能執行平行執行的軟體所需之時間,就能清楚了解到測試部門為何會盡量避免建立此功能。原因就在於開發平行執行功能需耗費大量時間,所以一旦公司發現有這個需要時,往往為時已晚。但有了 TestStand 後,開發平行系統就簡單許多,不但能免除大部分所需的時間,還能大幅提升平行系統的經濟效益。

報告產生資料庫連結功能

在建置測試系統時,我們必須考量到測試結果的處理方式。因此,TestStand 的內建功能可以簡化資料庫連結與報告產生作業。客制化報告在 TestStand 中是很常見的作業,同時 TestStand 也提供諸多功能讓使用者能客制化報告內容、功能與樣式。 

雖然測試報告確實能讓人對測試項目是否通過或失敗一目了然,但如果要從一個以上的測試站輪詢歷史測試結果,就相當不方便。反之,NI TestStand 現成可用,並且能夠快速將測試結果記錄到幾乎所有的開放式資料庫連結 (ODBC) 系統,例如 Oracle、SQL Server 或 MySQL。

除錯部署 

使用 TestStand 內建功能可減少花在測試程式碼除錯的時間。妥善利用各種工具即可監控整個序列與暫停點的測試值,以暫停執行作業,並進一步調查某一段測試程式碼。

測試程式碼部署圖 

圖 6:部署程序需要先透過部署工具或伺服器來封裝所有必要的測試系統元件,再將封裝內容部署至想要的測試站。

您也可以透過自動建立安裝程式與部署作業的公用程式,簡化將測試程式碼部署到生產機器的作業。

使用者介面 

操作介面是操作人員與測試系統互動期間所顯示的畫面。開發客制化操作介面可能非常耗時,尤其在考量到可用性與一致性時更是如此。TestStand 提供簡易的操作介面,方便使用者在部署的系統上設定與執行測試。您也能在多重程式設計環境中開發客制化使用者介面,以便更完整地控制操作人員與測試系統的互動方式。

共同點:

測試管理軟體

  • 操作介面
  • 使用者管理
  • 測試流量控制
  • 限制檢查
  • 平行執行緒管理
  • 測試結果處理

獨特點:

測試開發軟體

  • 儀器控制
  • 激發
  • 量測作業
  • DUT 控制
  • 數位訊號處理器 (DSP)