功能測(cè)試——控件測(cè)試
對(duì)于單個(gè)邏輯功能,測(cè)試工程師需要關(guān)注其是否正確實(shí)現(xiàn)了需求定義的功能性需求,并需明確該需求是否確實(shí)應(yīng)該在需求中體現(xiàn)。
例如,登陸功能,需關(guān)注其能否正確實(shí)現(xiàn)合法數(shù)據(jù)能夠登陸,而非法數(shù)據(jù)拒絕登陸。商品查詢功能中的排序功能,如果系統(tǒng)默認(rèn)設(shè)計(jì)為降序排序,則需弄清楚用戶是否有此需求,如果有,則驗(yàn)證該排序是否正確實(shí)現(xiàn)了默認(rèn)降序功能。
貫穿于整個(gè)業(yè)務(wù)系統(tǒng)的邏輯功能,需保證其單個(gè)功能的正確性,然后才是整個(gè)業(yè)務(wù)流程的正確性測(cè)試。
【案例1 ECShop注冊(cè)控件測(cè)試】
Web系統(tǒng)中,客戶端通過(guò)Post等方式發(fā)送請(qǐng)求與服務(wù)器交互時(shí),大部分是以表單的方式發(fā)送,如圖1所示。

圖1 ECShop用戶注冊(cè)頁(yè)面
圖1是ECShop網(wǎng)站用戶注冊(cè)頁(yè)面,用戶填寫相關(guān)數(shù)據(jù)信息后,使用Post方法提交請(qǐng)求至“user.php”邏輯處理頁(yè)面進(jìn)行注冊(cè)操作。該表單上共有6個(gè)表單控件:用戶名文本編輯框、email文本編輯框、密碼文本編輯框、確認(rèn)密碼文本編輯框、復(fù)選框、注冊(cè)按鈕,其對(duì)應(yīng)的頁(yè)面源代碼如下:
常見(jiàn)的業(yè)務(wù)系統(tǒng)基本頁(yè)面元素從用戶角度考慮一般包含編輯框、按鈕、圖片/音頻/視頻、下拉列表、單選按鈕、復(fù)選框、Flash插件等幾種。
01
編輯框
需考慮其默認(rèn)焦點(diǎn)、輸入長(zhǎng)度、輸入內(nèi)容類型(字母、漢字、特殊符號(hào)、腳本代碼等)、輸入格式限制、能否粘貼輸入、能否刪除文本等因素。例如,圖5- 14中的“用戶名”字段,測(cè)試時(shí)需考慮其用戶名長(zhǎng)度、組成、格式限制、是否重名等情況,測(cè)試用例設(shè)計(jì)時(shí),可利用等價(jià)類、邊界值方法詳細(xì)設(shè)計(jì)。
圖1假設(shè)是ECShop系統(tǒng)的DEMO原型圖,測(cè)試工程師可根據(jù)該DEMO,提取需求,如表1所示。

上表僅列出了DEMO中明確給出的顯性需求,測(cè)試工程師在考慮顯性需求的同時(shí)還應(yīng)當(dāng)關(guān)注被測(cè)對(duì)象的隱性需求,如“email”郵箱格式、“確認(rèn)密碼”應(yīng)當(dāng)與“密碼”輸入保持一致等。更新后的需求表如表2所示。

