測(cè)試用例的設(shè)計(jì)方法多維進(jìn)階版

質(zhì)量監(jiān)控的范圍和概念

1用戶體驗(yàn)是否舒服:

以用戶的角度對(duì)產(chǎn)品進(jìn)行使用,以找到不合理,體驗(yàn)差的功能點(diǎn)

2產(chǎn)品設(shè)計(jì)是否符合:

以產(chǎn)品的角度對(duì)產(chǎn)品設(shè)計(jì)的完整性進(jìn)行檢驗(yàn)

3性能狀況是否穩(wěn)定:

以系統(tǒng)運(yùn)維的角度找到產(chǎn)品性能的瓶頸

4邏輯設(shè)計(jì)是否存在漏洞:

以開(kāi)發(fā)人員的角度檢測(cè)產(chǎn)品的邏輯合理性

5 系統(tǒng)安全,數(shù)據(jù)安全是否有保障:

以不法分子,黑客的角度對(duì)產(chǎn)品進(jìn)行攻擊,以檢測(cè)產(chǎn)品的安全性

測(cè)試用例設(shè)計(jì)方法:

軟測(cè)行內(nèi)共識(shí)的設(shè)計(jì)方法不再贅述,轉(zhuǎn)帖一篇文章小白們可以自己去看:

測(cè)試用例的幾種常見(jiàn)設(shè)計(jì)方法

已有的常規(guī)方法我們可以照搬照用,但是從質(zhì)量管理的整體性來(lái)說(shuō),它僅僅是功能邏輯維度,主要參照物是產(chǎn)品設(shè)計(jì)文檔,所以我要補(bǔ)充的是另外的幾個(gè)維度。

所以包含上述方法在內(nèi)做個(gè)補(bǔ)充:

產(chǎn)品邏輯維度:

等價(jià)類,邊界值,錯(cuò)誤推測(cè),判定表法,正交實(shí)驗(yàn)

文字邏輯維度:

主語(yǔ),謂語(yǔ),賓語(yǔ),定語(yǔ),狀語(yǔ),補(bǔ)語(yǔ)為邏輯描述的基本要素。

其中,主語(yǔ),賓語(yǔ)通常是用戶和客戶端的關(guān)系,謂語(yǔ)可以理解為動(dòng)作,定語(yǔ)狀語(yǔ)為限制條件,補(bǔ)語(yǔ)為補(bǔ)充條件。

首先是正常語(yǔ)句,其次逐級(jí)否定,最后是逐級(jí)反義。(有關(guān)這個(gè)方法本人已經(jīng)用程序?qū)崿F(xiàn),可以自動(dòng)化生成)

UI維度

通常由UI設(shè)計(jì)師進(jìn)行檢查,但是也有可能需要測(cè)試人員進(jìn)行檢查。人工檢測(cè)包括字體,字號(hào),色值,布局。

寫過(guò)UI自動(dòng)化的都知道,UI自動(dòng)化的主要原理是頁(yè)面元素的的識(shí)別和命令賦予。

所以大致我們把它分為以下幾個(gè)設(shè)計(jì)方法:

1、文本框:字符類型,空,等價(jià)類,邊界值,特殊字符,編程語(yǔ)言關(guān)鍵字,sql關(guān)鍵字。

字符類型的限制走的是if和else,空值走的是null的判斷,等價(jià)類邊界值走的也是if邏輯,特殊字符主要是考驗(yàn)數(shù)據(jù)庫(kù)的兼容性,編程語(yǔ)言和sql關(guān)鍵字考驗(yàn)的是程序安全,避免報(bào)錯(cuò)信息出現(xiàn)代碼片段,sql語(yǔ)句。

2、復(fù)選框:數(shù)據(jù)來(lái)源,長(zhǎng)度,數(shù)據(jù)量

其中需要注意上下左右是否超出頁(yè)面范圍,數(shù)據(jù)量考驗(yàn)的是響應(yīng)時(shí)間和頁(yè)面內(nèi)存。

3、列表:數(shù)據(jù)來(lái)源,數(shù)據(jù)量,翻頁(yè)

