產品環(huán)境下的QA

2015年11月ThoughtWorks發(fā)布的技術雷達提到一個新的主題——產品環(huán)境下的QA(QA in Production)陨晶,2016年4月再次提到。這個主題第一次出現在技術雷達帝璧,就深深的吸引了我先誉,當時我就給測試團隊成員轉發(fā)了這個內容,但同時腦子里也產生了這樣一系列的疑問:

  • 產品環(huán)境下的QA可以做什么呢的烁?有什么挑戰(zhàn)褐耳,又有哪些好處?
  • 它跟類產品環(huán)境的QA有何區(qū)別渴庆,是否就是類產品環(huán)境QA方法的延伸铃芦?
  • 產品環(huán)境有運維支持團隊(Ops)雅镊,產品環(huán)境下的QA跟Ops所做的事情又有什么區(qū)別與聯(lián)系?

帶著這些疑問刃滓,結合項目上的一系列實踐仁烹,于是有了本文。

產品環(huán)境的特點

為了盡量避免產品環(huán)境出現Bug咧虎,通常采取的措施是從“類產品環(huán)境”考慮卓缰,一步步做好質量控制。其實砰诵,如果能從產品環(huán)境做些QA工作征唬,對于產品質量的提高也是有很大幫助的。想要做產品環(huán)境下的QA茁彭,首先得了解產品環(huán)境有哪些特點:

1. 真實总寒、不可破壞

產品環(huán)境都是真實用戶在使用,是真正支持企業(yè)業(yè)務運轉的系統(tǒng)尉间,不可以隨意在這個環(huán)境中做測試偿乖,尤其是破壞性的測試。

2. 基礎設施差異

產品環(huán)境往往有著比類產品環(huán)境更復雜和健全的基礎設施哲嘲,可能會出現類產品環(huán)境不能預測到的缺陷和異常。

3. 系統(tǒng)復雜度

產品環(huán)境需要與多個不同的系統(tǒng)集成媳禁,系統(tǒng)復雜度會比類產品環(huán)境高很多眠副,這種復雜的系統(tǒng)集成很有可能導致一些意外的情況出現。

4. 數據復雜度

產品環(huán)境的數據量和數據復雜度也是類產品環(huán)境無法比擬的竣稽,通常都不是一個數量級的數據囱怕,容易引發(fā)性能問題、或者一些復雜的數據組合導致的問題毫别。

5. 用戶行為千奇百怪

產品環(huán)境中用戶分布廣泛娃弓,使用習慣各種各樣,導致用戶行為千奇百怪岛宦,某些使用行為可能就會產生意想不到的問題台丛。

6. 訪問受限

產品環(huán)境由于是真實業(yè)務線上的系統(tǒng),對安全性和穩(wěn)定性要求更高砾肺,服務器通常不是所有QA可以隨便訪問的挽霉,這種訪問受限的情況對于產品環(huán)境的一些缺陷排查帶來了很大的不便。

7. 真實的用戶反饋

用戶在產品環(huán)境中使用变汪,能夠提出一些真實而重要的反饋侠坎,但是開發(fā)團隊往往不能直接接觸終端用戶,QA也就沒有辦法獲得第一手的用戶反饋裙盾,這些反饋常常需要通過支持團隊來轉述实胸。

產品環(huán)境的這些特點決定了QA在產品環(huán)境不是想做什么就能做什么的他嫡。原來類產品環(huán)境那套質量保證理論和方法都行不通了。那么庐完,產品環(huán)境下的QA又有哪些特點呢钢属?

產品環(huán)境下的QA的特點

一、不同于類產品環(huán)境的QA

產品環(huán)境的特點決定了產品環(huán)境下的QA是跟類產品環(huán)境的QA不同的假褪,前者不能主動的去測試產品環(huán)境的系統(tǒng)署咽,但是可以做到下面這些:

產品環(huán)境下的QA

  1. 引入產品系統(tǒng)的監(jiān)控,制定監(jiān)控預警標準生音,找出產品環(huán)境下使用的質量度量宁否。比如,分析產品環(huán)境日志缀遍,收集系統(tǒng)運行的錯誤慕匠、異常和失敗等信息;或者利用網站分析工具收集用戶使用應用程序的數據域醇,分析數據量需求台谊、產品的性能趨勢、用戶的地域特征譬挚、用戶的行為習慣和產品在同類型產品市場的占有率等锅铅。
  2. 收集產品環(huán)境下最終用戶的反饋,對反饋進行分類分析减宣。用戶反饋通常有缺陷盐须、抱怨和建議,針對不同類型需要采取不同的處理方式漆腌,利用用戶反饋贼邓,改進系統(tǒng)功能,提高產品質量闷尿,同時優(yōu)化業(yè)務價值塑径,擴大產品的市場影響力,提高企業(yè)競爭力填具。

