国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(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ō)法乍一聽(tīng)像是段子但真正在軟件測(cè)試和開(kāi)發(fā)一線(xiàn)摸爬滾打過(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ò)。開(kāi)發(fā)說(shuō)“我這邊跑得好好的”測(cè)試那邊一執(zhí)行就花屏崩潰兩個(gè)人隔著工位面面相覷最后只能靠“重啟大法”和“多跑幾次”來(lái)碰運(yùn)氣。這個(gè)現(xiàn)象背后其實(shí)是軟件運(yùn)行環(huán)境復(fù)雜性和測(cè)試方法論問(wèn)題的集中體現(xiàn)。今天我想從這個(gè)“種蠱”的玩笑話(huà)切入認(rèn)認(rèn)真真拆解一下bug為什么會(huì)對(duì)特定人“可見(jiàn)”這種問(wèn)題通常長(zhǎng)什么樣我們?cè)趺从孟到y(tǒng)化的手段把這類(lèi)“玄學(xué)”變成“科學(xué)”以及在日常測(cè)試和開(kāi)發(fā)協(xié)作中如何從源頭減少這種“人肉復(fù)現(xiàn)”的困境。這篇文章適合正在被偶現(xiàn)bug折磨的測(cè)試工程師、被“我這邊沒(méi)問(wèn)題啊”困擾的開(kāi)發(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)開(kā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ā)生了沖突。換句話(huà)說(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 這類(lèi)bug的共同特征環(huán)境依賴(lài)、偶發(fā)性與可復(fù)現(xiàn)壁壘把上面幾個(gè)案例放到一起看就能總結(jié)出這類(lèi)“認(rèn)人bug”的三個(gè)核心特征。第一是環(huán)境依賴(lài)性強(qiáng)。這里的“環(huán)境”是廣義的不只是操作系統(tǒng)版本還包括系統(tǒng)語(yǔ)言、時(shí)區(qū)、字體庫(kù)、已安裝軟件、啟動(dòng)的服務(wù)、環(huán)境變量、依賴(lài)的第三方庫(kù)版本甚至硬件配置和屏幕分辨率。這些因素互相作用構(gòu)成了一個(gè)幾乎不可窮舉的組合空間。第二是偶發(fā)性與可復(fù)現(xiàn)率低。這類(lèi)bug往往不是100%復(fù)現(xiàn)而是有概率地出現(xiàn)。概率可能高到十次里出現(xiàn)三次也可能低到幾天才出現(xiàn)一次。隨機(jī)性就是它們的護(hù)身符讓開(kāi)發(fā)人員在debug的時(shí)候無(wú)從下手。第三是觸發(fā)條件隱蔽。這類(lèi)bug的觸發(fā)邏輯往往藏在不直觀(guān)的路徑上可能是數(shù)據(jù)邊界值、可能是時(shí)序競(jìng)爭(zhēng)、可能是資源泄漏的累積效應(yīng)也可能是緩存失效策略的某個(gè)極端情況。你沒(méi)找到觸發(fā)條件時(shí)它幾乎不存在你找到了之后會(huì)覺(jué)得“原來(lái)就這么簡(jiǎn)單”。理解了這三個(gè)特征你就明白為什么這類(lèi)bug在團(tuán)隊(duì)里會(huì)造成巨大的內(nèi)耗了——因?yàn)椤霸谖覚C(jī)器上跑得好好的”這句話(huà)在這種前提下不能說(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版本等依賴(lài)的本地服務(wù)版本與配置機(jī)器上安裝的、可能干擾應(yīng)用運(yùn)行的全局軟件輸入法、截圖工具、翻譯工具、內(nèi)網(wǎng)安全管理軟件等瀏覽器類(lèi)型、版本、插件、禁用啟用狀態(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ù)客戶(hù)端但一個(gè)用了系統(tǒng)自帶的驅(qū)動(dòng)一個(gè)用了應(yīng)用程序目錄下自帶的驅(qū)動(dòng)這就夠了——行為就是會(huì)不一樣。所以做環(huán)境比對(duì)的時(shí)候你得看得足夠細(xì)細(xì)到依賴(lài)包、驅(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)景。在處理這類(lèi)問(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類(lèi)型時(shí)序問(wèn)題在“認(rèn)人bug”里占的比例相當(dāng)高而且是最難排查的類(lèi)型因?yàn)樗莿?dòng)態(tài)的、概率性的。我見(jiàn)過(guò)一個(gè)典型的例子一個(gè)桌面工具在啟動(dòng)時(shí)初始化了一個(gè)全局事件監(jiān)聽(tīng)器并且注冊(cè)了一個(gè)異步任務(wù)。某同事的機(jī)器啟動(dòng)速度特別快固態(tài)硬盤(pán)太新結(jié)果某個(gè)組件還沒(méi)完成注冊(cè)異步任務(wù)就觸發(fā)了對(duì)它的調(diào)用直接拋了空指針異常。其他同事的機(jī)器硬盤(pán)慢一點(diǎn)人為創(chuàng)造了一個(gè)“安全窗口期”所以從來(lái)沒(méi)觸發(fā)過(guò)。這種問(wèn)題就是典型的“海森堡bug”——你越是想觀(guān)察它它越是不出現(xiàn)因?yàn)椤坝^(guān)察”這個(gè)動(dòng)作本身就改變了系統(tǒng)狀態(tài)。比如你為了調(diào)試加了一行日志就改變了時(shí)序的競(jìng)爭(zhēng)格局bug反而不出現(xiàn)了。面對(duì)這類(lèi)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)的未加鎖讀寫(xiě)緩存加載與數(shù)據(jù)更新的時(shí)間窗口事件監(jiān)聽(tīng)器的注冊(cè)與銷(xiāo)毀時(shí)序多線(xiàn)程下的懶加載邏輯這些位置就是“競(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”最忌諱的事情就是“接到反饋馬上開(kāi)跑”沒(méi)有任何信息收集就直接去猜。正確姿勢(shì)是建立一個(gè)標(biāo)準(zhǔn)化的排查流程讓每個(gè)人面對(duì)這種問(wèn)題時(shí)都有章可循。我的做法是這樣的第一步獲得完整的復(fù)現(xiàn)信息不要滿(mǎ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ò)文本、卡死畫(huà)面、閃退前的最后交互最近有沒(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)信息、依賴(lài)版本等把結(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)題大概率在軟件依賴(lài)沖突上。第四步代碼層面的競(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ā)條件開(kāi)一個(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ì)這套流程有直觀(guān)認(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)存分配策略?xún)?yōu)化了單純數(shù)據(jù)量大已經(jīng)不足以觸發(fā)卡死。這個(gè)案例告訴我一個(gè)很重要的道理很多“認(rèn)人bug”其實(shí)是多個(gè)因素疊加的結(jié)果。單看任何一個(gè)因素都不足以出問(wèn)題但組合起來(lái)就踩到了雷區(qū)。所以排查這類(lèi)問(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ò)但突然開(kāi)始出現(xiàn)外部依賴(lài)變更第三方服務(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)?;蛘邔?xiě)一個(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)死胡同處理這類(lèi)bug時(shí)有些做法我強(qiáng)烈建議你要避開(kāi)它們會(huì)極大浪費(fèi)你的時(shí)間。不要在復(fù)現(xiàn)現(xiàn)場(chǎng)去跟蹤代碼。“海森堡bug”是最典型的例子你越是介入觀(guān)察系統(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)一開(kāi)發(fā)環(huán)境標(biāo)準(zhǔn)化。推行虛擬機(jī)開(kāi)發(fā)環(huán)境或者容器化開(kāi)發(fā)環(huán)境讓代碼在團(tuán)隊(duì)里運(yùn)行的基礎(chǔ)設(shè)施是一致的。這一步能消滅一大半的環(huán)境差異類(lèi)bug。當(dāng)然容器化不等于徹底解決問(wèn)題因?yàn)閿?shù)據(jù)差異和第三方服務(wù)差異依然存在但至少系統(tǒng)和依賴(lài)版本這一層穩(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ā)訪(fǎng)問(wèn)時(shí)做了同步處理是否使用了固定的初始化順序如果依賴(lài)順序變化系統(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ì)劃中增加一類(lèi)“環(huán)境組合用例”。這類(lèi)用例的典型做法包括同一功能在不同操作系統(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í)話(huà)實(shí)說(shuō)要做到全量組合測(cè)試任何團(tuán)隊(duì)都扛不住這個(gè)成本。更務(wù)實(shí)的做法是結(jié)合風(fēng)險(xiǎn)評(píng)估做“優(yōu)先級(jí)組合”只針對(duì)并發(fā)邏輯、時(shí)間敏感邏輯、平臺(tái)依賴(lài)邏輯和數(shù)據(jù)處理邏輯這四類(lèi)高風(fēng)險(xiǎn)模塊做組合覆蓋而不是全項(xiàng)目鋪開(kāi)。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í)它們就是唯一的破案線(xiàn)索。在這里我要特別提醒一點(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)值還是用戶(hù)配置值。這些位置打上狀態(tài)日志排查問(wèn)題事半功倍。6. 寫(xiě)在最后的個(gè)人體會(huì)與持續(xù)建議處理了這么多年“認(rèn)人bug”我個(gè)人最大的體會(huì)是這類(lèi)問(wèn)題最消耗人的不是技術(shù)難度而是“不確定性”帶來(lái)的焦慮感。當(dāng)你不知道bug什么時(shí)候會(huì)出現(xiàn)、不知道它為什么只在某個(gè)人身上出現(xiàn)時(shí)你會(huì)自然地懷疑自己的代碼、自己的水平甚至自己的判斷力。經(jīng)歷過(guò)幾次硬仗之后我的心態(tài)變得很有彈性——遇到這類(lèi)問(wèn)題不再慌而是把它當(dāng)成一次“尋寶游戲”線(xiàn)索就散落在環(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ù)的人聽(tīng)”。你會(huì)發(fā)現(xiàn)為了把問(wèn)題講明白你得把很多抽象的技術(shù)細(xì)節(jié)翻譯成“人類(lèi)的語(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ì)量的工程師繞不開(kāi)的戰(zhàn)場(chǎng)。希望這篇文章里的一套SOP、一張速查表和幾個(gè)實(shí)戰(zhàn)心得能幫你在下次遇到這類(lèi)“玄學(xué)bug”的時(shí)候多幾條清晰的路可以走。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
在线观看黄色电话| 伊人久大| 性开放中文AV高清无码免费看| 婷婷色综合欧美日韩| 中文字幕在线24| 亚洲色色探花| A 天堂| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚欧性爱在线无码| www网站黄| 9久在线视频只有精品| 亚洲影视第一页| 97硬碰| 免費黃色視頻觀看一| a片自拍直播视频| 久久久久久人| 日韩亚洲97| 欧美97在线观看| 五月婷婷激情网| 伊人久久大香大香线蕉中文| 性影在线视频| 成人网欧美风情| 中文字幕在线免费观看视频| 一区操逼日比视频| 亚洲图片激情综合另类| 91色综合| 超碰色综合| 久热网| 伊人aaa| AV一二区| 国产综合久久久鬼色| 大香蕉色十月| 综合久草| 国产视频一区二区在线观看| 人妻五十路在线| 91女神在线视频| 射 色综合| 99日韩| 亚洲AV无码国产精品久久久久 | 日日操免费视频| 97欧美综合| 日本布卡一区二三区| 青久久| 亚洲综合大片| 熟女露脸激情自拍视频| 狠狠入| 好爽视频在线观看| 超碰97久久| 999久久久九九九九| 亚洲综合色图欧美| 色99999| yw尤物av无码点击进入麻豆| 岛国福利在线精品播放| 乱伦1色页| 性色av大全| 天天摸夜夜添无码小视频| 精品日韩人妻精品一二三区| 国产精品日韩在线一区| 人妻碰碰碰碰碰碰| 啊啊啊不要啊啊受不了了视频在线| av午夜玫瑰| 欧美 亚洲 另类 综合| 97精品视频网站| 欧洲性人爱视频| 97在线观看免费| 精品国产乱子伦一区二区三区,精品一| 啊啊在线| 国产精品白领在线观看| www…国产操逼| 人妻嗯啊啊在线播放| 手机av天堂久久久久| 欧美aⅴ99久久黑人专区| 蜜臀AV成人精品蜜臀| 激情情色五月天| 欧洲精品一级二级精品综合视频综合| 五月婷婷丁香六月丁香| 日韩欧美一级特黄大片| 欧美色偷拍| 97超碰人操| 欧亚日韩中文在线| 学生妹天天看| 人人操我人人干| 日韩精品 视频一区二区| 夜色AV无码手机在线影院| 日韩av乱伦| 国产av高清版| 天天影视综合色| 襙一襙| 国产精品嫩草久久久久| 玖玖无码超碰| 国产91福利小视频在线观看| 国产高清在线观看欧美| 中文字幕精品一区二区精品| 日韩不卡网操逼中文字幕日韩| 婷婷丁香人妻 | 青青草好吊色| 国产综合操逼高清| 大香蕉伊然在亚洲91| 大色综合| 丁香久久| 碰人碰碰人人开房人肉| 综合激情二| 亚洲天堂男人在线| 加勒比海人人操超碰在线| 欧美日韩国产高清在线一二三区| 精品久久久久黄少妇| 日韩精品-原创伙伴| 伊人久久大香线蕉无码| av情色影音| 丝袜美腿丝袜| 亚洲 欧美 手机在线观看| a人欧美综合天堂麻豆| 资源新线在线天堂| 国产精品久久久亚洲一区| 亚洲影视第一页| 精品国产一区二区三区四区在线看| 国产玖玖| 久久性爱视频免费看| 五月天婷婷色| 亚洲精品一区中文字幕乱码| 91视频女生| 日韩不卡av一二三| 婷婷探花久久精品一区| 亚洲色诱惑| 性感美女啊啊啊在线| 久久久久人妻二区精品叶可怜| 美女啊啊啊啊啊啊啊| 玖玖爱影院| 亚洲情色1区| 亚洲熟伦熟妇AV无码春色| 日韩AV中文字幕电影| 白丝AV| 欧美制服另类丝袜| 日韩特级毛片免费观看全集| 91电影色诱| 91一区二区三区蜜桃| 亚洲熟女综合| 欧美A片中文字幕| 91国产丝袜足交精品视频| 国产精品久久久啊| 伊人久久大香蕉线AV五月天| 懂色av色欲av蜜臀av| 欧美高潮| 九九国产热| 超碰在线香蕉| 亚洲双插| 成人热久久精品| 人人摸.人人色| 亚洲成A∨人影院在线欢看| 黑人性欧美| 丁香五月综合| 日韩亚洲国产视频| 国产白丝av| 第四色亚洲色图| 亚欧性爱无码| 欧美同性恋 的搜索结果 - 91n| 99爱爱| 欧美天天弄| 中亚黄色三级大片| 无码人妻丰满熟妇奶水区毛片| 强奸抽插av| 欧洲精品网| 99在线精品视频| 国产区日韩区在线观看| 另类专区加勒比| 丁香五月天婷婷姐| 五月天啪啪| 日本熟女不卡视频| 老熟妇91| 99超碰网| 国产传媒美日韩av| 日日干夜夜干| 精品性爱一二三区| 午夜福利国产欧美日韩夜夜| 99热这里只有精品1| 青青草在线成人视频| 欧美黑人精品一区二区| 超碰在线人人射| 亚春色色| 蜜桃精品一区二区三区久在线| 精品久久久久,69国产成人精| 麻豆乱码久久精| 色青青久久影视| 久久伊人亚洲AV无码网站| 97 国产精品| 日韩不卡网操逼中文字幕日韩| 亚洲天堂中文字幕无码男同| 久久精品国产亚洲AV成人直播| 欧美真人抽搐一进一出gif| 97精品一区二区视频在线观看| 成人网欧美风情| www.99在线| 亚洲成人一区二区精品| 狠狠色噜噜狠狠狠狠2018| 夜色综合| 69精品| 视频在线97| 国产熟妇一区二区| 伊人久久大香线综合无码| www久| 久久人人爽人人爽人人片Ⅴ| 看日韩操逼| 视频在线观看免费一区二区三区| 精品高清一区二区三区三州| 无码人妻一区二区三区色欲aⅴ| 国产97视频| 欧美日韩国产精品久久色婷婷| 青青草色情网站视频| 十八禁网站在线| 九色97| 日韩一区二区精品视频| 欧美92| 九九超碰综合网| 日韩精品系列| 丝袜美腿操av| 久久久日本电影| 久久久久99999| 加勒比99999| 欧洲精品一级二级精品综合视频综合 | 日本熟女中文| 日韩天美| 怡红院怡春院| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 激情视频一二三| 最新精品久久蜜桃 | 国产91乱伦| 久久久久久AⅤ无码免费肉站| 强奸乱伦中文字幕AV| 丰满人妻无码一区二区三区| 首页中文字幕中文字幕免费| 婷婷五月天社区| 67914亚洲精品| 国产精品肉丝自拍| baiduhicn.com。| 青青操视频在线| 日韩无码第3页| 日本视频在线中文字幕| 天堂在线一区二区| 加勒比久久av| 日韩强奸av| 久久riav中文精品| 91婷婷| 东北夫妻性偷拍| 最新中文字幕av| 久久后入制服| 国产精品一区二区久久精品| 欧美成va视频网站| 日本三级小说中文字幕| 亚洲一二三四区在线免费看视频| 亚洲欧美97| 四虎午夜影院| 99精品在线| 亚洲限制级| 97在线观| 日韩欧美亚洲一区二区三区影院| 日韩有码免费视频| 日韩无码AB| 青青操在线视频| WWW操逼| www久久99| 嗯嗯,好大,好爽,好骚 | 777AV电影| 婷婷久热| 裸体1区| 东京热大香蕉| 激情综合五月| 国产99999久久精品| 国产精品视屏| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 思思视频免费看网站| 黄片在线免费在线观看| 国产免费久久精品99re韩国| 成人精品无码| 亚洲另类久操网| 精品二区久久| 国产黄色 A 片免费看| 日韩乱码Av| 激情文学小说一区二区| 6080YYY午夜理论片在线观看| 狠狠色丁香| 久久机热| www成人啪啪18秘 免费| 91熟女.com| 欧美亚洲素人制服精品| 97久久精品国产| 精品三级在线专区| 青娱乐av在线| 久久久新亚洲AV| 九九无码| 欧差乱伦二三| 国产精品久久发布| 国产精品九九九| 激情小说五月天| 美女91网址| 亚洲精品无码少妇久久| 天天干1区2区在线| 亚洲中文日韩精品| 国产综合久| 欧美啪啪女女| 日曰骚久久精品| 99九九精品| 日日躁狠狠躁天天躁精品| 少妇高潮喷水无套久久久久久| 免费1级a做爰片观看| 亚州色站 日韩电影| 成人自拍三级在线观看| 久久国模av| 午夜男女爽爽爽影院视频| 亚洲一二三四区机械| 精品日韩人妻视频| 色欲色香天天天综合网www-亚洲综合国| 久久在线观看免费视频| 啊啊啊快操我视频| 天天搞在线综合网| 桑老女人九区| 熟妇最新先锋一二三区| 日本国产欧美高清在线| juliaann丝袜| 蜜臀99999| 日本日逼高清| 校园春色 亚洲| 91校园春色长篇| …亚洲黄色厕厕女女在线播…| 九九成人| 樱花蜜乳av| 色香91| 亚洲婷婷五月天| 一级性爱视频免费在线| 国产精品农村妇女精品| 日韩精品人妻系列无码天堂| 啪啪AV导航| 激情内射| 99热免费精品| 在线99热| 92性色国产午夜福利在线661 | 欧美大香蕉97| 在线观看黄色电话| 国产精品不卡av免费在线观看| 青青草精品| 曰韩无码777| 亚洲春色一区二区三区| 941超碰| 97人肏| 日韩精品 视频一区二区| 亚洲男人天堂AV| 伊人亚洲综合| 中文字幕88av在线| 91欧美高清| 人人爱人人操人人性| 久久午夜色播影院免费高清| 91女优在线观看 | 女人被男人桶爽视频网站| 欧美激情内射| 福利天天都操| 国产天美传媒精品| 台欧久久精品视频| 丁香五月婷婷基地| 404操逼福利视频| 另类亚洲一区二区三区| 亚洲中文字幕熟女少妇一区二区| 人妻熟女一区二区| 超碰精品| 用力操死我| 九九无码视频| 囯产乱伦一区二区三女| 亚一综合久久久久久久久久| 国产精品久久久吖| 91成人无码| 自慰白浆在线观看| AV无码久久久精品| 性做久久久久久久| 美中日韩无码| 黄色欧美性爱视频| 国产一区二区三区导航| 日韩精品免费高清视频在线| 91av一区二区在线观看| 100啪啪视频大全| 91在线视频国产网站| 午夜啊啊| 九九热re99re6在线精品| 肉丝中文无码高清| 大逼色网站| 清纯唯美亚洲另类| 91高潮| 一级AAA片一区二区三区| 欧美丝袜美女电影一二三四区| 青娱乐蜜桃臀AV色婷| 久久欧美1卡2卡3| 97超碰色五月| 久久精品亚洲东京热色播| 操人妻丝袜高跟| 97精品一二区| 亚洲另类色图片| 性色高清在线| 色欲色香天天天综合网www-亚洲综合国| 特级大荫道BBwBBwBBW| 九九九九九九九九九九九免费国产| 67914亚洲精品| 7月婷婷综合| AV老汉| 一区二区三区 丝袜高跟| 在线黄色污污网站| av草草在线电影| 2019男人的天堂| 国产精品第一页国产大屁股视频免费区| 欧美 亚洲| 99久久久无码国产精品性啊聊| www.操| 亚洲自拍欧美国产首页网曝| 欧美精品,四区。五区| 91久热| 欧美97超碰| 久久性爱视频免费看| av在线播放国产一区| 少妇xx精品| 青青草中文-久久青草精品一区二区三 | 蜜臀少妇一区二区| 69久久久久久久久久久久久| 91美| 欧美精品成人在线播放| 久久香蕉网| 九九九综合精品| 久湿久久 | 六六久久日韩不卡| 亚洲熟久久| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 五月天婷婷影院| 99热精品国产| 91精品丝袜久久久久久| 超碰人人操97碰| 91婷婷| 99热aaa| 婷婷10月天青娱乐| 国产一级特黄大片处女| 五月丁香激情综合网| 日本一天色道久久久精品视频| 插日本熟女视频| 九色 人妻 大香蕉| 男人天堂导航| 成人5码视频| 国产黄a三级三级三级av在线看 | 久久精品国产72国产精品福利| 久久,精品一二三| 你草精品在线视频| 97爱亚洲| 五月婷婷久久综合| 日本中文字幕熟妇| 久久久99免费| 黄色乱论网站| 久久αⅴ| 综合色啪| 91AV国产精品| 永久免费发布性爱网| 99999精品成人| 麻豆精品一区二区三区四区免费观看| 色婷婷电影| av一区二区三区 中文| 91在线页| 免费看A片毛毛片在线播| 黄色激情电影在线观看| 岛国片国产成人亚洲播放| 免费操逼视频下载| 午夜欧美神马久久久久| www.人人摸在线视频| 国产精品人人爽人人做可爱福利| 日本天天色| 青青草中出视频| 韩国一级AAA| 国产一区二区精品在线视频| 免费人成在线观看网站品爱网| 亚洲精品男人的天堂| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | juliaann丝袜大战黑鬼| 欧美亚洲韩国视频十五区 | 成人一道本免费视频| 精品少妇99| 蜜臀久久久| 久久久一区二区三区四曲免费听 | 丁香五月色| 日韩美女高潮喷水视频| 97超碰人人操人人操| 999综合网| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 92久久| 免费99精品国产自在在线| 九九九九热只有精品| 天美麻豆一区二区三区| 被男人吃奶很爽的毛片| av国产无码| 中文久久96| 欧美日韩大香蕉| 俺去也婷婷| 日韩大香蕉精品在线视频| 国内毛片热久久思思热| 91精品综合久久久久久五月丁香| 97超色| 嗯啊视频免费在线观看| 欧美大香蕉在线观看| 五十路熟女在线不卡观看一区二区| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 久久97| 四虎免费视频| 久久精品店| 香蕉免费一区二区三区不读 | www.91色综合| 精品传媒在线一区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲综合电影| 在线视频一区二区传媒| 国产性爱乱伦AV| 91在线一起| 97人肏| 国产成人91一区二区三区| 国产夜夜操| 久操网线| 亚州熟女乱伦| 美女天天干| 国产欧美伊人| 欧美性爱日韩性爱| 欧美亚洲激情| 黄站在线免费观看| 天天综合91在线| 一二三四视频中文字幕在线看| 91亚洲丝袜| 日韩欧美亚洲国产日韩| 国产福利第一视频| 亚洲无码 国产无码| 久久9999 | 日本熟女不卡视频| 天天综合~91| 日本精品国产视频| 丰满人妻一区二区三区四| 一本精品日本在线视频精品| 中文字幕后石码四区五区| 亚洲情色 自拍| 青青操视频在线| 97天天综合网| 97视频7| 亚洲综合小说另类图欧美视频激情小说色五月天 | 亚洲天天天| 日韩中文字幕2020| 欧美97日韩精品| 制服少妇欧美| 男人 天堂 日 亚洲| 香蕉久久精品| 97超碰免费人人性爱| 少妇诱惑视频| 97天天在线| 中文日韩欧美熟| 另类欧美| 久久久久久999| 色香av| 好色综合| 亚洲精品人妻在线| 天天爱天天操| 亚洲欧美综合| 欧美1区二区三区公司| 亚欧Av| 91中文精品日韩欧美在线| 天天摸天天插天天日| 大香蕉中文aV在线| 91男人综合| 亚欧美色图| 色97国产69香蕉| 欧美人体性爱互联网第一页婷婷日本| 奇米四色影视777久久久| 免费一级毛片在线视频观看| 超碰97欧美在线| 亚洲视频,小说| 中国黄色特级精品一区二区三区片| 亚洲欧美变态| 亚洲欧美一区二区网址| 天美麻花大全视频| 久久9精品视频| 怡红院网站在线视频| 大色综合| 97人人操人人干| 欧美美女在线高潮999| 夜夜操夜夜高潮夜夜爽国产精品区| 日韩电影中文字幕| 黄在线| 精品国产一区二区三区久久久蜜臀 | 大香蕉日亚洲日本亚大| 无码137片内射在线影院| 丁香六月天| 久久大香蕉97| 国产女性无套 免费观看| 97色爱| 爱妃国产亚洲视频中文字幕| 久久久久成人蜜桃精品| 国产97在线 | 亚洲| 欧美一级做a爰片免费视频| 国产美女激情| 大黄片做爱的大的| 91女优在线观看| 大香蕉www.超碰| 欧美猛交黑寡妇中文字幕| 国产精品露脸在线观看| 久久鲁夜| 人人摸.人人色| 日韩9999| 精品黄色电影| 九月丁香婷婷| 操逼视频亚洲| 亚洲伊人成综合成人网| 亚州日韩97| 日本色色的视频| 国产熟女高潮一区二区三区| 色婷婷狠狠18禁| 久96热在线观看视频| 立川理惠无码一区二区| 亚洲天堂日本| 大香蕉在线免| 99re国产中文字幕| 亚洲成人在线高清| 久久久久久九九九九九九| 尹人大香蕉视频在线| 搡老女人老91二区| 台湾肥佬网一区二区三区| 无码精品一区二区三区潘金莲| 欧美第五页| 啊啊啊啊啊啊在线看| av天堂手机版追回| 国产无马在线| 密臀在线一区尤物| 亚洲精品97中文字幕| 超碰 97国产熟女| 久久亚洲AV无码专区国产精品| 97精品在线视频| AV中文字幕剧情1区2区3| 欧美九九爱| 影音先锋国产精品| 久综合国内精品自在自线| 78久久| 男人的天堂无码| oumeizonghese,www| 91操操| 亚洲夜夜欢无码一区二区| 无码精品一区二区三区潘金莲| AV和黑人在线播放| 亚洲无992tv| 亚洲小说视频| 欧美天天综合网版| 蜜区区视频79| 欧美亚洲首页| 综合第一页| 少妇精品久久| 国产一级高清免费观看| 97超碰人人模人人拍人人| 极品销魂美女一区二区 | 欧美熟爽综合| 91原创在线观看| 中文字幕老熟妇黄色视频| 婷婷五月天补不补| 麻豆区99999| 91美女视频在线| 日欧毛片久久| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 亚洲熟妇丝袜在线观看| 久久久久一本一区二区青青蜜月| 嫩草伊人久久精品| 久欲AV| 亚洲色图欧洲| 欧美大香蕉久| 日韩人妻无码专区| 激情图片伦理国产一区二区日韩| 久草资源在线视频官方总站日韩丝袜美腿| 天天干天天日天天射黄色大片| 67194无码不卡| 97免费视频在线观看视频| 蜜臀99久久精品久久久久久| 欧美天天性| 国产综合网站在线播放| 亚洲精品丝袜-不卡成人免费……| 亚洲情色1区| 国产精品 亚洲情色| 亚av顶级裸体一区二区三区四区五区 | 日韩久久.一级黄色片| 日本日皮视频逼| 九九热免费在线国产视频伊人五月| 91热色| 激情接吻视频久久久久久| 嗯……啊…嗯嗯…啊…好舒服| 欧美九9 9 9| 久久中文字幕女同性恋一区| 免费精品人妻一区二区三| 91丝袜在线观看视频在线观看| 精品九区| 无码99| 白丝被操91| 宅男91视频在线播放| 久久婷婷电影网| 国产精品视频电影| 亚州熟女乱伦| 伊人精品国产| 综合啪啪| 欧美黄页| 欧美在线55555| 亚洲一区二区久久久久| 四虎影视永久在线观看精品免费网站| 久久久久九九九| 欧美亚洲日韩人妻在线观看| 小草av不卡亚洲二区 | 日韩一级二级| 综合伊人网12色| 亚洲成人妻日韩在线| 亚洲综合激情五月久久| 亚洲乱妇p22| www.高清无码诱惑一区.com | 92福利社视频| 精品人妻一区二区三区四区石在线| 爱欲AV| 99免费在线视频| 人人操人人摸人人骑| 97精品久久久久中文字幕| 99爱爱| 91精品女厕偷拍视频| 天天久久久久久| 亚洲区限制级| 美女淫穴| 免费的黄片有限公司| 9久热这里只有精品| 床上啊啊啊一区二区三区| 视频国产精品未满十八禁止在线观看| 动漫av中文| 五月综合激情网| 中文字幕一区电影在线观看| 久久98| 亚洲久久东京热一二三四五区视频| 人人妻人人爽一区二区三区| 天天操女人| 婷婷色婷婷| 十八禁视频一区二区| 天天cao在线| 91精品国产91熟女| 女人18精品一区二区三区| 999 久久久| 色偷综合| 久久人妻少妇| 中出20p| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 国产一级高清免费观看| 黑白配性爱AV成| 伊人欧美大香蕉视频| 中日韩久久久免费看| 色香网| 91n欧美| 91成人无码| 秋霞怕怕片| 夜夜操美女| 十八禁的黄污污免费网站| 久久69精品久久久久久久| 亚洲精品人妻在线| 97任你吞精| 18精品一区| 色超碰综合| 美女爽到高潮91| 精品无码秘 人妻一区二区| 欧美一级黄色免费专区| 欧美aaaaaaa| 久久五月丁香| 99re8免费高清在线| 五十路人妻在线| 翔田千里A片一区二区| 欧美成人四级在线播放| 久久精彩免费视频| 91在线丝袜视频| 欧美精品三级黄片| 9九九九九视频在线观看| 久久久久久久九九九九九九| 操一区| 91美女丝袜诱惑视频| 国产无码成人无码| 九九久久精品| 超碰97综合网| 五月丁香久久| 男女国产精品| 上海一级黄片| 欧美99| 成人在线永久| 97内射偷拍| 97这里都是精品| 精品久久在线区一区| 大香蕉久操| 中文字幕免费看大片| 97精品视频| 日本孕妇一区二区视频操逼免费看| 久草免费在线视频| 欧美少妇高潮视频| 肉丝中文无码高清| 青草成人免费视频一com| 日本视频在线观看污污污| 北京专精特新企业招聘信息| 久一区久久蜜桃| 青青国产精品在线| 视频国产成人精品日本亚洲18 | av天堂加勒比| 婷色五月| 校园春色五月天| 色丁香五月婷婷| 日日躁狠狠躁天天躁精品| 五月天丁香婷婷综合网站| 国产精品乱码久久久、久久| HEYZO高无码国产精品227| 午夜福利一区二区三区四区五区色婷婷| 亚洲AV无线| 日本性一区| 午夜精品久久久久久久男人的天堂 | 成人美女av| 天操天操夜操夜月操月年年操操| 日本午夜福利影院| 国产伦精品| 超碰 av 女人天堂| 欧美人妻精品一区二区| 外国免费性情大片| 91色鬼| 玖玖爱免费观看视频| 国产97视频| 亚州乱码中文字幕综合久久久| 国产成人无码a| 毛片99-全集电影手机免费观看完整-B029AV| 一起草精品人妻| 亚洲97| 97操97干| 91人妻视频| 亚洲欧美国产日本一区二区三区| 欧美裸体美女日麻屄| 国产91影院| 懂色av一区二区三区天美传媒| 内射老妇BBWX0C0CK| 中文字幕交换人妻| 清纯唯美激情四射| 久艹视频在线| 97精品97久久| 96国产污污污丝袜| 69综合网| 亚洲欧美国产中文字幕| 日韩欧美字幕亚洲一区二区 | 人妻中文字幕日韩电影| 久久久久中出| 97亚洲精品| 亚洲情色第一页| 中国熟妇| 天天干天天插| 超碰97COm中文| 99色| 97久久久久| 操碰97| 亚洲天天操| 天天综合~91入口| 玖草在线视频| 91黑丝少妇| 无码137片内射在线影院| 欧美九九99久久精品| 国产亚洲福利第一页丝袜| 少妇天堂网络| 国产91乱伦| 91九色丰满高潮| 九九色热| 亚洲天堂久久久久久粉红视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 97精品熟女少妇一区| 大乔未久88一区| 国产精品色片一区二区| 久久久久久99999国产精品| 91狠狠综合久久久| 日韩97| 国产少妇高潮| 久久久久久AⅤ无码免费肉站| 91精品国| 偷拍 精品 另类 四区| AV天堂国产| 性九九九九九九| 欧美色五月| 亚洲啪AⅤ永久无码| 久男人久久| 精品国产乱码久久久久久久久1| 91精品国产91久久福利| 精品久久艹| 美中韩AV综合网| 国产成年女人免费视频播放a| 另类老少妇| 精品无码久久久| www.大香| 青青草久草| 欧美久久婷婷| 国产高清成人传媒影视| 神马九九| 玖玖超碰熟| 99热这里只有精| 国产亚洲日本精品在线| 久久伊人最新网址视频| 亚洲s色图| 久久久久久久久久久久久久久乱码| 国产高清在线观看欧美| 欧美极品| 91亚.色| 91欧美偷拍| 久久久激情| 国产精品一区二区校花| 熟女精品日韩一区二区三区| 国产白丝在线| 中文字幕 一区二区 亚洲无码| 久草福利在线资源站| 久久av无码| 亚洲男人的天堂va亚洲男人社| 亚洲一二三| 婷婷国产精品九区| 五月丁香激情综合| 综合欧美日本三级| 国产亚洲精品无码三区| 97超碰色色| 东北女人性交| 超碰97亚洲区| 天天摸夜夜操视频| 欧美三级免费伊人| 熟妇熟女亚洲天堂网| 桃花色涩综合影院| 一区二区三区免费岛国片| 国产精品白丝在线播放| 麻豆久久一区二区三区| 国产精品伦理| 视频在线97| 尤物视频偷拍免费| 久久久久无码一妻区| 粉嫩AV一区夜夜嗨| 欧美性色综合网| 97国产精品国| 97亚洲综合电影| 五月天激情小说网| 99久久久久| 免费av大片| 无码乱人伦中文视频| 久久东京伊人一本到鬼色| 日本人妻中文字幕| 久久久久亚洲三级电影| 国产黄色视频久久| 超碰免费人妻人人| a男人的天堂久久一级A毛片| A 天堂| 边做饭边操逼逼| a片久久久久久久久久久久| 国产女人视频三四五区| 欧美翘臀视频网站一区二区三区| 久久久涩| 97超碰精品图片| 韩日欧亚a级| 超碰人妻97| 国产精品99999| 日韩av在线精品观看| 福利视频香蕉免费一区二区在线| 熟女探花啪啪| 一级二级三级黑人无码| 日韩在线一区高清在线| 国产精品免费日韩| aⅴ日韩成人电影av在线免费看av大全 | 蜜乳Av成人片网站| 亚欧成人综合影院| 日本一级二级三级网站| 久综合网| 麻豆 欧美 日韩| 天操天操夜操夜月操月年年操| 日本加靬比网站发布页| 成人精品一区二区三区| 一区二区亚州激情久婷婷欧美| yazhououmeizongya| 人人操人人肉久久精品| 最新无码国产| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 欧美综合区| 综合色图区| 有码色中文字幕在线观看| 欧洲亚洲人人爽爽视频| 亚洲a色| 国产精品久久久久久亚洲色欲| 波多野结衣被操50分钟免费视频 | 电影69乱码96| 久久精品老司| 亚洲天天精品| 九九九热| 欧美经典一区二区三区 | 亚洲综合97| 亚洲第一免费视频| 伊人激情| 伊人伊人LD| 四虎在线视频| 国产精品亚洲无码| 六月婷婷五月丁香| 天天干天天中出av| 亚洲欧美日韩不卡人妻| 日韩精品色呦呦| AV大香蕉| av久日| 91成人18| 岛国黄色大片网站| 超碰 另类 欧美 | 韩日精品四区| 久久噜| 欧美日韩国产成人高清| 在线啊v一区| 蜜奶av| 99re视频在线播放青草| 免费一级精品啪啪视频| 91久久精品蜜臀| 亚洲色图第四色| 亚洲日韩精品久久久久一区壹牛| 色色色色综合网| 性爱AV天堂| 91精品国产91久久青草| 色人久久| 本道在线| 欧美性生活免费网| 刺激性视频黄页| 天天操妹子| 欧美性爱视频免费一区一A| 亚洲精品欧美专业| 精品人妻一区二区三区日产乱码| 中文字幕在线高清男人的天堂| 久草在| 在线观看一级α片刺激高潮视频| 五月天精品| 后入式999| 秋霞久久亚洲精品成人| 一区麻豆 高清中文字幕| 91少妇人妻| 91狠狠色丁香婷婷综合久久精品| 久艹99| 午夜精品探花| 久久久久久久久久久久九| 亚洲无无码αⅴ每日更新| 欧亚乱色熟一区二区三四区| 亚洲欧洲自拍| 精品精品精品| 9Ⅰ老熟女| 亚洲色图久久成人| 老熟女网站| 超碰97欧美在线 | AV天堂丝袜| 极品销魂美女一区二区 | 亚洲人成在线放东京热| 欧美少妇熟女| 91熟女网| 日本三级中国三级99人妇网站| 人妻熟女一区二区三区视频| 日本护士高潮| 九九热re99re6在线精品| 99精品久久久久久久婷婷蜜桃| 男人天堂久久精品不卡| www.av在线观看| 天美av在线| 婷婷五月天成人| 青青草毛片| 成人精品视频一区二区| 日韩中文字幕视频| 女人的天堂大香蕉网| 乳欲人妻办公室奶水| 欧美日韩美女精品久草一区二区三区| 中文字幕一区二区韩| 97视频在线免费| 亚洲第一综合| 九九九九九九视频免费| 精爱久久| 日韩久久.一级黄色片| 色偷偷综合91久久噜噜| 五月丁香| 国产综合色精品在线观看| 99热在线不卡| 久久精品国产亚洲AV无码电影| 亚洲黄色电影| 一区黄二区黄| 国产欧美日韩一区二区三区| 国产又长又大又粗的视频| 日日干日日| 日本人妻伦在线中文字幕| 久久综合久色欧美综合狠狠| 色色婷婷五月| 五月天婷婷在线看| 夜夜嗨老熟女AV一区二区三区| 久久久久人妻| 日韩中文字幕国产| 大香蕉草草| 绯色AV粉色AV蜜臀AV| 日本一本道A级黄色毛片试看60分钟| 97久久久久| 狠综合网| 五月丁香婷婷色| 摸奶性爱视频网站在线免费播放| 欧美在线视频播放| 丁香六月婷| 黄色电影在线播放综合网站| 欧美激情 亚洲色图| 5252色欧美在线| 精品超碰国产| 免费少妇一区二区| 天天综合网~91| 闷骚老熟女15P| 丁香五月影院| 国产日韩在线播放av| 国产精品播放| 久久9999 | 色欲人妻一区二区在线| 大香蕉人妻| 一区二区三区探花在线观看| 91精品老女人| 欧美精品欧美精品系列| 色爱综合网欧美| 天天干天天拍| 青青操狠狠撩| 夜夜操青青草| 中国熟女老妇仑乱一区二区三区| 国产97/欧美| 97超视频在线观看| 中文字幕啊啊啊在线观看视频| 日韩一级二级| 天天躁日日躁XXXXYY| 情趣丝袜无码操逼视频| 人妻丝袜二区| 日本 情色 1区2区3区| 日本不卡二三区| 久操99| 97人人操人人干| 免费观看的黄色的网站| 美女被啪到深处抽搐视频| 日韩综合色网| 婷婷精品国产一区二区三区日韩| 97超碰国产精品| 91超级碰碰碰| 欧美日韩国产色图在线| 免费超碰97在线观看| 亚洲天堂在线怕怕视频| 国产老女人久久毛| 人妻第一页| 亚洲欧美综合图片| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场| 成人色女网| 91色黑人少妇| 密臀在线免费观看| 亚洲……91| 久操黄色视频| 极品五月天噜噜| 七久久久| 69超碰综合| 26uuu欧美| 久久婷婷伊人| 成人在线视频网| 青青草丝袜在线视频| 激情五月天社区| 一区二区三区激情在线观看| 92午夜免费福利视频| www黄片免费看com| 免费一级毛片在线视频观看| 中国亚洲呦女专区| 91久久婷婷| 婷婷五月天网| 91婷婷伊人狠人| 红桃视频高潮| 做爱福利视频一区二区| 久久久免费懂色| 亚洲欧美变态| 天天天干977|