通過(guò)類似的方法,測(cè)試工程師進(jìn)行編輯框?qū)ο鬁y(cè)試分析時(shí),需明確每個(gè)輸入框的限制條件,這樣才能保證測(cè)試覆蓋率,降低漏測(cè)風(fēng)險(xiǎn)。
02
按鈕
大部分Web系統(tǒng)都用常規(guī)按鈕提交請(qǐng)求或?qū)崿F(xiàn)功能跳轉(zhuǎn),也可能使用圖片或其他控件實(shí)現(xiàn)按鈕功能。對(duì)于按鈕而言,一般需考慮其默認(rèn)焦點(diǎn)、按鈕視圖、按鈕功能、腳本觸發(fā)等方面。
HTML中的按鈕有三種屬性:Button、Submit、Reset。
1) Button
Button本身不具備數(shù)據(jù)提交傳遞功能,如需實(shí)現(xiàn)提交功能,需綁定腳本,如點(diǎn)擊某個(gè)按鈕,出現(xiàn)新的界面。
被測(cè)對(duì)象如果包含此類button,測(cè)試工程師應(yīng)當(dāng)關(guān)注其實(shí)現(xiàn)方式是否正確,是否能夠觸發(fā)相關(guān)操作。
2)Submit
Submit是Button最常用的類型,當(dāng)需將表單數(shù)據(jù)提交至服務(wù)器時(shí),可利用Submit按鈕,自動(dòng)提交數(shù)據(jù)信息。需注意的是,如果代碼中增加了輸入驗(yàn)證類的JS腳本,提交數(shù)據(jù)時(shí)可能出現(xiàn)重復(fù)提交數(shù)據(jù)的缺陷。ECShop用戶注冊(cè)表單中的“立即注冊(cè)”按鈕使用的是“Submit”類型。
3)Reset
當(dāng)頁(yè)面數(shù)據(jù)信息輸入錯(cuò)誤或需重新填寫時(shí),可使用Button的“Reset”屬性。測(cè)試工程師測(cè)試此類按鈕時(shí)需關(guān)注reset功能是否實(shí)現(xiàn),并且光標(biāo)位于第一個(gè)必填項(xiàng)。
除了Button類型需驗(yàn)證外,還需驗(yàn)證Button的文字描述及UI設(shè)計(jì)。
03
圖片
圖片在軟件系統(tǒng)中應(yīng)用非常廣泛,用戶往往因?yàn)槟承┚赖膱D片吸引他而選擇使用軟件系統(tǒng),測(cè)試工程師測(cè)試實(shí)施時(shí),需對(duì)系統(tǒng)中的圖片進(jìn)行測(cè)試,保證良好的用戶體驗(yàn)。
圖片測(cè)試包括圖片內(nèi)容、大小、顯示、Alt屬性、鏈接等幾個(gè)方面。
1)內(nèi)容
圖片內(nèi)容應(yīng)該準(zhǔn)確表述當(dāng)前需表述的主題,如購(gòu)物車示意圖,一般使用類似圖5- 15所示的樣式表示,而不會(huì)用箱包、手提袋等形象,不恰當(dāng)?shù)氖疽鈭D容易引起誤解。

圖2 圖片形象表示圖
如果涉及顏色設(shè)計(jì),一般也有特定的要求,需根據(jù)界面原型設(shè)計(jì)實(shí)現(xiàn)。同時(shí),任何圖片內(nèi)容均不能違法。
每個(gè)人對(duì)色彩的理解不一樣,應(yīng)當(dāng)根據(jù)原型設(shè)計(jì)進(jìn)行驗(yàn)證,如果沒(méi)有,測(cè)試工程師可根據(jù)自己的感覺(jué)判斷,但提出帶有主觀性質(zhì)的缺陷一般定義為最低級(jí)別。
2)大小
圖片容量大小關(guān)乎頁(yè)面響應(yīng)性能,因此應(yīng)適當(dāng)降低圖片容量大小,選擇更便于網(wǎng)絡(luò)傳輸?shù)膱D片格式,如jpg、png等。
除了圖片容量大小外,尺寸大小也應(yīng)當(dāng)考慮,不能造成整體界面顯示變形,有任何違和感。
3)顯示
圖片顯示更多關(guān)注于圖片顯示的清晰度、協(xié)調(diào)性,以ECShop中的商品圖片為例,顯示較為模糊,當(dāng)然這個(gè)跟上傳的商品圖片質(zhì)量有關(guān),但如果系統(tǒng)設(shè)計(jì)了圖片壓縮功能,導(dǎo)致圖片顯示不清晰,則需提出缺陷。圖3所示的圖片顯示較為模糊,不夠清晰。

