- TestStand工業自動化測試管理(典藏版)
- 胡典鋼編著
- 2378字
- 2022-05-05 21:20:50
3.3 TestStand開放式架構
1.過程模型(Process Model)
3.2節通過菜單命令“ExecuteSingle Pass”和“Execute
Test UUTs”執行了主序列,和第2章的菜單命令“Execute
Run MainSequence”相比,前兩者執行了額外的操作,如輸入序列號、生成報表、顯示測試結果,這是一些比較通用的操作。先聚焦到序列文件本身,仍以Computer Motherboard Test Sequence.seq為例,它自身包含很多的步驟,這些步驟都是針對計算機主板這一特定UUT的,執行菜單命令“Execute
Run MainSequence”后,TestStand只執行主序列中的步驟,如圖3-4所示。作為標準自動化測試系統架構的最頂層,測試管理軟件要提供模塊化的測試框架,在TestStand中,這個測試框架稱為過程模型(Process Model),而采用該過程模型的序列文件稱為客戶端序列文件(Client Sequence File)。回顧第1章介紹的自動化測試系統的組成,測試軟件部分細分為測試程序、自動化測試框架,對應于TestStand中的測試程序即客戶端序列文件,測試框架即過程模型。在過程模型中會包含很多的通用操作,而客戶端序列文件的主序列只是其中的一部分,過程模型將框架定義好,并預留位置給客戶端序列,開發人員負責填寫這一部分即可。
如圖3-5所示,如果采用過程模型,啟動測試之后,TestStand不僅執行客戶端主序列,還會按照過程模型定義的順序執行所有的操作,按照圖3-5所示的簡化示意流程,即通用操作→客戶端序列→通用操作。通過這種形式,TestStand將很多通用操作直接提供給開發人員,如序列號追蹤、流程控制、報表生成、數據存儲、用戶界面更新、配置和提示窗口、用戶管理等,開發人員不再需要從頭開始這部分工作了。TestStand需要額外做的工作是解決通用操作和客戶端序列之間的通信和數據共享問題。其實,過程模型在概念上很簡單,就是把通用操作和特定操作組合在一起,形成更大的測試序列,怎么組合以及包含哪些通用操作則由過程模型決定。過程模型本身是一個序列文件,TestStand自帶三種過程模型,分別是順序過程模型、并行過程模型、批量過程模型,后兩者具有并行測試的功能,用戶也可以根據需要創建新的過程模型。

圖3-4 主序列包含一系列步驟

圖3-5 過程模型
2.執行入口點(Execution Entry Point)
如前所述,過程模型定義好了測試框架和通用操作。在實際應用中,不同項目使用過程模型時,對它所包含的通用操作以及通用操作之間的執行順序有著不同的需求,因此每次都要修改過程模型,或者創建新的過程模型,久而久之,過程模型越來越多。為避免這種情況,TestStand引入執行入口點的概念。以圖3-6為例,假設過程模型有A、B、C三個不同的執行入口點,A和B之間的區別在于通用操作2和MainSequence的先后順序變了,而C中通用操作1和MainSequence處于循環之中。因此,選擇不同的執行入口點,意味著采用不同的運行方式。說白了,還是這些操作,只是把它們重新排列組合,以滿足不同場合應用需求。像3.2節中的Single Pass和Test UUTs就是同一個過程模型的兩種不同執行入口點,Test UUTs會連續測試不同的UUT,這不同于Single Pass,就是這個道理。每個過程模型可以有任意多個執行入口點,可根據需要創建添加。

