持續(xù)交付讀書筆記-測試策略擂达、容量設(shè)計(jì)、測試數(shù)據(jù)管理

本來計(jì)劃讀《需求實(shí)例化》胶滋,考慮自己打算寫TDD總結(jié)文檔板鬓,還是選一些相關(guān)內(nèi)容,決定先讀《持續(xù)交付-發(fā)布可靠軟件的系統(tǒng)方法》(根本原因是沒有書^_^)究恤。

《持續(xù)交付-發(fā)布可靠軟件的系統(tǒng)方法》全書51.2萬字俭令,15章,384頁部宿。在仔細(xì)讀完序言部分和目錄抄腔,挑選了三個(gè)最有興趣的主題進(jìn)行精讀,即:測試策略(第四章)理张,容量設(shè)計(jì)(第九章部分內(nèi)容)赫蛇,測試數(shù)據(jù)管理(第十二章部分內(nèi)容)。


1雾叭、測試策略


戴明14條之一就是“停止依賴于大批量的檢查來保證質(zhì)量的做法悟耘。改進(jìn)過程,從一開始就將質(zhì)量內(nèi)嵌與產(chǎn)品之中”[9YhQXz]

【對(duì)于軟件研發(fā)的過程改進(jìn)來說织狐,減少人工測試作煌,盡可能考慮使用自動(dòng)化的單元測試掘殴,并且內(nèi)嵌到CI中∷谑模】

1.1測試象限

系統(tǒng)闡述了Brian Marick提出的測試象限。來為軟件進(jìn)行測試建模起意。

測試象限

1.2 Happy Path

在4.2.1業(yè)務(wù)導(dǎo)向且支持開發(fā)過程的測試中:

* 定義:對(duì)于每個(gè)需求或者用戶故事來說鹰服,根據(jù)用戶執(zhí)行動(dòng)作,一定會(huì)找到應(yīng)用程序中一個(gè)中規(guī)中矩的執(zhí)行路徑揽咕。

* 描述方式:就是(Gievn-When-Then)書寫模型悲酷。假如[當(dāng)測試開始時(shí),系統(tǒng)所處狀態(tài)的一些重要特征]亲善,當(dāng)[用戶執(zhí)行某些動(dòng)作后]设易,那么[系統(tǒng)新的狀態(tài)的一些特征]∮纪罚【以前描述不準(zhǔn)確顿肺,需改正】

* 引申:執(zhí)行結(jié)果狀態(tài)不同時(shí),就會(huì)出現(xiàn)Alternate Path渣蜗。引發(fā)的錯(cuò)誤處理叫Sad Path.

* 工具:定價(jià)劃分分析和邊界值劃分析可以幫助我們找到最小的用例集合屠尊。【單元測試需要這樣的技能】

1.3 自動(dòng)化測試相關(guān)

-自動(dòng)化驗(yàn)收測試限于Happy Path行為耕拷,并僅覆蓋其他一些極其重要部分讼昆。(這是高效的策略,前提是其他自動(dòng)化測試很全面)

* 一般將代碼覆蓋率搞80%測試視為“全面的”測試骚烧,測試質(zhì)量也非常重要浸赫。

* 第二條規(guī)則包含單元測試,組件測試和驗(yàn)收測試赃绊,單獨(dú)滿足既峡,而不是累加滿足

* 每個(gè)故事至少要有一個(gè)Happy Path的自動(dòng)化驗(yàn)收測試。給開發(fā)人員充當(dāng)冒煙測試凭戴,檢測“是否破壞已有功能”快速反饋涧狮。

【看來我們的測試時(shí)萬里長征第一步,需要繼續(xù)努力】

1.4 單元測試和組件測試(集成測試)

單元測試:依賴于測試替身模擬系統(tǒng)其它部分么夫。要求:

* 不應(yīng)該訪問數(shù)據(jù)庫者冤,文件系統(tǒng)與外部系統(tǒng)交互。

* 不應(yīng)有組件間交互

* 運(yùn)行非车祷荆快

【單元測試現(xiàn)在方向是對(duì)的涉枫,思路也是對(duì)的,時(shí)間的玫瑰o(* ̄︶ ̄*)o】

