功能測(cè)試——表格測(cè)試
表格作為數(shù)據(jù)庫(kù)數(shù)據(jù)在UI層面的直觀展示,是用戶實(shí)現(xiàn)信息管理的最佳媒介,因此在測(cè)試活動(dòng)中經(jīng)常涉及到這方面的測(cè)試。
【案例 后臺(tái)商品管理列表測(cè)試】
ECShop系統(tǒng)的后臺(tái)商品管理功能頁(yè)面,采用的是表格形式展現(xiàn)數(shù)據(jù),如圖1所示。

圖1 ECShop后臺(tái)商品信息列表
表格測(cè)試一般關(guān)注數(shù)據(jù)顯示、翻頁(yè)、附加功能等幾個(gè)方面。
01
數(shù)據(jù)顯示
用戶與系統(tǒng)的交互信息,很多時(shí)候通過(guò)數(shù)據(jù)形式記錄在數(shù)據(jù)庫(kù)中,通過(guò)邏輯代碼處理,以表格形式展示相關(guān)信息,用戶增加、修改、刪除以及查詢數(shù)據(jù)的最終結(jié)果都體現(xiàn)在表格上,因此驗(yàn)證數(shù)據(jù)顯示的正確性是表格測(cè)試的核心。
數(shù)據(jù)顯示主要涉及標(biāo)題欄、數(shù)據(jù)內(nèi)容、字符編碼、列寬等幾個(gè)方面。
1) 標(biāo)題欄
標(biāo)題欄應(yīng)該與產(chǎn)品需求/DEMO設(shè)計(jì)相同,字體設(shè)計(jì)一致,排序需遵從用戶習(xí)慣確定,如果系統(tǒng)有增加數(shù)據(jù)的功能,則標(biāo)題欄的內(nèi)容、順序應(yīng)與增加界面的布局相同。
以ECShop商品管理為例,添加商品的界面如圖2所示。

圖2 添加商品信息界面
從上圖得知,商品信息添加功能的字段分別是:商品名稱、商品貨號(hào)以及價(jià)格,那么商品列表標(biāo)題欄顯示順序也應(yīng)當(dāng)是商品名稱、商品貨號(hào)、價(jià)格等,如圖3所示。如果商品貨號(hào)排在商品名稱前面,則測(cè)試工程師可提出建議性缺陷。

圖3 商品列表顯示界面
圖3標(biāo)題欄顯示順序與添加商品信息界面中的字段布局相同,因此測(cè)試通過(guò)。但需注意的是,添加商品信息時(shí)的“商品貨號(hào)”在商品列表中顯示為“貨號(hào)”,這種情況雖無(wú)大礙,但測(cè)試工程師可以提交一個(gè)建議性的缺陷,建議開(kāi)發(fā)工程師將二者表述統(tǒng)一,做到上下文一致。
2) 數(shù)據(jù)內(nèi)容
表格顯示格式確定后,需驗(yàn)證數(shù)據(jù)內(nèi)容是否正確,如果“商品名稱”列下顯示的是“商品貨號(hào)”,則是很?chē)?yán)重的缺陷,測(cè)試工程師應(yīng)當(dāng)細(xì)致檢查數(shù)據(jù),尤其是通過(guò)字段名稱跳轉(zhuǎn)到新頁(yè)面的數(shù)據(jù)信息,如點(diǎn)擊“商品名稱”可打開(kāi)該商品的詳細(xì)信息,在測(cè)試過(guò)程中需仔細(xì)校對(duì)數(shù)據(jù)的正確性。
3) 字符編碼
字符編碼一般跟程序代碼有關(guān),可能由于瀏覽器編碼設(shè)置錯(cuò)誤,導(dǎo)致亂碼,如圖4所示。

圖4 商品信息顯示亂碼
上述情況是由于FireFox瀏覽器編碼改為簡(jiǎn)體中文,導(dǎo)致數(shù)據(jù)顯示亂碼,將瀏覽器重新設(shè)置為Unicode格式后顯示正常,測(cè)試工程師在執(zhí)行測(cè)試時(shí),需確認(rèn)是由于瀏覽器編碼原因?qū)е聛y碼錯(cuò)誤還是因?yàn)槌绦虼a字符集設(shè)計(jì)錯(cuò)誤導(dǎo)致亂碼。
有時(shí)候亂碼錯(cuò)誤可能是因?yàn)閿?shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)時(shí)造成的錯(cuò)誤,以Mysql數(shù)據(jù)庫(kù)為例,執(zhí)行SQL導(dǎo)入時(shí),如果不進(jìn)行匹配的字符集設(shè)置,可能導(dǎo)致亂碼,這種情況一般是環(huán)境搭建問(wèn)題,與程序代碼無(wú)關(guān),設(shè)置好數(shù)據(jù)庫(kù)字符集格式即可。

