国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

測(cè)試開發(fā)人員如何進(jìn)行局部探索性測(cè)試?一張圖告訴你

0
分享至

我們都知道全局探索性測(cè)試的漫游測(cè)試法,也知道局部探索性測(cè)試可以從用戶輸入、狀態(tài)、代碼路徑、用戶數(shù)據(jù)和執(zhí)行環(huán)境測(cè)試著手點(diǎn)。

那么,如果我們能夠獲取開發(fā)代碼,我們?cè)趺磸拇a入手,進(jìn)行具體的局部探索性測(cè)試呢?

簡(jiǎn)單回顧

在進(jìn)行具體的案例講解前,我們先簡(jiǎn)單回顧下局部探索性測(cè)試的用戶輸入、狀態(tài)、代碼路徑、用戶數(shù)據(jù)和執(zhí)行環(huán)境測(cè)試方法。

一張圖說明一切。

圖1局部探索性測(cè)試測(cè)試要點(diǎn)總結(jié)

具體案例講解

本文從代碼層入手,分享如何進(jìn)行局部探索性測(cè)試。值得注意的是,接下來的敘述沒有優(yōu)先級(jí)和重要性排序,單純是某些測(cè)試要點(diǎn)的啟發(fā)。

比對(duì)代碼改動(dòng),尋找測(cè)試要點(diǎn)!

隨著功能的改進(jìn)或者故障的修復(fù),總會(huì)伴隨代碼的改動(dòng)。因此,我們可以從代碼改動(dòng)點(diǎn)出發(fā)尋找測(cè)試要點(diǎn)。

在此,需要大家問自己幾個(gè)問題:開發(fā)人員為什么要這樣改?這樣改有什么意義?

圖2 elasticsearch開源代碼提交記錄:修改遠(yuǎn)程集群設(shè)置的authorization為credentials

由上圖2所示,為elasticsearch開源代碼某次提交記錄(修改遠(yuǎn)程集群設(shè)置的authorization為credentials)。如果我們獲取到這樣一份代碼,我們要怎么尋找測(cè)試要點(diǎn)呢?!

對(duì)于代碼修改的原因和意義,開發(fā)人員在代碼提交記錄中已經(jīng)聲明:credentials名字更精確。而且從提交記錄中,我們還可以看到有許多地方涉及的authorization被修改。因此,我們很容易就能想到一個(gè)測(cè)試要點(diǎn):authorization名字修改是否覆蓋完全?!

我們?cè)賮砜匆粋€(gè)樣例。如下圖所示,為elasticsearch的PreviewTransformAction.java某次代碼變動(dòng)。

從提交記錄說明可以看到變動(dòng)原因:目前我們按順序序列化轉(zhuǎn)換預(yù)覽文檔。

然而,當(dāng)我們?cè)诹硪欢俗x取它們時(shí),我們將其反序列化為散列映射,失去順序。因此,排序時(shí)序列化毫無意義。但是在集成測(cè)試時(shí),writeMapWithConsistentOrder的使用總使得集成測(cè)試失敗,因此將其改為無功能影響的writeGenericMap。

由此我們一眼可以得出最重要的一個(gè)信息:功能不影響。

所以,對(duì)此次變更,我們應(yīng)首要進(jìn)行功能回歸測(cè)試,確保已有功能正常。那還有沒有其它測(cè)試要點(diǎn)呢?試試writeGenericMap是否真的是無順序轉(zhuǎn)換?

圖3 elasticsearch開源代碼提交記錄:修改writeMapWithConsistentOrder方法調(diào)用為為writeGenericMap調(diào)用

注意覆蓋代碼中的分支!

開發(fā)代碼中經(jīng)常會(huì)有if…else、switch…case等分支,可是當(dāng)我們從外部進(jìn)行場(chǎng)景測(cè)試或功能測(cè)試時(shí)很少能覆蓋完全代碼中的分支,從而可能忽視某些故障。因此,可以從代碼層面出發(fā),尋找或構(gòu)造能夠觸發(fā)代碼某個(gè)分支的場(chǎng)景。

圖4 elasticsearch的ElasticsearchException.java某部分代碼1