圖3-6 執行入口點
3.回調序列(Callback Sequence)
利用執行入口點可以定義適合自己的序列執行方式,然而在執行入口點包含的這些通用操作中,其功能是預定義好的,但是開發人員有可能需要修改默認功能。以輸入序列號追蹤UUT為例,TestStand默認彈出窗口,提示用戶手動輸入序列號,但在實際產線中往往是使用條碼槍直接掃描,不需要手動輸入,這就需要修改或重寫序列號輸入這一通用操作。怎么修改呢?最直接的方式是在執行入口點中直接修改通用操作,但這會導致潛在的問題,如果產品升級或者完全更新換代,這些通用操作就得去適應新的產品,這時又需要修改執行入口點里的通用操作,或者干脆新建執行入口點。當產品越來越多時,執行入口點修改次數增多,或者其數量不斷增加,系統維護就變得非常困難。為避免這種情況,TestStand引入回調序列。TestStand將經常被修改的通用操作設置成回調序列,每個回調序列有定義的默認功能,但是它們可以被客戶端序列文件重寫。如圖3-7所示,在執行入口點中定義了三個回調序列,在客戶端序列文件中,重寫了回調1和回調3。當TestStand在過程模型框架下執行到每個回調序列時,它會去檢查該回調序列是否被客戶端序列文件重寫,如果是則執行客戶端序列文件中的定義,否則執行默認操作。通過這種方式,可以對通用操作進行定制化操作,并且這部分工作是放在客戶端序列文件中的,減少了對過程模型和執行入口點的修改。通過過程模型、執行入口點、回調序列這三個不同層次的接口,TestStand就這樣將其開放式架構逐步展現出來。

圖3-7 回調序列
4.TestStand架構概覽
第2章介紹了TestStand系統組件(見圖2-5),包括TestStand引擎、序列編輯器、用戶界面、模塊適配器、部署工具,TestStand引擎是最核心的部分,它支撐著一切操作,序列編輯器和用戶界面通過TestStand API和它進行交互。TestStand如果要調用其他應用開發環境編寫的代碼,就需要借助于模塊適配器。
本章介紹了過程模型、執行入口點、回調序列的概念,它們是TestStand展現其強大靈活開放式架構的具體實現,正因如此,TestStand遠不只是測試執行器那么簡單。概括來講,TestStand系統組件支撐著測試管理、流程控制,而過程模型、執行入口點、回調序列、客戶端序列文件則將這些功能具體化,這兩部分整合在一起,就構成了TestStand的整體架構。打開TestStand架構概覽圖文檔<TestStand>\Doc\Manuals\TestStandSystemandArchitectureOverviewCard.pdf,如圖3-8所示。TestStand系統組件之間的關系和圖2-5是一致的,在這個基礎上,它增加了過程模型、序列文件執行的詳細信息。過程模型的運作同樣由TestStand引擎支撐,它通過TestStand API訪問引擎,而序列文件執行底層也同樣是由TestStand引擎接管。將“序列文件執行”展開,如果沒有使用過程模型,則只執行該序列文件包含的步驟;如果使用了過程模型,則執行過程將按照過程模型設定的方式進行,執行過程會產生測試結果,過程模型中的通用操作會進行結果收集,并生成報表、記錄數據庫或者做數據離線分析。這些基本上就是TestStand架構的全部內容。

圖3-8 TestStand架構概覽
【小結】
繼第2章介紹TestStand系統組成后,本章重點介紹過程模型、執行入口點、回調序列概念,兩部分整合在一起構成了TestStand的整體架構。帶著這個整體架構的思想,讀者可以在后續章節中慢慢體會TestStand開放式架構,并逐步理解測試管理、流程控制。
- Hands-On Intelligent Agents with OpenAI Gym
- 數據展現的藝術
- 人工智能工程化:應用落地與中臺構建
- 計算機系統結構
- Embedded Programming with Modern C++ Cookbook
- Ceph:Designing and Implementing Scalable Storage Systems
- R Data Analysis Projects
- C++程序設計基礎(上)
- 生物3D打印:從醫療輔具制造到細胞打印
- 青少年VEX IQ機器人實訓課程(初級)
- 基于RPA技術財務機器人的應用與研究
- 3ds Max造型表現藝術
- Java組件設計
- Natural Language Processing and Computational Linguistics
- Moodle 2.0 Course Conversion(Second Edition)