這里說(shuō)一下翻頁(yè),翻頁(yè)主要驗(yàn)證的是sql是否有問(wèn)題,數(shù)據(jù)是否重復(fù),limit銜接處是否有重復(fù)。

4、按鈕:?jiǎn)螕?,雙擊,長(zhǎng)按,長(zhǎng)按移開(kāi),多點(diǎn)觸發(fā)

重點(diǎn)說(shuō)一下不符合產(chǎn)品設(shè)計(jì)操作的手勢(shì),比如單擊按鈕雙擊是否造成重復(fù)命令,頁(yè)面重疊,請(qǐng)求重復(fù)(數(shù)據(jù)安全)。多點(diǎn)觸發(fā)后是否出現(xiàn)重復(fù)頁(yè)面和矛盾請(qǐng)求。這里面的形成的異常測(cè)試,最嚴(yán)重的后果就是產(chǎn)生垃圾數(shù)據(jù)。

5、頁(yè)面跳轉(zhuǎn):中斷,返回。

主要監(jiān)測(cè)的是緩存是否正確,或者無(wú)效頁(yè)面是否創(chuàng)建垃圾數(shù)據(jù)。

6、多媒體:圖片,語(yǔ)音,視頻。正常查看,放大,音量,暫停,快進(jìn)等常規(guī)性驗(yàn)證。

設(shè)備維度

1、設(shè)備按鍵:比如安卓手機(jī):back鍵,menu鍵,home鍵。截圖,錄屏,旋轉(zhuǎn)屏,耳機(jī),音量,鎖屏,左右滑動(dòng)。電腦鍵盤:回車,方向page,home,end,backspace,insert,delete,printscr等是否符合用戶習(xí)慣,尤其產(chǎn)品文檔不太可能涉及這些細(xì)節(jié)時(shí),這里應(yīng)該遵循用戶習(xí)慣。

2、附件上傳或下載:文件格式,下載方式。

3、系統(tǒng)安全攔截:應(yīng)該使用主流的殺毒軟件,系統(tǒng)管家等對(duì)app或者網(wǎng)頁(yè)進(jìn)行檢測(cè),一方面如果確實(shí)有帶著病毒或者廣告的三方庫(kù)或者框架,也能及時(shí)找出,避免發(fā)布上線后因?yàn)轭愃圃蛟斐蓳p失。

4、內(nèi)存管理:程序本身的運(yùn)行需要占用一定的內(nèi)存空間,如果涉及到本地存儲(chǔ),分為兩個(gè)方向。第一個(gè)方向是,驗(yàn)證程序本身申請(qǐng)的內(nèi)存大小的邊界。第二是驗(yàn)證或計(jì)算設(shè)備本身的內(nèi)存多久可以占滿。通過(guò)程序本身或者系統(tǒng)管家類軟件能否清理。

5、網(wǎng)絡(luò):包括有線,wifi,2g,3g,4g,5g...網(wǎng)絡(luò)下的超時(shí)表現(xiàn),網(wǎng)絡(luò)切換表現(xiàn)。

6、三方服務(wù):比如音頻播放器,視頻播放器,特定格式的編輯器,查看器,瀏覽器,多媒體輸入/輸出設(shè)備的兼容系。三方服務(wù)是否能夠有效支撐,是否存在漏洞。如云服務(wù),地圖,聊天,輸入法,各類前后端框架是否對(duì)我方程序有不合理限制。

7、系統(tǒng):系統(tǒng)版本,內(nèi)核版本,蘋果,安卓,windows,安卓定制化系統(tǒng)(如小米,華為,三星,OPPO,可參考市場(chǎng)占有率酌情選擇),瀏覽器類型及版本(IE,谷歌,360,火狐等),兼容性測(cè)試的抽樣選型,以產(chǎn)品要求為主,或者以用戶量為主。

接口維度

包括調(diào)用是否正確,是否有次數(shù)限制,參數(shù)類型限制,響應(yīng)時(shí)間,并發(fā),穩(wěn)定性。

存儲(chǔ)維度