如上圖4所示,為ElasticsearchException.java某部分代碼。該代碼使用了if…else分支結(jié)構(gòu),面對(duì)這樣的代碼,我們是不是首先就會(huì)想:如何進(jìn)入不同分支?進(jìn)入不同分支后會(huì)有什么樣的效果?

如上圖所示,試試elasticsearchException不為null呢?再試試id!=127呢?更或者,試試傳入的id為null呢?

圖5 elasticsearch的ElasticsearchException.java某部分代碼2

如圖5所示,switch…case分支,想想:測(cè)試場(chǎng)景中覆蓋完了所有case分支嗎?如果沒有,如何構(gòu)造場(chǎng)景走到這些分支,尤其是default分支?

3)異常都捕獲到?jīng)]?

我們?cè)跍y(cè)試過程中,經(jīng)常由于環(huán)境或其他原因的影響造成一些異常的產(chǎn)生。而針對(duì)異常的捕獲往往是代碼中預(yù)先定義好的,但如果異常不在期望中呢?是否能夠正常打印異常和捕獲異常?

圖6 elasticsearch的ExceptionsHelper。。java某部分代碼

如圖6所示,是try…catch…finally結(jié)構(gòu),但沒有catch分支。假如formatStackTrace功能異常呢?能夠捕獲異常嗎?試試。又或者ExceptionsHelper。maybeError(throwable)不存在呢?會(huì)是什么樣的效果,試試。

4)不同的return返回值嘗試過沒?

如題所述,試試不同的返回值對(duì)調(diào)用者的影響??纯词欠裾{(diào)用方都能夠正確處理或響應(yīng)。如下圖7所示,試試不同case分支下的返回值,尤其是不常見用的返回值,如PARTIAL、INCOMPATIBLE等。

圖7elasticsearch的SnapshotState。java某部分代碼

5)如果變量不在定義的集合范圍內(nèi)呢?

代碼中我們難免會(huì)定義一些列表或集合,會(huì)聲明列表或集合元素的類型。那么,如果某個(gè)變量不在定義的類型范圍內(nèi)呢,要使用列表或集合的功能處理這個(gè)變量,會(huì)怎么樣?

圖8 elasticsearch的SnapshotsInProgress。java某部分代碼

如上圖8所示,定義返回類型為L(zhǎng)ist,如果返回值的類型不是list或者列表中的值不是String呢?想想。

6)正則表達(dá)式呢?

正則表達(dá)式是很多測(cè)試人員頭疼的一點(diǎn),因?yàn)槿斯そ馕霾惶槙场T诖丝梢越o大家推薦一個(gè)很好的解析器網(wǎng)址https://regexper.com/#%5Ba-zA-Z_0-9%5D%7B3%2C%7D。如下圖所示,將正則表達(dá)式輸入,就可以解析。

圖9 regexper。com正則表達(dá)式解析網(wǎng)站

假如針對(duì)[a-zA-Z_0-9]{3,}這樣的正則表達(dá)式,試試輸入變量為345呢?會(huì)有什么樣的效果?

7)代碼中有沒有寫死的變量?

比如常見的引用ip、port等,是否被固定了?比如有沒有用到sleep?被寫死的變量會(huì)導(dǎo)致代碼更改時(shí)容易忽略,而產(chǎn)生異常。而sleep 10s這樣的寫法會(huì)導(dǎo)致性能下降。試試有沒有這樣的問題?

8)每一條路徑走完沒有?

在這里可以給大家推薦一個(gè)好用的工具visustin(www.aivosto.com),可以解析代碼路徑,可視化輸出。支持java,jsp,python等多種語言。

圖10 visustin軟件解析代碼路徑樣例圖

如上圖所示,在visustin的幫助下,我們可以方便地看出每條路徑。試試遍歷所有路徑?

3.總結(jié)

探索性測(cè)試的核心在于啟發(fā)性思維。本文結(jié)合具體樣例,簡(jiǎn)單講述了如何從代碼層面入手,開始局部探索性測(cè)試。并簡(jiǎn)單介紹了兩個(gè)有用的工具regexper.com網(wǎng)站和visustin軟件,它們可以幫助我們解析正則表達(dá)式和可視化代碼路徑。工欲善其事必先利其器,希望這兩個(gè)軟件也能幫助到你。

