珠海格力電器股份有限公司 張 璐 黃金武
在所有的軟件開發過程中,軟件測試工作均貫穿了整個研發過程,從系統編寫、框架構建、系統編碼以及整個體系的應用都需要有效的測試平臺來檢驗其有效性。根據國外的研究顯示,軟件在測試階段投入的成本量占總成本量的40%,而工作量則占總工作量的50%以上。傳統的測試方法周期較長,并且在出錯改動后難以進行回歸測試。因此,必須采用自動化軟件測試平臺才能夠提高該項工作效率,減少軟件的研發周期。
數據中心由兩臺高性能計算機作為數據庫載體,配以大容量的磁盤陣列和磁帶機,系統通過光纖存儲交換機相連,采用雙鏈路備份的方式,保證數據庫的可用性與可靠性。系統涉及到整合其他業務系統的數據,其他寫數據有結構化數據和非結構化數據,數據庫可能有Oracle或者SQLServer等結構化數據庫,也有NoSQL類型的數據庫,或者分布式數據庫,同時考慮到與政務大數據平臺相結合,因此,本方案設計系統把采集過來的數據存儲在由Hadoop搭建的分布式存儲系統上,通過HBase進行結構化數據存儲,通過逐步建立分布式數據分析模型,不斷的豐富系統提供的服務。MapReduce是由Google提供的建立在HDFS之上的一個并行計算框架;我們需要通過MapReduce框架設計對共享數據的檢索與分析,為各種業務系統提供數據。HBase是一個類似于Google BigTable的分布式NoSQL列數據庫;Hive是由Facebook貢獻的一個數據倉庫工具提供類SQL查詢方法,使得上層數據應用程序可以通過關系型數據庫訪問的方式查詢分布式文件系統中的數據;Zookeeper是由Facebook提供的一個分布式鎖設施,在整個平臺中起到協調各種操作的作用。Pig是一個大數據分析平臺,為用戶提供多種接口,在系統中主要通過其方便的腳本編程接口為上層數據應用程序提供服務。
現代計算機分布式存儲系統應當可以實現以下功能,探測功能主要指的是系統可以對發生異常信號的地區能夠準確快速的進行探測,主要有又可以分為危險行為的探測和目標識別探測,它們所應用的區域是不一樣的,危險行為探測主要是進行危險報警,而目標識別主要是用于安檢。響應主要是指通信系統對檢測到的信號能夠有所反應,主要包括報警信號以及系統的自動記錄與控制等。通信系統的管理功能主要實現日常操作的智能化管理,能夠對于一些程序流程,進行自動化的施行。通信系統的信息存儲主要包括探測信息、管理信息以及系統日志的存儲三大方面。Python軟件測試數據庫采用鍵值存儲方式,它主要是通過集合的方式來進行存儲的,可以進行有效的索引,它的主要特點在于在存儲二進制數據的時候,可以把任何一種文本轉換為二進制文件進行較快的分塊存儲,在存儲當中可以把二進制文件放在多臺服務器當中進行存放,使得其存儲能力得到大幅的提升。Python軟件測試數據庫系統的特殊性使其數據庫存在更高的安全性與保密性系統數據要求,在設計系統過程中,應該將系統連接、安全隔離與過濾信息等安全措施考慮進來,從而為系統安全提供保證。不能出現修改數據,系統可以提供全面系統的用戶權限管理體制,對于系統授權用戶合法訪問提供保證,預防出現非授權訪問,將應用開發軟件、數據庫管理系統與舊產品、同類其他產品兼容。Python軟件測試數據庫可以利用兩種方式來進行二進制文件的存儲,第一種是系統進行主動的分片存儲,第二是用戶采用自定義的方式進行存儲,分片存儲主要是把二進制文件分成多個部分,每個部分通過一條記錄來放入數據庫當中實現負載均衡,用戶自定義就是用戶對于數據塊的大小進行分配,可以對于數據的存儲位置進行管控,應用程序實現多個分塊服務器間的通信與調整。
在安卓軟件測試環境下,數據規模和復雜度的增加往往非常迅速,對系統的擴展性能要求較高。實現存儲系統的高可擴展性首先要解決兩個方面的重要問題,包含元數據的分配和數據的透明遷移。因此數據中心配備包括支撐以上功能的硬件基礎設施、大型外部設備、數據庫管理商用軟件、數據處理專業商用軟件、數據管理應用軟件、數據服務應用軟件、數據交換系統,以及相應的專業人員。數據中心硬件配置一般包括:服務器(業務應用服務器、數據庫服務器、交換服務器);存儲系統(SAN光纖交換機、磁盤陣列、NAS文件存貯);交換機(核心交換機、服務器群子網交換機、部門接入子網交換機);大型外設;全冗余的硬件設備及鏈路。數據中心軟件配置包括:網管軟件;應用服務器軟件;數據庫管理系統;GIS軟件;數據備份軟件;目錄服務及元數據發布軟件;LDAP服務器;安全管理軟件;消息中間件;云虛擬機管理軟件等。整個數據中心網絡可以建立在云計算平臺之上,所有的應用系統服務器均由虛擬化服務器提供,這樣的好處在于可以按需配置服務器資源,保障服務器資源的充分利用和靈活調度。
負載均衡進行服務器并行運算雖可提供大量并行并發運算單元,但部署在負載均衡上的智能運算需將數據庫中的數據集加載至智能服務器上運算,對數據庫負擔重,且使數據庫與智能模塊間頻繁交互信息,且加載了大量冗余數據,增加了網絡負擔。具體來說其應用如下:(1)在數據庫底層進行高效的數據運算。(2)將過程化的游標運算改為使用XML變量、表變量、存儲過程并行運算。(3)WEBSERVICE服務器負載均衡只作為不同用戶并發運算及傳輸輸入輸出參數的服務器,數據庫服務器采用負載均衡提供并行并發運算。將前臺系統應用請求的智能模塊XML入參,經負載均衡判斷送入哪臺WEBSERVICE服務器(判斷哪臺WEBSERVICE服務器空閑),WEBSERVICE服務器接收到XML入參后判斷調用哪個類接口,類接口將XML入參或初步簡單解析過的XML入參判斷要調用哪臺數據庫服務器,數據庫服務器存儲過程接收到XML入參后在內存表中調用數據高速并行運算(大量采用函數作為并行運算單元)。XML作為數據庫入參。內存表技術。數據庫函數運算。欲保護點:將過程化游標算法轉化為函數并列算法。將webservice邏輯過程化算法轉化為數據庫并行存儲過程+函數算法。
以下模型計算機智能決策過程約需100步左右。原有算法需要將相關信息作為入參輸入,后根據入參篩選出符合分數的方案,再用游標根據信息逐一判斷卡位,算出決策方向,最后匹配其他參數。約需20分鐘,系統才能出結果。便如12306網站這么簡單的算法也要排隊一樣。系統將過程化需大量交互至webservice邏輯層的運算推至最底層,用大量并行運算方法,短期內得出結果,約需0.3~0.6秒。
基于Python的軟件測試自動化平臺的工作流一般包括5種,分別為重啟、編譯、執行、結果、輸出。其中,重啟工作流是測試過程中所帶動的第1個工作流,該測試的執行流程為:(1)進入臨時文件;(2)重啟臨時文件(如果選擇“否”操作則該工作流直接結束,如果選擇“是”操作則工作流繼續進行);(3)讀取現場文件;(4)刪除該現場文件;(5)在用例文件中讀取該現場文件;(6)工作流結束,其主要是對OS.path包中是否具有現場文件進行檢測。編譯工作流是測試中所調動的第2個內容,其執行流程包括:(1)接受參數和賦值的變化;(2)對每一個用例文件進行瀏覽;(3)對用例文件中的Case進行測試;(4)將Case封裝到模板中;(5)對.py格式文件進行輸出。在封裝的過程中需要注意,應該是將.txt格式文件封裝為.py文件,所使用的模板文件名為caseTemplate.pyCaseTmplate,這樣就能夠將模板字符串和用例的內容添加到try語句中。Python的工作流設計方法是通過強化學習,來對傳統的工作流設計進行優化,然后可以有效的解決離散系統和非線性系統中出現的問題,主要包括策略迭代和直接在兩種形式,策略迭代主要是通過策略評價與改進的方法,對每一步的策略進行評估,來不斷的尋找優化的策略,同時對其進行改良和優化,得到新的權值,生成新的優化函數進行計算,在這個過程當中,評估和改進是循環進行的,最后將會得到一個最優的控制策略。但是需要注意的是,在最好的運行模式下,相關的一些外部參數條件應當是穩定的,這是非常重要的,如果沒有這個條件,就會導致整個策略評估,出現一些意外的情況。值迭代的算法主要是針對于一些方程式的計算,通過最優函數的尋找與控制計算,就能計算出最優的值,它不需要進行控制策略的穩定化,在我們的使用當中必須要注意,無論是迭代策略還是值迭代,都需要對于被控對象的相關特性,尤其是內部特性進行研究,這也是自適應工作流設計的核心特點。
軟件測試自動化平臺下的c#模塊一般包括4個部分,分別是文件、執行、腳本編輯以及實時信息顯示四大模塊。其中,文件模塊主要引用了using System.10,這樣就能夠保證其對多種類型的文件進行創建和讀取,并且在保存時也能夠為用戶提供更加方便的顯示界面。但需要注意的是,在控件使用過程中應該將默認狀態下的.Filter格式更改為.txt格式,這樣就能夠保證文件的通用性和快速選擇性。在打開文件后,需要采用逐行讀取數據的方式,并采用StreamReader.Append的方法添加文件中的字符,同時該方法還能夠在字符串連接時降低損耗。執行模塊主要是控制系統的運行、暫停以及停止,并且能夠將空間使用后生成的文件轉化為.txt格式。腳本編輯模塊同樣包含3個空間,其主要在第2個分頁、出現\n字符時以及新建文件時所觸發的功能控件。信息顯示模塊共包含2個控件,其一是TabControl,主要是在第2個分頁發揮作用;其二是TextBox,其屬于復合型控件,能夠對顯示數據的輸出進行邏輯判斷。利用Python軟件測試支持字段可以進行范圍查詢和正則表達式搜索,返回文檔的特定字段,還可以包含用戶定義的JavaScript函數,也可以配置為返回給定大小的結果的隨機樣本。索引Python軟件測試文檔中的字段可以使用主索引和二級索引進行查詢。Python軟件測試可以運行多個服務器,其需要平衡負載或復制數據以保持系統在硬件故障的情況下運行。Python軟件測試可以用作一個文件系統,在多臺機器上具有負載平衡和數據復制功能來存儲文件。GridFS將文件分成多個部分或塊,并將每個塊存儲為單獨的文檔。Python軟件測試apReduce可用于批量處理數據和聚合操作,聚合框架使用戶能夠獲得使用SQL GROUP BY子句的結果類型。
Python的入口文件一般是TestSuiteExecutor.py文件,其主要負責為工作流當單引擎,但不負責實際工作執行指令,也就是說,該入口文件僅能夠實現對接受數據參數的初始化,并按照一定順序進行各項工作。Python的入口文件主要負責的內容包括:解析命令行的邏輯問題,建立臨時目錄(所創建的目錄主要經由.txt格式文件編譯成的.py文件),執行工作流,清除臨時路徑等。其中,清除的臨時路徑包括臨時目錄、臨時子文件、臨時文件夾等。在整個Python入口文件的算法的計算當中,對于系統的內部動態特性要求是非常高的,在每一步的計算當中都需要對此進行計算,同時我們要盡量的讓狀態的函數,更加的逼近真實情況,最終得到最優化的結果,在迭代步數趨近無窮的時候,就可以求出最優化的入口文件,這樣就可以對于最優化的策略進行分析。
軟件測試系統在設計過程當中必須確保擁有相應的前瞻性,借助成熟、先進設計理念,在保證性價比高的前提下,選取可靠成熟的技術方法與中高端設備,使開發出來的軟件測試系統科技含量在整個軟件測試系統行業中處于先進位置,處于合理性價比條件,處于國內領先地位。