軟件質(zhì)量永恒——質(zhì)量內(nèi)建

摘自http://www.51testing.com/html/23/n-3720823.html

質(zhì)量綜述

隨著互聯(lián)網(wǎng)快速發(fā)展,早期的傳統(tǒng)軟件公司強調(diào)工程的嚴謹性津肛,CMMI,ISO9000格局已經(jīng)發(fā)生變化毯欣,逐漸退出歷史舞臺招拙。前期敏捷理念被迅速的普及。Scrum迎合了產(chǎn)品管理的需求, XP迎合了工程化發(fā)展的需求功戚。各自發(fā)展都很迅猛,然后逐漸衍生了更深入的CI似嗤、CD和DEVOPS等模式啸臀。

企業(yè)扁平化管理,大質(zhì)量部模式被打散烁落,為了提高運作效率乘粒, QA或者測試工程師團隊被逐漸分拆到各個具體業(yè)務(wù)部門,技術(shù)性測試工程師開始逐漸發(fā)揮價值伤塌。未來隨著DEVOPS完善灯萍,質(zhì)量問題將會越來越突出不久的將來可能會出現(xiàn)DEVQA。

根據(jù)目前軟件發(fā)展趨勢每聪,軟件質(zhì)量可以分為發(fā)布前軟件質(zhì)量和發(fā)布后軟件質(zhì)量旦棉,發(fā)布前軟件質(zhì)量分為軟件質(zhì)量驗證和軟件質(zhì)量交互齿风,發(fā)布后軟件質(zhì)量可以分為軟件質(zhì)量監(jiān)控和軟件質(zhì)量運維如下圖:

軟件質(zhì)量綜述圖

質(zhì)量驗證

軟件質(zhì)量驗證,具體的說就是軟件測試绑洛,它分為黑盒測試救斑,灰盒測試,白盒測試真屯,灰度測試脸候。

質(zhì)量驗證及相關(guān)內(nèi)容

在傳統(tǒng)軟件公司強調(diào)工程的嚴謹性黑盒測試發(fā)展很成熟,方式方法也很全面讨跟,測試資源投入比較多纪他。這樣開發(fā)人員可以專心寫著優(yōu)雅的代碼鄙煤,只做單元測試和接口晾匠、組件測試就可以了,其他的事情都讓測試人員去干梯刚。

隨著計算機科學專業(yè)在大學完善凉馆,越來越多的科班生都參與到測試行業(yè),在互聯(lián)網(wǎng)公司隨著開發(fā)人員慢慢滲透到測試亡资,自動化測試澜共、白盒測試和灰度測試越來越盛行。流行上面主要原因是分層自動化锥腻,測試需求減少嗦董,測試人力資源減少越來越專業(yè)化,測試瘦黑、開發(fā)比例越來越低京革,讓機器干活,逐漸釋放人力幸斥,節(jié)約成本匹摇。下面逐漸開始介紹質(zhì)量驗證,質(zhì)量驗證包括黑盒測試甲葬、白盒測試廊勃、灰盒測試、灰度測試经窖。

黑盒測試

黑盒測試分功能測試和非功能測試坡垫。

常用的功能測試有單元測試、接口/組件測試画侣、冒煙測試冰悠、集成測試、系統(tǒng)測試棉钧、回歸測試屿脐、UI測試涕蚤、α測試、β測試的诵,非功能測試有性能測試万栅、穩(wěn)定性測試、安全測試西疤、恢復(fù)測試這些測試都是一個項目必須要有的方式烦粒,但是在時間和人力允許的情況下可以有交叉測試、兼容性測試代赁、可用性測試扰她、比較性測試、探索性測試芭碍。然后使用分層自動化測試來提高上面各種測試效率徒役。

黑盒分層自動化可以分為單元測試自動化、集成接口自動化窖壕、UI層自動化忧勿,單元測試采用框架如java的Junit、testNG瞻讽,C#的NUnit鸳吸,python的unittest、pytest等速勇,集成接口自動化框架如SoapUI(改名叫Ready!API)晌砾、Postman等,UI層自動化如QTP,Robot Framework烦磁、watir养匈、selenium等,具體怎么做分層自動化个初,具體需求根據(jù)具體項目去做乖寒。

開發(fā)人員自測標準:完成需求文檔、設(shè)計文檔院溺、完成代碼開發(fā)

提交測試人員標準:開發(fā)人員輸出單元測試楣嘁,接口/組件測試報告、測試人員通過冒煙測試

