周口職業技術學院 楚書來
基于GUI的測試用例設計與案例分析
周口職業技術學院 楚書來
對于GUI(圖形用戶界面)軟件測試,即使能通過一定的覆蓋準則使測試集中到GUI的某個部分,但是由于測試用例狀態空間巨大,要為所有這些選定的部分產生測試用例也不太現實。如何產生大小合適的GUI測試用例集,使測試用例能盡可能覆蓋所有GUI對象的不同情況,是當前人們普遍關注的一個問題。本文,筆者結合具體的案例,對GUI測試過程進行論述,以期為同行提供參考。
1. GUI測試特點 。
(1)與其他同類軟件相比,軟件對用戶更加友好。
(2)可以涵蓋整個應用。
(3)可以采用捕獲、回放技術生成GUI測試腳本。
2. Windows窗體構成部件。Windows窗體通常由三層結構構成,即表達層、交互層、數據層;一般Windows窗體構成部件有按鈕、混合框、對話框、標號、菜單和文本框等。
1. 窗體的測試設計。在對窗體進行測試時,重點考慮的問題有:窗體大小是否合適,控件布局是否合理;移動窗體、快速或慢速移動窗體時,背景及窗體本身刷新是否正確;縮放窗體時窗體上的控件能否隨窗體大小的變化而變化;窗體在不同分辨率的條件下,顯示是否正常。
2. 菜單的測試設計。在對菜單進行測試時,重點考慮的問題有:選擇菜單是否可以正常工作,是否與實際執行內容一致,是否有錯別字;快捷鍵、熱鍵設置是否重復,操作是否有效;是否存在中英文混合;菜單是否與語境相符,如,登錄同一個應用程序,不同權限或級別的用戶應看到不同級別的菜單,并使用不同級別的功能;鼠標右鍵是否包括快捷菜單。
3. 文本框控件的測試設計。在對文本框控件進行測試時,重點考慮的問題有:能否輸入正常的字母或數字、已存在的文件名、超長字符、默認值、空白、空格;若只允許輸入字母,嘗試輸入數字后,結果顯示是否符合設計要求,反之,嘗試輸入字母;利用復制、黏貼等操作強制輸入程序不允許的輸入數據或輸入不符合格式的數據時,結果顯示是否符合設計要求;輸入特殊字符集或超過文本框長度的字符、文本時,所輸入的內容顯示是否正常。
4. 按鈕控件的測試設計。在對按鈕控件進行測試時,重點考慮的問題:點擊按鈕能夠正確響應操作;對非法的輸入或操作給出足夠的提示說明;對可能造成數據無法恢復的操作必須給出確認信息,給用戶放棄選擇的機會。
5. 組合列表框、復選框、列表框控件的測試設計。在對組合列表框、復選框、列表框控件進行測試時,所要考慮問題與文本框的基本相同,不再重復描述。
6. 滾動條控件的測試設計。在對滾動條控件進行測試時,重點考慮的問題:使滾動條的長度根據顯示信息的長度或寬度及時變換,便于用戶了解顯示信息的位置和百分比;拖動滾動條,檢查屏幕刷新情況,并查看是否有亂碼;單擊滾動條;用滾輪控制滾動條;滾動條的上下按鈕。
7. 各種控件在窗體中混合使用時的測試設計。在對各種控件在窗體中混合使用時的測試設計進行測試時,重點考慮的問題有:控件間的相互作用是否合理;Tab鍵的順序設置(一般是從上到下,從左到右)是否合理;熱鍵、Enter鍵和Esc鍵能否正常使用。在測試中,應遵循由簡入繁的原則,先進行單個控件功能的測試,確保功能實現無誤后,再進行多個控件的功能組合的測試;對密碼輸入框進行測試時要注意進行字母大寫輸入的測試。
以某工資支付系統登錄界面為例,該界面包含2個文本框控件、1個按鈕控件、1個復選框控件以及多個Label控件。接下來對每個構成部件分別進行考查。該系統登錄界面如圖1所示。

1. 根據測試設計需要對文本框控件加以考慮的因素。
(1)需要考查的屬性。包括字體、選中的文本、文本以及文本長度有無異常。
(2)需要測試的事件。包括單擊、KeyDown、KeyUp和Key-Press、文本改變等事件響應是否正常。
(3)設計的用例還應包括的內容。輸入正常的字母或數字、超長字符時,程序能否正確處理;輸入默認值、空格,程序能否正確處理;若員工ID只允許輸入數字,嘗試輸入字母,查看程序處理結果是否正確;輸入特殊字符集如NULL及 等時,程序能否正確處理。
2. 根據測試設計需要對“登錄”按鈕控件加以考慮的因素。
(1)考查的屬性包括文本、啟用,考查按鈕對象中最重要的事件,如單擊、雙擊。
(2)設計的用例還應包括以下內容:點擊按鈕能夠正確響應操作;對非法的輸入或操作給出足夠的提示說明,如輸入錯誤員工ID和密碼有出錯提示;對可能造成數據無法恢復的操作必須給出確認信息,給用戶放棄選擇的機會;用戶第三次使用錯誤的密碼登錄,將導致系統被鎖定。
3. 根據測試設計需要對復選框控件加以考慮的因素。checked屬性值在控件被單擊后,能否從假變成真,或者從真變成假; 執行該復選框的功能,選中后是否可以保存信息,下次登錄不用重新錄入。
4. 根據測試設計需要對多個Label控件加以考慮的因素??疾橐韵聦傩裕捍笮 ⑽谋尽⒆煮w、顏色、位置和可見性,觀察這些屬性有無異常。
現代計算機應用中,GUI軟件占據日趨重要的地位,但對這些軟件的測試存在形式化程度低、規范性差和缺乏客觀測試評判標準等問題。這類問題通常由測試人員根據設計書、憑借經驗設計測試用例來解決,具有隨機性大、錯誤檢驗能力低的缺點,因此,研究基于GUI的測試技術具有重要的現實意義。