因此统舀,產品環(huán)境下的QA并不是類產品環(huán)境QA活動的簡單后延,它有著自己獨特的特點灌旧。

二绑咱、不能獨立存在

產品環(huán)境下的QA所設置的監(jiān)控標準是根據系統(tǒng)的行為特點和在類產品環(huán)境下的表現來定義的,產品環(huán)境下各項反饋的分析結果反過來又影響著類產品環(huán)境的QA過程枢泰,而且這兩者是相輔相成的描融,只有形成了良性環(huán)路惊豺,才能把產品環(huán)境下的QA做好矮固。

三棚愤、有別于Ops

產品環(huán)境設置監(jiān)控預警和收集用戶反饋不都是Ops團隊可以做的事情嗎髓涯?還要QA參與干什么?是因為QA有著獨特的思維模式和視角年叮,QA的參與能夠幫助更好的分析產品環(huán)境下收集到的各種反饋具被,并且基于對于系統(tǒng)的了解,將這些反饋更好的應用到日常的開發(fā)工作中只损。QA在整個監(jiān)控預警一姿、收集和分析用戶反饋的過程中主要充當分析者和協(xié)調者的角色,對產品環(huán)境下的質量保證工作起到至關重要的作用跃惫。

產品環(huán)境下的QA與Ops

這時候的QA帶著QA和Ops的帽子叮叹,兼具QA和Ops的部分職責,類似于QAOps爆存,不過現在都提倡不要有獨立的DevOps蛉顽,我們也不要獨立的QAOps角色,只是讓QA這個角色可做的事情得到了延伸和擴展而已先较,本質上還是QA携冤。

四、跟APM的側重點不同

可能有人會覺得產品環(huán)境下的QA跟APM有相似之處闲勺,那么這兩者是不是一回事呢曾棕?

維基百科這樣解釋APM

“In the fields of information technology and systems management, application performance management (APM) is the monitoring and management of performance and availability of software applications. (在信息科技和系統(tǒng)管理領域,APM對軟件應用程序的性能和可用性的監(jiān)控和管理菜循。)”

APM更多的是從性能角度出發(fā)去管理和優(yōu)化應用睁蕾,可以發(fā)生在各個階段,不一定是產品環(huán)境债朵。產品環(huán)境下的QA是指在產品環(huán)境進行一系列的監(jiān)控和數據收集,從系統(tǒng)功能瀑凝、性能序芦、易用性等多個方面進行優(yōu)化,從而最終優(yōu)化業(yè)務價值粤咪。因此谚中,兩者是不同的。

產品環(huán)境下的QA在項目上的實踐

我所在的項目是一個離岸交付項目寥枝,采用敏捷開發(fā)模式宪塔,四周一次發(fā)布到產品環(huán)境,開發(fā)的系統(tǒng)包括一個內部員工使用系統(tǒng)和一個外部用戶使用的網站囊拜,用戶遍及全球某筐,整個項目已經持續(xù)了七年有余。產品環(huán)境具備前面所描述的所有特點冠跷,并且產品環(huán)境每日的錯誤日志達到幾千條南誊。正是由于錯誤日志的數量到了一個不能忍的程度身诺,產品環(huán)境才引起了各方的關注,也使得產品環(huán)境下的QA迎來了試點的最佳時機抄囚。產品環(huán)境下的QA在我們項目上的實踐主要是三部分內容:日志分析和優(yōu)化霉赡、Google Analytics數據分析、用戶反饋的收集和分析幔托。下面逐個介紹穴亏。

一、日志分析和優(yōu)化

既然錯誤日志那么多重挑,首先就是從這些錯誤日志下手嗓化。項目使用的日志分析工具是Splunk,這個工具功能強大攒驰、使用方便蟆湖,關于工具的詳細信息可以參考官網。下圖所示為使用Splunk通過指定條件搜索日志文件得到的結果頁面玻粪,結果集里四條類似亂碼的東西就是代表有四種類型的錯誤日志隅津,每種錯誤出現的數量和百分比都有統(tǒng)計,點擊每條結果可以查看詳細的錯誤日志信息劲室。

Splunk日志分析

關于日志的分析和優(yōu)化伦仍,我們在項目上做了如下工作:

1. 分析產品環(huán)境的錯誤日志

專人負責產品環(huán)境錯誤日志的分析,挑出優(yōu)先級高的進行修復處理很洋;對新功能進行日志監(jiān)控充蓝,確保上線后能夠運行正常。

2. 監(jiān)控測試環(huán)境的錯誤日志

把產品環(huán)境錯誤日志的分析方法應用于測試環(huán)境喉磁,讓bug發(fā)現提前到測試階段谓苟。據不完全統(tǒng)計,最近兩三個月通過這種方式發(fā)現并修復了好幾個潛在的Bug协怒。

