国产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)槿斯そ馕霾惶槙?。在此可以給大家推薦一個(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等多種語(yǔ)言。

圖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)推薦
堅(jiān)守底線!遲遲不開放瓦罕走廊,就是早就看透了本質(zhì),果然應(yīng)驗(yàn)了

堅(jiān)守底線!遲遲不開放瓦罕走廊,就是早就看透了本質(zhì),果然應(yīng)驗(yàn)了

瑛派兒老黃
2026-02-28 12:48:46
小米事故炸翻37萬車主,雷軍左右為難!

小米事故炸翻37萬車主,雷軍左右為難!

鳴金網(wǎng)
2026-02-28 10:45:03
緊急返回上海浦東機(jī)場(chǎng)!女子爆哭:太可怕了!中東多個(gè)機(jī)場(chǎng)遭襲擊

緊急返回上海浦東機(jī)場(chǎng)!女子爆哭:太可怕了!中東多個(gè)機(jī)場(chǎng)遭襲擊

新浪財(cái)經(jīng)
2026-03-01 14:08:54
哈梅內(nèi)伊剛死,美媒一語(yǔ)驚人: 看來對(duì)中國(guó)來說,伊朗并沒那么重要

哈梅內(nèi)伊剛死,美媒一語(yǔ)驚人: 看來對(duì)中國(guó)來說,伊朗并沒那么重要

健身狂人
2026-03-01 12:41:57
美方扶持的4位中國(guó)富豪開始露頭了:在華瘋狂撈金,扭頭捐給美國(guó)

美方扶持的4位中國(guó)富豪開始露頭了:在華瘋狂撈金,扭頭捐給美國(guó)

古史青云啊
2026-02-20 16:23:31
湖人28分血洗勇士!詹姆斯狂刷7大NBA紀(jì)錄,湖人2換1交易賺大了

湖人28分血洗勇士!詹姆斯狂刷7大NBA紀(jì)錄,湖人2換1交易賺大了

毒舌NBA
2026-03-01 12:22:13
伊朗第一副總統(tǒng)將全面接管國(guó)家控制權(quán)

伊朗第一副總統(tǒng)將全面接管國(guó)家控制權(quán)

鳳眼論
2026-03-01 07:32:22
男籃世預(yù)賽晉級(jí)形勢(shì)分析!中國(guó)隊(duì)1戰(zhàn)定生死:韓國(guó)或被聯(lián)手踢出局

男籃世預(yù)賽晉級(jí)形勢(shì)分析!中國(guó)隊(duì)1戰(zhàn)定生死:韓國(guó)或被聯(lián)手踢出局

籃球快餐車
2026-03-01 00:42:22
為什么交通部約談高德?業(yè)務(wù)全踩紅線,五天被約談三次

為什么交通部約談高德?業(yè)務(wù)全踩紅線,五天被約談三次

小蜜情感說
2026-02-27 06:43:29
給央視賣命19年,連站6年零下幾十度春晚分會(huì)場(chǎng),撒貝寧沒他微信

給央視賣命19年,連站6年零下幾十度春晚分會(huì)場(chǎng),撒貝寧沒他微信

百態(tài)人間
2026-02-28 15:31:33
太扎心!過了40歲已經(jīng)死了,只是沒人埋,80后發(fā)千字肺腑之言…

太扎心!過了40歲已經(jīng)死了,只是沒人埋,80后發(fā)千字肺腑之言…

慧翔百科
2026-02-28 08:52:23
消失的父親!谷愛凌美國(guó)出生證明生父一欄空白 最新傳聞曝光:長(zhǎng)得真像

消失的父親!谷愛凌美國(guó)出生證明生父一欄空白 最新傳聞曝光:長(zhǎng)得真像

手工制作阿殲
2026-03-01 13:38:35
中國(guó)男籃vs中國(guó)臺(tái)北時(shí)間已定!CCTV5直播,省隊(duì)球員賽前放出狠話

中國(guó)男籃vs中國(guó)臺(tái)北時(shí)間已定!CCTV5直播,省隊(duì)球員賽前放出狠話