單元測試珍逸、接口/組件測試

輸入:完成需求文檔逐虚、設(shè)計文檔、完成代碼開發(fā)

輸出:單元測試用例谆膳、單元測試報告

人員:開發(fā)人員

環(huán)境:開發(fā)環(huán)境

冒煙測試

輸入:完成單元測試報告叭爱、冒煙測試用例

輸出:冒煙測試報告

人員:測試人員

環(huán)境:測試環(huán)境

集成測試

輸入:完成冒煙測試報告、集成測試用例

輸出:集成測試報

人員:測試人員

環(huán)境:測試環(huán)境

系統(tǒng)測試

輸入:集成測試報告漱病、系統(tǒng)測試用例

輸出:系統(tǒng)測試報告

人員:測試人員

環(huán)境:測試環(huán)境

回歸測試

輸入:功能測試報告买雾、回歸測試用例

輸出:回歸測試報告

人員:測試人員

環(huán)境:測試環(huán)境\

安全測試

輸入:功能測試報告把曼、安全測試用例

輸出:安全測試報告

人員:測試人員

環(huán)境:測試環(huán)境

性能測試

輸入:功能測試報告、性能測試用例

輸出:性能測試報告

人員:測試人員

環(huán)境:測試環(huán)境

穩(wěn)定性測試

輸入:功能測試報告漓穿、性能測試用例

輸出:穩(wěn)定性測試報告(它往往和性能測試報告一起出)

人員:測試人員

環(huán)境:測試環(huán)境

UI測試

輸入:回歸測試報告嗤军、UI測試用例

輸出:UI測試報告

人員:測試人員

環(huán)境:測試環(huán)境

α測試

輸入:功能測試報告、α測試用例

輸出:α測試報告

人員:公司內(nèi)部人員

環(huán)境:測試環(huán)境

β測試

輸入:功能測試報告晃危、性能測試報告

輸出:β測試報告

人員:客戶

環(huán)境:生產(chǎn)環(huán)境

白盒測試

白盒測試常用的測試方式有單元測試叙赚、組件測試、系統(tǒng)測試僚饭、性能測試震叮、靜態(tài)代碼測試。這里說性能測試和黑盒測試里面性能方式有點不同這里強調(diào)的是一個大方法鳍鸵、大函數(shù)調(diào)用執(zhí)行1萬次所消耗響應(yīng)時間苇瓣。

在互聯(lián)網(wǎng)時代的白盒測試測試人員主要負責代碼質(zhì)量,代碼質(zhì)量包括白盒測試和黑盒測試里面的非功能測試(上面已經(jīng)介紹了黑盒測試里面的非功能測試這里就不在介紹了)如:靜態(tài)代碼測試(程序風格权纤、程序邏輯钓简、代碼安全、程序建狀性)及開發(fā)人員單元測試汹想、組件測試代碼覆蓋率,配合開發(fā)人員一起完成業(yè)務(wù)邏輯代碼自動化撤蚊,不能自動化代碼分層自動化古掏。完善自動化測試體系。

白盒分層自動化可以分為靜態(tài)代碼掃描(PMD侦啸、JOCOCO槽唾、Profile)、單元測試(TestNG光涂、junit)庞萍、集成測試、安全測試(Fortify+findbugs)忘闻、自動化性能測試(jmeter)

開發(fā)人員自測標準:完成需求文檔钝计、設(shè)計文檔、完成代碼開發(fā)

開發(fā)齐佳、測試人員標準:完成靜態(tài)代碼測試規(guī)則編寫私恬、完成白盒測試、自動化測試框架選型

單元測試炼吴、接口/組件測試

輸入:完成需求文檔本鸣、設(shè)計文檔、完成代碼開發(fā)

輸出:單元測試用例硅蹦、單元測試報告

人員:開發(fā)人員

環(huán)境:開發(fā)環(huán)境

系統(tǒng)測試

輸入:單元測試報告抓艳、系統(tǒng)測試用例

輸出:系統(tǒng)測試報告

人員:開發(fā)人員、測試人員

環(huán)境:集成環(huán)境

靜態(tài)代碼測試

輸入:完成代碼調(diào)試

輸出:靜態(tài)代碼測試報告

人員:開發(fā)人員岖免、測試人員

環(huán)境:集成環(huán)境

灰盒測試

灰盒測試介于黑盒和白盒之間名眉,它包括恢復(fù)測試、安全測試含鳞、性能測試,但是目前有很多持續(xù)集成中的自動化都是采用灰盒測試用例

