軟件測(cè)試之道(google)

軟件測(cè)試介紹

少則清晰估盘,測(cè)試人員的稀缺導(dǎo)致測(cè)試資源很昂貴。(不要招聘太多的測(cè)試人員)

質(zhì)量不等于測(cè)試

開(kāi)發(fā)對(duì)質(zhì)量負(fù)責(zé)(預(yù)防行為伏尼,不是檢測(cè))

衛(wèi)生間張貼著最佳測(cè)試實(shí)踐

角色介紹

  • SWE(Software Engineer)

  • SET(Software Test Engineer)

  • TE(Test Enginee)

SET也是開(kāi)發(fā)角色忿檩,100%時(shí)間(不可能吧,嚴(yán))在編寫代碼爆阶,SET和SWT是合作伙伴

工作重心在可測(cè)試性和通用測(cè)試基礎(chǔ)框架

參與設(shè)計(jì)評(píng)審

為了增加可測(cè)試性燥透,甚至?xí)?duì)代碼重構(gòu)

關(guān)注質(zhì)量提升和測(cè)試覆蓋率增加

SET和SWT是合作伙伴

TE是產(chǎn)品專家,質(zhì)量顧問(wèn)和風(fēng)險(xiǎn)分析師

大量時(shí)間在模擬用戶的使用場(chǎng)景的代碼上辨图。

組織結(jié)構(gòu)

測(cè)試是獨(dú)立的部門(工程生產(chǎn)力團(tuán)隊(duì))班套,以租借的方式進(jìn)入產(chǎn)品

不同項(xiàng)目組的借調(diào),時(shí)刻保持新鮮感故河,也方便好的測(cè)試想法快速蔓延吱韭。

推廣創(chuàng)新技術(shù),直接借調(diào)創(chuàng)新的發(fā)明者是一個(gè)很好的辦法

爬走跑

金絲雀版本(每日構(gòu)建)

開(kāi)發(fā)版本(每周)

測(cè)試版本(每月最佳)

發(fā)布版本(穩(wěn)定的測(cè)試版本)

測(cè)試類型

Google用小型鱼的,中型理盆,大型測(cè)試(對(duì)應(yīng)我們的單元,集成凑阶,系統(tǒng)測(cè)試)

小型測(cè)試

函數(shù)或模塊猿规,需要使用mock、fake

中型測(cè)試

模塊之間的交互

大型測(cè)試

真實(shí)用戶場(chǎng)景和數(shù)據(jù)

軟件測(cè)試開(kāi)發(fā)工程師

理想的軟件世界宙橱,有test harness姨俩, test infrastructure蘸拔,mock and fake任你使用(如,模擬的數(shù)據(jù)庫(kù))

測(cè)試代碼的主要思路是去破壞环葵,怎樣寫測(cè)試代碼以擾亂分離用戶及其數(shù)據(jù)

SET的工作

公共庫(kù)调窍,共享代碼≌旁猓可復(fù)用性大于功能復(fù)雜性和設(shè)計(jì)巧妙性

公共模塊必須經(jīng)過(guò)審核

開(kāi)發(fā)人員有編寫出干凈代碼的記錄邓萨,會(huì)被授予“良好可讀性”證書(shū)

每種語(yǔ)言都有統(tǒng)一的編譯器(類似我們的統(tǒng)一開(kāi)發(fā)服務(wù)器)

構(gòu)建系統(tǒng)使用統(tǒng)一的打包規(guī)范(和語(yǔ)言無(wú)關(guān),linux rpm)

一個(gè)產(chǎn)品有多個(gè)服務(wù)組成帝璧,服務(wù)之間并行開(kāi)發(fā)先誉,項(xiàng)目早期定下服務(wù)之間的接口湿刽。早期測(cè)試的烁,接口都是虛假的實(shí)現(xiàn)

SET非常難招聘(又懂開(kāi)發(fā)又懂測(cè)試)

“只有軟件產(chǎn)品變的重要的時(shí)候質(zhì)量才顯得重要”

產(chǎn)品早期一般不投入測(cè)試(可能重新設(shè)計(jì)),正式批準(zhǔn)后诈闺,才會(huì)尋求測(cè)試資源渴庆。

項(xiàng)目初期,設(shè)計(jì)文檔(動(dòng)態(tài)更新)

SET有一個(gè)巨大的優(yōu)勢(shì)雅镊,就是產(chǎn)品方面最寬廣的視野

SET審核初期階段的設(shè)計(jì)文檔

接口襟雷、協(xié)議,采用protocol buffer