組件測試(集成測試):更大的測試集腐螟,連接真實(shí)的數(shù)據(jù)庫

1.5 現(xiàn)實(shí)中情況與應(yīng)對(duì)策略

新項(xiàng)目:理想國愿汰。1)技術(shù)平臺(tái)&測試工具困后;2)自動(dòng)化構(gòu)建;3)制定INVEST的用戶故事并考慮驗(yàn)收條件衬廷。

項(xiàng)目進(jìn)行中:Happy Path自動(dòng)化摇予,覆蓋高價(jià)值的場景。逐步補(bǔ)全盡可能多的場景吗跋。

遺留系統(tǒng):測試你修改的代碼侧戴。以及高價(jià)值的場景。

【我們的產(chǎn)品是各種合體跌宛,可以針對(duì)不同部分選擇策略】

迭代前找到高優(yōu)先級(jí)的場景酗宋。利用工具或者DSL可以場景變成測試用例〗校【這塊感覺很難蜕猫,也許是一個(gè)很好目標(biāo)和方向,需關(guān)注】

管理待修復(fù)缺陷列表哎迄。根據(jù)嚴(yán)重回右、阻塞、中芬失、低來管理缺陷楣黍。


2、容量設(shè)計(jì)

2.1 如何容量編程

高德納的過早優(yōu)化理論指出早期的預(yù)料可能是錯(cuò)的棱烂。也不是后期解決所有的問題租漂。正確策略:

--為系統(tǒng)決定一種架構(gòu)。包括:進(jìn)程颊糜、網(wǎng)絡(luò)邊界和IO

--使用真確的模式哩治,避免影響容量和穩(wěn)定性的反模式。書《Release it衬鱼!》

--研發(fā)過程中业筏,可讀性(清晰簡單)優(yōu)先。在沒有測試數(shù)據(jù)時(shí)鸟赫,避免過早優(yōu)化蒜胖。

--選擇高性能的算法和數(shù)據(jù)結(jié)構(gòu)【聽過一句更好的描述:數(shù)據(jù)結(jié)構(gòu)決定性能上限,算法決定性能下限】

--注意線程阻塞抛蚤。

--自動(dòng)化測試斷言所期望的容量級(jí)別台谢。

--修復(fù)調(diào)測中問題。

--盡可能用真實(shí)數(shù)據(jù)度量性能岁经。

2.2 容量度量

-擴(kuò)展性測試:擴(kuò)容能力下朋沮,響應(yīng)時(shí)間和并發(fā)數(shù)用戶的指標(biāo)。

持久性測試:用來檢測內(nèi)存泄露和穩(wěn)定性問題缀壤。

吞吐量測試:每S處理多少事務(wù)樊拓。

負(fù)載測試:在生產(chǎn)環(huán)境情況下纠亚,系統(tǒng)容量。

完全負(fù)載生產(chǎn)環(huán)境是不可能的筋夏,需要做流量分析蒂胞,結(jié)合經(jīng)驗(yàn)和直覺來表達(dá)盡可能接近真實(shí)環(huán)境的模擬。

【以前性能測試關(guān)注吞吐量和響應(yīng)時(shí)間是不夠的】

2.3 自動(dòng)化容量測試

目標(biāo):創(chuàng)建比較現(xiàn)實(shí)的類生產(chǎn)環(huán)境的負(fù)載条篷;選擇并實(shí)行代表性且現(xiàn)實(shí)生產(chǎn)中非正常負(fù)載狀態(tài)的場景啤誊。

還有一種有效中方法“識(shí)別系統(tǒng)中代價(jià)最高的事務(wù),然后在系統(tǒng)中把他變成兩三倍的數(shù)量”(《Release It拥娄!》)⊥ぃ【這個(gè)思路棒稚瘾,可以作為后續(xù)的內(nèi)容】

對(duì)于我們來說,有兩種方法更為實(shí)用:實(shí)用錄制的交互模板姚炕;使用容量測試樁開發(fā)測試

2.4 將容量測試加入到部署流水線