灰度測試

灰度測試:把生產(chǎn)環(huán)境用戶流量引到另外一個互不相干的環(huán)境驗證系統(tǒng)功能,由A/B測試演變而成皆愉,此項測試常用于仿真測試、全鏈路壓力測試艇抠,現(xiàn)在好多互聯(lián)網(wǎng)公司架構(gòu)幕庐,業(yè)務(wù)改進都向這方面設(shè)計,用來保證回歸上線用戶不丟失家淤。在生產(chǎn)進行灰度測試往往要網(wǎng)絡(luò)部門進行網(wǎng)絡(luò)配合异剥,特別適合業(yè)務(wù)重構(gòu),或者業(yè)務(wù)遷移絮重。常用測試工具如:TCPCOPY冤寿、Gor

測試、開發(fā)青伤、運維人員測試標準:程序代碼編寫完成督怜,環(huán)境搭建完成。

輸入:完成功能測試狠角,線下性能測試

輸出:灰度測試報告

人員:開發(fā)人員号杠、測試人員、運維人員

環(huán)境:另一套生產(chǎn)環(huán)境或者測試環(huán)境

質(zhì)量交互

質(zhì)量交互它指的是軟件開發(fā)丰歌、配置管理姨蟋、構(gòu)建管理、持續(xù)集成立帖、測試管理眼溶、環(huán)境管理、部署管理晓勇、數(shù)據(jù)度量和分析層層交互堂飞,它從以前的CI、CD宵蕉、已經(jīng)逐步演變成DEVOPS如下圖:

質(zhì)量交互

DevOps是企業(yè)內(nèi)開發(fā)酝静、技術(shù)運營和質(zhì)量保障這三方面工作的融合,用于促進開發(fā)羡玛、技術(shù)運營和質(zhì)保部門之間的溝通别智、協(xié)作與整合。有研究顯示稼稿,在那些引入了DevOps概念的企業(yè)中薄榛,開發(fā)與運營人員在設(shè)計讳窟、構(gòu)建、測試工作中共同在內(nèi)部應(yīng)用上進行協(xié)作之后敞恋,可以將產(chǎn)品開發(fā)的效率提升20%,強IT服務(wù)績效的團隊比較差I(lǐng)T服務(wù)績效團隊的部署頻率要快30倍丽啡,變更失敗率要低50%。如下圖

DevOps

配置管理

開發(fā)人員從穩(wěn)定的最新版本中Checkout代碼在本地開發(fā)新功能硬猫,在本地構(gòu)建(測試补箍、代碼檢查)Check in在主干上編譯、等待持續(xù)集成結(jié)果啸蜜。它可以帶來以下最佳實踐:

全面的配置管理坑雅,它包括項目代碼、配置文件衬横、構(gòu)建腳本裹粤、數(shù)據(jù)庫腳本、部署腳本蜂林、基礎(chǔ)設(shè)施信息等遥诉,可以選擇SVN或者分布式管理系統(tǒng)Git。

有效的代碼提交注釋噪叙。清晰的提交功能說明矮锈,提交者信息。

頻繁的提交代碼到主干构眯,按照一定的規(guī)則頻繁提交變更愕难,讓參與者及時獲知到項目的變更信息;提交的變更是原子性的惫霸,并且有信心不能影響到原有業(yè)務(wù)。

配置的分類葱弟,何時將配置信息注入到應(yīng)用內(nèi)壹店,構(gòu)建時,打包時芝加,運行時硅卢,推薦在運行時加載配置信息。

依賴的管理藏杖,應(yīng)用的外部依賴文件的版本管理将塑,例如jar文件,可以使用Maven蝌麸、Ivy進行管理点寥。

構(gòu)建管理

構(gòu)建模塊間依賴采用二進制構(gòu)建產(chǎn)物,并按照1-5-10(構(gòu)建運行的時間来吩,最多容忍10分鐘敢辩,一般是5分鐘蔽莱,最快是1分鐘)法則構(gòu)建任務(wù)重Push改成Pull編譯結(jié)果推送到產(chǎn)品倉庫管理。它的最佳實踐:

構(gòu)建戚长、部署流程腳本化盗冷,讓構(gòu)建、部署過程成為一個可重復(fù)性并且可靠的行為同廉。

使用相同的部署腳本向所有環(huán)境進行部署仪糖,避免產(chǎn)生在開發(fā)環(huán)境能運行,測試環(huán)境無法運行的情況迫肖。

