這個(gè)章節(jié)是屬于用例設(shè)計(jì)進(jìn)階部分,閱讀前需要先掌握基本的用例設(shè)計(jì)技巧。
工作了幾年以后音瓷,發(fā)現(xiàn)在同樣的一個(gè)領(lǐng)域去編寫(xiě)測(cè)試用例,發(fā)現(xiàn)是存在一定的劃分與封裝技巧的夹抗,本章主要介紹,在實(shí)際項(xiàng)目運(yùn)用的一個(gè)用例庫(kù)的概念纵竖。本章的目的不只是為了的說(shuō)明這種封裝的方法漠烧,也是為了向大家介紹用例設(shè)計(jì)進(jìn)階可以考慮的一個(gè)方向。
1靡砌、搭建用例框架
我們可以基于分層的測(cè)試?yán)砟钜雅АI(yè)務(wù)流程的梳理、固定的異常場(chǎng)景等梳理我們所需要的測(cè)試框架通殃,其實(shí)也就是我們平時(shí)在寫(xiě)用例的時(shí)候的一個(gè)思路的凝結(jié)度液。例如下面這張圖
在做軟件測(cè)試的這幾年,我慢慢發(fā)現(xiàn)自己拿到一個(gè)案子的時(shí)候已經(jīng)能夠比較熟練的運(yùn)用一個(gè)思路去寫(xiě)對(duì)應(yīng)的測(cè)試用例画舌,但是每次總會(huì)有一些遺漏是在測(cè)試過(guò)程中才發(fā)現(xiàn)的堕担,比如在測(cè)試過(guò)程中發(fā)現(xiàn)舊版本有些問(wèn)題,而對(duì)應(yīng)用例卻根本沒(méi)有提及曲聂,才發(fā)現(xiàn)唉怎么這個(gè)方面又忘記補(bǔ)上了霹购,基于這個(gè)思路我搭建了在寫(xiě)軟件用例的時(shí)候一般要思考的幾個(gè)方向。例如我的個(gè)人思路就是基于策劃案朋腋,對(duì)于功能結(jié)構(gòu)清晰的案子畫(huà)出功能結(jié)構(gòu)圖齐疙,每個(gè)小小的子功能去套用對(duì)應(yīng)的思路。例如
這樣先保證用例正向的覆蓋面不會(huì)把正向的重要的模塊遺漏旭咽,如果是流程性比較強(qiáng)功能建議融合流程圖來(lái)進(jìn)行綜合評(píng)估會(huì)比較好贞奋。
然后再對(duì)異常的場(chǎng)景進(jìn)行回顧,從入行開(kāi)始無(wú)論是通過(guò)學(xué)習(xí)穷绵、前輩口頭指導(dǎo)轿塔,我們多多少少了解了一些的需要固定去考慮的基于移動(dòng)端的異常場(chǎng)景,這部分也可以沉淀總結(jié)成固定的一些思維方向请垛。例如基于用戶(hù)場(chǎng)景會(huì)去考慮的一些方向也可以總結(jié)出一些用例庫(kù)催训。例如交叉事件用例庫(kù)(又名沖突事件)、手機(jī)權(quán)限相關(guān)用例庫(kù)等等宗收。尤其一些固定的控件會(huì)和這些有緊密的結(jié)合漫拭。(例如音頻播放器與交叉事件、相機(jī)與權(quán)限申請(qǐng))
2混稽、控件化的用例
就框架中體現(xiàn)的采驻,每個(gè)功能子模塊中我們會(huì)發(fā)現(xiàn)歸根到底我們的移動(dòng)端功能就是由那些固定的控件組裝完成的审胚,那么我們是否可以將控件這部分重復(fù)的思路抽取出來(lái)將用例控件化呢。例如某個(gè)按鈕礼旅、某個(gè)列表的用例正向異常場(chǎng)景我們封裝完了以后膳叨,只要在有使用的時(shí)候復(fù)制或者調(diào)用這些用例根據(jù)需求進(jìn)行修改即可。這樣我們能夠?qū)⑦@些細(xì)節(jié)的用例設(shè)計(jì)時(shí)間節(jié)省也可以將用例設(shè)計(jì)的水平統(tǒng)一提高上來(lái)痘系。
具體可以封裝的控件有哪些可以與對(duì)應(yīng)的操作系統(tǒng)開(kāi)發(fā)文檔進(jìn)行結(jié)合菲嘴。
3、封裝異常用例庫(kù)
用例除了控件這塊汰翠,還有很多時(shí)候我們會(huì)去思考一些比較大塊方向的異常場(chǎng)景龄坪,例如:
1)兼容
包括:
網(wǎng)絡(luò)兼容、機(jī)型兼容复唤、版本兼容健田、多端兼容等
2)耦合(不同功能之間的聯(lián)系與沖突)
新功能耦合,同期上線(xiàn)的所有新功能中是否存在聯(lián)系與沖突
舊功能耦合佛纫,上線(xiàn)的新功能與舊功能是否存在聯(lián)系與沖突
3)用戶(hù)場(chǎng)景
我一直覺(jué)得用戶(hù)場(chǎng)景測(cè)試是我發(fā)現(xiàn)重要的bug的必殺技妓局,因?yàn)檫@塊可以覆蓋大部分的用戶(hù)使用場(chǎng)景,發(fā)現(xiàn)一些影響范圍廣呈宇,影響程度大的bug好爬。拿到功能的時(shí)候我會(huì)對(duì)自我角色做一個(gè)切換,如果我是用戶(hù)甥啄,我會(huì)如何去使用這個(gè)產(chǎn)品抵拘,我最在意的是什么?同時(shí)在有限的時(shí)間內(nèi)型豁,這個(gè)方法也會(huì)被我用作驗(yàn)收他人測(cè)試質(zhì)量的一個(gè)方法僵蛛,因?yàn)檫@些場(chǎng)景拿下,心理至少會(huì)有50%的安全感迎变。
有時(shí)對(duì)于一些重要的功能充尉,在自我用戶(hù)體驗(yàn)的之外,我還會(huì)去邀請(qǐng)一些貼近用戶(hù)群體的小伙伴來(lái)體驗(yàn)我的產(chǎn)品衣形。這個(gè)是一個(gè)辦法驼侠。
4)其他性能、安全等方面
除了第三點(diǎn)只是提供一個(gè)方向以外谆吴,另外2點(diǎn)我們都可以沉淀和總結(jié)出來(lái)的用例庫(kù)倒源。
用例設(shè)計(jì)其實(shí)是我們測(cè)試思維的一個(gè)體現(xiàn),說(shuō)用例的封裝句狼,其實(shí)是對(duì)我們?nèi)辗e月累經(jīng)驗(yàn)的沉淀與思考方向的擴(kuò)充笋熬。
用例庫(kù)這個(gè)本章僅僅提供一個(gè)概念,對(duì)于測(cè)試初學(xué)者來(lái)說(shuō)腻菇,可以在本章開(kāi)闊一下你的測(cè)試思維胳螟。對(duì)于用例設(shè)計(jì)有了一定年限的同學(xué)昔馋,也可以考慮做一些這方面的沉淀。對(duì)于也想要用用例庫(kù)這種方法來(lái)提升團(tuán)隊(duì)用例設(shè)計(jì)的同學(xué)糖耸,這里有幾點(diǎn)提醒也是我目前還沒(méi)有想明白的一些問(wèn)題秘遏。
1、用例的性?xún)r(jià)比
測(cè)試思維有多完善嘉竟,你的用例庫(kù)就會(huì)有多復(fù)雜邦危。在完善好你的用例庫(kù)以后,你會(huì)發(fā)現(xiàn)舍扰,原來(lái)基于遺漏你的用例只有100條铡俐。好了你補(bǔ)充完以后有1000條,而你的時(shí)間根本不夠支持你做這么完善的測(cè)試妥粟。(這也不意味著你可以繼續(xù)遺漏,我們需要知道自己沒(méi)有覆蓋到的區(qū)域是哪些)這個(gè)時(shí)候你就需要去思考你的用例性?xún)r(jià)比的問(wèn)題了吏够。什么樣的用例可以幫助你更加快速有效的發(fā)現(xiàn)更為重要的bug勾给。
2、用例庫(kù)的維護(hù)
如何確保你所生產(chǎn)出來(lái)的用例庫(kù)是最完善或者比較完善的锅知,并且可以切實(shí)在項(xiàng)目中應(yīng)用
3播急、用例庫(kù)使用的目的
你使用用例庫(kù)的目的是什么?提高用例設(shè)計(jì)質(zhì)量售睹?解決用例設(shè)計(jì)某些問(wèn)題桩警?還是節(jié)省時(shí)間?在后續(xù)的落地過(guò)程中都不能夠忘記你最初的目的昌妹,要不容易跑偏捶枢。
4、用例庫(kù)的擴(kuò)展使用(我的烏托邦)
用例庫(kù)的最終凝結(jié)是否可以運(yùn)用在自動(dòng)化上飞崖。又是否可以和精準(zhǔn)測(cè)試做個(gè)掛鉤烂叔?
這些都值得我們深思。
以上固歪。