可測(cè)試性如何仁烹,是否需要新增testing hook(為了測(cè)試增加接口耸弄,顯示系統(tǒng)內(nèi)部狀態(tài))

協(xié)議與接口

protocol buffer定義的接口和協(xié)議由SET實(shí)現(xiàn)(SET第一個(gè)實(shí)現(xiàn)所有的接口和協(xié)議),集成測(cè)試的運(yùn)行依賴這些接口卓缰,因此SET針對(duì)各個(gè)模塊的依賴提供了mock和fake

自動(dòng)化計(jì)劃

試圖自動(dòng)化所有端到端的測(cè)試用例计呈,是一個(gè)常見(jiàn)的錯(cuò)誤(SWE也不會(huì)感興趣)
自動(dòng)化投入越多,維護(hù)成本越大征唬。自動(dòng)化計(jì)劃捌显,應(yīng)該規(guī)模更小,目的性更強(qiáng)

端到端的自動(dòng)化測(cè)試投入過(guò)度总寒,會(huì)把產(chǎn)品特定功能綁定在一起扶歪,產(chǎn)品穩(wěn)定之前都不會(huì)特別有用。SET應(yīng)該投入到提高質(zhì)量摄闸,而不是維護(hù)不穩(wěn)定的測(cè)試套件上善镰。

可測(cè)試性

SET第一要?jiǎng)?wù)是可測(cè)試性,提供程序結(jié)構(gòu)和代碼風(fēng)格建議給開(kāi)發(fā)人員
代碼審查需要工具和文化的支持年枕,google將代碼審查作為開(kāi)發(fā)流程的中心炫欺,代碼審查比編寫代碼更值得炫耀。
只有被證明是值得信賴的開(kāi)發(fā)者画切,才有往代碼庫(kù)提交代碼的資格竣稽。用“可讀性”區(qū)分有資格的提交者和新開(kāi)發(fā)人員。
CL(change list),持續(xù)提交優(yōu)秀的CL毫别,獲得“可讀性”的代碼審查資格娃弓。(先要寫好代碼,才能當(dāng)這方面的評(píng)委岛宦,嚴(yán))台丛。
自動(dòng)化檢查代碼風(fēng)格是否符合要求(這一塊,我們需要補(bǔ)上砾肺,嚴(yán))
在與外部公共庫(kù)(或框架)有交互的地方需要依賴集成測(cè)試
項(xiàng)目成員輪流做“構(gòu)建警察”(我們可以借鑒挽霉,每人輪流跟蹤jenkins的輸出)
TAP(Test Automation Program)

SET工作流程(實(shí)例)

詳見(jiàn)書(shū)籍
(google可以做到修改一個(gè)代碼,只跑這個(gè)模塊的單元測(cè)試变汪?嚴(yán))
基于googletest
樣例中侠坎,將_test后置
xxxx.cc(正式文件)
xxxx_test.cc(測(cè)試文件)

測(cè)試執(zhí)行

只有能加速開(kāi)發(fā)過(guò)程的自動(dòng)化測(cè)試才有意義,測(cè)試不應(yīng)拖慢開(kāi)發(fā)的速度
新增測(cè)試程序裙盾,會(huì)創(chuàng)建一個(gè)構(gòu)建說(shuō)明文件(測(cè)試名稱实胸,源碼文件,依賴庫(kù)及數(shù)據(jù)番官,規(guī)模大新辍)。工程師通過(guò)一條指令即可觸發(fā)構(gòu)建徘熔、運(yùn)行自動(dòng)化和展示結(jié)果(我們有這樣的東西嗎门躯?現(xiàn)在的方式是必須提交代碼,jenkins才會(huì)運(yùn)行酷师,嚴(yán))

測(cè)試大小的定義

小型測(cè)試讶凉,外部服務(wù)(文件系統(tǒng),數(shù)據(jù)庫(kù)窒升,網(wǎng)絡(luò))必須通過(guò)mock和fake里實(shí)現(xiàn)
中型測(cè)試缀遍,主要目標(biāo)是驗(yàn)證指定模塊之間的交互

測(cè)試規(guī)模在共享測(cè)試平臺(tái)的使用

資源 小型測(cè)試 中型測(cè)試
網(wǎng)絡(luò)服務(wù) 模擬 僅本地
數(shù)據(jù)庫(kù) 模擬
訪問(wèn)文件系統(tǒng) 模擬
訪問(wèn)用戶界面系統(tǒng) 模擬 不鼓勵(lì)
系統(tǒng)調(diào)用 不鼓勵(lì)
多線程 不鼓勵(lì)
睡眠狀態(tài)
系統(tǒng)屬性
強(qiáng)制時(shí)間限制 1分鐘 5分鐘

