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

網易首頁 > 網易號 > 正文 申請入駐

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

0
分享至

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

那么,如果我們能夠獲取開發(fā)代碼,我們怎么從代碼入手,進行具體的局部探索性測試呢?

簡單回顧

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

一張圖說明一切。

圖1局部探索性測試測試要點總結

具體案例講解

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

比對代碼改動,尋找測試要點!

隨著功能的改進或者故障的修復,總會伴隨代碼的改動。因此,我們可以從代碼改動點出發(fā)尋找測試要點。

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

圖2 elasticsearch開源代碼提交記錄:修改遠程集群設置的authorization為credentials

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

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

我們再來看一個樣例。如下圖所示,為elasticsearch的PreviewTransformAction.java某次代碼變動。

從提交記錄說明可以看到變動原因:目前我們按順序序列化轉換預覽文檔。

然而,當我們在另一端讀取它們時,我們將其反序列化為散列映射,失去順序。因此,排序時序列化毫無意義。但是在集成測試時,writeMapWithConsistentOrder的使用總使得集成測試失敗,因此將其改為無功能影響的writeGenericMap。

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

所以,對此次變更,我們應首要進行功能回歸測試,確保已有功能正常。那還有沒有其它測試要點呢?試試writeGenericMap是否真的是無順序轉換?

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

注意覆蓋代碼中的分支!

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

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

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

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

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

如圖5所示,switch…case分支,想想:測試場景中覆蓋完了所有case分支嗎?如果沒有,如何構造場景走到這些分支,尤其是default分支?

3)異常都捕獲到沒?

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

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

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

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

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

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

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

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

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

如上圖8所示,定義返回類型為List,如果返回值的類型不是list或者列表中的值不是String呢?想想。

6)正則表達式呢?

正則表達式是很多測試人員頭疼的一點,因為人工解析不太順暢。在此可以給大家推薦一個很好的解析器網址https://regexper.com/#%5Ba-zA-Z_0-9%5D%7B3%2C%7D。如下圖所示,將正則表達式輸入,就可以解析。

圖9 regexper。com正則表達式解析網站

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

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

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

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

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

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

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

3.總結

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

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

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

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

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.

相關推薦
熱點推薦
意外!鄭州40歲女子患肝癌,臨終前懇求前夫接走女兒,前夫回復!

意外!鄭州40歲女子患肝癌,臨終前懇求前夫接走女兒,前夫回復!

青梅侃史啊
2026-04-17 19:48:25
朱芳雨向廣東隊球迷道歉,并給杜鋒提要求!

朱芳雨向廣東隊球迷道歉,并給杜鋒提要求!

體育哲人
2026-04-19 07:56:15
我媽取走我600萬房本,我馬上報失重辦,隔天弟弟撥了我200多通電話

我媽取走我600萬房本,我馬上報失重辦,隔天弟弟撥了我200多通電話

三農老歷
2026-04-17 19:22:34
蘭州的貧富差距令人窒息

蘭州的貧富差距令人窒息

隴史薈王文元
2026-04-18 12:44:53
性需求是人的活力來源,性需求是成年人最強大的生命力

性需求是人的活力來源,性需求是成年人最強大的生命力

加油丁小文
2026-04-03 11:30:07
女籃世界杯分檔出爐!中國隊直接避開5大勁敵:這下沖擊四強穩(wěn)了

女籃世界杯分檔出爐!中國隊直接避開5大勁敵:這下沖擊四強穩(wěn)了

籃球快餐車
2026-04-19 06:07:20
馮德萊恩下達27條命令,匈牙利新總理被激怒,要當?shù)诙䝼歐班爾

馮德萊恩下達27條命令,匈牙利新總理被激怒,要當?shù)诙䝼歐班爾

書紀文譚
2026-04-18 14:12:47
上海男籃沖擊22連勝!全力擊敗遼寧隊,洛夫頓復出,央視直播

上海男籃沖擊22連勝!全力擊敗遼寧隊,洛夫頓復出,央視直播

體壇瞎白話
2026-04-19 07:27:44
王健林預言成真!第3輪大漲來了?內行人:2026年房價將超乎想象