圖3 商品圖片顯示
4)Alt屬性
有時(shí)候需對(duì)圖片進(jìn)行備注,尤其是圖片作為菜單時(shí),鼠標(biāo)移動(dòng)到該圖片時(shí),顯示對(duì)應(yīng)的菜單名稱,測(cè)試工程師應(yīng)當(dāng)測(cè)試該alt屬性表述是否正確,是否有錯(cuò)別字,字體設(shè)置是否正確。Alt屬性示例如圖4所示。

圖4 圖片Alt屬性示例
5)鏈接
Web系統(tǒng)設(shè)計(jì)時(shí),有時(shí)候?qū)D片作為鏈接進(jìn)行頁(yè)面跳轉(zhuǎn),也可能將圖片作為按鈕使用,測(cè)試時(shí)需驗(yàn)證是否實(shí)現(xiàn)了對(duì)應(yīng)的功能。
04
音頻
如果Web系統(tǒng)中引用了某些背景音樂(lè)時(shí),需根據(jù)產(chǎn)品需求驗(yàn)證自動(dòng)播放功能是否正常實(shí)現(xiàn),音頻文件是否正確,播放插件能否正常啟用等。如果產(chǎn)品設(shè)計(jì)不允許用戶下載音頻文件,則測(cè)試工程師需進(jìn)行音頻鏈接安全性測(cè)試。
05
視頻
與音頻類似,視頻除了測(cè)試播放控制、播放插件、鏈接安全性之外,還需考慮視頻的壓縮格式、數(shù)據(jù)緩沖情況。
06
下拉列表
下拉列表在多元化的數(shù)據(jù)信息展示傳輸過(guò)程中經(jīng)常被用到,在測(cè)試過(guò)程中需關(guān)注其列表值是否正確,是否有重復(fù),選中后能否正確傳遞、是否可以多選等方面。

圖5 添加商品分類界面
某些下拉列表中的數(shù)據(jù)來(lái)源于其他功能,測(cè)試時(shí)需考慮功能間的耦合及先后邏輯關(guān)系。
07
單選按鈕
單選按鈕在Web系統(tǒng)中非常常見(jiàn),當(dāng)需實(shí)現(xiàn)多選一功能時(shí),一般會(huì)使用單選按鈕。測(cè)試過(guò)程中需關(guān)注單選按鈕是否有默認(rèn)設(shè)置以及選中后能否保存數(shù)據(jù)。

圖6單選按鈕功能
08
復(fù)選框
當(dāng)需要選擇多個(gè)數(shù)據(jù)時(shí),需使用復(fù)選框。Web測(cè)試中需考慮多選后能否實(shí)現(xiàn)期望的業(yè)務(wù)功能,如批量設(shè)置、批量刪除,能否在提交請(qǐng)求時(shí),觸發(fā)應(yīng)該觸發(fā)的腳本代碼。

圖7 復(fù)選框功能
09
Flash插件
很多時(shí)候,為了實(shí)現(xiàn)更好的交互性,可能使用Flash插件或其他應(yīng)用程序插件與用戶進(jìn)行交互,在此類元素的測(cè)試過(guò)程中需考慮其單獨(dú)功能的實(shí)現(xiàn)情況,以及其與應(yīng)用系統(tǒng)的接口能否正確傳遞參數(shù),保證業(yè)務(wù)流程的正確性。
單個(gè)邏輯功能測(cè)試時(shí),需考慮的因素較多,因此測(cè)試工程師在測(cè)試時(shí)需仔細(xì)認(rèn)真,不能遺漏任何測(cè)試點(diǎn),因?yàn)闊o(wú)法確切模擬最終用戶的業(yè)務(wù)活動(dòng),僅能盡可能地模擬它們,降低系統(tǒng)發(fā)布后出錯(cuò)的可能性。

