快速編寫(xiě)測(cè)試用例技巧(以大數(shù)據(jù)平臺(tái)為例)

本話題暫不探討是否有必要編寫(xiě)詳細(xì)的測(cè)試用例纵朋,在確定要交付詳細(xì)的測(cè)試用例這個(gè)前提下柿顶,分享如何更高效地完成測(cè)試用例的編寫(xiě)。

對(duì)齊測(cè)試用例需求

首先操软、明確要完成的測(cè)試用例文檔目標(biāo)要求嘁锯,模板、范圍聂薪、粒度等家乘。

用例文檔使用者:測(cè)試人員
用例文檔范圍:覆蓋產(chǎn)品所有需求
用例模板內(nèi)容:編號(hào)、模塊藏澳、子模塊烤低、測(cè)試功能點(diǎn)、預(yù)置條件笆载、數(shù)據(jù)、步驟涯呻、預(yù)期結(jié)果凉驻、優(yōu)先級(jí)、用例類型复罐、關(guān)聯(lián)需求涝登、(編寫(xiě)人、更新時(shí)間效诅、執(zhí)行人胀滚、狀態(tài)趟济、執(zhí)行時(shí)間、執(zhí)行結(jié)果)
測(cè)試用例粒度:所有功能的正反用例
測(cè)試用例驗(yàn)收負(fù)責(zé)人:活久見(jiàn)(對(duì)齊目標(biāo))

快速了解產(chǎn)品

最快的速度熟悉產(chǎn)品業(yè)務(wù)背景與技術(shù)架構(gòu)咽笼,從而勾勒出測(cè)試用例整體框架顷编。任何一款產(chǎn)品,最終都能映射到【橫向擴(kuò)展】+【縱向分層】的組合模式下來(lái)完成用例覆蓋剑刑。

橫向業(yè)務(wù)擴(kuò)展

是指產(chǎn)品輔平來(lái)看媳纬,總共有哪些業(yè)務(wù)場(chǎng)景,提供了哪些能力施掏,即產(chǎn)品最上層的功能全景钮惠。

縱向架構(gòu)分層

是指從產(chǎn)品的技術(shù)架構(gòu)層面來(lái)分析,當(dāng)前產(chǎn)品可以宏觀上分為幾層七芭,以便于在用例驗(yàn)證是從不同層次上進(jìn)行驗(yàn)證和用例覆蓋.

以某云的大數(shù)據(jù)云平臺(tái)為例素挽,大數(shù)據(jù)云平臺(tái)的核心是集群。大數(shù)據(jù)云平臺(tái)集群是由一個(gè)或多個(gè)虛擬機(jī)實(shí)例組成的Hadoop狸驳、Flink预明、ZooKeeper集群。以Hadoop為例锌历,每個(gè)虛擬機(jī)實(shí)例上通常都運(yùn)行了一些daemon進(jìn)程(例如贮庞,NameNode、DataNode究西、ResouceManager和NodeManager)窗慎,集群上還可安裝各類大數(shù)據(jù)服務(wù)組件(例如:HBase、Hive卤材、Presto粘秆、Spark等)。

大數(shù)據(jù)云平臺(tái)的橫向核心業(yè)務(wù)功能全景線路圖(以Hadoop集群為例)悴灵,其核心流程有:Hadoop集群創(chuàng)建->集群管理->大數(shù)據(jù)組件管理->虛擬主機(jī)管理-> ... ->Hadoop集群釋放丹泉;功能全景如圖1所示:

大數(shù)據(jù)云平臺(tái)功能全景

大數(shù)據(jù)云平臺(tái)的縱向核心架構(gòu)分層簡(jiǎn)化為以下四層,如圖2:

  • 最頂層:大數(shù)據(jù)云平臺(tái)的門(mén)戶控制臺(tái)界面【UI】

  • 次頂層:大數(shù)據(jù)云平臺(tái)的門(mén)戶后端API【OpenApi】

  • 次底層:大數(shù)據(jù)云平臺(tái)的服務(wù)端【大數(shù)據(jù)服務(wù)組件】

  • 最底層:大數(shù)據(jù)云平臺(tái)的基礎(chǔ)設(shè)施【云服務(wù)器】

大數(shù)據(jù)云平臺(tái)架構(gòu)圖

快速制定方案

用例覆蓋范圍

1帆精、 從產(chǎn)品業(yè)務(wù)功能全景出發(fā)较屿,圍繞PRD(Product Requirement Document)、結(jié)合縱向架構(gòu)層次卓练,用例無(wú)死角全面覆蓋產(chǎn)品(論范圍)隘蝎。

(1)水平方向拓寬【寬度】,圍繞它的產(chǎn)品的主生命周期由大模塊至小模塊襟企、主功能至次要功能逐步擴(kuò)展支葉嘱么,借用魚(yú)骨圖梳理(如下圖3)或Xmind腦圖來(lái)整理。先梳理內(nèi)部顽悼,然后梳理外部對(duì)接的服務(wù)或產(chǎn)品場(chǎng)景(如:消息中心曼振、費(fèi)用中心几迄、告警中心、文檔中心冰评、數(shù)據(jù)開(kāi)發(fā)等等)映胁。



