對測試人員來講,什麼事情比較尷尬?——線上出問題。再尷尬一點兒呢?——沒測到,線上出問題。最尷尬呢?——明明測到了,線上還是出問題。
意料之內情理之中,這太正常了。沒測到出了問題不該驚訝,沒出問題才該燒香。此時不應指責出問題,而應思考沒測到的原因是什麼。第一反應是測試人員遺漏了,好像也沒更多原因。但當我們把視角切換到真實研發過程中,就會發現沒測到的原因實在太多了!
沒考慮到,測試漏測了
這真是測試的鍋,測試人員確實應該全面理解業務,設計高效覆蓋的用例集。但在功能設計時如有良好規劃,可以減少沒想到造成的漏測。
考慮到了,但還是沒測
一般是時間緊任務急,來不及測,但又沒向團隊暴露風險。多半也是測試的失職。
不可抗力必須上線,來不及測
大家清楚的知道風險,但遇到不可抗力,如法律法規等,無法完成全部測試就必須上線,這種情況我們且上且觀察,共同承擔風險,並充分思考線上事故的緊急預案。
流程問題,未經測試就上線
開發自己上線了功能,沒經過測試人員測試,也沒有充分自測。這種鬼故事在過去的職業生涯中我至少見過5次。還是不能寄希望於人的專業性,應更多依賴於可控可追溯的流程體系來保證。
大家認同不需要測,直接上
比如修改文案,或做簡單的替換等。越是認為沒問題的,往往越出么蛾子。就好比我們埋頭苦幹往往沒人看,剛要划水,抬頭就是老闆清靜如水的目光。軟體就跟成精了一樣,分分鐘教你做人,質量工作真是一絲都不能倦怠。
所有人都沒想到,就沒測
之前的乙個專案上,既有常規功能的迭代上線,又有特殊功能只迭代不上線,為了好區分,我們為不上線的功能做了開關,其實**都上去了,只是feature沒開啟。一次規模稍大的常規上線部署完成後,按照慣例驗證生產環境,測試人員驚訝地發現本該關著的功能被開啟了,不該出現的功能出現了。於是連忙把開關關掉,並排查原因,發現是有乙個資料庫指令碼把開關資料導到生產環境了。從此以後,每次上線我們都會檢查所有feature toggle的狀態。
以上列舉了一些原因,可能還有其他更多原因。不管什麼原因沒測到,終究還是讓缺陷逃逸到生產了。但只要我們找到沒測到的原因,有針對性地改進,還是比較容易避免這類問題的。
常在河邊走哪有不濕鞋,測了還出事兒,這才是該懷疑人生的場景。這種情況往往問題也不好排查,通常是先趕緊排查問題,一定時間窗內找不到問題或無法快速解決,哪怕先回滾呢,事後我們再仔細覆盤。測了還出事兒其實並不少見,原因也同樣有很多。
以為測了,其實沒測
由於測試人員對業務理解不夠充分,或者測試設計能力不足,以為已經充分測試了,但其實遺漏了比較關鍵的測試用例。這類問題可以直接等同於場景1中的某種情況。
環境差異性
由於生產環境和測試環境的差異性導致測試結果的失效。不妨腦洞一下,都有哪些因素造成了環境差異?比如軟體配置上的差異:資料庫賬戶
、介面配置、服務和埠、第三方外掛程式、整合服務、不同的應用渠道等……或者其他硬體上的差異。這種情況下可能並不是被測軟體本身的缺陷,但由於環境差異性導致了測試環境通過的用例,在生產環境下得到了不同的結果。
資料差異性
由於測試資料的差異性導致的生產環境缺陷並不少見。在測試環境,測試人員選取典型的測試資料進行測試,或許是批量生成的有一定規律的測試資料。這些資料可能用著順手每次都會被復用,也可能形成了針對特定業務的測試資料集。這是好事兒,但往往就像耐藥性一樣,這些被測軟體用習慣的資料不利於揭示新的或隱藏的缺陷。而在生產環境,由於使用者量大、操作不規範、真實業務的複雜性等原因,使得生產環境的資料更具備多樣性,這就給測試結果的準確性帶來更大的挑戰。
使用者量級/業務量級差異性
這其實也是資料差異性的一種,單提出來是因為引發的缺陷不同,上一種情況引發的是特定測試用例的結果不準確,或者說是普通的缺陷。而由於業務量級不同引發的往往是效能缺陷,高併發、大量堆積的業務資料造成服務中斷等,這些情況引發的缺陷往往業務影響更大,定位、修復和效能調優的難度也更大。哪怕在測試環境進行了充分的效能測試,也極有可能在生產環境並行大量其他業務的條件下,造成災難般的效能缺陷。
其他整合問題
與整合方約定的上線時間、切換動作、相容方式、整合驗證等,都有可能在測試環境和生產環境有所不同。因此,在上線後與整合方一起驗證整合功能的正確性非常必要。畢竟相比於自己的軟體缺陷,整合引起的缺陷可控性更差,修復週期也更長。應盡早發現這類缺陷,以免造成更大的損失。
上線不完全
(每個字都很重要)
排除使用者或客戶
對軟體的預期
和軟體真正的表現
在生產環境上的
差異充分了解被測業務提公升測試設計能力在測試環境,確保軟體業務功能沒問題充分思考環境差異性排除資料差異性,用多樣化的資料進行測試排除或盡力約束整合方問題在預生產環境進行完整的回歸測試和發布演練(在發布過程複雜或對發布時間限制較嚴格時可選)對發布後可能出現的風險進行預判,確認快速恢復機制採用自動化流程、發布預演等實踐,確保軟體完全發布完成上線後,立即對生產環境進行允許的測試和檢驗投產使用後,持續監控服務日誌和業務資料
我承認我作弊了
前不久寫付費 192行pk兩萬行,我承認我作弊了。1.忽略細節 因為我沒有介入到任何細節裡面去,僅僅知道財務需求,業務需求是什麼,最大的問題解決了,其他就忽略了。大多數讓大家頭疼的問題我根本就不知道,更不要說有解決方案,但問題是,眼不見心為靜,可以專心思考最重要的是什麼。這是全新的眼睛的好處。有人說...
朋友誇我了
前倆天朋友來我學校考研,我真的很高興,這倆天來我一直照顧著他,他到的時候我就和他說 有什麼事情你只管說,我能夠做到的我盡量幫你做到,現在你最大 倆天來,我幫朋友買飯,倒茶,盡量給他安排乙個好的環境,不要因為外界因素而影響了考試 朋友誇我說 看不出來,你還真的蠻細心,挺為人著想的,我這次不管考得好不好...
我發布了THUIRDB
醞釀了很久,1月初開始編碼,今天藉著518的吉利日誌,發布了它 thuirdb。thuirdb目前尚處於初步階段,主要特點概括如下 1 索引高度壓縮 這對於海量語料的儲存,換入記憶體的能力來說都是非常重要的,特別是在當前計算能力提公升很快,而儲存能力提公升較慢的時代下,尤顯重要。2 做庫快速 用過t...