測(cè)試規(guī)模的益處

google維護(hù)著不同測(cè)試類型之間的健康比例,全部使用大型的端到端自動(dòng)化測(cè)試是錯(cuò)誤饱须;全部使用小型的單元測(cè)試也是錯(cuò)誤的
不同類型的測(cè)試都有覆蓋率報(bào)告(命令行加一個(gè)選項(xiàng)即可在瀏覽器查看覆蓋率)(我們的中域醇、大型測(cè)試還沒(méi)有覆蓋率報(bào)告)
經(jīng)驗(yàn)法則:70%是小型;20%是中型蓉媳;10%是大型
如果面向用戶譬挚,集成度高,用戶接口復(fù)雜酪呻,增加中大型測(cè)試比例
基礎(chǔ)平臺(tái)或面向數(shù)據(jù)减宣,增加小型測(cè)試比例
(google的Harvester是一個(gè)可視化工具)

測(cè)試運(yùn)行要求

可以設(shè)置一個(gè)標(biāo)記以隨機(jī)順序執(zhí)行用例(任意順序也意味著可以并發(fā))
google的持續(xù)集成做了優(yōu)化,利用依賴分析技術(shù)玩荠,一個(gè)代碼變更只運(yùn)行影響模塊的測(cè)試(我們能做到嗎漆腌?嚴(yán))

測(cè)試認(rèn)證

對(duì)開(kāi)發(fā)人員做測(cè)試這個(gè)文化有巨大的幫助
測(cè)試認(rèn)證是一個(gè)富有聲望的事情贼邓,從1級(jí)到5級(jí)(有徽章,可以炫耀)
(1-5級(jí)對(duì)應(yīng)的內(nèi)容在書(shū)的Page55,56)

與測(cè)試認(rèn)證計(jì)劃創(chuàng)始人的訪談

級(jí)別1:基本操作闷尿,還有去除所有非確定性測(cè)試(結(jié)果不確定的測(cè)試)塑径,挑選冒煙測(cè)試;
級(jí)別2:提高增量覆蓋率
級(jí)別3:測(cè)試新增代碼
級(jí)別4:測(cè)試歷史遺留代碼(針對(duì)可測(cè)試性做重構(gòu))
級(jí)別5:更高的覆蓋率填具,每個(gè)缺陷對(duì)應(yīng)增加測(cè)試用例
通過(guò)ToTT(Testing on the Toilet)和其他活動(dòng)把測(cè)試搞得充滿激情统舀、趣味和吸引力,包括fixit
針對(duì)沒(méi)有”測(cè)試時(shí)間”的狀況劳景,尋找下面的團(tuán)隊(duì):有興趣誉简;沒(méi)有太多冗余代碼;有測(cè)試戰(zhàn)神
試點(diǎn)項(xiàng)目盟广,測(cè)試教練幫助團(tuán)隊(duì)闷串,各種宣傳,積分系統(tǒng)等
團(tuán)隊(duì)的測(cè)試認(rèn)證級(jí)別代表提高測(cè)試的重視程度衡蚂,是工程生產(chǎn)團(tuán)隊(duì)決定是否投入有限測(cè)試資源的重要參考指標(biāo)
最困難的一步“所有的重要代碼變更窿克,都需要測(cè)試”骏庸,遺留代碼缺少可測(cè)試性(長(zhǎng)遠(yuǎn)角度就是重構(gòu)增加可測(cè)試性)0生巨大的影響
如何用acount(void *s)返回字符串中'A'的次數(shù)毛甲,有詳細(xì)的區(qū)分普通、更好具被、優(yōu)秀的候選人的方法(Page63-67)(這個(gè)可以借鑒玻募,嚴(yán))

測(cè)試工程師