探索性測(cè)試是一門值得研究和探討的課題,尤其是對(duì)于測(cè)試人員來說,對(duì)于專業(yè)能力的提升和個(gè)人職業(yè)的發(fā)展都有幫助。希望能有更多的同行加入探討和研究。

最后:在我的V:atstudy-js,可以免費(fèi)領(lǐng)取一份10G軟件測(cè)試工程師面試寶典文檔資料。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫(kù)、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
張柏芝大兒子終于“長(zhǎng)開”了!穿西裝比謝霆鋒還帥,網(wǎng)友:像爺爺

張柏芝大兒子終于“長(zhǎng)開”了!穿西裝比謝霆鋒還帥,網(wǎng)友:像爺爺

木子愛娛樂大號(hào)
2026-01-07 21:47:13
俄媒警告中國(guó):美國(guó)打伊朗只是幌子,目的是逼解放軍到太平洋決戰(zhàn)

俄媒警告中國(guó):美國(guó)打伊朗只是幌子,目的是逼解放軍到太平洋決戰(zhàn)

情系雨櫻花葉
2026-02-28 11:20:39
有一種“反噬”叫劉亮和白鴿,離婚6年后,兩人的下場(chǎng)怪不了別人

有一種“反噬”叫劉亮和白鴿,離婚6年后,兩人的下場(chǎng)怪不了別人

全球風(fēng)情大揭秘
2026-02-28 13:28:19
內(nèi)蒙古一200斤男子欠5000萬不還,被債主裝進(jìn)鐵籠沉入80米水庫(kù),誰料,2年后才被撈出...

內(nèi)蒙古一200斤男子欠5000萬不還,被債主裝進(jìn)鐵籠沉入80米水庫(kù),誰料,2年后才被撈出...

品讀時(shí)刻
2026-02-11 17:18:30
阿斯:前巴薩球員穆尼爾航班遭取消滯留伊朗;阿丹已提前撤離

阿斯:前巴薩球員穆尼爾航班遭取消滯留伊朗;阿丹已提前撤離

懂球帝
2026-02-28 22:08:28
美方要求中方參加中美俄三邊核裁軍談判,外交部:不公平、不合理也不可行!“中國(guó)的核力量同美俄完全不在一個(gè)量級(jí)”

美方要求中方參加中美俄三邊核裁軍談判,外交部:不公平、不合理也不可行!“中國(guó)的核力量同美俄完全不在一個(gè)量級(jí)”

每日經(jīng)濟(jì)新聞
2026-02-27 17:25:20
“突然理解道明寺媽媽了”,高鐵上小少爺走紅,讓普通人看透現(xiàn)實(shí)

“突然理解道明寺媽媽了”,高鐵上小少爺走紅,讓普通人看透現(xiàn)實(shí)

妍妍教育日記
2026-02-28 17:41:50
生兩個(gè)兒子的家庭啥感覺?網(wǎng)友:不是你生多少,問題是你得有錢

生兩個(gè)兒子的家庭啥感覺?網(wǎng)友:不是你生多少,問題是你得有錢

帶你感受人間冷暖
2026-02-16 00:49:36
長(zhǎng)沙“互啃”后續(xù):沒實(shí)錘,婚離了!中年人的體面,真輸不起!

長(zhǎng)沙“互啃”后續(xù):沒實(shí)錘,婚離了!中年人的體面,真輸不起!

王楔曉
2026-01-08 11:31:21
美媒:內(nèi)塔尼亞胡發(fā)表視頻講話,感謝特朗普

美媒:內(nèi)塔尼亞胡發(fā)表視頻講話,感謝特朗普

參考消息
2026-02-28 17:39:04
瀨戶環(huán)奈、小湊四葉、山田玲奈、三葉彌生、三上悠亞 日美女明星

瀨戶環(huán)奈、小湊四葉、山田玲奈、三葉彌生、三上悠亞 日美女明星

鹿鹿156
2026-02-27 17:12:21
馬筱梅公開小汪寶:小玥兒抱弟動(dòng)作看哭網(wǎng)友,姐弟仨共用一張臉