image.png

(2)橫向擴(kuò)展發(fā)散完成后,開(kāi)始縱向挖掘【深度】集索,比如屿愚,大數(shù)據(jù)云平臺(tái)核心架構(gòu)分為四層,每一層都需要拆開(kāi)了看:

  • 最頂層:UI層端對(duì)端用例走查(如前面所述)务荆,從頂層UI操作測(cè)試除了驗(yàn)UI結(jié)果妆距、還要確保底層集群服務(wù)器上的實(shí)際結(jié)果與界面顯示一致

  • 次頂層:第二層是門(mén)戶后端Api,直接調(diào)用OpenApi的相關(guān)測(cè)試用例覆蓋

  • 次底層:直接操作使用或強(qiáng)干預(yù)Hadoop集群服務(wù)組件函匕、檢驗(yàn)整個(gè)大數(shù)據(jù)云平臺(tái)的質(zhì)量娱据;由于大數(shù)據(jù)平臺(tái)上的服務(wù)組件非常多(有三十多),除了單個(gè)服務(wù)使用外盅惜,更要多個(gè)常用服務(wù)組件搭配組合驗(yàn)證中剩。

  • 最底層:直接操作使用或強(qiáng)干預(yù)服務(wù)器層(增、刪抒寂、停结啼、重啟、擴(kuò)屈芜、縮郊愧、升、網(wǎng)絡(luò)井佑、磁盤(pán)属铁、軟件配置等),檢驗(yàn)整個(gè)大數(shù)據(jù)云平臺(tái)的質(zhì)量

到目前為此躬翁,大數(shù)據(jù)云平臺(tái)整個(gè)Hadoop集群的測(cè)試用例全部范圍梳理完畢焦蘑。

用例設(shè)計(jì)方法

從測(cè)試類型出發(fā),有功能與非功能測(cè)試用例覆蓋盒发。本次不需要交付非功能用例例嘱,因此不展開(kāi);功能性用例設(shè)計(jì)方法:

  • 等價(jià)類劃分法(正等價(jià)類宁舰、負(fù)等價(jià)類)

  • 邊界值分析法(邊界內(nèi)蝶防、邊界外)

  • 判定表分析法

  • 因果圖

  • 錯(cuò)誤推測(cè)法

用例編寫(xiě)原則

  • 拆分原則: 全文制定統(tǒng)一的邊界。比如:以模塊為邊界明吩、當(dāng)不同模塊之間有關(guān)聯(lián)互動(dòng)時(shí)、預(yù)置條件作為分界線殷费,預(yù)置條件里的內(nèi)容放在上游模塊驗(yàn)證印荔。

  • 優(yōu)先級(jí)原則: 【創(chuàng)建】【查看】【使用(啟停等)】【修改】【刪除】為序 【主場(chǎng)景】?jī)?yōu)先低葫、【次要場(chǎng)景】其次 【正例】?jī)?yōu)先、【反例】其次

  • 基礎(chǔ)原則:用例無(wú)重復(fù)仍律、無(wú)遺漏嘿悬, 單一性原則、即一個(gè)用例僅覆蓋一個(gè)場(chǎng)景 清淅的步驟水泉、明確的預(yù)期結(jié)果不存在二義性 反復(fù)執(zhí)行結(jié)果相同


快速編寫(xiě)小妙招

制定統(tǒng)一標(biāo)準(zhǔn)

以某云大數(shù)據(jù)云平臺(tái)產(chǎn)品為例善涨,很多需求功能統(tǒng)一要求,為此設(shè)計(jì)一套標(biāo)準(zhǔn)化用例:

  • 比如: 創(chuàng)建新增的頁(yè)面草则,表單輸入項(xiàng)钢拧,需求約束統(tǒng)一要求(是否必填、長(zhǎng)度限制炕横、字符要求)源内,設(shè)計(jì)一套標(biāo)準(zhǔn)化用例,供其他頁(yè)面復(fù)用份殿。

  • 比如:每個(gè)模塊的權(quán)限測(cè)試用例膜钓,設(shè)計(jì)統(tǒng)一標(biāo)準(zhǔn)用例;

  • 比如:所有的OpenApi測(cè)試卿嘲,都是針對(duì)返回碼200颂斜、400、401拾枣、403沃疮、405、500的場(chǎng)景測(cè)試放前;

  • 比如:大數(shù)據(jù)平臺(tái)服務(wù)30多個(gè)忿磅,每個(gè)服務(wù)是不同的,但操作是類似:添加凭语、啟動(dòng)葱她、停止、修改配置似扔、部署吨些,為此設(shè)計(jì)統(tǒng)一標(biāo)準(zhǔn)用例 (此刻你是否有一種代碼重構(gòu)的既視感,定義一個(gè)標(biāo)準(zhǔn)的方法炒辉、供大家反復(fù)調(diào)用)豪墅。

提取公共組件