3. 利用日志監(jiān)控不同功能的性能

Splunk里設有專門的統(tǒng)計和監(jiān)控系統(tǒng)性能的Dashboard涝焙,QA會定期從里邊拿出高優(yōu)先級的給開發(fā)人員進行性能調優(yōu)。

4. 日志記錄標準化

現有的產品環(huán)境日志記錄中存在一些問題孕暇,給分析工作帶來不便仑撞。團隊為此進行討論并達成共識:

  • 將日志輸出到各個服務器的同一個路徑;
  • 統(tǒng)一日志記錄格式妖滔,并且盡量記錄更全面的信息以便進行后期的日志分析隧哮;
  • 清晰定義各個日志級別(Debug,Info座舍,Warning沮翔,Error,Critical簸州,Fatal)鉴竭,將已有的誤記成錯誤的日志降低到正確的級別歧譬,對于新功能則嚴格按照所定義級別記錄日志;
  • QA在用戶故事(Story)的開發(fā)機驗收(Dev-box Testing or Desk Check)階段負責跟開發(fā)人員確認相關日志記錄是否符合標準搏存,并且通過測試環(huán)境的日志監(jiān)控可以及時驗證新功能的日志記錄情況瑰步。

二、Google Analytics數據分析

Google Analytics(以下簡稱GA)是項目用來統(tǒng)計網站使用情況的工具璧眠,從GA上可以獲取很多有價值的信息缩焦,對這些信息進行分析是我們實踐的產品環(huán)境下QA的另一塊內容,具體做了下面幾項工作:

1. 操作系統(tǒng)和瀏覽器使用情況分析

根據產品環(huán)境操作系統(tǒng)和瀏覽器使用比例去調整測試環(huán)境所使用的系統(tǒng)责静,比如從重點關注IE9調整到IE11袁滥。

2. 分析QA測試跟用戶真實行為的差異,及時調整測試

根據GA上用戶訪問的路徑可以發(fā)現我們QA的測試跟一些真實用戶使用習慣的差異灾螃,這樣如果按照我們通常的路徑去測試题翻,可能有些問題難以在測試階段被發(fā)現。比如腰鬼,QA在測試環(huán)境通常打開“工作記錄”的方式是這樣的:

QA測試路徑

而我們從GA上發(fā)現真實用戶使用過程中嵌赠,打開“工作記錄”最多的路徑是這樣的:

用戶使用路徑

發(fā)現了這種差異,QA就要在測試時候做相應的調整熄赡,讓測試更接近用戶的行為習慣姜挺。

3. 提煉關鍵業(yè)務場景,增加測試覆蓋

利用GA的數據結合客戶業(yè)務人員對系統(tǒng)各功能使用情況的介紹彼硫,我們提煉出系統(tǒng)最為關鍵的業(yè)務場景炊豪,并且盡量分層(參考測試金字塔)實現自動化測試覆蓋,以減輕QA回歸測試的壓力拧篮。

4. 發(fā)現用戶較少使用的功能词渤,優(yōu)化業(yè)務流程

類似的,我們還可以通過GA發(fā)現一些用戶較少使用的功能串绩,QA的測試基本不需要太多去關注這些功能掖肋,同時可以跟業(yè)務分析人員一起分析功能不被使用的原因,在后續(xù)的功能開發(fā)過程中可以作為借鑒赏参,從而優(yōu)化業(yè)務流程。

5. 分析用戶地區(qū)分布和使用時間段分布沿盅,合理安排定時任務運行時間

通過GA上的數據把篓,統(tǒng)計出哪個時間段是相對空閑的,在不影響真實業(yè)務的前提下腰涧,把一些資源消耗較大的任務安排在那個時候執(zhí)行韧掩,合理分配資源以減輕服務器的負擔,盡量減少對用戶的影響窖铡。

6. 監(jiān)控系統(tǒng)性能變化趨勢疗锐,規(guī)避性能風險

QA定期查看網站平均訪問時間坊谁,監(jiān)控性能趨勢,同時要重點關注那些訪問非常慢的頁面或功能滑臊,必要的時候創(chuàng)建性能缺陷卡口芍,由開發(fā)人員來調查分析并修復或優(yōu)化。

7. 確保GA能夠統(tǒng)計到所有需要統(tǒng)計的功能

GA數據雖然很有用雇卷,但前提是正確記錄了所需要統(tǒng)計的數據鬓椭,所以在開發(fā)過程中要確保GA嵌入到了各個需要統(tǒng)計的功能或頁面,QA在類產品環(huán)境測試的時候需要驗證這一點关划。

下圖為從GA拿到的瀏覽器分布情況和頁面平均加載時間的一些數據:

GA數據分析

三小染、用戶反饋的收集和分析