馬筱梅公開小汪寶:小玥兒抱弟動(dòng)作看哭網(wǎng)友,姐弟仨共用一張臉

未曾青梅
2026-02-27 20:02:26
朝鮮戰(zhàn)爭(zhēng)期間:美軍原本已接近擊敗中國(guó),卻碰上中國(guó)決死的指揮官

朝鮮戰(zhàn)爭(zhēng)期間:美軍原本已接近擊敗中國(guó),卻碰上中國(guó)決死的指揮官

阿柒的訊
2026-02-13 21:24:24
甜炸了!汪小菲又偷偷偷拍馬筱梅和寶寶,這一幕藏不住的幸福!

甜炸了!汪小菲又偷偷偷拍馬筱梅和寶寶,這一幕藏不住的幸福!

樂悠悠娛樂
2026-02-28 15:19:07
陳麗君在臺(tái)灣被圍了,長(zhǎng)得太好看,走都走不出,連人民日?qǐng)?bào)都通告

陳麗君在臺(tái)灣被圍了,長(zhǎng)得太好看,走都走不出,連人民日?qǐng)?bào)都通告

殘夢(mèng)斷憶
2026-03-01 00:17:08
破1.15億,女主撐起全片“美色”,我斷言:《夜王》將火遍全國(guó)

破1.15億,女主撐起全片“美色”,我斷言:《夜王》將火遍全國(guó)

電影爛番茄
2026-02-28 00:21:51
泰航回應(yīng)向以色列運(yùn)輸F-35零部件爭(zhēng)議

泰航回應(yīng)向以色列運(yùn)輸F-35零部件爭(zhēng)議

曼谷陳大叔
2026-02-27 15:50:30
俄羅斯是最受中國(guó)人喜歡的國(guó)家?

俄羅斯是最受中國(guó)人喜歡的國(guó)家?

玖奌雜貨鋪
2026-02-28 21:00:06
上海女子花8800元雇團(tuán)隊(duì)尋貓,結(jié)果物業(yè)發(fā)現(xiàn)就在屋內(nèi)!尋寵團(tuán)隊(duì):按結(jié)果收費(fèi)不退錢;當(dāng)事人已報(bào)警

上海女子花8800元雇團(tuán)隊(duì)尋貓,結(jié)果物業(yè)發(fā)現(xiàn)就在屋內(nèi)!尋寵團(tuán)隊(duì):按結(jié)果收費(fèi)不退錢;當(dāng)事人已報(bào)警

新民晚報(bào)
2026-02-27 19:32:24
5-2!獨(dú)造3球,9500萬歐先生踢瘋了!4連勝,利物浦積分追平曼聯(lián)

5-2!獨(dú)造3球,9500萬歐先生踢瘋了!4連勝,利物浦積分追平曼聯(lián)

體育世界
2026-03-01 01:20:40
2026-03-01 02:44:49
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

狂攬1100億美元!OpenAI再創(chuàng)融資神話

頭條要聞

伊朗媒體公布反擊美軍軍事行動(dòng)結(jié)果

頭條要聞

伊朗媒體公布反擊美軍軍事行動(dòng)結(jié)果

體育要聞

球隊(duì)主力全報(bào)銷?頂風(fēng)擺爛演都不演了

娛樂要聞

周杰倫兒子正面照曝光,與父親好像

財(cái)經(jīng)要聞

沖突爆發(fā) 市場(chǎng)變天?

汽車要聞

嵐圖泰山黑武士版3月上市 搭載華為四激光智駕方案

態(tài)度原創(chuàng)

藝術(shù)
數(shù)碼
時(shí)尚
本地
軍事航空

藝術(shù)要聞

驚艷!這位天使般的女子與油畫讓人心動(dòng)不已!

數(shù)碼要聞

小米超薄充電寶亮相MWC,98g有多能打?

這6款發(fā)色居然這么火?50張圖可以直接給tony

本地新聞

津南好·四時(shí)總相宜

軍事要聞

美國(guó)以色列聯(lián)合襲擊伊朗 實(shí)時(shí)戰(zhàn)況

無障礙瀏覽 進(jìn)入關(guān)懷版