四、 研究方法
4.5.2 播放腳本
在播放腳本時,ITOS 會根據保留下來的資訊樹,試著找到該物件。由 根視窗開始,以深度優先搜尋法,尋找符合的子視窗(Child CWnd),最 後找到目標物件。
一個視窗只有一個母視窗,一個母視窗卻可能擁有很多子視窗,而這 些子視窗可能擁有同樣的屬性(如圖 7 中,B1和 B3的資訊樹完全相同)。
在遇到這種問題時,Autoit(詳見 3.1.3)為每個相同屬性的物件添加了自 定義的編號,但這個編號會隨著視窗中物件生成的順序不同而跟著改變。
VPanel 因為需要控制音訊設定,而音訊設備在 UAA(詳見 2.2.4)下是動 態生成的,所以 VPanel 中各個視窗物件的生成順序不會固定,會使得 Autoit 的編號在每次執行時都會變動,而無法找到正確的物件。
為了找到正確的物件,ITOS 利用了可視(Visible)這個動態的視窗屬 性。因為是 GUI,要讓使用者控制的物件,一定是可視的;不可視的視窗 或物件不可能是我們尋找的目標。利用這個屬性,可以精確的找到目標物 件。
有些情況下,母視窗下可能有二個同時可視的子視窗,如圖 7,若 WB
和 WC同時為可視的,則無法分辨哪一個是我們的目標。此時需要額外的 條件來分辨它們,本系統使用視窗的位置及大小來區分。在這種狀況下,
由於固定了位置及大小,就無法通用於不同的樣式主題,只能為不同的樣 式主題建置不同的腳本。
18
音訊驗證
VPanel 是音訊控制軟體,我們若要驗證其功能是否正常,就必需作播 音/錄音的動作,來確保各種音訊設定是否正確。GART 提供了這樣的功 能,能夠執行音訊相關的測試。
GART 為了方便作音訊驗證,播音/錄音使用的格式為 WAV(2.2.1), 使用這種格式的好處,是可以直接取得音訊資料而無需作解碼的動作。音 訊驗證有四種依據:第一種為波峰值,可驗證音量大小及判斷有無聲音。
第二種為主頻,可驗證格式是否正確。第三、四種為 THD/SNR,可以檢 驗音質的好壞,以確定音訊是否正常,有無雜音等。主頻/THD/SNR 的 檢測只能針對單頻的正弦波,無法對一般的音樂檔作分析,所以 GART 也 能產生正弦波的音源。
四種檢測依據的標準值是由人工設定的,可以取全部或部份的檢測依 據,並給定範圍值。在分析音訊資料時,GART 會先作快速傅立葉轉換(Fast Fourier Transform,FFT),在過程中會計算峰值,最後求得主頻/THD/
SNR,並和標準值作比對,並將結果紀錄下來。
紀錄檔
測試過程中會產生紀錄檔,除了測試結果外,有時也需要一些額外的 訊息。因為測試資料庫會不斷擴增,所產生的紀錄檔也會相當龐大,為了 更方便管理,GART 中為紀錄檔設計了不同的層級:測試失敗、測試錯誤、
測試成功、警告、偵錯、註解。當測試完畢,工程師可以依照不同的層級,
取出需要的紀錄,不會因為資料過於龐大而找不到需要的資訊。
19
20
以圖 8 的測試資料為例,此筆測試資料有功能 1 的腳本,而功能 1 的 腳本裡又包含功能 2 的腳本。執行此測試資料的流程如圖 9 所示:
1. 主程式讀取測試資料(T)並傳送給 GRAT.DLL。
2. 判斷測試資料(T1),並呼叫功能 1.DLL。
3. 執行功能,當遇到功能 2 的腳本時,將 T2 傳回給 GART.DLL。
4. 判斷測試資料(T2),並呼叫功能 2.DLL。
5. 執行功能,結束後返回。
6. 返回功能 1.DLL。
7. 繼續執行,結束後返回。
8. 結束此筆測試資料。
主程式 GART.DLL 功能1.DLL 功能2.DLL
7 1
2
3
4
5
6
8
圖 9 範例測試資料(T)執行流程
21
這樣的設計提供了 GART 強大的彈性,可以依照使用需求,掛載需要 的 DLL 模組;也可以依照不同的需要,設計自己的模組插件,讓 GART 支援不同的功能。這樣的設計也讓 GART 的維護變得更容易,不會因為新 增的功能(DLL)而影響到原本的系統;每個模組因為是獨立的 DLL,能 將程式作適當的切割,不會因為功能日漸強大而變得難以維護。
22