避免容量的過度設(shè)計(jì)摊欠;盡早發(fā)現(xiàn)容量的問題,進(jìn)行修復(fù)柱宦⌒┙罚【這也是個(gè)目標(biāo)】

2.5 容量測試附加價(jià)值

把容量測試設(shè)計(jì)為組合式,基于場景的測試掸刊∶飧猓可以用來診斷問題、預(yù)測問題并找到辦法解決問題忧侧。

3? 測試數(shù)據(jù)管理

主要有兩點(diǎn):測試性能-盡可能快的完成石窑;測試獨(dú)立性-收入受控,才能評(píng)估出他的輸出蚓炬。

3.1 為單元測試進(jìn)行數(shù)據(jù)庫模擬

單元測試不實(shí)用真正的數(shù)據(jù)庫是非常重要的松逊。可以考慮兩種策略:

1肯夏、測試替身對(duì)象來代替訪問數(shù)據(jù)庫的代碼经宏。【對(duì)于C++后來來說驯击,就是gtest+gmock的方式烁兰。】

2余耽、使用假的數(shù)據(jù)庫缚柏。作者建議內(nèi)存型數(shù)據(jù)庫例如H2,SQLit碟贾,Java币喧」煊颍【我們的MOCKDB也是屬于這種思路,但比這個(gè)開源數(shù)據(jù)更有優(yōu)點(diǎn)杀餐,看來我們找到最優(yōu)解了干发。棒!以后寫總結(jié)】

3.2 管理測試和數(shù)據(jù)耦合

有三個(gè)方法來做測試設(shè)計(jì):

-測試獨(dú)立性:測試的數(shù)據(jù)只對(duì)該用例可見史翘⊥鞒ぃ【Mockdb的測試框架成功做到這點(diǎn)】

-適應(yīng)性測試:先檢查環(huán)境,從環(huán)境中獲取數(shù)據(jù)進(jìn)行測試琼讽。

-測試順序性:按照已知的順序進(jìn)行測試必峰,并且具備依賴性。

作者強(qiáng)烈推薦第一種钻蹬『鹨希【看來我們的測試框架是最優(yōu)選擇】

3.3 連貫的測試場景

作者認(rèn)為這是需要抵制的誘惑。這種耦合會(huì)導(dǎo)致設(shè)計(jì)困難问欠,設(shè)計(jì)失敗后會(huì)造成一系列的影響肝匆。【這個(gè)值得思考和注意】

總結(jié)

作為實(shí)用主義者顺献,選擇自己最有興趣的三個(gè)部分旗国,從泛讀,到精讀注整,然后整理并輸出筆記能曾。前后耗時(shí)5小時(shí),收獲頗豐设捐,值借浊!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市萝招,隨后出現(xiàn)的幾起案子蚂斤,更是在濱河造成了極大的恐慌,老刑警劉巖槐沼,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曙蒸,死亡現(xiàn)場離奇詭異,居然都是意外死亡岗钩,警方通過查閱死者的電腦和手機(jī)纽窟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兼吓,“玉大人臂港,你說我怎么就攤上這事。” “怎么了审孽?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵县袱,是天一觀的道長。 經(jīng)常有香客問我佑力,道長式散,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任打颤,我火速辦了婚禮暴拄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘编饺。我一直安慰自己乖篷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布透且。 她就那樣靜靜地躺著那伐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪石蔗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天畅形,我揣著相機(jī)與錄音养距,去河邊找鬼。 笑死日熬,一個(gè)胖子當(dāng)著我的面吹牛棍厌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播竖席,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼耘纱,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了毕荐?” 一聲冷哼從身側(cè)響起束析,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎憎亚,沒想到半個(gè)月后员寇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡第美,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蝶锋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片什往。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扳缕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躯舔,我是刑警寧澤驴剔,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站庸毫,受9級(jí)特大地震影響仔拟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜飒赃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一利花、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧载佳,春花似錦炒事、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至姑躲,卻和暖如春睡扬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黍析。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工卖怜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阐枣。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓马靠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蔼两。 傳聞我的和親對(duì)象是個(gè)殘疾皇子甩鳄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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