作為開發(fā)團隊的我們基本是不能直接接觸到系統(tǒng)終端用戶的,直接接受反饋的是客戶的Ops團隊贮折,QA主要通過下面幾個途徑去協(xié)助分析和梳理用戶反饋:

1. 跟Ops和業(yè)務的定期溝通會議

QA會定期跟客戶的Ops和業(yè)務人員溝通裤翩,了解用戶對于現有系統(tǒng)的反饋,找出在測試中需要重視的功能特性调榄,對類產品環(huán)境的測試關注點做出相應的調整踊赠。

2. 培訓Ops人員

指導和協(xié)助客戶Ops人員利用魚骨圖(Fishbone Diagram)的方法對收集到的用戶反饋進行分析和分類,將分析結果跟現有的測試覆蓋情況進行對比振峻,找出測試過程的薄弱環(huán)節(jié)臼疫,并做出改進。比如扣孟,如果某個瀏覽器出現的bug比較多烫堤,我們的測試就要加強該瀏覽器的關注;或者在發(fā)現不同用戶權限導致的問題出現頻率高凤价,那就得在測試中注意覆蓋不同用戶角色的測試鸽斟,反之則減弱不同用戶的覆蓋,主要測最常用的那類角色即可利诺。

3. 調查和跟蹤產品環(huán)境Bug

幫助重現和調查用戶反饋過來的產品環(huán)境Bug富蓄,并負責跟蹤修復和驗證;對于難以重現的問題慢逾,則添加日志監(jiān)控立倍,通過分析收集到的日志信息找出問題根源,從而進行修復侣滩。

4. 協(xié)助梳理業(yè)務需求

系統(tǒng)要增加某個新功能的時候口注,客戶Product Owner(以下簡稱PO)或其他業(yè)務人員跟用戶會一起溝通該功能相關業(yè)務現有的使用習慣、使用場景君珠,QA也會盡量參與這種會議寝志,收集用戶第一手需求信息,這些信息對于后期該業(yè)務功能開發(fā)時候的QA過程將非常有幫助。而還有些功能材部,PO可能一時也拿不定主意要做成什么樣子毫缆,我們會發(fā)布MVP的版本給用戶使用,QA協(xié)助業(yè)務人員分析用戶使用后的反饋乐导,梳理更具體的用戶需求苦丁。

總結

  1. 產品環(huán)境下的QA將工作范圍從需求擴大到了產品環(huán)境,增加了更多的反饋來源兽叮,跟持續(xù)交付結合芬骄,可以幫助持續(xù)提高產品質量、優(yōu)化業(yè)務價值鹦聪。
  2. 產品環(huán)境下的QA給的工具箱添加了更多的工具账阻,提供了更多評估和提高系統(tǒng)質量的選項,是QA們值得深入研究的話題泽本。
  3. 產品環(huán)境下的QA不能走的太遠淘太,必須先做好類產品環(huán)境的質量保證,并且僅適用于持續(xù)交付實踐的比較好的組織规丽。如果連類產品環(huán)境的質量保證都做不好蒲牧,就想著去做產品環(huán)境下的QA,那只能是舍本逐末赌莺、事倍功半冰抢。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艘狭,隨后出現的幾起案子挎扰,更是在濱河造成了極大的恐慌,老刑警劉巖巢音,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遵倦,死亡現場離奇詭異,居然都是意外死亡官撼,警方通過查閱死者的電腦和手機梧躺,發(fā)現死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來傲绣,“玉大人掠哥,你說我怎么就攤上這事⊥核校” “怎么了龙致?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長顷链。 經常有香客問我,道長,這世上最難降的妖魔是什么嗤练? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任榛了,我火速辦了婚禮,結果婚禮上煞抬,老公的妹妹穿的比我還像新娘霜大。我一直安慰自己,他們只是感情好革答,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布战坤。 她就那樣靜靜地躺著,像睡著了一般残拐。 火紅的嫁衣襯著肌膚如雪途茫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天溪食,我揣著相機與錄音囊卜,去河邊找鬼。 笑死错沃,一個胖子當著我的面吹牛栅组,可吹牛的內容都是我干的。 我是一名探鬼主播枢析,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼玉掸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了醒叁?” 一聲冷哼從身側響起司浪,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辐益,沒想到半個月后断傲,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡智政,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年认罩,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片续捂。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡垦垂,死狀恐怖,靈堂內的尸體忽然破棺而出牙瓢,到底是詐尸還是另有隱情劫拗,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布矾克,位于F島的核電站页慷,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜酒繁,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一滓彰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧州袒,春花似錦揭绑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至夸研,卻和暖如春邦蜜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背陈惰。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工畦徘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抬闯。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓井辆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親溶握。 傳聞我的和親對象是個殘疾皇子杯缺,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內容