系統測試是整合之后對交易系統整體進行測試。系統測試包含下面的幾個測試流程:
圖形用戶界面(GUI)測試確保系統的人機交互界面可以讓用戶(如負責監控交易活動的工作人員)完成其工作嗎。通常GUI測試需要保證屏幕上出現的所有按鈕都與適當的功能相連,一切都與開發過程得瑟設計階段所制定的說明相符。
易用性和性能測試與GUI測試在很大程度上是類似的,不過并不限于測試圖形用戶界面,它還包括測試某個功能的速度之類的內容。例如,系統處理“關閉系統”這個請求需要多長時間,從風險管理的角度來看這個時間是否可以接受,等等。
壓力測試是高頻交易系統測試的一個關鍵部分。壓力測試要記錄并且量化假設中的極端事件對系統表現造成的沖擊。例如,如果某只證券在非常短的時間里下跌了10%,系統將會作何反應如果交易所因為不可抗力而關閉,系統無法平倉怎么辦?還有其他哪些最壞的情形?它們又將如何影響系統的表現以及后來的盈虧?
安全性測試是測試過程中另外一個必不可少,但有經常被人們忽視的環節。安全性測試的目的是找出可能存在的安全漏洞,并且提供軟件解決方案來修補漏洞,或者創建一個漏洞檢測機制,建立漏洞出現時應急處理措施。高頻交易系統很容易受到來自互聯網的安全威脅,一些惡意用戶可能會為了竊取交易資金而試圖劫持帳號、密碼等其他機密信息。然而,我們也不能低估機構內部的安全威脅,心懷不軌的員工或者滿腹怨恨的工作人員可以通過不正當的方法進入交易系統,由此造成巨大破壞。所有這些可能性都須進行測試并予以考慮。
可擴展性測試是指測試系統的容量。在不顯著影響系統性能的情況下,系統能夠同時處理多少只證券并能取得盈利?這個問題答案看是無關緊要,但事實情況絕非如此。在系統中每添加一只證券,都要求分配計算機資源和網絡帶寬。在同一臺機器上同時處理大量證券可能會顯著降低計算機性能,從而打亂了報價和交易信號,并且影響到交易盈虧。具體最多能處理多少只證券取決于每個交易平臺的性能,以及可用的計算能力。
可靠性測試確定的是系統出現故障的概率。可靠性測試旨在回答如下問題:系統會在何種情況下出現故障?我們預期這些情況多久發生一次?導致故障的情況可能包括系統意外崩潰、內存不足而至關機,以及其他各種使得系統停止運作的事件等。任何一個設計良好的高頻交易系統的故障率都不應該超過萬分之一。
恢復測試指的是不利事件下,不論是不可抗力還是系統崩潰,恢復步驟文檔,幫助我們完整的重建系統,并且在預定的時間之內重新運行的能力。恢復測試還要在系統意外中止的情況下保持數據的完整性。恢復測試應當包括如下場景:如果程序正在運行時計算機系統突然重啟,重啟之后程序應該保有有效數據。類似的,如果網線意外被拔出有重新插入,程序應當繼續正常運行。