包含數(shù)據(jù)庫(kù),緩存服務(wù),隊(duì)列服務(wù),搜索引擎。存儲(chǔ)是否有字段缺失,獲取是否準(zhǔn)確。高可用,并發(fā),穩(wěn)定性。

性能維度

性能維度其實(shí)在上面已經(jīng)涉及到了。但是這里也單獨(dú)說(shuō)一下。他包含客戶端和服務(wù)端兩個(gè)方面。客戶端主要是內(nèi)存上的抗壓力。服務(wù)端主要是并發(fā)請(qǐng)求的抗壓力。同時(shí)兩端都需要進(jìn)行穩(wěn)定性測(cè)試。

安全維度

攻擊,竊取等方式手段有多種多樣。用戶資料主要存儲(chǔ)于數(shù)據(jù)庫(kù)和緩存服務(wù)器,或者是搜索引擎內(nèi)。測(cè)試人員會(huì)嘗試輸入程序的“關(guān)鍵字”,那么程序在exception處理上,應(yīng)該避免將數(shù)據(jù)庫(kù)相關(guān)的語(yǔ)句,微服務(wù)的名稱暴露出來(lái)。抓包攔截也是主要攻擊手段之一,我們的用戶拿著手機(jī)東北西走,很有可能進(jìn)入被監(jiān)控的無(wú)線網(wǎng)絡(luò)內(nèi),如果接口內(nèi)包含用戶的賬號(hào)密碼,電話地址等,是很有可能被攔截竊取的。所以返代理機(jī)制需要考慮增加,被監(jiān)控時(shí)應(yīng)予以提醒。惡意壓力請(qǐng)求是最為常見(jiàn)的,我們應(yīng)該在關(guān)鍵的地方做攔截,比如IP攔截,同一用戶單位時(shí)間請(qǐng)求量的攔截,請(qǐng)求間隔時(shí)間限制。對(duì)于數(shù)據(jù)的格式的嚴(yán)謹(jǐn)性需要增強(qiáng),有必要的話應(yīng)該加入加密字段,避免因?yàn)橛脩羯婕包S色,暴力,低俗,政治敏感信息牽連我方。

另外反編譯技術(shù)可以獲取到源代碼,所以必要的版本判斷需要增強(qiáng),應(yīng)該在檢測(cè)被篡改的客戶端發(fā)來(lái)的請(qǐng)求,要求其更新,否則不予處理。還有一種內(nèi)存監(jiān)控修改的方式,來(lái)跳轉(zhuǎn)到不該進(jìn)入的頁(yè)面或狀態(tài)。

自動(dòng)化維度

ui自動(dòng)化的設(shè)計(jì),通常以頁(yè)面為類,按鈕為方法,并且命名一個(gè)頁(yè)面為基礎(chǔ)頁(yè)面。校驗(yàn)結(jié)果也是頁(yè)面元素。對(duì)象化調(diào)用的設(shè)計(jì),混合api自動(dòng)化快速制作需要的數(shù)據(jù)。

api自動(dòng)化的設(shè)計(jì),通常以后端服務(wù)為類,接口為方法。校驗(yàn)結(jié)果包含固定響應(yīng),特殊響應(yīng),以及混合存儲(chǔ)查詢來(lái)驗(yàn)證寫入的正確性。

性能測(cè)試的設(shè)計(jì),以u(píng)i或api為基礎(chǔ),它的關(guān)注點(diǎn)是性能狀態(tài)。

監(jiān)控的設(shè)計(jì),以u(píng)i或api為基礎(chǔ),把較為重要的部分進(jìn)行心跳式調(diào)用,一旦發(fā)現(xiàn)crash或者500的情況要及時(shí)的通過(guò)郵件等方式發(fā)布警報(bào)。這個(gè)心跳間隔可以是任何時(shí)長(zhǎng)。

代碼維度