以某云大數(shù)據(jù)云平臺(tái)產(chǎn)品為例,其中包含了10個(gè)以上的列表頁(yè)面黔寇,對(duì)于每個(gè)列表都有分頁(yè)組件偶器、篩選、搜索、排序屏轰,這些公共組件的用例抽為【公共組件用例】颊郎,設(shè)計(jì)一套標(biāo)準(zhǔn)化用例,相關(guān)頁(yè)面復(fù)用即可霎苗。

注意:統(tǒng)一標(biāo)準(zhǔn)用例中姆吭,可變的項(xiàng)用{ABC}來(lái)替換,比如:在集群查看列表中篩選集群狀態(tài)時(shí)唁盏,把統(tǒng)一標(biāo)準(zhǔn)用例中的{ABC}替換成{集群狀態(tài)}即可内狸。

批量編寫(xiě)與自動(dòng)生成

在用例編寫(xiě)過(guò)程中,發(fā)現(xiàn)很多情況除了{(lán)某名稱或字段}不同厘擂,其它都是一樣的昆淡,此時(shí)可以批量編寫(xiě)(如:借助Sublime或直接傳變量用代碼生成),這樣也可以大大提高編寫(xiě)效率驴党。

在編寫(xiě)OpenApi相關(guān)測(cè)試用例時(shí)瘪撇,直接定義出一套OpenApi標(biāo)準(zhǔn)用例,以QA設(shè)計(jì)出的標(biāo)準(zhǔn)用例為模板港庄,然后編寫(xiě)代碼生成用例倔既,通過(guò)讀取OpenApi的Json文件,快速生成71個(gè)Api的測(cè)試用例鹏氧,近1000條詳細(xì)測(cè)試用例渤涌,高效。

活用全文替換

編寫(xiě)用例時(shí)把还,QA人員一定要用統(tǒng)一語(yǔ)言文字或格式实蓬,一來(lái)是給閱讀的人方便、二來(lái)是方便查找替換吊履,即通過(guò)全文查找替換能 快速維護(hù)用例。

有一次需求變更:由原來(lái)的一級(jí)菜單A001下二級(jí)菜單B002艇炎,變?yōu)榱艘患?jí)C001下D002酌伊;由于在整個(gè)產(chǎn)品的用例中,從一級(jí)菜單進(jìn)入二級(jí)菜單缀踪,全部都使用:A001->B002這種格式居砖,本次需求變更,直接全文查找替換一鍵完成驴娃。

前邊提到過(guò)設(shè)計(jì)了多套統(tǒng)一標(biāo)準(zhǔn)用例奏候,新的頁(yè)面復(fù)用時(shí),直接替換變量?jī)?nèi)容唇敞,生成當(dāng)前用例蔗草。又或者需求變更的剛好是統(tǒng)一標(biāo)準(zhǔn)用例的內(nèi)容咒彤,活用全文查找替換、一分鐘搞定用例維護(hù)蕉世。

總之蔼紧,必須要總結(jié)一套自己的方法來(lái)應(yīng)對(duì)這么龐大的編寫(xiě)工作量,否則在短期的時(shí)間內(nèi)無(wú)法完工狠轻。而高效編寫(xiě)用例的秒招,離不開(kāi)可復(fù)用彬犯、找共性向楼、提煉統(tǒng)一標(biāo)準(zhǔn),借用一些手段或工具自動(dòng)生成谐区。

結(jié)尾送君一句話:劃清領(lǐng)域邊界湖蜕、高復(fù)用、低耦合宋列!昭抒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市炼杖,隨后出現(xiàn)的幾起案子灭返,更是在濱河造成了極大的恐慌,老刑警劉巖坤邪,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熙含,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡艇纺,警方通過(guò)查閱死者的電腦和手機(jī)怎静,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)黔衡,“玉大人蚓聘,你說(shuō)我怎么就攤上這事∶私伲” “怎么了夜牡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)捞高。 經(jīng)常有香客問(wèn)我氯材,道長(zhǎng),這世上最難降的妖魔是什么硝岗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任氢哮,我火速辦了婚禮,結(jié)果婚禮上型檀,老公的妹妹穿的比我還像新娘冗尤。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布裂七。 她就那樣靜靜地躺著皆看,像睡著了一般。 火紅的嫁衣襯著肌膚如雪背零。 梳的紋絲不亂的頭發(fā)上腰吟,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音徙瓶,去河邊找鬼毛雇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛侦镇,可吹牛的內(nèi)容都是我干的灵疮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼壳繁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼震捣!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起闹炉,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蒿赢,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后剩胁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诉植,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年昵观,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晾腔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啊犬,死狀恐怖灼擂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情觉至,我是刑警寧澤剔应,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站语御,受9級(jí)特大地震影響峻贮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜应闯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一纤控、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碉纺,春花似錦船万、人聲如沸刻撒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)声怔。三九已至,卻和暖如春舱呻,著一層夾襖步出監(jiān)牢的瞬間醋火,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工箱吕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胎撇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓殖氏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親姻采。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雅采,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容