TE starting from middle(從頭介入不適用于google,因?yàn)樵缙诠δ懿粩嘧兓蛔耍琓E沒(méi)有太多工作可做)
配備多少測(cè)試人員七咧,取決于項(xiàng)目風(fēng)險(xiǎn)和投資回報(bào)率
Google只有少數(shù)團(tuán)隊(duì)采用word文檔通過(guò)郵件來(lái)傳遞(很老派)
google的文化是分布式和自我管理(大政府理念會(huì)受到嘲弄)
ACC(Attribute Component Capability)是測(cè)試計(jì)劃的替代方法
Attribute是區(qū)別于競(jìng)爭(zhēng)對(duì)手的關(guān)鍵。測(cè)試用例關(guān)聯(lián)到這些標(biāo)簽叮叹,就知道哪些Attribute已經(jīng)完成多少測(cè)試艾栋。
Attribute和Component要求簡(jiǎn)潔,Capability描述完整的功能
能力最重要的一個(gè)特點(diǎn)就是可測(cè)試性
Attribute作為行蛉顽,Component作為列蝗砾,形成的表格,每個(gè)單元格里都是不同的能力(多條)携冤。
用戶故事可以用一系列能力來(lái)描述
采用風(fēng)險(xiǎn)分析悼粮,將單元格附上顏色
風(fēng)險(xiǎn)分析需要不同人的意見(jiàn)。有個(gè)方法很給力曾棕,先完成一份扣猫,然后發(fā)給不同的人,他們發(fā)現(xiàn)偏差就會(huì)提出意見(jiàn)(樹(shù)個(gè)靶子)

bug的生命周期

google使用buganizer管理bug翘地,分為P0到P5(P0最糟)
當(dāng)bug到達(dá)的速度超過(guò)團(tuán)隊(duì)修復(fù)的能力時(shí)申尤,不進(jìn)行新功能的開(kāi)發(fā)(google強(qiáng)烈推薦這種實(shí)踐)癌幕,有助于控制住bug

TE的招聘

尋找正面的價(jià)值觀:用不那么極端的輸入,一遍又一遍的測(cè)試用以模擬真實(shí)使用場(chǎng)景昧穿,保證通用情況下序芦,軟件的運(yùn)行不會(huì)出錯(cuò)

google的測(cè)試領(lǐng)導(dǎo)和管理工作

海盜領(lǐng)導(dǎo)力:船員武裝到牙齒,才能卓著粤咪,不愁去處谚中,船長(zhǎng)怎么管理這些人?(無(wú)法通過(guò)強(qiáng)力和恐懼寥枝,船員的動(dòng)力在于劫掠的生活方式和下一次收成的興奮感)
要靠技術(shù)洞察力宪塔,令人興奮的技術(shù)冒險(xiǎn),有趣的湍野荩靠港口來(lái)領(lǐng)導(dǎo)團(tuán)隊(duì)
谷歌領(lǐng)導(dǎo)和管理:mentoring and guiding, not dictating

Google Test Analytics

是否有GTA類似的軟件供我們使用

與lindsay webster訪談

go-to tester(有困難就找她)
從頭到尾理解產(chǎn)品某筐,包括各種文檔
代表客戶
坦誠(chéng)某個(gè)組件或領(lǐng)域不由自己負(fù)責(zé),開(kāi)發(fā)反而尊敬你

測(cè)試工程經(jīng)理

測(cè)試工程經(jīng)理具備TE和SET技能冠跷,并具有足夠的管理技能
獨(dú)立貢獻(xiàn)者向測(cè)試經(jīng)理(manager)匯報(bào)南誊,資深工程師和技術(shù)負(fù)責(zé)人直接向總監(jiān)(director)匯報(bào)

影響力

google特別強(qiáng)調(diào)影響力

ankit mehta的訪談

進(jìn)入一個(gè)新項(xiàng)目,頭幾個(gè)興趣都是在傾聽(tīng)(無(wú)法接受醫(yī)生觀察我不到5分鐘就開(kāi)出抗生素的藥)
問(wèn)為什么要做這個(gè)測(cè)試蜜托,很多開(kāi)發(fā)不思考抄囚,只做他們知道怎么做的東西或看別人怎么做就怎么做。應(yīng)該是能提高產(chǎn)品質(zhì)量橄务,提高工程師開(kāi)發(fā)效率的東西
團(tuán)隊(duì)的文化和氛圍很大程度來(lái)自團(tuán)隊(duì)那個(gè)資深的人
管理的同時(shí)保持技術(shù)敏銳

  • 留下一部分工作自己做
  • 排除干擾(去了另外一個(gè)地方工作幔托,干擾少,產(chǎn)能很高)
    只選用最好的人蜂挪,絕不動(dòng)搖
    經(jīng)驗(yàn):
  • 測(cè)試和開(kāi)發(fā)采用相同的語(yǔ)言
  • 關(guān)注測(cè)試基礎(chǔ)設(shè)施建設(shè)重挑,讓測(cè)試更容易
  • 20%的用例覆蓋了80%的使用場(chǎng)景(自動(dòng)化這些)
    年輕的測(cè)試工程師可能一上來(lái)就干,沒(méi)有思考為什么要寫這些測(cè)試

Hung Dang的訪談

