免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

偶現(xiàn)bug為何只對(duì)特定人可見(jiàn)?從環(huán)境差異到競(jìng)態(tài)條件的系統(tǒng)化排查指南

偶現(xiàn)bug為何只對(duì)特定人可見(jiàn)?從環(huán)境差異到競(jìng)態(tài)條件的系統(tǒng)化排查指南 “在同事代碼里種蠱bug只對(duì)特定人可見(jiàn)”這個(gè)說(shuō)法乍一聽像是段子但真正在軟件測(cè)試和開發(fā)一線摸爬滾打過(guò)的人看到這個(gè)標(biāo)題大概率會(huì)心一笑——這不就是我們天天在跟“偶現(xiàn)bug”、“環(huán)境相關(guān)bug”斗智斗勇的日常嗎項(xiàng)目里總有一種bug像認(rèn)主一樣只在某個(gè)同事的機(jī)器上穩(wěn)定復(fù)現(xiàn)換個(gè)環(huán)境、換個(gè)操作人它就消失得無(wú)影無(wú)蹤仿佛從未存在過(guò)。開發(fā)說(shuō)“我這邊跑得好好的”測(cè)試那邊一執(zhí)行就花屏崩潰兩個(gè)人隔著工位面面相覷最后只能靠“重啟大法”和“多跑幾次”來(lái)碰運(yùn)氣。這個(gè)現(xiàn)象背后其實(shí)是軟件運(yùn)行環(huán)境復(fù)雜性和測(cè)試方法論問(wèn)題的集中體現(xiàn)。今天我想從這個(gè)“種蠱”的玩笑話切入認(rèn)認(rèn)真真拆解一下bug為什么會(huì)對(duì)特定人“可見(jiàn)”這種問(wèn)題通常長(zhǎng)什么樣我們?cè)趺从孟到y(tǒng)化的手段把這類“玄學(xué)”變成“科學(xué)”以及在日常測(cè)試和開發(fā)協(xié)作中如何從源頭減少這種“人肉復(fù)現(xiàn)”的困境。這篇文章適合正在被偶現(xiàn)bug折磨的測(cè)試工程師、被“我這邊沒(méi)問(wèn)題啊”困擾的開發(fā)同學(xué)以及所有想讓自己排查問(wèn)題能力上一個(gè)臺(tái)階的人。1. 內(nèi)容整體設(shè)計(jì)與思路拆解把“玄學(xué)bug”翻譯成可理解的技術(shù)問(wèn)題1.1 為什么bug會(huì)“認(rèn)人”從三個(gè)真實(shí)場(chǎng)景說(shuō)起先聊聊幾個(gè)我實(shí)際遇到過(guò)的“認(rèn)人bug”案例看完你就知道“種蠱”的比喻有多貼切。第一個(gè)案例來(lái)自我參與過(guò)的一個(gè)桌面端圖像處理項(xiàng)目。同事A反饋軟件在保存圖片時(shí)偶發(fā)崩潰但詭異的是這個(gè)崩潰只在他那臺(tái)開發(fā)機(jī)上穩(wěn)定出現(xiàn)其他同事包括測(cè)試同學(xué)怎么操作都復(fù)現(xiàn)不了。大家一度懷疑是不是他電腦“有問(wèn)題”直到后來(lái)發(fā)現(xiàn)他機(jī)器上裝了一個(gè)企業(yè)版的截圖翻譯軟件這個(gè)軟件會(huì)注入系統(tǒng)級(jí)的全局快捷鍵和剪貼板鉤子偏偏跟我們的圖像保存流程在底層資源上發(fā)生了沖突。換句話說(shuō)bug“認(rèn)”的不是人而是那臺(tái)機(jī)器上特有的軟件環(huán)境組合。第二個(gè)案例是一個(gè)移動(dòng)端App項(xiàng)目。運(yùn)營(yíng)同事反饋某個(gè)頁(yè)面刷新后偶發(fā)白屏但測(cè)試人員用測(cè)試賬號(hào)怎么刷都正常。最終定位到問(wèn)題出在一個(gè)第三方統(tǒng)計(jì)分析SDK的初始化時(shí)序上運(yùn)營(yíng)同事的賬號(hào)因?yàn)闅v史數(shù)據(jù)量特別大首頁(yè)接口響應(yīng)比普通測(cè)試賬號(hào)慢了大約200毫秒而這個(gè)微小的時(shí)差就觸發(fā)了SDK內(nèi)部一個(gè)沒(méi)有做好狀態(tài)保護(hù)的競(jìng)態(tài)條件導(dǎo)致頁(yè)面渲染中斷。第三個(gè)案例更離譜。一個(gè)后端接口偶爾返回亂碼只有一位新入職的同事在下班后執(zhí)行定時(shí)任務(wù)時(shí)能碰到。排查到最后問(wèn)題出在他的電腦系統(tǒng)區(qū)域時(shí)間和格式設(shè)置跟公司標(biāo)準(zhǔn)鏡像不一致導(dǎo)致一個(gè)時(shí)間戳生成函數(shù)在特定時(shí)區(qū)格式下走了不同的分支觸發(fā)了編碼轉(zhuǎn)換的bug。你看這三個(gè)案例里的bug哪一個(gè)真的“認(rèn)人”了沒(méi)有。它們都遵循著自己的觸發(fā)邏輯只是這個(gè)邏輯跟特定環(huán)境、特定數(shù)據(jù)、特定時(shí)序強(qiáng)耦合導(dǎo)致在大多數(shù)人的常規(guī)操作路徑上根本走不到那條分支。所謂“特定人才可見(jiàn)”本質(zhì)上是“特定條件下才觸發(fā)”但因?yàn)檫@個(gè)“特定條件”不好描述、不好枚舉大家為了方便理解就給它貼上了“認(rèn)人”的標(biāo)簽。1.2 這類bug的共同特征環(huán)境依賴、偶發(fā)性與可復(fù)現(xiàn)壁壘把上面幾個(gè)案例放到一起看就能總結(jié)出這類“認(rèn)人bug”的三個(gè)核心特征。第一是環(huán)境依賴性強(qiáng)。這里的“環(huán)境”是廣義的不只是操作系統(tǒng)版本還包括系統(tǒng)語(yǔ)言、時(shí)區(qū)、字體庫(kù)、已安裝軟件、啟動(dòng)的服務(wù)、環(huán)境變量、依賴的第三方庫(kù)版本甚至硬件配置和屏幕分辨率。這些因素互相作用構(gòu)成了一個(gè)幾乎不可窮舉的組合空間。第二是偶發(fā)性與可復(fù)現(xiàn)率低。這類bug往往不是100%復(fù)現(xiàn)而是有概率地出現(xiàn)。概率可能高到十次里出現(xiàn)三次也可能低到幾天才出現(xiàn)一次。隨機(jī)性就是它們的護(hù)身符讓開發(fā)人員在debug的時(shí)候無(wú)從下手。第三是觸發(fā)條件隱蔽。這類bug的觸發(fā)邏輯往往藏在不直觀的路徑上可能是數(shù)據(jù)邊界值、可能是時(shí)序競(jìng)爭(zhēng)、可能是資源泄漏的累積效應(yīng)也可能是緩存失效策略的某個(gè)極端情況。你沒(méi)找到觸發(fā)條件時(shí)它幾乎不存在你找到了之后會(huì)覺(jué)得“原來(lái)就這么簡(jiǎn)單”。理解了這三個(gè)特征你就明白為什么這類bug在團(tuán)隊(duì)里會(huì)造成巨大的內(nèi)耗了——因?yàn)椤霸谖覚C(jī)器上跑得好好的”這句話在這種前提下不能說(shuō)是在撒謊只能說(shuō)是他的運(yùn)行環(huán)境確實(shí)沒(méi)有觸發(fā)那個(gè)潛在條件。2. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)把“特定條件”從黑盒里挖出來(lái)2.1 環(huán)境差異是最大的變量?jī)?yōu)先排查環(huán)境相關(guān)因素當(dāng)你接到一個(gè)“只有某人能復(fù)現(xiàn)”的bug報(bào)告時(shí)我希望你的第一反應(yīng)不是懷疑這個(gè)人也不是懷疑代碼邏輯當(dāng)然代碼確實(shí)可能是根因而是先列一個(gè)環(huán)境因素的清單逐項(xiàng)比對(duì)。我建議建立一個(gè)“環(huán)境差異自檢表”核心項(xiàng)目包括以下這些操作系統(tǒng)及版本、系統(tǒng)語(yǔ)言、區(qū)域格式與默認(rèn)時(shí)區(qū)應(yīng)用運(yùn)行所需運(yùn)行時(shí)版本比如Java版本、Node版本等依賴的本地服務(wù)版本與配置機(jī)器上安裝的、可能干擾應(yīng)用運(yùn)行的全局軟件輸入法、截圖工具、翻譯工具、內(nèi)網(wǎng)安全管理軟件等瀏覽器類型、版本、插件、禁用啟用狀態(tài)網(wǎng)絡(luò)環(huán)境是否在公司內(nèi)網(wǎng)、是否有代理、延遲和帶寬特征數(shù)據(jù)情況登錄賬號(hào)、賬號(hào)權(quán)限、歷史數(shù)據(jù)量、緩存狀態(tài)硬件差異屏幕縮放比例、DPI、顯卡驅(qū)動(dòng)版本、內(nèi)存容量在實(shí)際操作中我傾向于先回歸到“最可能出問(wèn)題的幾個(gè)點(diǎn)”。比如在桌面端優(yōu)先懷疑系統(tǒng)級(jí)鉤子和圖形接口的問(wèn)題在Web端優(yōu)先懷疑瀏覽器兼容性和網(wǎng)絡(luò)條件在移動(dòng)端優(yōu)先懷疑系統(tǒng)版本和網(wǎng)絡(luò)環(huán)境。不要一上來(lái)追求全量比對(duì)那樣效率太低。你得像個(gè)偵察兵一樣先把最容易藏著鬼的地方翻一遍。這里有一個(gè)特別容易踩的坑很多人覺(jué)得“環(huán)境一致”就等于“跑得起來(lái)”其實(shí)不對(duì)。舉個(gè)例子兩個(gè)人電腦上都裝了同一個(gè)版本的數(shù)據(jù)庫(kù)客戶端但一個(gè)用了系統(tǒng)自帶的驅(qū)動(dòng)一個(gè)用了應(yīng)用程序目錄下自帶的驅(qū)動(dòng)這就夠了——行為就是會(huì)不一樣。所以做環(huán)境比對(duì)的時(shí)候你得看得足夠細(xì)細(xì)到依賴包、驅(qū)動(dòng)、鉤子這種容易被忽略的層面。2.2 數(shù)據(jù)差異是隱藏的導(dǎo)火索別忽視賬號(hào)和數(shù)據(jù)量除了環(huán)境數(shù)據(jù)差異是第二大“蠱源”。一個(gè)只出現(xiàn)在特定人身上的bug往往跟這個(gè)人的操作數(shù)據(jù)有直接關(guān)系。比如之前提到的那個(gè)統(tǒng)計(jì)分析SDK的問(wèn)題就是“數(shù)據(jù)量大導(dǎo)致接口返慢”的極端場(chǎng)景。在處理這類問(wèn)題時(shí)我建議你問(wèn)自己三個(gè)問(wèn)題這個(gè)人的數(shù)據(jù)跟我們的測(cè)試數(shù)據(jù)有什么不同數(shù)據(jù)量、字段長(zhǎng)度、特殊字符、歷史記錄、權(quán)限標(biāo)記等這個(gè)人的操作路徑跟我們的測(cè)試路徑有什么不同是否高頻操作、是否跨功能跳轉(zhuǎn)、是否攜帶特殊狀態(tài)進(jìn)入頁(yè)面等這個(gè)人的賬號(hào)狀態(tài)有什么特殊新賬號(hào)、老賬號(hào)、內(nèi)部賬號(hào)、特定角色權(quán)限等把這些差異列出來(lái)之后你再去看代碼里哪些分支會(huì)因?yàn)檫@些差異走不同路徑。很多時(shí)候bug就藏在分支覆蓋不到的地方——代碼的if條件里有“如果數(shù)據(jù)量大于某個(gè)閾值則走批量處理”測(cè)試人員的數(shù)據(jù)量永遠(yuǎn)到不了那個(gè)閾值而運(yùn)營(yíng)同事的量級(jí)輕輕松松就觸發(fā)了。2.3 時(shí)序與并發(fā)最容易“認(rèn)人”的bug類型時(shí)序問(wèn)題在“認(rèn)人bug”里占的比例相當(dāng)高而且是最難排查的類型因?yàn)樗莿?dòng)態(tài)的、概率性的。我見(jiàn)過(guò)一個(gè)典型的例子一個(gè)桌面工具在啟動(dòng)時(shí)初始化了一個(gè)全局事件監(jiān)聽器并且注冊(cè)了一個(gè)異步任務(wù)。某同事的機(jī)器啟動(dòng)速度特別快固態(tài)硬盤太新結(jié)果某個(gè)組件還沒(méi)完成注冊(cè)異步任務(wù)就觸發(fā)了對(duì)它的調(diào)用直接拋了空指針異常。其他同事的機(jī)器硬盤慢一點(diǎn)人為創(chuàng)造了一個(gè)“安全窗口期”所以從來(lái)沒(méi)觸發(fā)過(guò)。這種問(wèn)題就是典型的“海森堡bug”——你越是想觀察它它越是不出現(xiàn)因?yàn)椤坝^察”這個(gè)動(dòng)作本身就改變了系統(tǒng)狀態(tài)。比如你為了調(diào)試加了一行日志就改變了時(shí)序的競(jìng)爭(zhēng)格局bug反而不出現(xiàn)了。面對(duì)這類bug我得先給你潑盆冷水通過(guò)常規(guī)debug手段去跟蹤它的概率很低。更有效的辦法是通過(guò)代碼審查去主動(dòng)尋找競(jìng)態(tài)條件尤其是以下幾個(gè)位置應(yīng)用啟動(dòng)階段的初始化序列誰(shuí)先誰(shuí)后順序是否有關(guān)異步回調(diào)中是否存在對(duì)共享狀態(tài)的未加鎖讀寫緩存加載與數(shù)據(jù)更新的時(shí)間窗口事件監(jiān)聽器的注冊(cè)與銷毀時(shí)序多線程下的懶加載邏輯這些位置就是“競(jìng)態(tài)條件”的高發(fā)區(qū)也就是“種蠱”的重災(zāi)區(qū)。你去主動(dòng)審查這些區(qū)域可能比讓你殺掉一億次程序去碰運(yùn)氣要高效得多。3. 實(shí)操過(guò)程與核心環(huán)節(jié)實(shí)現(xiàn)從接收bug到鎖定根因的系統(tǒng)化流程3.1 建立一個(gè)可執(zhí)行的問(wèn)題排查SOP在團(tuán)隊(duì)協(xié)作里處理“認(rèn)人bug”最忌諱的事情就是“接到反饋馬上開跑”沒(méi)有任何信息收集就直接去猜。正確姿勢(shì)是建立一個(gè)標(biāo)準(zhǔn)化的排查流程讓每個(gè)人面對(duì)這種問(wèn)題時(shí)都有章可循。我的做法是這樣的第一步獲得完整的復(fù)現(xiàn)信息不要滿足于“某某操作就崩了”這種描述。你需要問(wèn)清楚以下信息什么時(shí)間發(fā)生發(fā)生頻率是多少10次里幾次每天幾次觸發(fā)復(fù)現(xiàn)的具體操作步驟越詳細(xì)越好是否只有這個(gè)人能觸發(fā)其他人試過(guò)沒(méi)有是否換過(guò)機(jī)器、換過(guò)賬號(hào)、換過(guò)網(wǎng)絡(luò)測(cè)試過(guò)崩潰時(shí)的屏幕現(xiàn)象報(bào)錯(cuò)文本、卡死畫面、閃退前的最后交互最近有沒(méi)有裝過(guò)新的軟件、更新過(guò)系統(tǒng)、改過(guò)配置文件你會(huì)發(fā)現(xiàn)光是耐心做這一步就能排除掉至少三分之一“其實(shí)根本不是bug而是操作不當(dāng)”的情況。第二步環(huán)境與數(shù)據(jù)快照請(qǐng)報(bào)告者提供關(guān)鍵環(huán)境信息如果條件允許最好能直接拿到他的機(jī)器做一次遠(yuǎn)程操作。如果不能遠(yuǎn)程就讓他執(zhí)行幾條簡(jiǎn)單的環(huán)境采集指令比如打印環(huán)境變量、系統(tǒng)信息、依賴版本等把結(jié)果貼給你。第三步最小化復(fù)現(xiàn)嘗試不要急著在他完整的、復(fù)雜的操作環(huán)境里去復(fù)現(xiàn)。試著把觸發(fā)步驟簡(jiǎn)化把干擾因素剝離。比如他是在某個(gè)特定頁(yè)面、特定操作下崩潰的你就問(wèn)自己能不能只保留這個(gè)頁(yè)面、這個(gè)操作把其他一切無(wú)關(guān)的東西都卸載看看還能不能復(fù)現(xiàn)如果剝離掉某些軟件就復(fù)現(xiàn)不了了說(shuō)明問(wèn)題大概率在軟件依賴沖突上。第四步代碼層面的競(jìng)態(tài)與分支審查如果環(huán)境和數(shù)據(jù)快照都沒(méi)有鎖定根因就需要進(jìn)入代碼審查模式。重點(diǎn)審查我之前提到的幾個(gè)高發(fā)區(qū)域初始化序列、異步回調(diào)、緩存時(shí)序、事件注冊(cè)。第五步構(gòu)建最小復(fù)現(xiàn)工程最后的手段也是效率極高的手段根據(jù)你已經(jīng)了解到的觸發(fā)條件開一個(gè)demo工程把存在疑點(diǎn)的代碼邏輯單獨(dú)拎出來(lái)按照那個(gè)觸發(fā)場(chǎng)景去模擬。如果demo里能復(fù)現(xiàn)那恭喜你你一定能在demo里找到根因如果demo里復(fù)現(xiàn)不了說(shuō)明你掌握的觸發(fā)條件還不夠關(guān)鍵需要回頭重新挖。這套SOP看起來(lái)每一步都不難難的是堅(jiān)持按順序走。很多人一接到bug就跳到第四步甚至第五步繞過(guò)信息收集直接埋頭看代碼最后往往事倍功半。3.2 實(shí)操案例一個(gè)“認(rèn)人”bug的完整破解過(guò)程為了讓你對(duì)這套流程有直觀認(rèn)知我用一個(gè)我經(jīng)手過(guò)的案例完整走一遍。背景某公司內(nèi)部使用的數(shù)據(jù)報(bào)表系統(tǒng)某產(chǎn)品經(jīng)理反饋他在導(dǎo)出一個(gè)大數(shù)據(jù)量的Excel報(bào)表時(shí)偶爾會(huì)遇到程序無(wú)響應(yīng)而其他人在相同操作下從未遇到過(guò)。接到這個(gè)反饋后我沒(méi)有直接去看導(dǎo)出代碼而是先收集信息。問(wèn)了產(chǎn)品經(jīng)理幾個(gè)問(wèn)題后發(fā)現(xiàn)他導(dǎo)出的數(shù)據(jù)量通常在數(shù)十萬(wàn)行以上而測(cè)試人員導(dǎo)出的一般只有幾千到幾萬(wàn)行他的電腦是企業(yè)定制版Windows環(huán)境預(yù)裝了很多后臺(tái)運(yùn)行的安全和監(jiān)控軟件他的瀏覽器是企業(yè)內(nèi)網(wǎng)指定版本屬于較老的一個(gè)版本我讓測(cè)試同學(xué)先用數(shù)百萬(wàn)行假數(shù)據(jù)去導(dǎo)發(fā)現(xiàn)代碼本身在數(shù)據(jù)量大時(shí)確實(shí)存在性能瓶頸——Excel導(dǎo)出過(guò)程會(huì)使用一個(gè)中間數(shù)組來(lái)拼接數(shù)據(jù)在數(shù)據(jù)量超過(guò)某個(gè)閾值時(shí)會(huì)導(dǎo)致內(nèi)存占用激增。但僅憑這一點(diǎn)還不足以解釋“只對(duì)特定人可見(jiàn)”。接下來(lái)我做了一步操作讓產(chǎn)品經(jīng)理把瀏覽器換成了最新版Chrome再試一次結(jié)果發(fā)現(xiàn)bug不再出現(xiàn)。這就把范圍進(jìn)一步縮小了——舊版瀏覽器的JavaScript引擎在解析大數(shù)組時(shí)觸發(fā)了一次垃圾回收的長(zhǎng)時(shí)間停頓加上導(dǎo)出本身的內(nèi)存峰值兩個(gè)因素疊加才導(dǎo)致了頁(yè)面無(wú)響應(yīng)。最終根因是兩層第一層是導(dǎo)出邏輯在百萬(wàn)級(jí)數(shù)據(jù)下性能問(wèn)題第二層是舊版瀏覽器引擎的內(nèi)存管理缺陷放大了這個(gè)性能問(wèn)題。換到新版瀏覽器后引擎的內(nèi)存分配策略優(yōu)化了單純數(shù)據(jù)量大已經(jīng)不足以觸發(fā)卡死。這個(gè)案例告訴我一個(gè)很重要的道理很多“認(rèn)人bug”其實(shí)是多個(gè)因素疊加的結(jié)果。單看任何一個(gè)因素都不足以出問(wèn)題但組合起來(lái)就踩到了雷區(qū)。所以排查這類問(wèn)題要有“組合思維”。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄一份拿來(lái)即用的避坑手冊(cè)4.1 問(wèn)題速查表按癥狀對(duì)號(hào)入座我把處理“認(rèn)人bug”最常見(jiàn)的場(chǎng)景整理成了一張速查表你可以在接到bug報(bào)告時(shí)對(duì)照參考。癥狀特征最可能的原因方向優(yōu)先排查點(diǎn)只有某人機(jī)器必現(xiàn)其他人完全不現(xiàn)機(jī)器級(jí)環(huán)境差異系統(tǒng)鉤子、全局快捷鍵、輸入法、已裝軟件、驅(qū)動(dòng)特定賬號(hào)必然觸發(fā)換賬號(hào)消失數(shù)據(jù)量級(jí)/賬號(hào)權(quán)限差異賬號(hào)歷史數(shù)據(jù)量、權(quán)限標(biāo)記、角色分支邏輯操作快時(shí)容易觸發(fā)慢時(shí)正常競(jìng)態(tài)條件/時(shí)序問(wèn)題初始化序列、異步回調(diào)、懶加載時(shí)機(jī)傍晚或特定時(shí)間段出現(xiàn)定時(shí)任務(wù)/資源累積內(nèi)存泄漏、句柄泄漏、日志文件增長(zhǎng)代碼沒(méi)改過(guò)但突然開始出現(xiàn)外部依賴變更第三方服務(wù)更新、瀏覽器自動(dòng)升級(jí)、系統(tǒng)補(bǔ)丁換機(jī)房/換網(wǎng)絡(luò)后消失網(wǎng)絡(luò)鏈路差異代理設(shè)置、DNS解析、網(wǎng)絡(luò)延遲、限速策略這張表的好處是讓你拿到反饋后第一時(shí)間有方向不會(huì)像無(wú)頭蒼蠅一樣亂撞。它不是真理但能幫你把排查半徑從“全項(xiàng)目所有代碼”縮小到“某個(gè)具體領(lǐng)域”。4.2 提升偶現(xiàn)bug復(fù)現(xiàn)率的3個(gè)技巧如果你面對(duì)的偶現(xiàn)bug概率極低比如幾天才出一次那這里有幾個(gè)實(shí)測(cè)有效的技巧可以幫你提高復(fù)現(xiàn)概率。技巧一多路復(fù)用環(huán)境如果你懷疑是競(jìng)態(tài)問(wèn)題可以用腳本同時(shí)啟動(dòng)多個(gè)應(yīng)用實(shí)例人為制造高并發(fā)狀態(tài)?;蛘邔懸粋€(gè)自動(dòng)化腳本高頻重復(fù)觸發(fā)某個(gè)操作。把單次執(zhí)行的競(jìng)態(tài)概率通過(guò)重復(fù)次數(shù)放大。比如某次操作觸發(fā)競(jìng)態(tài)的概率是千分之一你腳本跑一萬(wàn)次理論上就能命中10次。技巧二降低外部干擾閾值有些bug在正常狀態(tài)下難以觸發(fā)是因?yàn)橛幸粋€(gè)“緩沖管”保護(hù)著——比如內(nèi)存不夠了系統(tǒng)會(huì)先卡頓而不是直接崩潰、隊(duì)列積壓了系統(tǒng)會(huì)變慢但不會(huì)丟數(shù)據(jù)。你可以通過(guò)工具人為收緊這個(gè)緩沖用內(nèi)存限制工具把可用內(nèi)存壓到某個(gè)水位用網(wǎng)絡(luò)延遲模擬工具把鏈路變慢用CPU限制把處理速度降下來(lái)。很多“邊界bug”就是在這種“受限環(huán)境”里現(xiàn)出原形的。技巧三引入隨機(jī)性有時(shí)候你自己的測(cè)試路徑太規(guī)整了反而碰不到bug觸發(fā)條件。讓測(cè)試工具隨機(jī)化操作順序、隨機(jī)輸入數(shù)據(jù)、隨機(jī)等待時(shí)間甚至隨機(jī)切換網(wǎng)絡(luò)狀態(tài)。讓“運(yùn)氣”來(lái)幫你比你按部就班跑一萬(wàn)遍效果更好。4.3 獨(dú)家避坑心得這些錯(cuò)誤做法會(huì)把你帶進(jìn)死胡同處理這類bug時(shí)有些做法我強(qiáng)烈建議你要避開它們會(huì)極大浪費(fèi)你的時(shí)間。不要在復(fù)現(xiàn)現(xiàn)場(chǎng)去跟蹤代碼?!昂Iug”是最典型的例子你越是介入觀察系統(tǒng)狀態(tài)改變?cè)酱骲ug越是不出現(xiàn)。需要調(diào)日志、加斷點(diǎn)的時(shí)候先讓現(xiàn)場(chǎng)穩(wěn)定用旁路手段采集信息而不是直接上手改運(yùn)行中的系統(tǒng)。**不要讓報(bào)告者一遍遍地“再試一次”。**如果你的同事已經(jīng)操作了十幾次都復(fù)現(xiàn)不了你再讓他試二十次意義也不大。這時(shí)候應(yīng)該退回到信息收集階段重新審視是不是漏掉了什么關(guān)鍵觸發(fā)條件。**不要忽視“時(shí)間”這個(gè)變量。**很多偶現(xiàn)bug跟運(yùn)行時(shí)間高度相關(guān)比如內(nèi)存泄漏要到一定程度才觸發(fā)、緩存插件要到某個(gè)過(guò)期時(shí)間點(diǎn)才出問(wèn)題。拿到反饋先問(wèn)對(duì)方“這個(gè)進(jìn)程跑了多久了”——這個(gè)問(wèn)題往往能讓你直接跳過(guò)大量無(wú)效排查。**不要過(guò)早下結(jié)論。**尤其是當(dāng)你說(shuō)“我覺(jué)得是第三方庫(kù)的鍋”的時(shí)候你得有證據(jù)。第三方庫(kù)經(jīng)常背鍋但很多時(shí)候根因是自己的代碼用錯(cuò)了方式調(diào)它。4.4 團(tuán)隊(duì)協(xié)作層面的三個(gè)建議處理“認(rèn)人bug”不只是技術(shù)問(wèn)題也是協(xié)作問(wèn)題。我分享幾個(gè)在團(tuán)隊(duì)管理層面很實(shí)用的做法。第一建立一個(gè)“異常環(huán)境登記表”。團(tuán)隊(duì)成員如果在自己機(jī)器上裝了特殊軟件、改了系統(tǒng)配置、升級(jí)了特殊工具主動(dòng)登記到表里。這樣一旦出現(xiàn)環(huán)境相關(guān)bug你能快速找到“誰(shuí)的環(huán)境可能最接近觸發(fā)條件”。第二統(tǒng)一開發(fā)環(huán)境標(biāo)準(zhǔn)化。推行虛擬機(jī)開發(fā)環(huán)境或者容器化開發(fā)環(huán)境讓代碼在團(tuán)隊(duì)里運(yùn)行的基礎(chǔ)設(shè)施是一致的。這一步能消滅一大半的環(huán)境差異類bug。當(dāng)然容器化不等于徹底解決問(wèn)題因?yàn)閿?shù)據(jù)差異和第三方服務(wù)差異依然存在但至少系統(tǒng)和依賴版本這一層穩(wěn)了。第三反饋bug時(shí)“帶上環(huán)境信息是強(qiáng)制要求”而不是可選項(xiàng)。在bug單里明確列出必填字段操作系統(tǒng)、應(yīng)用版本、受影響功能、復(fù)現(xiàn)步驟、復(fù)現(xiàn)頻率、瀏覽器版本如涉及。讓報(bào)告者養(yǎng)成提供完整上下文的工作習(xí)慣這對(duì)團(tuán)隊(duì)效率的提升是立竿見(jiàn)影的。5. 從源頭減少“認(rèn)人bug”的工程實(shí)踐5.1 防御性編碼在代碼層面堵住暗雷既然“認(rèn)人bug”往往是極端條件和環(huán)境碰撞的結(jié)果那從代碼層面減少這種“爆炸半徑”就是最根本的做法。我在評(píng)審代碼時(shí)特別關(guān)注幾個(gè)點(diǎn)代碼是否對(duì)資源狀態(tài)做過(guò)充分校驗(yàn)比如調(diào)用一個(gè)可能還沒(méi)初始化的組件是否做了空安全校驗(yàn)異步邏輯中是否有加鎖或原子性保護(hù)共享數(shù)據(jù)是否在并發(fā)訪問(wèn)時(shí)做了同步處理是否使用了固定的初始化順序如果依賴順序變化系統(tǒng)是否還能正常工作配置項(xiàng)是否有默認(rèn)值兜底當(dāng)某個(gè)系統(tǒng)屬性不存在或格式不符合預(yù)期時(shí)代碼是直接崩潰還是走退路邏輯這些細(xì)節(jié)看著基礎(chǔ)但恰恰是“認(rèn)人bug”的藏身之處。防御性編程不可能消滅所有bug但它能把需要靠“特定環(huán)境特定數(shù)據(jù)特定時(shí)序”才能觸發(fā)的bug大幅減少。5.2 測(cè)試策略面向組合場(chǎng)景設(shè)計(jì)用例常規(guī)測(cè)試用例設(shè)計(jì)關(guān)注的是功能正確性而“認(rèn)人bug”的測(cè)試重心應(yīng)該放在“組合場(chǎng)景”上。我建議在測(cè)試計(jì)劃中增加一類“環(huán)境組合用例”。這類用例的典型做法包括同一功能在不同操作系統(tǒng)、不同分辨率、不同瀏覽器下跑一輪冒煙用大中小三檔數(shù)據(jù)量各跑一遍核心流程在網(wǎng)絡(luò)延遲分別設(shè)置為正常、高延遲、丟包三種條件下執(zhí)行異步操作模擬后臺(tái)大量進(jìn)程占用的低資源環(huán)境執(zhí)行前臺(tái)操作用不同語(yǔ)言和區(qū)域設(shè)置的系統(tǒng)跑一遍時(shí)間相關(guān)功能實(shí)話實(shí)說(shuō)要做到全量組合測(cè)試任何團(tuán)隊(duì)都扛不住這個(gè)成本。更務(wù)實(shí)的做法是結(jié)合風(fēng)險(xiǎn)評(píng)估做“優(yōu)先級(jí)組合”只針對(duì)并發(fā)邏輯、時(shí)間敏感邏輯、平臺(tái)依賴邏輯和數(shù)據(jù)處理邏輯這四類高風(fēng)險(xiǎn)模塊做組合覆蓋而不是全項(xiàng)目鋪開。5.3 監(jiān)控與日志讓bug在發(fā)生時(shí)留下證據(jù)很多“認(rèn)人bug”之所以難查是因?yàn)樗l(fā)生時(shí)系統(tǒng)沒(méi)留下任何痕跡或者留下的日志不足以反推觸發(fā)路徑。我強(qiáng)烈建議在項(xiàng)目的關(guān)鍵路徑上加“結(jié)構(gòu)化日志”——不只是記錄“發(fā)生了什么”還要記錄“當(dāng)時(shí)的狀態(tài)是什么”。例如數(shù)據(jù)庫(kù)操作記錄數(shù)據(jù)量級(jí)、耗時(shí)、是否走批次模式初始化操作記錄初始化順序、完成耗時(shí)、各組件注冊(cè)狀態(tài)緩存操作記錄緩存命中和重載時(shí)機(jī)異常捕獲記錄完整的調(diào)用鏈、入?yún)?、關(guān)鍵變量值、系統(tǒng)屬性這些東西就像飛機(jī)的黑匣子平時(shí)不起眼但等到bug真正出現(xiàn)時(shí)它們就是唯一的破案線索。在這里我要特別提醒一點(diǎn)日志不是越多越好。日志太多會(huì)拖慢系統(tǒng)、淹沒(méi)關(guān)鍵信息反而降低問(wèn)題排查效率。我的經(jīng)驗(yàn)是抓住“關(guān)鍵決策點(diǎn)”來(lái)打日志什么叫關(guān)鍵決策點(diǎn)就是代碼里“做選擇”的地方比如選擇走哪個(gè)分支、選擇重試還是放棄、選擇默認(rèn)值還是用戶配置值。這些位置打上狀態(tài)日志排查問(wèn)題事半功倍。6. 寫在最后的個(gè)人體會(huì)與持續(xù)建議處理了這么多年“認(rèn)人bug”我個(gè)人最大的體會(huì)是這類問(wèn)題最消耗人的不是技術(shù)難度而是“不確定性”帶來(lái)的焦慮感。當(dāng)你不知道bug什么時(shí)候會(huì)出現(xiàn)、不知道它為什么只在某個(gè)人身上出現(xiàn)時(shí)你會(huì)自然地懷疑自己的代碼、自己的水平甚至自己的判斷力。經(jīng)歷過(guò)幾次硬仗之后我的心態(tài)變得很有彈性——遇到這類問(wèn)題不再慌而是把它當(dāng)成一次“尋寶游戲”線索就散落在環(huán)境、數(shù)據(jù)和代碼之間我要做的事情就是耐心把它們一一找出來(lái)連起來(lái)。這種心態(tài)的轉(zhuǎn)變比任何技術(shù)提升都管用。最后再分享一個(gè)實(shí)戰(zhàn)小技巧當(dāng)你實(shí)在找不到頭緒的時(shí)候試著把問(wèn)題“講給一個(gè)不懂技術(shù)的人聽”。你會(huì)發(fā)現(xiàn)為了把問(wèn)題講明白你得把很多抽象的技術(shù)細(xì)節(jié)翻譯成“人類的語(yǔ)言”這個(gè)過(guò)程本身就強(qiáng)迫你重新審視事情的邏輯結(jié)構(gòu)很多被我忽略掉的關(guān)聯(lián)就是在這個(gè)過(guò)程中突然蹦出來(lái)的?!胺N蠱”只是玩笑但“bug確實(shí)只對(duì)特定人可見(jiàn)”從來(lái)不是玩笑。它是環(huán)境復(fù)雜性的一個(gè)縮影也是每一個(gè)追求質(zhì)量的工程師繞不開的戰(zhàn)場(chǎng)。希望這篇文章里的一套SOP、一張速查表和幾個(gè)實(shí)戰(zhàn)心得能幫你在下次遇到這類“玄學(xué)bug”的時(shí)候多幾條清晰的路可以走。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲字幕AV一区二区三区四区| 丁香婷婷五月人体| 这里只有精品在线看| 国产乱子轮XXX农村| 久久婷婷五月国产色综合激情| 激情丁香婷婷| 亚洲AV日韩在线观看| 精品成人无码A片观看香草视频 | 久久99国产综合精品免费| 四色 爱 婷婷 精品 亚洲 五月天| 情欲禁地| 亚洲操人| 欧美五月婷婷| 五月天婷婷色小说| 久久丁香五月综合六月激情红杏视频| 久久丁香婷| 九九热99热| 26.uuu丁香五月婷婷| 大香蕉AV在线| 丁香五月婷婷成人色区| 久久婷婷成人| 亚洲AV永久无码影院黑人| 99这里| 天堂婷婷五月在线| 9191avse| 9 9 9色色| 99性视频| 人人爽天天爽| 久久婷五月天| 色婷婷操逼| 五月天色导航| 婷婷五月激情基地| 色婷婷影院| 亚洲视频1区| 五月婷色| 成人看片网站| 91se在线视频| 五月婷婷亚洲| 99色 | 99久久这里只有精品免费官网| 九九色中文| 夜夜夜夜夜操| 久久激情五月天| 丁香五月天导航| 色99www.| 77777亚洲午夜久久| 中文字幕有多少字| 三男玩一女三A片| 丁香 久久| 婷婷五月天a| 99精品在线观看| 亚洲AV无码成人精品区电影网| 午夜精品人妻无码一区二区三区| 丁香久久| 97热91| 丁香六月五月天| 成人丁香五月| 欧美色色色色色色| 人人人操| 丁香五月婷婷在线| 日日爽日日| 五月综合激情| 97啪啪| 久草热在线视频| 五月天色裸体视频| 五月婷在线| 天天操电影院色狼性av| 很很干天天干| 色婷婷亚洲在线| 第二色AⅤ| 五月婷婷久久综合| 五月丁香六月婷精品视频| 丁香五月亚洲激情婷婷射| 五月丁香六月成人| 亚洲婷婷丁香五月在线| 五月丁香AV、伊人业余、性色熟妇| 婷婷久久午夜网| 免费视频舔| 婷婷爱在线观看| 久草A片| 日本欧美国产| 亚洲 日韩色色| 丁香成人五月天| 丁香五月婷婷六月婷婷| 99热在线这里只有精品| 丁香五月天论坛| 丁香婷婷社区| 亚洲人妻av伦理| 日本人妻A片成人免费看片| 日本狠狠干| 色五月五月婷婷| 亚洲国产精品SUV| 精品亚洲国产成AV人片传媒| 成人草榴视频| xx久久| 九九久久综合| va亚洲中文在线| 天天爱综合网| 97色碰| 五月J香蕉婷婷| 色都都狠狠色都都色综合色| 伊人影音无码一区二区三区| 亚洲色情网站| 97色色视频| 色九月丁香婷婷蜜桃在线观看| www.激情com| 97人妻碰碰中文无码久热丝袜| 人人澡天天色天天做| 五月噜噜| 激情五月天社区| 最近免费中文字幕大全高清大全1| 久热在线中文字幕色999舞| 色天使久久综合| 99热网址| 五月婷婷丁香av| 婷婷激情六月| 丁香伍月婷电影全集| 97婷婷在线| 996er在线观看| 五月婷婷中文网| 九九热精品视频九九| 日日爽夜夜爽| 真实的国产乱XXXX在线91| 色婷婷AⅤ| 欧美色图45678| 激情小说之五月| 男人天堂99| 国产精品人人做人人爽人人添| 婷婷婷久久| 激情色色| 97色97干| 97精品综合久久内射| 六月色伊人婷婷| 久久这里只有精品热在99| 五月丁香六月婷综合成人综合| 久久丁香网| 亚洲成人免费在线| 丁香五月六月综合激情| 欧美电影在线观看| 亚洲天天操| 五月婷婷欧美| 婷婷色导航| 991国产精选视频在线播放下载| 五月丁香亭亭| 综合在线网| 日本色爽| 91打屁股视频网站| 久热这里| 嫩草视频观看| 色婷久| 亚洲无码 图片区| 99日本黄站| 色狠狠色综合| 超碰人人操人人9| 婷婷区日本| 综合色色网| 小视频久久久aaa| 色优久久| 日韩抽插操逼| 成人精品视频99在线观看免费| 久青操| 99精品视频网站| 久久综合婷婷激情| 五月综合激情综合久| 久久九九99| 大香蕉av在线| 五月丁香婷中文字幕| 黄网免费看| 丁香九月激情久久| 超碰在线综合| 亚洲精品国产成人AV在线| 色五月天综合网| 狠狠噪| 丁香五月亚洲综合| 亚洲成人AV电影网| 五月婷啪| 久久色五月天| 成人视频免费观看高清完整版在线观看| 99久久思思| 99只有精品| 六月丁香视频网站| 91日在线视频| 婷婷综合激情| 婷婷综合网| 婷婷综合久久| 5月婷婷六月丁香| 五月天综合网| 操人妻视频91| 99在线资源| 五月丁香欧美综合| 夫妇交换刺激做爰| 色色色国产| 182tv992tv人之初午夜免费观看| 另类激情综合| 色婷婷婷av| www.超碰| 天天操天天操天天操天天操天天操| 激情婷| 丁香五月六月| 日日天天天| 国产欧美熟妇另类久久久| 情情五月天色| 超碰伊人碰婷婷五月| 欧美日本va| 激情性爱网站| 99热精品在线播放| 人人妻久久妻| 丁香久久九九99| 婷婷久久综| 激情九月综合| 欧美日韩色色| 六月婷婷色| 五月噜噜| 啊v视频在线观看| 国产人妻人伦精品一区二区| 免费看成人747474九号视频在线观看| 久热久色| 一起草av在线观看| 国产SUV精品一区二区883| 久久激情综合| 538任你爽视频不一样的| 99热碰碰| 五月婷婷婷婷婷| 色五月婷婷自拍| 久久久久久久久久8888| 99热国产免费| VA婷婷亚洲| 久天综合| 色色色色色综合| 俺去也五月天| 99碰网站| 99久久6| 久久久久久欧美精品se一二三四| 狠狠插狠狠插| 亚洲精品久久久久久久久久吃药| 婷婷丁香社区网| 色五月婷婷丁香凹凸| 国产在线黄色| 夜夜骑夜夜操| 成人视频婷婷| 。久久久久久久久久久久久久人妻| 久久婷丁香五月| 影音先锋自拍网| 8区视频在线| 任你躁XXXXX麻豆精品| 9999三级片| 丁香婷婷久久老熟女综合网| 九九热免费观看视频| 丁香婷婷五月综合| 亚洲色区17| h在线看免费版在线看| 99综合网| 在线天堂9| 色五月激情婷婷| 五月情婷婷五月| 婷婷中文在线| 九九色逼| 九九热这里只有精品7| 四川操逼站| 色色网站毛片| 综合色图婷婷| www超碰com| 欧美色婷婷| 色婷婷AAA| 婷婷五月天亚洲色| 色婷五月天亚洲| 91九色精品熟女内射| 91啪啪啪啪| 亚洲五月天第一综合干| 婷婷久久欧美| 激情婷婷人妻| 热99re| 能看的AV网站| 99久久精品国产色欲| se99视频| 五月婷婷深深爱| 亚洲美女网Va| AAA久久久| 丁香五月综合激情性爱| 啪啪激情网| 婷婷婷久久久| 五月丁香综合激情| 亚洲综合在线视频| 免费无码毛片一区二区A片| 99这里有精品视频| 无码AV免费精品一区二区三区| 九九这里有精品| 五夜婷婷| 婷婷五月花| 日本欧美成人片AAAA| 另类在线| 人人妖人人97| 99久久视频| 老妇操B| 美女精品一级不卡视频| 天天做天天爱天天日| 激情网五月天| 99热传媒| 国产免费一区二区三区三州老师F1F1.CC | 激情影院69| 婷婷综合九色伊人| 色综合香蕉| 久艹大香蕉| 欧美色图天堂网| 五月丁香婷婷无码中文| 久久人妻www| 天天爽天天日| 玖玖色综合| 婷婷丁香熟女| 亚洲色综合| 久热九九| www.五月婷| 91干在线| 五月丁香啪啪啪啪| 五月婷婷av| 91超级碰碰| 超碰在线观看三级片| 婷婷涩涩五月天| 91一起操| 久久曰9| 99re视频在线| 婷婷五月天国产手机在线视频观看| 初夜av| 色五月婷婷小说亚洲中文字幕组| 日本片日本片祼观看网站在线看中文版网页在线看 | 99热网址| 乱乱av| 这里只有精品96| 婷婷五月六月| 米奇影视资源777狠狠色婷婷五月天激情网| 色狠久| 婷婷久久五月丁香| 日韩色五月| 色五月婷婷基地| 五月婷婷综合成人| 天天爽天天日人人爱| 思思热视频在线| 人人操av| 色呦呦免费观看| 五月婷婷开心丁香| 亚洲国产无线乱码在线观看| 日本三级日本三级三级人妇四虎| 伊人五月成人| AA片在线观看视频在线播放| 九九99精品| 大香蕉AV电影在线| 色情综合| 色丁香五月| 香蕉AV777XXX色综合一区| 1024操逼视频| 九九激情| 免费V片在线| 丁香六月婷婷综合色| 激情综合色婷婷六月天| 色五月激情五月| 超级碰碰碰97免费| 婷婷五月天日本无码| 夜夜骑夜夜撸| 热久69| 巴基斯坦粉嫰无码视频| 五月天激情网图片| 欧美日韩999| 日韩欧美一级大黄网站| 激情六月婷婷啪啪| WWW.激情| 色噜噜伊人| 人妻激情综合| 综合久久影院| 大香蕉婷婷丁香天堂AV| 琪琪色五月天| 色九月婷婷丁香| 亚洲视频1区| 婷婷五月色丁香在线看| 婷婷91视频| 九九Y精品热播| 亚洲欧洲自拍图片专区五月天| 婷婷五月综合社区| 国产操B视频| 五夜丁香| 在线观看的av| 色狠狠色综合久久久绯色AⅤ影视| 日本激情综合| 春色激情| 色色色图| 国产激情在线| 玖玖无码中文| 久热九九| 99这里都是精品| 99久久综合网| 日日夜夜干| 亚洲人人96@| 综合激情五月丁香| 99热大香蕉| 久久曰曰| 六月五月久久丁香| 五月深情久久| 久久三级视频| 色五月婷婷、老熟女| 成人做爰A片免费看网站找不到了| 月月AV| 日本精品人妻无码77777| 色色色视频免费无码 | 大香蕉婷婷丁香视频在线| 国产亚洲99久久| 91人碰| 丁香激情五月天| 亚洲婷婷激情综合激情999精品| 日韩淑女人妻luan伦激情精品一区二| 久久激情网| 日本三级大片| 五月亭亭直播| 激情综合青草| www.韩日视频| 婷婷天堂综合| 天天日天天日天天搞| 五月丁香最新| 国产人妻人伦精品一区二区| 狠狠狠狠狠狠狠狠| 丁香五月天在线视频| 丁香香蕉射射射| 极品人妻VideOssS人妻| 亚洲色婷婷色| 狠狠久久婷| 久久六月天| 精品五月丁香| 日韩免费99| www.夜夜| 久久香蕉丁香| 第四色婷婷色五月| 殴美日比视频| 性爱五月婷| 开心五月婷婷激情| 日日天天干| 99re66热这里只有精品| 狠狠色丁香婷婷| 久久久这里有精品| AVDV久久| 伍月婷丁香花全集| 人妻操逼| 92久久| 亚洲超碰中文字幕| 成人午夜视频精品一区| 色色五月婷婷| 九九色热| 精品综合五月| 久久网站免费亚洲| 狠狠色色综合| 人妻五月天激情开心网| 国产美女无遮挡裸体毛片A片| 色五月婷婷一二| 婷婷六月丁香1| 操日视频| 99re视频在线| wuyuedingxiang| 丁香六月婷婷| 五月天婷婷影院影院观看| 亚州精品色情无码A片| 殴美97色| 久久婷婷青青草| 俺去也五月天| 婷婷99| 日日夜夜小色哥| 九九人妻福利| 99综合视频一体| 四月婷婷五月丁香| 五月天婷婷激情在线色图| 91人人操人人| 任你日视频| 十一月婷婷激情四射| 丁香婷婷久久老熟女综合网| 五月丁香色婷婷婷基地| 婷婷丁香五月亚洲欧美| 色色激情五月| 中文精品在| 9热久久在线| 日本片日本片祼观看网站在线看中文版网页在线看| 色五月天成人| 伊人五月综合网| 色久激情在线| 五月婷婷六月丁香色| 涩涩网五月天| 婷婷五月花西瓜| 色婷五月| 五月深爱激情网| 六月婷婷亚洲| 五月六月婷婷| 国产精品久久久海的味道| 成人丁香五月天| 99爱视频在线免费观看| 涩涩涩.com| 欧美成人精品一区二区| www.国产色| 五月丁香六月婷婷欧美综合| 五月婷婷草| 久久玖玖综合| 99免费热视频在线| 97婷婷狠狠| 婷婷丁香宗合888| 女人天堂AV| 欧美啪啪9| 婷婷视频网| 99热这里只有精品青草| 青草视频在线播放| 青青草五月天| 久777| 久99精品视频| 婷婷五月激情四月综合| 婷婷伊人五月| 五月玖玖| 最近中文字幕大全免费版在线| 性爱网五月天| 五月激情综合网| 人碰人人人玩91| 中文字幕黄色电影网址| 操操啪| 夜夜骑日日操| 99视频只有这里精品| 色色色综合色| 五月丁香六月激情综合| www.久久99精品| 97超碰欧美中文字幕| 丁香婷色| 狠色狠色狠色狠色狠色网| 日本激情五月天‘| 大香蕉520| 国产熟妇乱子伦hd| 婷婷激情五月综合| 婷婷五月成人有| 天天干天天干天天干天天干天天| 久久99网| 极品人妻VIDEOSSS人妻| www.婷婷五月天| 丁香桃色网| 成人精品视频99在线观看免费| 亚洲精品另类| 五月婷婷偷| 五月丁香av在线| 五月天亭亭俺也| 在线综合网| 热99色| 99久久精品色老| 伊人天天色| 色综合xx| 黄网在线免费观看| H亚洲| 涩五月婷婷| 五月婷婷丁香色播网| 97碰碰人人| 五月天婷婷激情在线色图| 成人做爰黄A片免费看直播室男男| 91人人爱| 婷婷五月天激情综合婷婷五月天激情综合| 综合啪啪| 99视频日韩| 99噜噜噜在线播放| 96精品久久久久久久久| 久久33视频| 成人久久天天x资源站| 久久jiuwww| 丁香五月天激情| 强伦轩人妻一区二区电影| 国产69久久久欧美黑人A片| 婷婷丁香五月天影院| 久久96热| 国产肥白大熟妇BBBB视频| 婷婷五月天AV在线| 另类激情首页| 伊人影院久久网| 日日婷婷不卡| 五月丁香久久| 丁香五月天欧洲在线| 五月天综合视频网| 婷婷五月花丁香| 六月综合婷婷开心伊人| 色色丁香婷婷| 色老久久| 欧美激情中文字幕| 26UUU精品一区二区| 精品无码久久久久久久久| 99ri国产在线| 丁香婷婷五月六月久久| 色五月色五天色情网址| 激情综合色婷婷啪啪六月天| 狠狠爱青青草| 日韩精品无码99| 99热在线观看| 开心婷婷中文字慕| 久久久精品人妻| 亚洲啪啪啪啪| 另类图片天天影视在线观看| 久久98| 中文字幕黄色片| 五月婷在线影院| 97资源欧美日韩大香蕉超碰一区| 久久久五月五丁香| 色色五月婷| 色五月婷婷中文字幕| 这里只有精品视频99| 蒲京久久无码视频| 激情婷婷五月天在线观看| 天天日天天久久青青| 色综合xx| 久久久精品婷婷五月天| 伊人久久五月天综合| 99热www| 久久天天| 亚洲1区| 天堂AV三级| 超碰人人在线| 五月丁香久久综合精品| 26uuu成人网| 婷婷五月久久| 综合99在线| 五月天另类激情在线| 激情 婷婷| 青青草成人网| 五月天激情四射| 久99久视频| 亚洲综合婷婷| 九九色播五月丁香| 丁香五月天社区| 色婷婷综合中心| 五月激情小说| 夜夜骑天天玩天天日| 伊人成综合五月婷婷| 五月六月婷| 五月婷婷中文字幕| 天天爽夜夜操| 1010日日无码| 丁香五月天婷婷91| 99久久婷婷国产综合精品草原| 久久免费精品小视频| 免费看欧美成人A片无码| 五月激情网站| 玖玖99免费视频| 五月大香蕉| 亚洲六月色| 九九热在线观看6| 风流少妇A片一区二区蜜桃 | 天天激情综合| 九九久久精品國產| 99久视频| 日韩AAAAAAAAAAA片| 狠狠色综合网| 国内一级片| 五月婷婷色播| 日日操天天爽| 日日操夜夜爽白洁| 婷婷天堂视频| 丁香五月之久操视频| 黄网在线观看免费| 丁香五月激情鲁| 99九九久久| 影院久久久| 无码99| 婷婷五月六| 亚洲 精品 综合 精品| 玖玖爱导航| 色欲天天综合网| 久久丁香五月| 热成人网| 夜夜骑操AV| 五月丁香亭亭操逼| 亚洲精品444久久久久久| 色婷婷丁香五月天在线观看| 五月天激情婷婷五月天久久| 久久精品99| 日韩美女羞羞网站在线观看| 久久婷婷免费| 99热这里有精品| 久久婷婷国产| 狠狠狠色激情综合适合| 99热只有精| 六月婷婷狠狠| 婷婷五月天受日本法律保护| 97热在线精品| 九九精品碰| 激情性爱五月天网页| 91久久久久久久| 国产欧美第五十五页| 亚洲操B| 精品少妇蜜臀91| 久草a片| 超级碰人人操人人干| 日韩AV中文在线观看| 另类在线| 99久久九九| 五月激情影院| 色色综合网站| 国产精品涩涩涩视频网站| 亚洲五月天婷婷| 婷婷五月色| 亚洲色综合| 99操视频| 精品乱码久久久久| 激情四射五月天| www激情| 六月婷婷五月丁香| 久久五月婷| 天天干天天色综合| 久久精彩视频| 专区无日本视频高清8| 六月色婷婷| 色偷偷AV亚洲男人的天堂| 五月天激情婷婷| 99在线精品免费视频| 日本强伦片中文字幕免费看| 丰滿爆乳一区二区三区| 停停六月 综合| 99色日本| 啪啪激情网| 99日本视频| 人人性久久| 天天色播| 五月丁香综合啪啪対白| 婷婷五月天最新综合你懂的 | 亚洲婷婷在线播放十月| 99热无码精品| 久久婷婷丁香六月天| 五月丁香激情欧洲啪啪| 五月天狠狠| 久久久久er热| 五月天色图| 噼里啪啦在线观看免费完整版视频| 亚洲精品字幕| 黄色五月婷| 久久综合激情| 久久久五月激| 激情五月开心五月丁香五月| 五月天激情久久| 婷婷在线播放| 婷久久久| 伊人久久婷婷| www.亭亭五月天| 婷婷色啪| 欧洲MV日韩MV国产| 婷婷色片| 婷婷在线观看五月天在线视频| 开心五月丁香婷婷| 人人妻人人澡| 99久久婷婷国产综合亚洲| 久久人妻久久久久| 97色热| 日逼影音先锋AV男人资源站| 激情美女五月天| 色婷婷五月天久久| 99精品视频播放| 天天艹天天综合网| 激情五月天综合| 91操人视频| 综久久久| 丁香五月aV| 综合久久久| 黄色三级毛片中字| 婷婷伊人久久| 婷婷综合六| 亚洲成人综合在线| 久久久久九九九九视屏小说88| 久热黄色| 五月天综合激情网| 五月综合丁香婷婷| 91九色偷拍| 任你操精品免费| 99热国产这里只有精品| 99久久超级| 五月永久激情| AA片在线观看视频在线播放| 综合综合色色| 99热这里是精品| 天天草人人摸| 丁香六月婷| 思思99热热热99| 五月丁香婷婷综合网| 97性视频| 婷婷五月天黄色| 久久精品99久久| 日本激情91| 在线资源av-超碰中文在线-成人AV | 九月婷婷综合在线| 五月激情久久| 91色碰| 婷婷va| 色综合久网| 天天做天天爱天天综合网| 亚洲AV成人一区二区在线观看| 亚洲五月天天| 国产又粗又大又爽又黄| www。五月天。com| 综合色七七| 天堂草在线观看| 婷婷久久天堂网| 人人摸人人| 91人操| 久久99网| 色综合色综合色综合高潮| 亚洲最大成人综合网720P| 五月丁香啪啪拍| 丁香五月婷婷av影院| 五月婷婷说| 色色色色色综合| 激情啪啪五月| 久久99婷婷| 97干在线| 99热色在线精品| 五月婷婷六月丁香首页| 婷婷性爱网| 六月婷婷无码| 久久丁香综合香蕉| 四月婷婷五月丁香| 99精品久久| 香蕉AV777XXX色综合一区| 久久这里有| 日韩在线99| 天天爱天天爽| www.六月丁香看AV| 色婷婷久久综合久色综| 色婷婷基地| 欧美日韩一区二区三区四区| ww久久| 国产小精品| 激情五月婷婷五月| 99re思思热在线视频| 精品日本视频444| 男人的天堂五月丁香| 成人色站,在线视频,看片-SS1AV| 91大操| 人人操插| 亚洲九九在线| 五月久久婷婷丁香| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 美女主播野战视步页| 色色色色色综合| 久久九九网| 五月丁香在线看| 久青青久| 在线看av| 中文字幕 中文字幕明步| 亚洲综合另类| 五月丁花色综合网| 996热| 九九九AAA热视频| 激情综合久久| 97色操| 射久久丁香五月| 亚洲啪啪视频| 无码一级片| 国产肥白大熟妇BBBB视频| 99爱视频| 狠狠色噜噜| 五月天色婷伊人| 五月色亚洲| 91久久精品国产91性色TV| 天天噜日日噜综合无码| 五月天影院| 亚洲 综合中文| 婷婷大乡焦噜噜| 日韩黄色影院| 可以看的av| 九九99九九99偷拍视频免费看| 五月婷婷五月天亚洲无码| 综合丁香婷婷五月天| 国产熟女大叫受不了| 综合久久十| 亚洲第一成人无码A片| 婷婷五月天成人网| 亚洲99在线| 热思思| 91大屁股| 天天色综合色| 色婷婷五月综合| 色综合久久88色综合天天看| 国产综合A片| 亚洲六月色| 欧美三级A做爰在线观看| 久久婷婷精品| www99在线观看视频| 99色色色色| 婷婷丁香五月欧美人| 激情五月伊人婷婷| 婷婷性爱| 日夜操B| 夜夜爱伊人| 色天堂操| 操逼巨乳91| 狠干综合| 99干99| 亚洲成人九九九| 日本人妻操| 日韩成人电影Av| 夜色.cnm| 伊人影院久久网| 婷婷丁香五月在线观看91| 久久婷婷五月综合色丁香花| 字幕网AV中文字幕| 伊人丁香五月天丁香在线婷| AⅤ网站在线看| 91中文狠狠综合| 欧美顶级少妇做爰HD| 最近中文字幕大全免费版在线| 五月色网| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | av在线观看免费| 人人干99| 五月婷六月| 久青草影院| 亚洲日本韩国| 波多婷婷久久| 色播激情五月天| 亚洲狠狠干| 欧美色性色好| 99热精品观看| 久久机热/这里只有精品| 大香蕉久久| 9热网站| 丁香五月欧美婷婷| 久久综合婷| 丁香五月91| 这里只有精品日韩| 五月丁香激情综合啪| 狠狠肏综合网| 丁香五月婷婷色偷偷| 久久思思热| 思思re99视频在线观看| 无码日本精品XXXXXXXXX| 亚洲无码影片| 99草视频在线观看| 色婷婷黄色网络| 精品福利911| 五月六月婷| 五月色丁香| 专区无日本视频高清8| 久久人妻伦理| 久久婷婷综合网| 激情五月天色播| WWW.久久99| 日本久久综合| 色五月婷婷啪啪五月| 99久视频| 免费看欧美成人A片无码| 啪啪五月婷婷| 久久五月天婷婷| 啪啪五月天啪啪| 五月天激情国产综合婷婷婷| 五月丁香综合啪啪| 综合久久综合综合| 欧美天天草人人草| 九九九九这里只有精品| 色五月六月| 97丁香视频| 伊人春天av| 99热网站| CHINESE熟女老女人HD视频| 少妇婷婷五月天| 久久99最新| 九月婷婷激情| 狠狠干最新地址| 色九九综合| AV五月婷婷露脸| 91九色精品熟女内射| 久9热插入| 99久热这里只有精品视频删减版| 激情五月天开心总和网| 五月天开心激情综合网| 狠狠精品干练久久久无码中文字幕| 五月天操逼网| 丁香婷婷色五月天| 色婷婷综合网| 99亚洲精美视频在线观看| 啄木鸟黑丝一区二区| 久久最新色| 六月丁香AV| 玖玖资源部在线播放| 久草五月婷婷| 97超碰色| 99精品网站| 婷婷五月天影院| 婷婷五月大香蕉| 四色99久久| 99噜噜噜在线播放| 超碰免费大香蕉| 九九视频这里只有精品| 日韩一本操| 精热在线综合网| 99日在线视频| 婷婷自拍| 五月丁香婷婷三级| 免费无码毛片一区二区A片| 久久三级视频| 91超碰在线观看| 91色情播放| 任你躁XXXXX麻豆精品| 欧美群妇大交乱婬网| 日本一级特黄大片AAAAA级| 天天艹| 天天日,天天射,天天舔| 丁香五月天天久久综合小说| 丁香五月天在线直播观看| 99精品网| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 丁香婷婷影院| 九九热内射| 丁香丝袜五月| 在线观看视频1区| 色色色色色色色色色999| 久久99国产综合精品免费 | 色级停停| 丁香色情五月综合网站| 人妻丰满精品一区二区A片| 就99这里只有精品| 狠狠穞A片一區二區三區| 激情五月丁香五月| 91欧美| 婷婷成人网五月天| 亚洲激情五月| 操操操av| www.夜夜操| 综合狠狠干| 日本精品久久久久中文字幕| 六月丁香成人| 99这里都是精品| 丁香开心深爱| 免费黄网不卡AV| 日日操日日射| 特黄三级又爽又粗又大| 色色色.COM| 日本色色网站| 99综合久久| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 欧美婷婷精品激| 另类 在线| 91久操| 九九亚洲视频| 99惹精品视频| 丁香五月www| 婷婷五月丁香欧洲| 六月丁香啪啪| 亚洲精品字幕| 色五月婷婷五月天激情综合| www.久久爱.c n| 91精品丝袜久久久久久| 激情综合女人网五月播播| 极品人妻VIDEOSSS人妻| 久久婷婷丁香六月天| 综合精品99| 色99视频| 五月丁香在线国产 | 五月天另类综合网| 97伦色婷婷| 五月婷婷天堂| 国产婷婷五月中文字幕高清| 97超碰99热99| 亚洲av日韩无码| 在线五月色播| 超级碰人人操人人干| 色婷婷操逼| 伊人国产婷婷五月天| 亚洲第二AV| 成人在线99| 天天爽日日爽夜夜爽| 色婷婷免费观看| 99热精品免费| 五月亭亭六月天| 五月天婷婷xxx| 丁香情色五月| 亚洲综合网 665566| 五月婷婷六月丁| 婷婷94s| 丁香五月性| 五月天影院| 婷婷性爱影院| www99精品日韩| 99超级碰免费视频| 一本综合丁香日日狠狠色| 在线另类视频| 国产精品第一国产精品| www.97碰碰com| 丁香六月高清视频| 97狠狠碰| 亚洲亚洲人成综合网络| 午夜婷婷久久| 五月天激情久色| 九九99久久| 久久久九九视频精品18| 777精品久无码人妻蜜桃| 色色色色色网| 亚洲 在线 性爱 | 日本三级大片| 超碰免费大香蕉| 五月丁香六月婷婷婷婷| 欧美婷婷| 热99在线精品| 国成人网| 久久久GOGO无码啪啪艺术 | 婷婷丁香www视频日本韩国| 免费看欧美成人A片无码| 日本一级特黄大片AAAAA级| 伊人9999| 婷婷激情综合无月| 色99在线观看| 久久五月情| 五月激香蕉网| 91久热| 色综合丁香| AA丁香综合激情| 热99热9| 婷婷丁香一月| 五月色婷婷在线观看| 中文字幕在线免费| 99色| 丁香社92视频| 99热人人艹| 欧美日本免费一道免费视频| 99热思思| 国产激情综合五月久久| 97人人操人人| 2020日日干| 五月丁香激情综合网| 五月天国产婷婷精品视频在线| 婷婷丁香五另类网站| 五月色婷婷在线观看| 五月天婷婷基地| 9久国产精品| 日本一毛片| 99久久www| 97色啪| 综合色影| 六月丁香综合| 任你搞网站| 色九亚洲| 99精品人人| 五月丁香久久网| 午夜激情综合| 操97| 丁香五月婷婷深爱综合激情| 色婷婷综合视频| 三级三久久线久久99久目本WW| 久久综合五月天| 操97| 超碰人人干| 亚洲另类婷婷综合| 色婷婷久久综合| 亚洲性受XXXX五月丁香| 一级片sese片.COM| 狠狠搞五月天| 99re在线观看视频| 激情网站综合五月天| 99.色| 综合色激情| 涩五月婷婷| 婷婷丁香五另类网站| 激情五月天电影| 大香蕉AV在线| 玖玖婷婷免费| 久久婷婷的综合色丁香五月| 婷婷99狠狠躁天天躁中文| 欧美色色色色色色色| 九九精品网站| 先锋男人99资源| 婷婷噜噜| 五月天婷婷爱| 成年人丁香五月| www.超碰97| 色综合色综合色综合| 五月久久网| 色狠狠五月天| 5月婷婷激情6月| 热99在线| 天天肏视频| 亚洲成av人影院| 91九色在线观看免费| 婷婷丁香九月| 天天成人综合| 色五月婷婷在线观看| 丁香五月婷婷啪| 日本乱子人伦在线视频| ZpRSw| 91九色|疯狂|高潮|对白|| 成人婷婷色五月天| 精品三区影院| 久久亚洲无码| 色婷久九| 婷婷五月天堂| 欧美日本韩国亚洲| 99色日本| 激情六月丁| 99re免费精品视频| 这里只有精彩视频| 九九精品综合| 久热这里只有精品在线观看| 99视频精品全部免费 在线| 亚洲综合激情五月| 亭亭五月天黑人2014| www.亭亭五月天| 99久在线精品| 99久久99久久综合| 婷婷综合久久综合| 大香蕉九九| 九九热精品视频在线观看| 久久久噜噜噜久久人妻| AV中文在线| 色色丁香婷婷| 综合欧美五月婷婷| 中出内射的人妻视频| 91久久久久久久久18| AV在线大香蕉| 九九这里是免费的视频5| 踪合专区啪啪| 97色色色色色色色色色色色色色| 中文字幕日本最新乱码视频| 五月婷久久草| 狠狠操天天日| 欧美色婷婷| 碰碰碰97免费精彩视频| 丁香久色| 99精品自拍视频| 97超碰99热99| 色综合色综合色综合高潮| 最新色色五月天| www激情网| 深爱五月天天| 97超碰综合| AV中文字幕夜夜操b天天摸bb| 亚洲色婷婷色| 国产免费一区二区三区三州老师F1F1.CC | 黄页大全十八禁| 99热网站| 五月久久网| 成人视频婷婷| 亚洲视频在线网站| 婷婷六月丁香在线| 成人av在线网站| 亚洲黄3级片网站欧美| 天天干天天操| 九九九九精品精| 亚洲精品五十一区| 91欧美| 9有码中文| 亚洲色网址| 丁香六月婷婷激情| 激情五月婷婷综合网| 99啪啪| 婷婷丁香五月亚洲欧美| 97人人做| 超碰三级片| 婷婷刺激综合| 婷婷成人在线| 日屌日日操日日色| 狠狠色综合图片| 777精品成人a v久久| 天天爽天天爽| 99热成人精品| 免费视频无码| 激情五月图| 99热婷婷| 国产99精品免费视频| 这里只有精品视频| 色五月丁香五月激情五月激情| 色色丁香| 亚洲国产婷婷色五月| 直接看的AV| 五月激情日本在线| 91一起操| 99精品视频在线免费观看| 大地9中文在线观看免费高清| 色五月在线| 超碰国产在线播放|