圖5 數(shù)據(jù)庫(kù)數(shù)據(jù)亂碼
4) 列寬
列寬設(shè)置不合理將會(huì)導(dǎo)致表格界面顯示錯(cuò)亂,或者當(dāng)列數(shù)據(jù)內(nèi)容較多時(shí),會(huì)導(dǎo)致頁(yè)面被撐開(kāi),從而導(dǎo)致界面顯示錯(cuò)誤,這種情況下,需測(cè)試系統(tǒng)是否具有自適應(yīng)功能,當(dāng)數(shù)據(jù)超過(guò)界面定義的邊界時(shí)自動(dòng)截取或收縮,如果沒(méi)有自適應(yīng)功能,則具體情況具體分析,但必須保證界面顯示美觀。

圖6 商品分類列寬顯示界面
ECShop商品分類管理中,針對(duì)商品類別名稱長(zhǎng)度進(jìn)行了控制,當(dāng)超過(guò)20個(gè)漢字時(shí),系統(tǒng)自動(dòng)截取,僅保留前20個(gè)漢字,并在顯示列表中固定列寬,這種情況下,就不會(huì)出現(xiàn)界面被撐開(kāi)、顯示錯(cuò)亂的現(xiàn)象。但此處仍有個(gè)細(xì)節(jié)問(wèn)題,商品分類列表中,單行可容納20個(gè)漢字,但在19個(gè)漢字時(shí)換行,第二行僅有1個(gè)字,測(cè)試工程師可提出建議,加大列寬,以容納換行的1個(gè)漢字,或者單行超過(guò)10個(gè)漢字時(shí)換行,盡可能美化UI,當(dāng)然,這僅僅是建議,可根據(jù)UI設(shè)計(jì)人員的設(shè)計(jì)測(cè)試。
02
翻頁(yè)
翻頁(yè)功能是絕大多數(shù)表格都應(yīng)用到的功能,通常有第一頁(yè)、最后一頁(yè)、上一頁(yè)、下一頁(yè)、跳轉(zhuǎn)第_頁(yè)等,這類功能測(cè)試根據(jù)字面意思測(cè)試即可,跳轉(zhuǎn)功能這可根據(jù)文本編輯框的測(cè)試方法進(jìn)行,如輸入非數(shù)字、輸入單引號(hào)等。
有些翻頁(yè)功能設(shè)計(jì)時(shí),次頁(yè)顯示的第一條數(shù)據(jù)是前一頁(yè)的最后一條數(shù)據(jù),設(shè)計(jì)如此,并非缺陷,測(cè)試工程師在測(cè)試時(shí)應(yīng)當(dāng)與開(kāi)發(fā)工程師確認(rèn)。
03
附加功能
表格中有時(shí)候會(huì)提供查看、增加、修改、刪除數(shù)據(jù)以及設(shè)置每頁(yè)顯示多少條數(shù)據(jù)的功能,測(cè)試工程應(yīng)當(dāng)逐個(gè)測(cè)試,以確保每項(xiàng)功能正確。
1) 查看數(shù)據(jù)
不同的設(shè)計(jì)方法,提供了不同的功能,有些表格通過(guò)記錄名稱打開(kāi)數(shù)據(jù)詳細(xì)信息,有些則通過(guò)功能按鈕打開(kāi)數(shù)據(jù)詳細(xì)信息,無(wú)論哪種,需確保數(shù)據(jù)信息的正確性,這類測(cè)試如有條件,可連接數(shù)據(jù)庫(kù)通過(guò)SQL語(yǔ)句直接查詢相關(guān)數(shù)據(jù),與界面數(shù)據(jù)信息進(jìn)行對(duì)比測(cè)試。
2) 增加數(shù)據(jù)
測(cè)試增加數(shù)據(jù)功能時(shí),點(diǎn)擊“增加”按鈕,如果是彈出窗口,則表格數(shù)據(jù)信息不應(yīng)當(dāng)刷新,在新的界面中添加相關(guān)數(shù)據(jù),添加完成返回時(shí),界面應(yīng)當(dāng)全部或局部刷新,顯示新增加的數(shù)據(jù)。
如果新增加的數(shù)據(jù)未能出現(xiàn)在列表中,首先應(yīng)當(dāng)確認(rèn)該數(shù)據(jù)是否應(yīng)該顯示在當(dāng)前頁(yè)面,如果是,再檢查是否是因?yàn)闉g覽器緩存問(wèn)題導(dǎo)致頁(yè)面刷新錯(cuò)誤,最后驗(yàn)證數(shù)據(jù)庫(kù)是否存入成功數(shù)據(jù)。
3) 修改數(shù)據(jù)
很多產(chǎn)品在設(shè)計(jì)修改功能時(shí),要求將原來(lái)的設(shè)計(jì)讀取出來(lái),這點(diǎn)與根據(jù)產(chǎn)品設(shè)計(jì)確定。如果需讀出原數(shù)據(jù),測(cè)試工程師需確認(rèn)原數(shù)據(jù)讀取是否正確,其他測(cè)試方法與增加數(shù)據(jù)類似。
修改數(shù)據(jù)時(shí),有些字段是不可重新編輯的,如系統(tǒng)自動(dòng)生成的id號(hào),或者分配的流水號(hào),貸款申請(qǐng)單號(hào)等,如果進(jìn)入修改頁(yè)面,這些數(shù)據(jù)處于可編輯狀態(tài),無(wú)論是否能否真正編輯,都應(yīng)當(dāng)提交缺陷。
修改數(shù)據(jù)時(shí)的必填項(xiàng)設(shè)置應(yīng)該與增加數(shù)據(jù)設(shè)置一致。
修改數(shù)據(jù)具有一定的破壞性,因此數(shù)據(jù)修改操作在提交時(shí)應(yīng)該給予信息提示,提示信息應(yīng)與產(chǎn)品需求一致。
修改數(shù)據(jù)需考慮數(shù)據(jù)鎖定問(wèn)題,即數(shù)據(jù)被其他用戶或操作打開(kāi)時(shí),該數(shù)據(jù)不可編輯(修改或刪除),以保證數(shù)據(jù)的一致性與安全性。
4) 刪除數(shù)據(jù)
刪除數(shù)據(jù)最具破壞性,在執(zhí)行刪除數(shù)據(jù)操作前,系統(tǒng)應(yīng)當(dāng)給予提示,如有必要可進(jìn)行二次確認(rèn),如果用戶放棄刪除操作,則列表不應(yīng)當(dāng)刷新,如果用戶確認(rèn)執(zhí)行刪除操作,刪除操作完成后,列表進(jìn)行刷新,已刪除的信息不應(yīng)當(dāng)出現(xiàn)。
刪除數(shù)據(jù)與修改數(shù)據(jù)一樣,同樣需考慮數(shù)據(jù)鎖定問(wèn)題,用戶在打開(kāi)某條記錄時(shí),其他用戶或操作不可進(jìn)行修改或刪除操作。常用的一個(gè)測(cè)試方法是具有權(quán)限的兩個(gè)用戶同時(shí)打開(kāi)某條記錄,A用戶先執(zhí)行刪除操作,B用戶再執(zhí)行修改操作,驗(yàn)證被測(cè)對(duì)象的處理方式。
以ECShop商品類別管理為例,后臺(tái)管理分別利用兩個(gè)瀏覽器登陸后,選擇某個(gè)商品類別進(jìn)行修改及刪除操作。先刪除類別,再進(jìn)行修改,ECShop提示修改成功,但返回類別列表時(shí),該類別并不存在,這種情況測(cè)試工程師應(yīng)當(dāng)提出缺陷,因?yàn)橛脩粼趯?shí)際應(yīng)用過(guò)程中可能會(huì)出現(xiàn)類似沖突的問(wèn)題,系統(tǒng)應(yīng)當(dāng)給予合理的處理。
5) 設(shè)置每頁(yè)顯示條數(shù)
與跳轉(zhuǎn)功能一樣,需測(cè)試合法輸入與非法輸入的情況,其他根據(jù)需求確認(rèn)即可。