部署過程是冪等的锅劝,無論目標環(huán)境處于何種狀態(tài),部署流程應(yīng)該總是令目標環(huán)境達到正確的狀態(tài)咒程。

部署系統(tǒng)的增量式演進鸠天,以迭代的方式不斷完善部署過程。

任何時候可以重新構(gòu)建二進制文件,容器部署到各各平臺帐姻,并且部署平臺的依賴都是一致的稠集,使部署的應(yīng)用做到標準化

持續(xù)集成

開發(fā)人員頻繁提交代碼到主干持續(xù)集成,并執(zhí)行自動化構(gòu)建和測試并分級測試快速反饋饥瓷,如果構(gòu)建失敗立即修復(fù)剥纷。它的最佳實踐:

構(gòu)建失敗后不要提交代碼新代碼,讓開發(fā)人員能夠快速的找到失敗的原因呢铆。

提交前在本地運行所有的測試用例晦鞋,或者讓持續(xù)集成服務(wù)器(Jenkins)完成此事。本地測試通過后棺克,可以增加提交的信心悠垛。

等到提交測試通過后再繼續(xù)工作,直接把問題扼殺在持續(xù)集成中娜谊,而不是流露到外面人工檢查确买,10分鐘的等待測試通過時間是值得的。

時刻準備著回滾到前一個版本纱皆,世界上沒有完美的事情湾趾,誰也無法保證每次提交都是正確的,時刻保持警惕派草。

在回滾到上一個版本之前規(guī)定一個修復(fù)時間搀缠,約定一個修復(fù)問題的時間,比如10分鐘近迁,如果實在找不到原因艺普,在回退到上一版。

不要注釋掉失敗的測試,保持一定量的測試覆蓋率衷敌,一般來說50%勿侯。同時,可以允許有2%左右被注釋掉的測試用例(出于某種情況)缴罗。但每次構(gòu)建時助琐,都需要掃描測試用例的覆蓋率。TestNG面氓、junit兵钮、Sonar、Selenium工具是不錯的選擇舌界。

特別是測試驅(qū)動開發(fā)掘譬,任何東西都是可測試的,要是不能測試直接重構(gòu)呻拌,直接導(dǎo)致自動化構(gòu)建和測試葱轩,降低了人力成本。

測試管理

建立分級測試體系藐握,從多個層次和多個驗證角度實現(xiàn)質(zhì)量防護網(wǎng)如下圖:

分級測試模型

從上面圖分級測試模型根據(jù)測試運行時間靴拱,不包括寫測試用例時間它劃分為白盒分層自動化、功能分層自動化猾普、非功能分層自動化袜炕、線上仿真測試。

白盒分層自動化主要以靜態(tài)代碼檢查為主初家,系統(tǒng)設(shè)計架構(gòu)度量可以用RFC偎窘,系統(tǒng)設(shè)計架構(gòu)度量達到類高內(nèi)聚、低耦合LCOM4指標衡量溜在,代碼風格可以用sonar加插件(PMD陌知、JOCOCO、Profile)的方式檢查掖肋,死鎖和一致性檢查Lint4j插件纵诞,安全測試可以用Fortify+findbugs,單元測試可以用TESTNG或者是junit ,Smoke Test可以用從功能自動化程序中抽取一些用例采用junittask去執(zhí)行培遵。

功能分層自動化主要完成功能自動化涉及到功能自動化工具如Testng、Selenium登刺、Junit籽腕、Suite、Qunit

非功能分層自動化主要是那些不能自動化測試的用例纸俭,已經(jīng)需要長時間運行的性能測試及性能測試異常測試

線上仿真測試主要采用是灰度測試常用工具Tcpcopy皇耗、Gor

環(huán)境管理

基礎(chǔ)設(shè)施的信息管理是容易被忽視的地方。但是環(huán)境的不穩(wěn)定揍很,造成部署郎楼,排錯的成本成指數(shù)倍增長万伤。它的最佳實踐:

所有環(huán)境標準化,測試環(huán)境要和生產(chǎn)環(huán)境保持一致呜袁,開發(fā)環(huán)境由于變更頻繁敌买,可以有一定的差異,但是差異也是在可控范圍內(nèi)阶界。

基礎(chǔ)設(shè)施的信息也要納入到版本控制虹钮,對待環(huán)境信息也要向?qū)Υa一樣,記錄變更信息膘融,回溯歷史版本芙粱。

使用自動化手段對所有環(huán)境進行變更,避免手工操作帶來的未知環(huán)境差異氧映。Puppet春畔,Ansible配置管理工具能夠有效的解決此類問題。

