為自動化測試系統(tǒng)選擇合適的軟件開發(fā)環(huán)境
1. 引言
當今,測試工程師需要花費大量的開發(fā)時間在ADE上。 因此,我們選擇的ADE不僅必須直觀易懂,而且可以支持多個平臺,并可輕松地與驅動程序等測量控制服務集成。 在選擇開發(fā)測試系統(tǒng)的ADE時,還應當考慮其它一些因素,包括顯示和報告功能、如何防止產品過時被淘汰以及全球培訓和支持。 本文討論了三種不同的ADE:NI LabVIEW、NI LabWindows/CVI和Microsoft® Visual Studio .NET,并對它們的特性進行了比較。
本文引用地址:http://2s4d.com/article/201612/333287.htm2. 選擇ADE時需要考慮的因素
選擇ADE時需要考慮的因素
是否便于新軟件工程師使用
由于ADE是自動化系統(tǒng)開發(fā)的核心,因此工具的易用性對于新軟件工程師的工作效率至關重要。 易用性的重要性甚至超過了快速啟動和運行。 例如,開發(fā)人員應該能夠輕松地將處理程序與多種測量設備集成、創(chuàng)建復雜的用戶接口、部署和維護應用程序,并根據(jù)產品設計的變化和系統(tǒng)需求的擴展而修改應用程序。 ADE應包括的其他特性還包括豐富的文檔和代碼范例。
集成測量和控制驅動
多核技術已經成為自動化測試系統(tǒng)的標準功能,也成為當今電子設備處理海量數(shù)據(jù)的必需技術。 多核處理器也帶來了新的軟件挑戰(zhàn),我們必須克服這些挑戰(zhàn)才能充分利用多線程應用程序的處理能力。 ADE必須為開發(fā)人員提供所需的編程技術來創(chuàng)建并行執(zhí)行進程。
培訓和支持
ADE的易用性是指新用戶能夠輕松地學習該環(huán)境。 因此,ADE廠商應為工程師提供使用手冊和在線培訓來幫助他們快速學習如何使用其產品。 高級用戶可能需要課堂培訓來進一步增加他們的知識和了解更多系統(tǒng)級設計理念。 課堂培訓應為開發(fā)人員提供機會來通過認證流程證明他們的知識。 選擇ADE時還應當考慮的另一個因素是在部署應用時供應商提供的支持類型,比如電話和電子郵件支持。 此外,如果您要實現(xiàn)該ADE的全球標準化,您還需要考慮世界各地的工程師是否可以獲得當?shù)卣Z言支持。
很多時候,測試系統(tǒng)的開發(fā)人員認為只需一個設備驅動程序就足以有效集成其測量設備。 但是僅僅只有驅動程序是不夠的;測量和控制驅動程序應盡可能無縫地與ADE集成。 在理想情況下,控制測量設備的軟件是透明的,僅為ADE的一部分。 這種理想的實現(xiàn)保證了開發(fā)的最大靈活性和可擴展的架構,以便企業(yè)可以將其部署到所有ADE平臺上。
平臺獨立性
當今的測試軟件應用針對的是多種不同的架構。 重要的是,無論您選擇哪種ADE,都必須具備足夠的靈活性來盡可能無縫地支持所有這些不同的架構。 Windows、Linux和Macintosh等不同的操作系統(tǒng)可為不同的應用提供不同的好處。 工程師應能夠將他們的代碼從一個平臺移植到另一個平臺。 如果ADE不支持多種平臺,您需要針對不同的項目使用不同的ADE,并花費不必要的時間將現(xiàn)有代碼從一個平臺移植到另一個。
顯示和報告功能
測試應用由于需要圖形化顯示數(shù)據(jù)而在顯示和報告領域存在諸多挑戰(zhàn)。 ADE應提供多個可視化組件來實現(xiàn)數(shù)據(jù)可視化,如圖表、圖形、旋鈕和儀表。 另外,ADE還應容易生成報告,以便促進系統(tǒng)所采集信息的通信, 比如易于生成MS Word、MS Excel等部分最常用的報告。 結果的通信也應該易于實現(xiàn),比如在網絡上發(fā)布應用程序或者將信息錄入到數(shù)據(jù)庫。
保護系統(tǒng)不被淘汰
為測試系統(tǒng)開發(fā)標準化ADE是一個不易實現(xiàn)的承諾。 重要的是您的投資不會因為產品過時而受到影響。 其中您應該考慮的一個特性是產品與最新軟件技術集成的能力以及產品是否能夠保護您的測試軟件開發(fā)不會受到不連續(xù)遷移的影響。 此外,產品應能夠通過常規(guī)升級添加新功能。
圖1. 在開發(fā)測試系統(tǒng)時不同的ADE提供了不同的益處和挑戰(zhàn)。
3. LabVIEW
LabVIEW是一種圖形化開發(fā)語言,可以幫助工程師和科學家以最低的成本迅速創(chuàng)建靈活且可擴展的測試應用。 NI LabVIEW使用的是圖形化開發(fā)模式,而不是依賴于基于文本的編程。 NI LabVIEW的圖形化數(shù)據(jù)流語言和程序框圖能自然地顯示您的數(shù)據(jù)流,同時直觀地將用戶界面控件映射至數(shù)據(jù),令您輕松地查看、修改數(shù)據(jù)或控制輸入。 圖1所示的是一個NI LabVIEW應用程序的框圖及其對應的前面板。
圖2. LabVIEW 8 ADE 可助您快速直觀地開發(fā)測試應用程序。
LabVIEW還可讓您方便地引用產品中豐富的文檔。 上下文幫助功能可以讓您充分利用LabVIEW圖形化特性,只需將鼠標懸停即可訪問子VI的文檔。 LabVIEW還在產品內以及在線提供了數(shù)百個可用程序范例來演示和講解不同的特性。
不論底層算法有多復雜,LabVIEW分析工具均簡單易用。 Spectral Measurements Express VI等超過15個用于分析的Express VI可降低在應用中實現(xiàn)測量分析的復雜度,您可通過交互式配置對話框即時預覽分析結果。
圖3. Signal analysis Express VI為應用程序的分析提供了強大、易用的編程工具。
這些和其它測量分析工具可以直接輸入來自數(shù)據(jù)采集硬件的真實時域信號,并提供結果以便繪制圖表、圖形或進一步處理。 借助這些函數(shù),您可以輕松地確定DC/RMS電平、總諧波失真(THD/SINAD)、脈沖響應、頻率響應和交叉功率頻譜等信號特征。
LabVIEW的一大優(yōu)勢是提供了與測量和控制驅動程序的緊密集成,簡化了與來自數(shù)百家廠商的數(shù)千種儀器的連接和通信。使用LabVIEW,您可以使用儀器驅動程序、交互式助手和內置儀器I/O庫快速采集來自GPIB、串口、以太網、PXI、USB和VXI儀器的數(shù)據(jù)。 此外,LabVIEW還包含了易于使用的函數(shù)庫和交互式助手來與NI模塊化儀器和數(shù)據(jù)采集產品進行通信。
NI提供了各種專業(yè)技能級別的LabVIEW培訓。 雖然基礎課程針對需要了解產品的非編程人員和現(xiàn)有開發(fā)人員,對于中級和高級用戶來說,這些課程也有助于提高他們的專業(yè)水平。 現(xiàn)場實地課程可幫助企業(yè)快速培訓大量開發(fā)人員而無需離開公司。 在線和自學課程針對希望根據(jù)自己的時間安排和進度提高其知識的開發(fā)人員。
雖然LabVIEW通常被看作是一個MS Windows應用程序,但該產品最開始在Macintosh操作系統(tǒng)上運行。 NI將LabVIEW移植到Windows上,因為該操作系統(tǒng)在臺式PC行業(yè)的重要性日益增長。 LabVIEW支持新平臺的承諾到一直持續(xù)到今天。 LabVIEW繼續(xù)支持MS Windows和Macintosh,但也由于Linux®的日益普及而新增了對該操作系統(tǒng)的支持。 LabVIEW VI能夠在不同的操作系統(tǒng)上運行意味著無論您需要在何種計算平臺上進行開發(fā),您都可以在利用您的LabVIEW技術。 LabVIEW甚至可以在其他終端上運行,如實時系統(tǒng),甚至FPGA和DSP。
LabVIEW的數(shù)據(jù)顯示和報告功能也是該環(huán)境如此適用于測試軟件開發(fā)的一個重要原因。 LabVIEW包含多個二維和三維圖形、圖表、儀表、旋鈕和開關,以便以圖形化方式顯示測量數(shù)據(jù)。 ADE還包含LabVIEW報告生成工具包,以便以MS Word和Excel格式生成報告。 如果需要通過Web導出應用程序來進行結果通信, LabVIEW遠程面板可以讓您通過瀏覽器顯示前面板的數(shù)據(jù)。 另一方面,如果測量結果需要記錄到數(shù)據(jù)庫,則LabVIEW數(shù)據(jù)庫連接工具包提供了一套易用工具來快速連接到本地和遠程數(shù)據(jù)庫,并執(zhí)行許多常見的數(shù)據(jù)庫操作。
最后,NI始終致力于幫助LabVIEW用戶克服系統(tǒng)過時問題。 盡管大量的開發(fā)精力都集中在增加新功能和集成新技術,但是新版本支持舊版本代碼一直是一個首要任務。 在新版產品中運行舊代碼意味著專為之前應用投入的寶貴資源不會被浪費,而且可以在新的開發(fā)中加以利用。.
4. LabWindows/CVI
LabWindows/CVI是一個成熟的測試與測量ANSI C開發(fā)環(huán)境,可極大提高工程師和科學家們的生產力。 圖4顯示的是LabWindows/CVI開發(fā)環(huán)境。
圖4. LabWindows/CVI包含了一個完整的工作區(qū),可用于快速開發(fā)、調試和管理大型應用程序。
工程師和科學家們使用LabWindows/CVI來開發(fā)制造測試、軍事和航空航天、通信、設計驗證和汽車行業(yè)所需的高性能穩(wěn)定應用。 LabWindows/CVI通過硬件配置助手、全面的調試工具和開發(fā)人員在設計時可用于運行函數(shù)的交互式執(zhí)行能力簡化了這些領域的開發(fā)。
高級分析庫等工具包補充了LabWindows/CVI包含的分析庫,用于幫助工程師們分析其測量數(shù)據(jù)。 LabWindows/CVI高級分析庫提供了一套全面的數(shù)據(jù)分析函數(shù)。 借助這些強大的分析程序,您可以輕松地將原始數(shù)據(jù)轉換成有用的信息以及構建測試應用程序。 高級分析庫包括用于信號生成、一維(1D)和二維(2D)數(shù)組操作、復雜的運算、信號處理、統(tǒng)計和曲線擬合等函數(shù)。
LabWindows/CVI通過儀器驅動程序網絡上來自200多家廠商的8000多個儀器驅動程序提供了業(yè)界領先的儀器控制和連接。 您可以使用這些驅動程序輕松地編程儀器控制應用。 借助儀器I/O助手,您可以生成代碼來與串口、以太網和GPIB儀器等設備進行通信,而不需要使用儀器驅動程序。 儀器I/O助手提供了一個簡單的界面來快速驗證應用原型和自動分析儀器數(shù)據(jù),而無需任何編程。 您可以輕松地將生成的代碼導入到任何現(xiàn)有應用程序,從而避免了編寫儀器連接、基本通信和字符串解析代碼等繁瑣任務。 除了集成NI-DAQmx庫外,LabWindows/CVI還提供了DAQ助手,DAQ助手是一個與數(shù)據(jù)采集驅動程序框架連接的交互式界面。
針對LabVIEW的培訓和支持也適用于LabWindows/CVI。 LabWindows/CVI為不同專業(yè)技能水平的開發(fā)人員提供了不同的培訓課程。 現(xiàn)場實地課程可幫助公司快速培訓大量開發(fā)人員,而無需讓員工離開公司。 對于希望根據(jù)自己的時間和進度學習知識的工程師,NI也提供了在線和自學培訓課程。 除了LabWindows/CVI培訓選項,全球各地分公司的NI應用工程師也為客戶提供了全球支持。
通過維護LabWindows/CVI的向后兼容性,NI可幫助您保護投資不因過時而被淘汰。 您不僅可以運行數(shù)年前編寫的C代碼或使用LabWindows/CVI早期版本編寫的代碼,也可以使用新的優(yōu)化編譯器集成更快速運行應用程序。 LabWindows/CVI的向后兼容性對于軍工和航空等重視產品生命周期和連續(xù)性等行業(yè)至關重要。.
5. Microsoft Visual Studio .Net (C++, Visual Basic .Net, C# and ASP.NET)
Visual Studio .NET支持多種編程語言,如C++、Visual Basic .NET、C#和ASP.NET,提供了一個非常強大的ADE。通過提供各種編程語言選項,您可以使用相同的工具和利用不同開發(fā)人員的專業(yè)知識,即使他們掌握的是不同的編程語言。 Visual Studio .NET開發(fā)的應用程序可以在個人計算機上運行,也可使用ASP.NET語言通過網絡運行。
Visual Studio .NET提供了所需的功能來幫助工程師使用C++、Visual Basic .NET和C#等不同編程語言進行開發(fā)。 通過將這些編程語言編譯成通用語言運行時,您可以添加不同語言開發(fā)的程序庫。 另一方面,由于.Net平臺僅支持Microsoft Windows操作系統(tǒng),這意味著支持該應用程序的操作系統(tǒng)數(shù)量非常有限。 此外,未來將應用程序移植到另一個操作系統(tǒng)可能需要使用不同的語言重新編寫應用程序。
默認情況下,Visual Studio .NET不包括任何功能來集成測量和控制驅動器或執(zhí)行任何分析操作。 NI Measurement Studio提供的組件,如圖4所示,可以訪問測量和儀器驅動和分析功能。 這些組件提供了交互式助手來自動生成代碼,以增強ADE與儀器和測量驅動程序的集成。 與此相反,.NET框架包含的某個功能使其很難與某些儀器進行通信。 .NET架構在通用語言運行時上執(zhí)行代碼,使您無法訪問硬件。 由于不能訪問硬件,直接寫入到儀器的寄存器就會非常困難。 如果要實現(xiàn)這一點,我們必須創(chuàng)建一個DLL,然后從.NET應用程序調用DLL。
Visual Studio .NET默認提供了少量顯示和報告功能。 該ADE提供了創(chuàng)建基本應用程序所需的文本框、組合框、列表框、按鈕和其他組件,從而提供了足夠的功能來生成一個標準的Windows應用程序。 如果要使用圖形和圖表等更強大的組件來顯示數(shù)據(jù),您將需要為這一應用程序購買一套組件。 這個問題也反映在Visual Studio .NET編程語言缺乏報告工具上。 另一方面,.NET框架可將信息存儲到數(shù)據(jù)庫,從而提供了強大的數(shù)據(jù)報告功能。 ADO .NET是一個豐富的數(shù)據(jù)功能庫,可用于與許多數(shù)據(jù)庫進行通信并執(zhí)行操作。
.NET更側重于商業(yè)、IT和基于Web的應用程序,而不是自動測試。 因此,保證編程語言的長期使用性以及避免不連續(xù)遷移并沒有那么重要。 針對IT的應用只有數(shù)個月的生命周期,而針對自動化測試的應用的生命周期則長達數(shù)年。 例如,盡管DLL可集成到.NET,但這需要開發(fā)人員手動調用函數(shù),并保證DLL數(shù)據(jù)類型匹配.NET的數(shù)據(jù)類型。 這乍看之下似乎并不是很難,但如果您需要與儀器驅動程序的數(shù)百個函數(shù)進行通信,這個過程可能非常耗時。 另一方面,將現(xiàn)有ActiveX組件集成到.NET自動化測試應用要比集成DLL容易得多。 Visual Studio .NET可以生成ActiveX組件包裝,將其包裝為.NET對象。
評論