如果自動(dòng)化不能帶來(lái)明確的價(jià)值棠涮,我們就廢棄它

測(cè)試總監(jiān)

Shelton Mar

測(cè)試技術(shù)必須融入項(xiàng)目團(tuán)隊(duì)谬哀,需要非常強(qiáng)的工程師

Brad Green

google聘用的都是極端自我驅(qū)動(dòng)力的家伙,“按我說(shuō)的做”用多了严肪,這群聰明的家伙就會(huì)不理你而去做他們覺(jué)得最該做的事情(google style史煎, 表面上答應(yīng)你,后面干自己的事情)

James Whittaker

我發(fā)現(xiàn)沒(méi)有比開(kāi)發(fā)工具更能激發(fā)測(cè)試人員的創(chuàng)造性和團(tuán)隊(duì)士氣了(我們是否可以借用诬垂,嚴(yán))
我對(duì)google最滿意的兩件事:測(cè)試人員向測(cè)試人員匯報(bào)劲室;測(cè)試人員自己決定自己的發(fā)展
Google測(cè)試的秘方:技能(測(cè)試人員的技術(shù)能力)、稀缺性(獲得開(kāi)發(fā)人員的幫助)结窘、自動(dòng)化很洋、迭代集成

google軟件測(cè)試改進(jìn)

google的測(cè)試流程概況:讓每個(gè)工程師都注重質(zhì)量

google測(cè)試流程的致命缺陷

  • 測(cè)試成了開(kāi)發(fā)的拐杖(測(cè)試變得越簡(jiǎn)單,開(kāi)發(fā)越不會(huì)去做測(cè)試)
  • 測(cè)試人員更關(guān)注自己的角色隧枫,而不是他們的產(chǎn)品
  • 測(cè)試人員崇拜測(cè)試產(chǎn)物勝過(guò)軟件本身(所有測(cè)試產(chǎn)物的價(jià)值喉磁,在于他對(duì)代碼的影響谓苟,再通過(guò)產(chǎn)品來(lái)體現(xiàn))、

SET的未來(lái)

SET的未來(lái)就是開(kāi)發(fā)
測(cè)試代碼要成為一等公民协怒,由PM管理涝焙,由SWE編寫
測(cè)試功能特性開(kāi)發(fā)應(yīng)有團(tuán)隊(duì)的新成員負(fù)責(zé)(必須學(xué)習(xí)產(chǎn)品的所有東西,包括內(nèi)部設(shè)計(jì))孕暇,是一個(gè)非常理想仑撞、最佳的熱身項(xiàng)目。

結(jié)論

軟件開(kāi)發(fā)的問(wèn)題已經(jīng)徹底改變妖滔,繼續(xù)死守?cái)?shù)十年之久的測(cè)試教條無(wú)異于刻舟求劍
集中測(cè)試部門逐漸下發(fā)到項(xiàng)目隧哮,讓他們更敏捷,更少關(guān)注測(cè)試流程座舍,更多關(guān)注產(chǎn)品本身沮翔。
測(cè)試工程經(jīng)理是最強(qiáng)的產(chǎn)品專家

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市曲秉,隨后出現(xiàn)的幾起案子采蚀,更是在濱河造成了極大的恐慌,老刑警劉巖承二,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件榆鼠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡矢洲,警方通過(guò)查閱死者的電腦和手機(jī)璧眠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)读虏,“玉大人,你說(shuō)我怎么就攤上這事袁滥「乔牛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵题翻,是天一觀的道長(zhǎng)揩徊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)嵌赠,這世上最難降的妖魔是什么塑荒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮姜挺,結(jié)果婚禮上齿税,老公的妹妹穿的比我還像新娘。我一直安慰自己炊豪,他們只是感情好凌箕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布拧篮。 她就那樣靜靜地躺著,像睡著了一般牵舱。 火紅的嫁衣襯著肌膚如雪串绩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天芜壁,我揣著相機(jī)與錄音礁凡,去河邊找鬼。 笑死慧妄,一個(gè)胖子當(dāng)著我的面吹牛把篓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腰涧,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼韧掩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了窖铡?” 一聲冷哼從身側(cè)響起疗锐,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎费彼,沒(méi)想到半個(gè)月后滑臊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箍铲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年雇卷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颠猴。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡关划,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翘瓮,到底是詐尸還是另有隱情贮折,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布资盅,位于F島的核電站调榄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏呵扛。R本人自食惡果不足惜每庆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望今穿。 院中可真熱鬧缤灵,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至利诺,卻和暖如春富蓄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背慢逾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工立倍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侣滩。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓口注,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親君珠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寝志,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容