虛擬化岛都、容器化方式構(gòu)建應(yīng)用運行環(huán)境律姨,快速搭建環(huán)境,標準化環(huán)境疗绣。利用現(xiàn)在流行的Docker容器技術(shù)线召,將應(yīng)用所需所有內(nèi)容封裝起來,交付給下游多矮,是一種非常高效缓淹,避免差異化的方式。

部署管理

部署對運維來說是一個體力活塔逃,怎么樣才能把一個體力活變成一個讓機器干的活讯壶,這樣才能釋放運維人員。它的最佳實踐:

采用統(tǒng)一部署管理平臺

快速部署湾盗、回滾

灰度發(fā)布

運維監(jiān)控和業(yè)務(wù)監(jiān)控

數(shù)據(jù)度量和分析

在DEVOPS里面數(shù)據(jù)度量和分析是重要的部分伏蚊,要是沒有這些數(shù)據(jù)不能體現(xiàn)效率、質(zhì)量是否提高格粪。這些數(shù)據(jù)通常包括構(gòu)建數(shù)據(jù)躏吊、線下質(zhì)量驗證數(shù)據(jù)、及線上質(zhì)量數(shù)據(jù)帐萎。

質(zhì)量監(jiān)控和質(zhì)量運維

隨著業(yè)務(wù)發(fā)展比伏,互聯(lián)網(wǎng)公司更應(yīng)該重視線上質(zhì)量,對比傳統(tǒng)的軟件開發(fā)疆导,互聯(lián)網(wǎng)公司更加沒有辦法確定需求價值赁项,可以說是在不斷的嘗試過程,線上質(zhì)量監(jiān)控分析和線上質(zhì)量分析運維越來越被各大互聯(lián)網(wǎng)公司重視。線上質(zhì)量可分為線上質(zhì)量監(jiān)控和線上質(zhì)量運維悠菜,如下圖:

質(zhì)量監(jiān)控和質(zhì)量運維圖

質(zhì)量監(jiān)控分為性能質(zhì)量監(jiān)控舰攒、功能質(zhì)量監(jiān)控、安全質(zhì)量監(jiān)控

性能質(zhì)量監(jiān)控

基礎(chǔ)監(jiān)控

cpu/cpuload/mem/jvm mem/iowait/diskbusy/net/spinlock/fullgc/ spinlock(使用自旋鎖(spinlock)來實現(xiàn)進程調(diào)度的問題)

應(yīng)用監(jiān)控

Latency/hit ratio/recursive call/queuesize/thread status/stack/Latency(它表示完全執(zhí)行一個指令所需的時鐘周期)

業(yè)務(wù)監(jiān)控

Pv/uv/transaction/

例如:下面是一個TPS統(tǒng)計結(jié)果如下圖

TPS統(tǒng)計結(jié)果圖

功能質(zhì)量監(jiān)控

1悔醋、建立線上撥測功能

2摩窃、統(tǒng)計線上用戶失敗率進行分析優(yōu)化如:請求超時,是業(yè)務(wù)超時篙顺,還是系統(tǒng)超時如下圖:

線上用戶失敗監(jiān)控

安全質(zhì)量監(jiān)控

線上安全質(zhì)量監(jiān)控可以采用WAF防火墻偶芍。例如NGINX中的ngx_lua_waf支持 WAF 防護功能。

對上面三大部分只是說的簡單的監(jiān)控德玫,并沒有深化匪蟀,對上面三大監(jiān)控可以進行持續(xù)優(yōu)化,關(guān)于質(zhì)量運維提到的部分還可以跟蹤完善宰僧、優(yōu)化材彪,線上質(zhì)量運維空間還很大。

附錄

名詞說明

黑盒測試:已知產(chǎn)品的功能設(shè)計規(guī)格琴儿,可以進行測試證明每個實現(xiàn)了的功能是否符合要求段化。

白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格要求造成,所有內(nèi)部成分是否以經(jīng)過檢查

灰盒測試:是介于白盒測試與黑盒測試之間的显熏,可以這樣理解,灰盒測試關(guān)注輸出對于輸入的正確性晒屎,同時也關(guān)注內(nèi)部表現(xiàn)喘蟆,但這種關(guān)注不象白盒那樣詳細、完整鼓鲁,只是通過一些表征性的現(xiàn)象蕴轨、事件、標志來判斷內(nèi)部的運行狀態(tài)骇吭,有時候輸出是正確的橙弱,但內(nèi)部其實已經(jīng)錯誤了,這種情況非常多燥狰,如果每次都通過白盒測試來操作棘脐,效率會很低,因此需要采取這樣的一種灰盒的方法龙致。