籃球?qū)^(qū)
2026-02-28 20:36:42
“反詐老陳”賬號(hào)被封,本人回應(yīng):?jiǎn)栃臒o愧!MCN機(jī)構(gòu):即刻解除所有合約,雙方合作立即終止

“反詐老陳”賬號(hào)被封,本人回應(yīng):?jiǎn)栃臒o愧!MCN機(jī)構(gòu):即刻解除所有合約,雙方合作立即終止

都市快報(bào)橙柿互動(dòng)
2026-03-01 07:15:47
“第二代賭王”周焯華,被判18年罰款248億,睡過的女星有多少?

“第二代賭王”周焯華,被判18年罰款248億,睡過的女星有多少?

小熊侃史
2025-12-26 11:25:18
WTT大滿貫準(zhǔn)決賽:王曼昱大爆發(fā)1-8逆轉(zhuǎn)大黑馬,國(guó)乒包攬女單冠亞

WTT大滿貫準(zhǔn)決賽:王曼昱大爆發(fā)1-8逆轉(zhuǎn)大黑馬,國(guó)乒包攬女單冠亞

郝小小看體育
2026-03-01 13:01:30
人民幣升破6.84,高息定存美元的人慌了!4.5%利率難抵匯率損失,有人10萬本金反虧超2千

人民幣升破6.84,高息定存美元的人慌了!4.5%利率難抵匯率損失,有人10萬本金反虧超2千

時(shí)代財(cái)經(jīng)
2026-03-01 11:30:08
奧美拉唑被列為重點(diǎn)監(jiān)控藥物!醫(yī)生提醒:長(zhǎng)期服用,注意5大細(xì)節(jié)

奧美拉唑被列為重點(diǎn)監(jiān)控藥物!醫(yī)生提醒:長(zhǎng)期服用,注意5大細(xì)節(jié)

醫(yī)學(xué)原創(chuàng)故事會(huì)
2026-03-01 00:07:02
伊朗第7輪導(dǎo)彈洗地開始,美航母基地遭殃,以色列先發(fā)制人成笑話

伊朗第7輪導(dǎo)彈洗地開始,美航母基地遭殃,以色列先發(fā)制人成笑話

黑鷹觀軍事
2026-02-28 22:32:24
媒體發(fā)布衛(wèi)星圖 顯示哈梅內(nèi)伊住所遭襲的前后對(duì)比景象

媒體發(fā)布衛(wèi)星圖 顯示哈梅內(nèi)伊住所遭襲的前后對(duì)比景象

財(cái)聯(lián)社
2026-03-01 13:07:07
2026-03-01 16:55:00
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

小米超跑概念車全球首秀!殺入頂豪俱樂部

頭條要聞

哈梅內(nèi)伊"回歸天國(guó)" 美以如何確認(rèn)其行蹤引發(fā)內(nèi)鬼猜測(cè)

頭條要聞

哈梅內(nèi)伊"回歸天國(guó)" 美以如何確認(rèn)其行蹤引發(fā)內(nèi)鬼猜測(cè)

體育要聞

火箭輸給熱火:烏度卡又輸斯波教練

娛樂要聞

《江山為聘》:吳謹(jǐn)言陳哲遠(yuǎn)燃炸朝堂

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

中東局勢(shì)升級(jí) 如何影響A股、黃金和原油

汽車要聞

理想汽車2月交付26421輛 歷史累計(jì)交付超159萬輛

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

游戲
本地
時(shí)尚
親子
旅游

金絲雀陷阱都用上了?R星被曝全面升級(jí)了《GTA6》防泄密機(jī)制

本地新聞

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

普通人穿衣不需要太復(fù)雜!顏色恰當(dāng)、搭配和諧,高級(jí)又耐看

親子要聞

一起長(zhǎng)大的歲月,我們是彼此最甜蜜的負(fù)擔(dān),也是最堅(jiān)實(shí)的依靠

旅游要聞

解鎖新春錯(cuò)峰游新玩法!深圳錦繡中華開啟元宵特別活動(dòng)

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