代碼邏輯不僅是遵循業(yè)務(wù)邏輯那么簡(jiǎn)單,最重要的是處理異常。例如,字符類型的轉(zhuǎn)化是否完整。多個(gè)if應(yīng)該每個(gè)都要跑到。exception/catch是否能補(bǔ)貨特定異常,是否能出現(xiàn)其它異常。如果我們的測(cè)試執(zhí)行,沒(méi)有走遍每一個(gè)ifelse,每一個(gè)trycatch,那么對(duì)于程序的完整性測(cè)試就沒(méi)有做到。如果函數(shù)寫得很粗糙,那么就會(huì)有很多的情況它無(wú)法處理,在代碼維度上,通常是很難進(jìn)行測(cè)試的。為什么呢,因?yàn)閷B毜拈_(kāi)發(fā)工程師,是專精一門開(kāi)發(fā)語(yǔ)言的,而測(cè)試通常掌握的都是腳本語(yǔ)言,有很多比較重的開(kāi)發(fā)語(yǔ)言是不會(huì)的,即便是會(huì)了一門兩門,那么可能換了工作環(huán)境了,你會(huì)的東西就用不到了,有的仁兄就說(shuō)了,我能給開(kāi)發(fā)檢查代碼,我還干什么測(cè)試呢。所以很多時(shí)候我們需要借助框架,借助工具去實(shí)現(xiàn),去告訴我們代碼覆蓋率,哪些地方我們沒(méi)有測(cè)試到,由檢測(cè)程序來(lái)告訴我們。同時(shí)作為一名優(yōu)秀的測(cè)試人員,應(yīng)該培養(yǎng)讀代碼的能力,重要的溝通能力,起碼做到,寫雖然寫不出來(lái),但是你讓我看,我能看明白代碼的意義,語(yǔ)言都是想通的,只是各有各的規(guī)范而已。

總結(jié)

當(dāng)然,我們都知道。測(cè)試工程師也是有相應(yīng)的級(jí)別劃分的。測(cè)試用例的設(shè)計(jì)本質(zhì),是為了給質(zhì)量保障提供有依據(jù)的參照物。而通常設(shè)計(jì)測(cè)試用例的工作,由中級(jí)及以下工程師負(fù)責(zé)。而有一些維度盡管想到了也不知道如何進(jìn)行。所以通常我們會(huì)把測(cè)試用例精確到UI維度。其它維度分別規(guī)劃在自動(dòng)化測(cè)試設(shè),性能測(cè)試設(shè)計(jì),以及安全測(cè)試設(shè)計(jì),在后三個(gè)測(cè)試設(shè)計(jì)內(nèi),其實(shí)也不能稱之為通常意義的測(cè)試用例了。目前測(cè)試團(tuán)隊(duì)通常有兩種模式,一種是以敏捷開(kāi)發(fā)衍生的全站式的測(cè)試工程師,一個(gè)功能模塊下的任務(wù)歸一個(gè)人負(fù)責(zé)到底,這個(gè)時(shí)候就適合做一個(gè)多維度的測(cè)試用例,從頭到尾做好保障。另外一種團(tuán)隊(duì)模式是功能測(cè)試和測(cè)試開(kāi)發(fā)分離的模式,功能測(cè)試僅負(fù)責(zé)到UI層面,而其它維度交給專職的測(cè)試開(kāi)發(fā)工程師進(jìn)行測(cè)試。無(wú)論哪一種執(zhí)行方式都應(yīng)該進(jìn)行全方位的質(zhì)量保障,如果有缺失,就會(huì)有隱患。尤其是用戶量較大的知名企業(yè),多少黑客和工作室再盯著,甚至國(guó)外的間諜都在打你們的主意,一不留神損失的不光是企業(yè),甚至是國(guó)家。

后續(xù)

對(duì)于各個(gè)維度可以展開(kāi)討論心得。而一個(gè)標(biāo)準(zhǔn)化的測(cè)試用例編寫平臺(tái)是必要的,因?yàn)槲覀儾豢赡苡涀∶恳粋€(gè)測(cè)試設(shè)計(jì)方法,需要一個(gè)標(biāo)準(zhǔn)化模板去做,起碼在編寫用例的過(guò)程當(dāng)中給予相關(guān)的提示提醒。有機(jī)會(huì)的話,我會(huì)把更多的細(xì)節(jié)記錄下來(lái)分享給朋友們,同時(shí)希望朋友們多多提供業(yè)內(nèi)好的東西,大家共同學(xué)習(xí)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容