恢復(fù)測試:主要檢查系統(tǒng)的容錯能力荆残。當系統(tǒng)出錯時,能否在指定時間間隔內(nèi)修正錯誤并重新啟動系統(tǒng)净当。恢復(fù)測試首先要采用各種辦法強迫系統(tǒng)失敗,然后驗證系統(tǒng)是否能盡快恢復(fù)像啼。對于自動恢復(fù)需驗證重新初始化(reinitialization)俘闯、檢查點(checkpointingmechanisms)、數(shù)據(jù)恢復(fù)(datarecovery)和重新啟動(restart)等機制的正確性忽冻;對于人工干預(yù)的恢復(fù)系統(tǒng)真朗,還需估測平均修復(fù)時間,確定其是否在可接受的范圍內(nèi)

互聯(lián)網(wǎng)的特性:我們可以總結(jié)為四個字多僧诚、快遮婶、好、省湖笨,1旗扑、多就是指用戶多,信息量多和服務(wù)器也多慈省,在這個龐大的消費群體作用下臀防,有著巨大的利潤市場。2边败、快是指獲取信息和傳遞信息的速度快袱衷,這無疑給信息交流和商貿(mào)活動提供了快速的通道。3笑窜、好是指在互聯(lián)網(wǎng)上我們可以根據(jù)我們的需要致燥,選擇我們個性的東西,不需要因為別的因素而耽擱排截。4嫌蚤、省是指省時、省力匾寝、省財搬葬、省物、省心艳悔、省神急凰,還可以節(jié)省很多很多的費用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市猜年,隨后出現(xiàn)的幾起案子抡锈,更是在濱河造成了極大的恐慌,老刑警劉巖乔外,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件床三,死亡現(xiàn)場離奇詭異,居然都是意外死亡杨幼,警方通過查閱死者的電腦和手機撇簿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門聂渊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人四瘫,你說我怎么就攤上這事汉嗽。” “怎么了找蜜?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵饼暑,是天一觀的道長。 經(jīng)常有香客問我洗做,道長弓叛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任诚纸,我火速辦了婚禮撰筷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咬清。我一直安慰自己闭专,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布旧烧。 她就那樣靜靜地躺著影钉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掘剪。 梳的紋絲不亂的頭發(fā)上平委,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音夺谁,去河邊找鬼廉赔。 笑死,一個胖子當著我的面吹牛匾鸥,可吹牛的內(nèi)容都是我干的蜡塌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼勿负,長吁一口氣:“原來是場噩夢啊……” “哼馏艾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奴愉,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤琅摩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后锭硼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體房资,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年檀头,在試婚紗的時候發(fā)現(xiàn)自己被綠了轰异。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岖沛。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖溉浙,靈堂內(nèi)的尸體忽然破棺而出烫止,到底是詐尸還是另有隱情,我是刑警寧澤戳稽,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站期升,受9級特大地震影響惊奇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜播赁,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一颂郎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧容为,春花似錦乓序、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至得滤,卻和暖如春陨献,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背懂更。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工眨业, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沮协。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓龄捡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親慷暂。 傳聞我的和親對象是個殘疾皇子聘殖,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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

  • 質(zhì)量綜述 隨著互聯(lián)網(wǎng)快速發(fā)展,早期的傳統(tǒng)軟件公司強調(diào)工程的嚴謹性呜呐,CMMI就斤,ISO9000格局已經(jīng)發(fā)生變化,逐漸退...
    老余2017閱讀 3,897評論 6 31
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程蘑辑、活動和任務(wù)的結(jié)構(gòu)性框架洋机。軟件項目的開發(fā)包括:需求、設(shè)...
    Mr希靈閱讀 21,938評論 7 278
  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,188評論 2 126
  • 1.做事有條理 2.合理規(guī)劃時間 3.別泰迪 這是她給我提的三個建議洋魂,這三點令她感受到了小不快绷旗,在她的心中喜鼓,自己是...
    瓊之加油閱讀 102評論 0 0
  • 好友評論:有人不是一張嘴庄岖,有人不是一只鼻子,有人不是兩只眼睛角骤,有人不是兩個腦室隅忿,正如有人不止一雙手,有人不是兩條腿...
    石豐當代藝術(shù)閱讀 1,470評論 9 3