王健林預言成真!第3輪大漲來了?內行人:2026年房價將超乎想象

貓叔東山再起
2026-04-19 09:20:11
和曹燕華離婚后,他再娶小22歲乒乓美女,如今定居上海兒女雙全

和曹燕華離婚后,他再娶小22歲乒乓美女,如今定居上海兒女雙全

青橘罐頭
2026-04-18 19:32:25
勇士被太陽淘汰!看看媒體專家怎么說,罪魁禍首不是庫里,而是他

勇士被太陽淘汰!看看媒體專家怎么說,罪魁禍首不是庫里,而是他

翰飛觀事
2026-04-18 19:40:36
曼聯(lián)1-0切爾西!小將海文頂住壓力,英足總殺不死曼聯(lián)!

曼聯(lián)1-0切爾西!小將海文頂住壓力,英足總殺不死曼聯(lián)!

卡靈頓分析師
2026-04-19 10:04:50
蛋糕店,為什么是“幽靈外賣”的重災區(qū)?

蛋糕店,為什么是“幽靈外賣”的重災區(qū)?

新浪財經
2026-04-19 00:09:47
醫(yī)生提醒:吃他汀的人,這四種食物要注意!

醫(yī)生提醒:吃他汀的人,這四種食物要注意!

華庭講美食
2026-04-19 09:39:06
不卑微!一新生坦誠告知室友家窮,聚餐不必叫自己,宿舍衛(wèi)生全包

不卑微!一新生坦誠告知室友家窮,聚餐不必叫自己,宿舍衛(wèi)生全包

火山詩話
2026-04-17 09:22:03
咽不下委國肥肉,美國嘗盡苦果:中國一滴不買,特朗普降價求接盤

咽不下委國肥肉,美國嘗盡苦果:中國一滴不買,特朗普降價求接盤

杰絲聊古今
2026-04-18 16:10:19
劉德華罕見談14歲女兒近況,希望18歲以后再談戀愛

劉德華罕見談14歲女兒近況,希望18歲以后再談戀愛

極目新聞
2026-04-19 10:56:08
張曼玉現(xiàn)身北京參加活動!臉僵腫到不敢認,網友:怪不得不上浪姐

張曼玉現(xiàn)身北京參加活動!臉僵腫到不敢認,網友:怪不得不上浪姐

阿廢冷眼觀察所
2026-04-18 20:53:47
秦嵐首度公開父母過世,一個人辦追悼會不哭,和魏大勛不婚不育

秦嵐首度公開父母過世,一個人辦追悼會不哭,和魏大勛不婚不育

椰黃娛樂
2026-04-18 13:41:46
黑尾醬,徹底消失了?

黑尾醬,徹底消失了?

生如稗草
2026-03-15 08:48:11
2026-04-19 11:35:00
51Testing軟件測試網 incentive-icons
51Testing軟件測試網
中國軟件測試人的精神家園
1558文章數(shù) 13260關注度
往期回顧 全部

科技要聞

50分26秒!榮耀獲得人形機器人半馬冠軍

頭條要聞

牛彈琴:伊朗遭到特朗普"羞辱"被激怒 結果印度遭了殃

頭條要聞

牛彈琴:伊朗遭到特朗普"羞辱"被激怒 結果印度遭了殃

體育要聞

掘金擒狼開門紅:五花肉與小辣椒

娛樂要聞

劉德華回應潘宏彬去世,拒談喪禮細節(jié)

財經要聞

華誼兄弟,8年虧光85億

汽車要聞

29分鐘大定破萬 極氪8X為什么這么多人買?

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

旅游
藝術
時尚
手機
數(shù)碼

旅游要聞

太原直飛莫斯科旅游包機復航

藝術要聞

鄭麗文大陸之行引發(fā)熱議,孫中山贈對聯(lián)成焦點!

選對發(fā)型,真的能少走很多變美彎路

手機要聞

蘋果調整App Store更新入口位置,網頁端新增外區(qū)訪問限制!

數(shù)碼要聞

聯(lián)想ThinkPlus 190W移動電源開售,售價349元

無障礙瀏覽 進入關懷版