亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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ō)法乍一聽(tīng)像是段子但真正在軟件測(cè)試和開(kāi)發(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ò)。開(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è)“種蠱”的玩笑話切入認(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ā)生了沖突。換句話說(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)境依賴、偶發(fā)性與可復(fù)現(xiàn)壁壘把上面幾個(gè)案例放到一起看就能總結(jié)出這類(lèi)“認(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)率低。這類(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ā)邏輯往往藏在不直觀的路徑上可能是數(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ī)器上跑得好好的”這句話在這種前提下不能說(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)安全管理軟件等瀏覽器類(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ù)客戶端但一個(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)景。在處理這類(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”——你越是想觀察它它越是不出現(xiàn)因?yà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í)序多線程下的懶加載邏輯這些位置就是“競(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)信息不要滿足于“某某操作就崩了”這種描述。你需要問(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)信息、依賴版本等把結(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ā)條件開(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ì)這套流程有直觀認(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ū)。所以排查這類(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)外部依賴變更第三方服務(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)去跟蹤代碼?!昂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)一開(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)和依賴版本這一層穩(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ì)劃中增加一類(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í)話實(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ù)處理邏輯這四類(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í)它們就是唯一的破案線索。在這里我要特別提醒一點(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. 寫(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)成一次“尋寶游戲”線索就散落在環(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)的。“種蠱”只是玩笑但“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
返回資訊列表
超碰在线第一页| 性生活性生大爱77AV国产| 亚洲黄色a级片| 超碰欧美97资源| 日韩美一区| 不卡一区二区日本视频| 欧美人人曰人人操人人射射| 新怡红院| 性性久久| 天堂九九九九九九九九九| 26uuu性物| 精品高潮| 亚洲av资源| 操死我了嗯嗯嗯| 九九伊人网| 91精品女厕偷拍视频| 亚洲图片欧美偷拍| 久久9精品网站| 天天碰操中国年青熟妇| 亚洲熟妇无码一区二区三区| 久久久久久亚洲精品不卡人乳| 天天操夜夜操狠很操| 亚洲综合九九| 亚洲欧美日韩不卡人妻| 我想要啊 啊 啊| 美骚妇av高清在线| 亚洲中文字幕乱码无码一区二区| 啊啊啊好湿久久| 亚洲国产欧美日韩人妻日中文| 亚洲第一在线视频| 五月天偷拍| 日韩不卡毛片Av免费高清| 秋霞久久亚洲精品成人| www.91理论| 视频一区二区免费在线| 欧美综合网| 亚州综合网| 日躁天天爽爽| 亚洲欧美小说| 久久人人爽爽人人爽人人片αV| 欧差乱伦二三| 国产91av在线播放| 国产一区二区三区免费视频在性观看 | 亚洲九区| 在线观看视频91| 超碰97色色| 九久久九精品视频| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 偷拍偷窥与盗摄视频专区| 亚洲色吧网| 五月丁香色色网| 色九月| 99色热| 一区二区三区在线资源| 欧美性天天影视| 69AV女优男人的天堂| 国产夜夜艹| 久久熟妇五十路一区| 国产日本熟女顶级一区二区三区视频| 中文字幕片| 天天弄欧美| 人人澡人人弄| 天天操天天看| 欧美色网络| 日产操逼| 无码WWW免费视频网站| 国产理论视频在线播放| 毛片电影一区二区三区| 麻豆天美久久91| 欧美日韩一干二干| 嗯嗯啊啊啊好爽| 亚洲一区日韩精品| HEYZO高无码国产精品227| 免费毛片在线播放| 超碰在97| 91美女视频| 国产h片在线观看视频| 操逼网站地址| 一区二区精品更新提醒| 日日97| 亚洲本色精品一区二区久久| ..日韩av毛片精品久久久| 久草免费在线一区二区| 97超碰亚洲| 一级特级aaaa毛片免费观看| 丁香六月激情综合| 蜜桃视频精品一区二区三区| 嫩草 我啊~嗯~在线| 亚洲性天堂| 欧美精品成人一区二区在线观看| 五月丁香网站| 欧美后入式| 999精品女人| 人人干黄色| 丁香五月色| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 欧美色图亚洲色,麻豆| 亚洲熟妇一,二,三期| 亚洲一级特黄大片在线播放91| 五月激情综合网| 欧美色图私拍91| 夜夜免费视频| 色色婷婷丁香| 亚洲天天艹| 亚州精人品大香蕉| 欧亚日韩综合精品国产| 91丝袜在线观看| 熟女突然公开看18禁影片| 91丝袜美腿网站| 欧美视频一区二区三区| 黄片aaaaa一区| 久久熟妇五十路一区| 国产精品97超碰| h4610国产人妻| 欧美精品在线观看| 天天干夜夜鈤| 亚洲天堂电影精品一区| 天天综合~91| 欧美毛片在线网| 91网站在线播放| 9国产超碰| 丁香六月综合激情| 97超级久久| 欧美一级做a爰片免费视频| 熟女欧美日韩综合婷婷| 99色网| 日本三级黄页| 欧美亚洲尤物久久| 亚洲一二三| 乱伦一二三区| 九九九久久久久| 国产主播福利| 99re不伦| 嫩呦国产一区二区三区AV| 日本免费不卡二区| 亚欧无码线免费观看视频| 久久国色天香香蕉| 国产极品99热在线播放69| 亚熟hd视频在线| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 嗯啊不要在线观看嗯啊| 久久人| 五月婷在线| 国产传媒av天美传媒在线| 欧美精品人妻视频| 狠狠操,使劲操| 中文字幕 一区二区 亚洲无码| 超碰97丝袜| 亚洲无套久久嗯嗯| a片久久久久久久久久久久| 曰本熟女视频| 久久综合九九| 久久久亚洲Av| 伊人久大| 屌妞视频久久久久久久久久久久| 色噜噜精品一区二区三| 久久久蜜桃臀无码视频| 免费人人搞97| 色区久久| 精品久久无码午夜福利| 久久后入制服| 国产精品国产自产拍高清AV| 欧美日韩香蕉| 一区在线精品中文字幕| 乱子伦一区二区三区国产精品| 秋霞蝌科网日本一区| 久久精品久久久久久久| 伊人991| 99久久久无码国产精品性男| 又粗又长又大国产不卡| 内射中国少妇高清视频免费视频 | 五月激情影院| 国产日韩在线播放av| 久久精品无码熟妇一区二区三区视频导航| 国产农村妇女精品1区二区| 国产 v乱码一区二| 天天草夜夜草高潮片| 国产午夜精品一区二区三区牛牛| 人人澡人人弄| 91网站18在线观看| 一区二区三区精品久久| 尤物黄色在线观看网站| 青青在线视频日韩欧美| 久久亚洲天堂| 欧美性五月| 一二三啪啪专区| 亚洲图片欧美在线视频| 欧美一区二区三区四区综合| 日韩欧美亚洲自拍偷拍| 欧洲综合色| 91欧洲入口| 亚州色图片在线色| 超碰碰激情97+久| 天综合网| 天天做天天爽| 91九九九馒头| 熟女精品一区二区三区| 啊视频在线| 色婷婷激一区二区三区 | 色人久久| 亚洲欧美一区二区三区在钱蜜桃| 熟女视频久久| www国产天美久久久| 免费一级性爱久久| 亚洲欧美日韩制服另类| 亚洲AV无码乱码| 国产精品免费久久久久久久久久| 91人妻在线视频| 九九九九九九九九九国产精品| 国产精品午夜精品| 欧美综合自拍亚洲综合图| 九九国产热| 国产午夜视频| 九一性生活免费视频| 五十路熟女工口| 午夜成人福利影视| 大香蕉在线免| 成人精品欧洲亚洲| 超碰导航97| 久久婷婷一区| 大粗鳼巴久久久久| 国产精品美女视频诱惑| 在线无码视频| 日本性爱网址| 日日爽夜夜爽| 九九热九九热| 精品久久久不卡一区二区| 日韩国产十八禁| 二三四区精品| 日本黄色精品| 四虎国产精品永久在线囯在线| 国产无码久久高清| 尤物视频一区| ?亚洲伊人伊成久久人综合网| 中文字幕成人| 成人熟女区| 一本色道久久综合亚洲二区三区| 起碰97| 青青操网| 欧美日韩操操操| 国产超碰| 啊操爽品善一区二区三区| 九九九九免费高| 快播久久人人aV| 男人的天堂2019| WWW啪啪的com| 91久操| 欧美色图片91| 亚洲影视第一页| 国产99热| 日韩性爱免费视频在线网站| www.97在线| 97超碰免费人人性爱| 亚洲综合草草| 国产精品熟女九色九色蜜臀| 九九热视频在线观看| 欧美 亚洲 另类 综合| 国产精品农村妇女| 东北丰满熟女国产一区| 啊啊啊啊啊操我视频| 欧美激情精品久久久| 搡老女人老91二区| 欧美黄色片AAAAA| 美腿色图| 免费视频一二三区| 午夜大香蕉| 色拍偷亚洲| 91夜色| h在线看免费版在线看| 欧美高清无码免费视频高清版| 精品视频免费在线一区| 9/A片 | 免费a在线播放v| 人妻 欧美 中文| 亚洲在线91| 一级特级aaaa毛片免费观看| 国产传媒日本欧美专区| 色97干| 92人人操人人| 91亚.色| 91精品久久久久五月天精品| 日韩人妻少妇中文字幕| 夜夜久久久| 精品亚洲黄色片 国产精品导航一区二区| 亚洲色图久久成人| 日日超碰亚洲| 亚洲AV无码天美传媒一区| 精品十八在线观看| 97人人干人人操| 中文字幕第23区| 熟妇xxxxx性春色| 欧美九九99久久精品| 久久超碰com| 亚洲男人bt天堂| 春色综合网| 久久婷婷色| 麻豆黄站| 一区在线国产播放| 国产夫妻性生活视频| 国产自产自拍| 日韩 女同 综合| 小视频玖玖| 四虎国产成人精品免费一女五男| 日韩三A大片在线观看| 亚洲少妇诱惑| 亚洲AV秘 精品久久老牛影视| 99热导航| 午夜精品久久久久久久99热影院| 一个色导综合| 超碰久久精品| 九九无码视频| 丝袜足交视频| 欧美97视频| 草草网站影院白丝内射| www欧美91| 一区二区偷拍拍视频| 麻豆天美一区二区| 91伊人影视综合| 国产91av在线播放| 69久久| 国产精品一二三免费网站| 99无码| 红桃视频高潮| 黄片aaaaa一区| 久久精品女同亚洲女同13| 久热九九| 免费国产电影一区二区| 9999九九九久久久| 六月激情网| 亚洲熟女乱色一区二区三区| 国产精品夜夜夜| 91久久国产综合久久| 最新亚洲人成网站在线影院| 草B在线| 99久久久无码| 久久久久亚洲Aⅴ无码| 日韩本不卡视频在线观看| 天天综合,91综合永久| 欧美性爽xyxOOOO| 综合激情一一91| 天天影视色香色欲| 一区二区三区免费岛国片| 亚洲久9| 91真人天天在线| 五月婷婷综合激情| 熟女五十路一区二区三| 男人天堂新| 黄色十八禁| 久久大香蕉手机高清视频| 人妻精品一区二区在线| 男女激烈网站最新| 男人的天堂va| 亚91网| 久久m| 大香蕉碰碰| 日韩人妻免费精品| 午夜男女爽爽大片免费观看| 深喉吞精| 四季av一区二区凹凸精品小说| 欧洲Au麻豆| 婷婷五月综合激情| 蜜乳AV一区二区三区四| 欧美真人抽搐一进一出gif| 另类欧美综合| com 首页 18岁 禁区 女优 免费 精选 同城 | 婷婷国产精品一区二区| 国产情色第一第二页在线观看| 爱爱动态120秒| 性爱av网站| 天天搞在线综合网| 在线色导航| 日韩 国产 欧美自拍| 一本色道久久综合精品婷婷| 青青草影视蜜久久| 日韩欧美蜜桃精品久久中文字幕久久| 人人澡人人弄| 60秒免费小视频| 美女的肌被草喷水视频| 天综合中文| 激情五月综合网| av国产无码| 亚洲四虎熟女精品| 性爱乱伦网址| 午夜天堂啪啪| 国产亚洲色婷婷久久99精品91| 亚州AV无码国产精品| 日韩亚洲国产视频| 青娱乐国产精品| 精品亚洲国产成人精品| 强奸乱伦麻豆| 日韩一区二区三区四区五区| 伊人黄色视频免费观看| 免费啪啪啪网站18岁| 亚洲国产高清福利视频| 欧美十八禁在线看| 成人夜夜爽| 亚洲第一页色| 久久AV无码1区2区3区| 91国产大片| 96久久久精品| 久操免费视频| 呦呦一区| 影视综合无码少妇| 殴美在线AⅤ| 3p国产欧美99热| 一区二区三区机械有限公司| 亚洲……91| 久久天天躁日日躁狠狠躁| 一区二区不卡| 妇女乱色二区| 老熟妇乱轮| 国产Av超碰| 插日本熟女视频| 久久精品国产72国产精品福利 | 观看免费区二区三区二| 亚洲第91页| 草B在线| 国产精品com| 人妻81p| 97人人干| 97色涩| 日本大香蕉综合网红本杳社区| 99re在线| 亚洲一区制服诱惑| 人妻少妇精品视频一区二区三区| av网站国产主播在线| 综合在线导航一区| 玖玖97综合| 日韩 欧美 国产 麻豆| 亚洲色婷婷综合久久久久中文| 日本一区二区中文字幕久久| 黄色毛片A片| oumeisetupian| 亚洲玖玖爱| 美女操逼A A| 色色五月婷婷| 嗯嗯啊啊日韩精品| 老司机深夜18禁污污网站| 熟女突然公开看18禁影片| 天天淫人人妻日日色| 呻吟 欧美 日本 中出| 久久久久久久精| 久久激情亚洲精品无码?V| 在线观看十八禁| 欧美日韩亚洲国产中文永久天天看| 久久97超碰| 黄片无码在线制服| 91九九九小逼| 欧美性爱精品七区| 91oumei| 久久久无码精品人妻二区| 91色人妻| 国产AV天美| 亚洲精品九九九| 日本污ww视频网站| 91人妻久久久久久久久久久久久| 亚洲成aⅴ人片不卡无码| 婷婷五月天补不补| 91丝袜| 色9999日韩国产| 大香蕉92| 老司机深夜影院18未满| 制服少妇欧美| 国产亚洲欧美每日在线| 婷婷色香| 強姦亂倫a| 91人妻丝袜无码| 久久久久久精| 97精彩视频网站| 啪啪啪亚欧美视频| 亚码激情| 亚洲毛片基地专区| 91xingse| 亚洲图片欧美色图| 不卡超碰护士AV在线免费播放| 天天干18禁| wwwss在线观看| 夜夜欧美| 亚洲另类久操网| 亚洲欧美日韩中文播放| 九九九久千久久激情蜜桃在线看 | 麻豆精品.欧美精品.日韩精品.| 乱伦系列一区二区| 大香蕉99re| 亚洲精品男人的天堂| 日韩大香蕉AV影片| 欧美日韩色图片| 最新日本中文字幕| 免费网站观看www在线观| 在线色导航| 久男人久久| 超碰久热| 精品欧美老熟女一二区| 九九久久国产精品| 日本欧美亚洲高清在线看| 51一区二区三区| 亚洲小说视频| 超碰成人国产| 亚洲骚女一区二区三区| 国产偷人伦激情在线观看| 96超碰网| 9ⅰ久久久天天| 亚洲国产一级精品毛一级精品看免费视频| 成人小说另类在线| 91成人社区| 午夜精品五区| 蜜臀久久久99久久久久 | 麻豆性爱视频在线播放| 日韩高清黄片| 久久久精品一区二区| 国产激情av女片自拍| 99热这里只有精品1| 激情综合五月婷婷| 国产高清视频无码在线| 久久久免费懂色| 九九热AV| 福利视频一区二区微拍| 99这里都是精品| 亚洲一区二区三区欧美日韩| 日韩性爱小视频| 久久久久久少妇| 午夜精品久久久久久久男人的天堂 | 久久久少妇诱惑精品视频| www…国产操逼| 久久久久久久性爱| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 五月婷婷激情网| 中文字幕欧美日韩三级| 欧美日韩青操| 99色视频| 日韩亚洲中文字幕在线| 欧美日韩1234| 亚州欧美综合| 久久久久久大| 日本岛国黄色网址| 国产一级高跟丝袜| 日产精品久久久一区二区| 欧美三级不卡| A片三级无码| 国产精品探花色| 91中文字幕| 亚洲玖玖爱| 91丝袜美腿片| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 亚洲天堂中文字幕无码男同| 人人扣人人操| 国产成人精品日本亚洲语言| 无码WWW免费视频网站| 日韩无码一级黄色av片| 九热中文字幕| 人人看人人摸人人色| 少妇一区二区三区精选| 久久成人国产精品| 黄片视频观看| 黄片www视频免费| 色香天天| 色五月AV| 国产午夜在线观看| 无码动漫av中文字幕| 丰满人妻一区二区三区色-百度| 国产精品另类| 91色插| 一区二区三区不卡视频| 亚洲男人的天堂va亚洲男人社| 中日韩久久久免费看| 国产一| 97精品一区| 黑丝制服中文字幕| 亚洲高清综合网| 精品国产AV一区天美传媒| 日本三级精品| 日韩色香| 26uuu成人影片| 久久免费99精品久久久久久| 人人操人人插人人摸人人干| 日va操| 日韩欧美字幕亚洲一区二区| 日韩黄色一区二区三区| 色婷久久| 18一区二区三区| 超碰精品| 性感美女啊啊啊在线| 亚洲精品乱码久久久久久蜜桃麻豆| 色97欧美| 亚洲欧美日韩制服另类| 欧美黑人精品在线播放| 国产AV久久久蜜爱影集| 欧美精品人妻视频| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 性色高清在线| 97在线资源| 青青草一区二区高清无码视频| 日本506070| 日韩中文字幕精品一区在线| 妺妺跟我一起洗澡没忍住| 久久久一区二区三区四曲免费听| 97爱亚洲综合色| AV色五月天| 少妇熟女一区二区三区| 8x福利精品第一福利视频导航| 男人a天堂手机在线版| 丁香五月激情网| 屌妞视频久久久久久久久久久久| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 精吧天堂| 秋霞午夜成人福利片片| 欧美黑人精品一区二区| 无码人妻一区二区一牛影视| 日本精品久久久久久久| 黑人综合网| 一区二区三区 日韩欧美| 天美麻豆精品视频99| 欧美超碰人妻97| 国产成人91一区二区三区| 熟女被操视频网址| 高潮综合网| 久久久久久9| 国产吞精a级片激情电影| 日本一区二区三区精品| 久久精品电影在线| 亚欧成人中文字幕一区| 大香蕉中文aV在线| 蜜桃久久一区二区| 九九色图| 九九九九九九九九九九九蜜桃| 26UUU欧美日本| 婷婷色色五月| 欧美桃色网| 久久无码电影| 欧美色图 人妻| 又大又大又大又粗爽高潮观看| 天堂无码精品国产久| 欧美日韩理论一区| 欧美日韩中文视频播放| 2018色综合天天操| 青青草中出视频| 久久一区二区高清免费| 人妻精品4K4K4K4K4| 亚洲欧美另类小说| 人妻少妇久久久| 香蕉精品二区二区| 欧美日韩性爱视屏免费看了| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 久久人妻视频网| 亚洲做性| 在线啊v一区| 夜夜免费视频| 亚洲少妇综合在线播放| 高清肉丝中文无码| 久草国产在线视频| 少妇人妻激情四射| 亚洲人妻中文高清| 操淫穴亚洲五月丁香 | 亚洲第一成人影院色播| 人妻少妇久久| 九九色影院| 色区97| 黄色AV影视| 1240青青草一区二区三区视频天爱| 久久五月丁香| 91东北熟女| 亚洲国产剧情少妇激情| 激情熟女12P| 色欲人妻一区二区在线| 无码黑人精品一区二区三区三| 日本超碰色精品| 亚洲古典另类欧美在线| www.久久超碰| 97天天爽| 亚洲国产欧美另类自拍| 后入式五六区| 99re9在线| 98人妻精品一区二区色欲 | 国产特级毛片AAAAAA高潮流水| 欧美 亚洲 另类 综合| 91快色色色色色| 伊色久人大在线| 久久欧美1卡2卡3| 色天使亚洲综合在线观看| 欧美精品,四区。五区| 五月天丁香| 国模限制级电影| 被男人添B超爽视频| 91劲爆| 天天做天天爱| 人妻偷拍一区二区三区| 亚洲s色图| 久久欧美按摩999| 秋霞久久亚洲精品成人| 亚洲高清欧美总合| 日日夜夜青青草母狗| 亚洲第一无码播放立川理惠| 欧美色就是色| 日本高清熟女久久一区| 天天色综合图片| 天天色黄色影院天天操| 一二三区精品视频| 久久久久亚洲一区女同性恋中文字幕| 另类专区在线观看| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 国产不卡的视频 | 欧洲亚洲人妻无码久久三区四区| 亚洲AV资源| 日本精品一区二区中文字幕| 亚洲欧美国产中文视频| 一卡二卡三卡| 日韩欧美天天爽爽爽天天爽爽| 99色综合| 国语对白在线播放视频| 色综合一本| 九久久精| 人妻少妇久久| 性性久久| 中文字幕乱码人妻一区二区三区,99精品| 去干网最新版| 日韩人妻制服丝袜av| 亚洲人天堂| 久操免费电影| 国产免费一区| 欧美78| 97超碰热线| 欧美在线官网| 丁香六月综合激情| 久久久九九网站| 国产区性爱在线视频秋霞豆| 日本色色视频网站| 国产综合日韩伦理| 啊啊啊啊啊在线| 久久久久99精品成人片蜜臀| 亚洲综人网| 97天天插| 九热超碰| 亚洲天天精品| 午夜精品久久久99热蜜桃的功能特点| 欧美97视频| 亚洲久久久久| 极品色综合| www欧美91| 色香av| 狠狠躁伊人中文字幕| 久久精品女同亚洲女同13| 欧美激情久久久久| 97超碰中文| 亚洲九九爱| 欧美激情亚洲情色| 成人精品水蜜桃久久久久久久| 五毛骚逼极品美女怕怕| 97干综合网| 天天日熟妇| 欧美线天码中字| 色香网| 噜噜噜噜久久久精品免费| 中国少妇啪啪视频| 欧美色性情| 天天躁日日躁狠狠躁| 欧美激情久操网| 国产成人亚洲精品无码最新在线| 波多野结衣AV无码一区| 韩国一级婬片A片无码天美| 亚洲精品xxx| 欧美极度丰满熟妇hd| 国产久久久久久久久一区二区| 六月色色| 天堂日本亚洲欧美| 国产精品第二页| 久久r精品| 91亚洲人| 免费1级a做爰片观看| 99在线无码精品秘 入口黑人| 亚洲强奸乱伦影视网| 综合婷婷| AV老汉| 综合色久欲| 亚洲天堂资源网| 国产又猛又粗又爽又黄| 国产视频不卡在线观看| 国产剧情一区在线观看| 超碰中文字幕人妻草一区| 亚洲国产中文字幕| 青草综合| 人人摸人人摸人人干| 亚洲激情综合| 黄色不卡视频| 欧美激情内射| 黄色电影在线播放综合网站 | 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 男人天堂2030| 夜夜操青青草| 亚洲精品男人的天堂| 日日A∨| 亚洲小说视频| 377p欧洲日本亚洲大胆| 25国产精品免费观看| 精品亚州18| 日韩综合色图| 91成人在线免费视频| 久久草草欧美精品| 欧美在线干| 国产探花日韩援交| 一区二区三区四区色图| 加勒比av官网在线| 综合久久久久久久久91| 色婷婷影院| 2019亚洲男人天堂| 日本人妻中文字幕 | 青青草中日韩在线| 大香蕉免费3| 久久五月份| 久久9免费视频| 天天操人人操狠狠插| 亚洲色图激情小说| 暴力av在线| 久久亚洲AV无码专区国产精品| 亚洲少妇诱惑| 欧美天天| 亚洲无套久久嗯嗯| 深喉吞精| 91狠狠综合久久| 亚州大图综合色图| 两性色网| 久久国产精品熟女人妻| 欧美巨大性舒爽顶到了| 亚州色交| 草草草视频| 欧美日韩99| 久久久三区二区一区| 园内精品自拍视频在线播放| 国产精品色哟哟| 久久久性| 激情露脸爱| 在线αⅴ| 日韩精品人妻中文字幕有码午| 91天天综合日韩欧美| 丁香五月激情啪啪| 欧美丝袜中文字幕07在线| 人人考人人摸人人干| 国产精品3| 国产午夜激片Av毛片不卡| 亚洲色丰满少妇高潮| 人妻啪| 青青青艹在线视频| 日本一区二区三区四区免费观看| 99re这里| 五月天玖玖资源站| 中出91视频| 91婷婷| 999精品久久久久久久| 熟女精品一区二区三区| 91操熟女| 青青草在线视频欧美| 久久精品国产亚洲AV高清演员表| 欧美色图20p| 麻豆亚洲Av成人无码一区精品| 91精品老女人| 日韩AV一区二区三区三州三州| 日韩有码 一区二区三区| 国产传媒1234区| 日本免费一级AAA大片器| 亚洲性感丝袜诱惑在线观看| 全免费a敌肛交毛片免费| 国产精品69久久久久久久 | 精品国产乱码久久久| 天天影视综合网欧美精品| 人人操人人色网| 在线视频五十市| 伊人黄色视频免费观看| 亚州性色| 美女91在线观看| 亚洲AV无码黄色强奸| 一区二区三区一亚洲中文字幕、综合区灬| 99精品免费| 综合伊人激情| 久久高清无码夜夜操| 人妻久久久| 免费αV在线视频| 亚洲AV人人澡人人爱| 伊人久久88国产女| 超碰在线欧美性爱激情| 啊啊啊啊啊好舒服视频| 色五月婷婷网| 韩日性爱av| 日本 情色 1区| 精品视频97| 色综合色| 国产Aα| 亚洲男人天堂AV| 天天综合麻豆视频| 亚码激情| 午夜精品久久久久久久99蜜桃一| 97精品视频| 91美女视频电影| 区一在线观看| 久久曰曰| 欧美aaaaaaa| 青青草中文字幕| 人妻美腿丝袜日韩| 亚洲精品欧美专业| 五月婷色| 91人妻中文| 日本精品一级二级三级| 色网亚洲人| 国内97干免费看| 久久欧美按摩999| 久久性爱城| 福利社区午夜一区二区| 啪啪视频免费在线观看| 久久精品噜噜噜成人看免欧美大片| 78p欧美| 中文字暮97| 久久久久9| 五月天婷精品激情| 嫩呦国产一区二区三区AV| 加勒比综合网| 久久久偷拍| 天天日天天干天天摸天天操| 精品无码人妻一区二区免费蜜桃| 欧洲中文字幕| 殴美牲| 日本片日本片祼观看网站在线看中文版网页在线看 | 亚洲 暴爽 AV人人爽日日碰| 天堂网亚洲区手机版| 97欧美久久久久久久| 欧美A√综合网 | 亚洲脚交| 劲爆欧美人妖三区91| 99久在线精品99re8a| 久久亚洲天天做| 91人妻视频在线| 澳门成人网站久国产日韩| 丝袜AV一二三区| 9/A片| 国产夜夜艹| 九月AV| 97人人爱人人做人人乐| av在线浏览| 嗯嗯,啊啊,国产精品| 欧美日不卡| 亚洲色图在线视频| 少妇免费视频| 婷婷激情一区二区三区俺也去| 蜜色网色哟哟| JULIA人妻风俗店中出电影| 人妻精品综合中文字幕在线 | 后入式福利| 久久激情四射婷婷丁香五月天| 蜜桃臀久久| 97久久久久久久久久| 一本大道青青| 久操免费在线| 一起草三级AV电影在线观看 | 天天激清| 九九视频黄色片| 亚洲图片日本AⅤ欧美在线| 欧美日韩性爱电影在线| 精品视频免费在线一区| 在线无码操| 一起草av| 老熟女91av| 久久爽爽精品| 91色人| 亚洲熟女av中文字幕| 精品视频在线观看精品| 曰韩操B| 无码少妇精品一区二区60岁老人| 激情婷婷丁香| 大香蕉色网| 欧美一品道| 久久免费9| 午夜福利1区2区3区| 欧美日韩操操操| 丁香五月激情网| 国产白嫩精品久久| 人妻激情在线视频| 成人国产二区三区在线,男女精品。| 久久97| 国产亚洲精品农村妇女| 91丨九色丨大屁股| 欧美大香蕉97| 超碰偷拍| av一区二区三区不卡| 浪人综合网| 丝袜AV一二三区| 麻豆精品三区视频| 黄页av| 成人性爱av.com| 亚洲av夫妻操穴网| 97在线资源| 96久久久| 黑人精品成人一区二区三区| 久久久亚洲精品电影免费看| 精吧天堂| 国产精品福利资源在线尤物| 色婷婷五月综合激情中文字幕| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 男人把坤坤插入女人的下体 | 99久久精品国产高潮| 97玖玖人妻| 中韩中文字幕在线观看| 欧美亚洲一级在线观看| 欧美后进式| 天堂精品| 国产一区二区三区免费视频在性观看| 婷婷综合久久| 日韩熟女视频二区| 欧美18老人禁| 激情五月激情综合网| 中文日韩欧美熟| 久久精品福利影院| 欧美日日网| 大香蕉2017| 最新的亚洲无吗| 97欧美超碰| 午夜久久无码1000合集| 伊人丝袜美腿高跟在线观看高清| 91色花堂| 91啪啪| 中文字幕1区2区| 无码在线亚洲| 欧美韩日精品资源| 性饥渴少妇av无码毛片| 国产少妇与亚洲av| 亚洲欧美伦综合| 这里都是精品在线观看| 亚洲怡春院| 狠狠色狠狠色狠狠五月| 久久久久久中文版| 亚洲国产成人7777| 欧美亚洲丝袜美女电影| 91精品国产91久久青草| 97九色人妻| 青青在线视频日韩欧美| 亚洲男人的天堂亚洲| 亚91网| 大香网伊人久久综合| www.成人无码| 欧美日韩第一页| 抽插一区二区视频| 色情五月综合婷婷| 青青草原伊人网| 丁香五月天堂网| 人人妻人人澡人人爽久久av| 男人的天堂啪啪啪啪啪蜜桃不卡| julia国产在线| 激情婷婷| 天天日天天干少妇日| 欧美色偷拍| 国产精品不卡一区二区三区av| 欧美色图中文字幕| 日韩免费高清大片在线| 人人超碰在线观看黄| 日韩精品在线观看观看| 玖玖草久草99蜜月一区二区三区| 日韩成人性爱AV| 久热精品在线| 人妻啊啊人妻啊啊| 国产精品白领在线观看 | 亚洲天堂男人的天堂| 欧美熟爽综合| 久久草草亚洲蜜桃臀| 久久 亚洲 日韩 人妻| 亚洲免费成人在线高清无码视频| 偷拍在线观看视频| 日本国产高清色www视频在线| 精品一区99999| 日本色色色| 国产强奸乱伦欧美| 亚洲综合性网址| 精品国产久热在线观看| 欧美亚洲系列| 国产精品对白内射| 日本不卡高清视频| 欧美热图99| 亚洲丝袜天堂| 日本操逼视频导航| 五月天婷婷社区| 天天综合AV| 天堂无码精品国产久| 色九久| 干B| 久久久中文| 91人精品妻入口| 青青久日| 成人老鸭窝人人在线视频| 人人爱人人操人人性| 亚州综合网| 日韩中文9| 91N欧美| 操逼1区| 2017大香蕉| 色踪合AV| 宅男91视频在线播放| 国产视频一区二区免费| 亚洲国产一级黄色视频| 欧美在线干| 中文字幕片| 九九激情网| 免费看黄视频亚洲网站| 天堂性色| 91美女国产在线| 欧美亚洲影视| 婷婷五月天丁香花| 中国一级特黄大片护士| 亚洲天堂2020| 2020中文字幕在线| 91天天综合网,天天综合网| 丁香婷婷啪啪| 亚洲欧洲精品视频发布| A级在线视频| 中国少妇啪啪视频| AV色图| 91丝袜激情在线| 五十路熟女人妻一区二区在线观看| 狠狠色一区二区中文字幕| 亚州少妇| 五月婷在线| 亚洲最大网站av| 欧美一区二区三区入口| 放黄片放3级黄片没穿衣服| AV女资源| 亚洲好色人妻| 亚洲日韩东京热一区| 啊啊啊啊啊在线视频| oumeisetu综合| 国产激情视频在线观看| 高跟丝袜AV专区国产| 欧美伊人久久综合网| 日韩成人高清一区二区| 成人国产二区三区在线,男女精品。| 欧美丝袜美女电影一二三四区| 99精品伊人| 亚洲男人的天堂AV| 久久国产精品,久久国产| 9/A片 | 人人操人人爽人人操人人| 校园春色五月天| 777超碰| 久 久无码人妻AV| 一本久道久久综合狠狠爱一密臀精 | 欧美综合1性辶| 插B在线观看| 熟女一区二区三区四区| 嗯~啊~快点 死我视频免费看网站| 青青草大香蕉在线视频| 天天做天天爱天天爽AV| 亚洲激情 欧美色图| 少妇六月天| 丁香婷婷激情五月天无毒不卡 | 亚洲欧美另类图片| 亚洲成?V人片在线观看福利| 99热超碰| av久日| 操操逼操操逼操操逼逼| 日小BB小视频| 精品国产91av一区二区三区| 丰满美女一级毛片在线播放| 麻豆国产精品午夜视频| 最新日日夜夜天天干干| 国产99精品一区二区三区免费| 在线a v| 综合欧美日本三级|