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

2015年11月ThoughtWorks發(fā)布的技術(shù)雷達(dá)提到一個新的主題——產(chǎn)品環(huán)境下的QA(QA in Production),2016年4月再次提到。這個主題第一次出現(xiàn)在技術(shù)雷達(dá),就深深的吸引了我,當(dāng)時我就給測試團(tuán)隊(duì)成員轉(zhuǎn)發(fā)了這個內(nèi)容,但同時腦子里卻產(chǎn)生這樣一系列的疑問:

  • 產(chǎn)品環(huán)境下的QA可以做什么呢?有什么挑戰(zhàn),又有哪些好處?
  • 它跟類產(chǎn)品環(huán)境的QA有何區(qū)別,是否就是類產(chǎn)品環(huán)境QA方法的延伸?
  • 產(chǎn)品環(huán)境有運(yùn)維支持團(tuán)隊(duì)(Ops),產(chǎn)品環(huán)境下的QA跟Ops所做的事情又有什么區(qū)別與聯(lián)系?

帶著這些疑問,結(jié)合項(xiàng)目上的一系列實(shí)踐,于是有了本文。

一個產(chǎn)品環(huán)境Bug的解決辦法

先來跟大家分享一個產(chǎn)品環(huán)境下的Bug:

一個在線訂購葡萄酒的系統(tǒng),訂購流程相對復(fù)雜,下單過程中后臺會有隨機(jī)的失敗,系統(tǒng)采取的措施是重試,就是說顧客下單后,后臺如果有錯誤就會不停的重試,直到成功,這個過程對顧客是不可見的。這聽起來沒什么問題,用戶體驗(yàn)似乎也不錯。

后來有個新版本上線了,顧客下單后還是會有隨機(jī)失敗,系統(tǒng)依然不停的重試,但這次不一樣的是有的隨機(jī)失敗,下單卻能夠成功,這樣就導(dǎo)致用戶雖然只訂購一箱葡萄酒,由于后臺的多次重試都成功了,用戶最終拿到的可能是好幾百箱葡萄酒。

這是一個非常嚴(yán)重且昂貴的Bug!對于這樣的問題,作為QA,你能想到的解決辦法有哪些?

瀑布式QA流程

瀑布式軟件開發(fā)模式下,測試是計(jì)劃驅(qū)動的,基本是根據(jù)需求文檔進(jìn)行驗(yàn)證,測試的目的就是找到盡可能多的bug,而且測試階段處于開發(fā)階段結(jié)束之后的一個相對獨(dú)立的階段,測試結(jié)束之后發(fā)布產(chǎn)品到產(chǎn)品環(huán)境?;玖鞒倘缦拢?/p>

瀑布式QA流程

對于上述葡萄酒訂購系統(tǒng)的Bug,通常的辦法就是加強(qiáng)在測試階段的測試保證,除了驗(yàn)證系統(tǒng)功能跟需求文檔的一致性以外,還可以增加一些ad hoc測試,確保發(fā)布到產(chǎn)品環(huán)境的系統(tǒng)盡量的穩(wěn)定。

敏捷QA流程

敏捷測試則提倡盡早測試、頻繁測試,QA要從需求分析階段就開始介入,QA參與從需求到發(fā)布的整個生命周期中各個階段。在整個QA的過程中,會依據(jù)敏捷測試象限,在不同階段采取不同的測試;還會根據(jù)測試金字塔的分層指導(dǎo),加強(qiáng)自動化測試,制定有利于項(xiàng)目質(zhì)量保證的測試策略,同時也會做探索性測試,盡量去發(fā)現(xiàn)更多不易發(fā)現(xiàn)的缺陷。敏捷QA的流程如下:

敏捷QA流程

對于葡萄酒訂購系統(tǒng)的bug,處理方式也無非就是加強(qiáng)上線前各個階段的測試,提高發(fā)布到產(chǎn)品環(huán)境的產(chǎn)品質(zhì)量。

除此之外,我們還有什么處理辦法呢?

上面兩種開發(fā)模式下,QA的重點(diǎn)都是放在發(fā)布前的類產(chǎn)品環(huán)境的質(zhì)量保證上,而較少考慮產(chǎn)品環(huán)境的系統(tǒng)質(zhì)量。隨著敏捷開發(fā)和持續(xù)交付的出現(xiàn),QA角色逐漸轉(zhuǎn)變到需要分析軟件產(chǎn)品在產(chǎn)品環(huán)境下的質(zhì)量。這需要引入產(chǎn)品系統(tǒng)的監(jiān)控, 制定檢測緊急錯誤的警報條件,持續(xù)質(zhì)量問題的確定以及找出在產(chǎn)品環(huán)境下使用的度量以保證這種方式可行。

回到前面葡萄酒訂購系統(tǒng)的那個Bug,如果在產(chǎn)品環(huán)境下設(shè)置監(jiān)控預(yù)警,對于一個訂單購買葡萄酒數(shù)量異常的情況進(jìn)行監(jiān)控,將能及時發(fā)現(xiàn)bug,并且比較容易在損失發(fā)生之前及時阻止產(chǎn)生更嚴(yán)重的后果。這就是產(chǎn)品環(huán)境下的QA內(nèi)容之一!

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

為了更好的實(shí)踐產(chǎn)品環(huán)境下的QA,先來分析下產(chǎn)品環(huán)境有哪些特點(diǎn):

1. 真實(shí)、不可破壞

產(chǎn)品環(huán)境都是真實(shí)用戶在使用,是真正的支持企業(yè)業(yè)務(wù)運(yùn)轉(zhuǎn)的系統(tǒng),不可以隨意在產(chǎn)品環(huán)境去做測試,尤其是破壞性的測試。

2. 基礎(chǔ)設(shè)施差異

產(chǎn)品環(huán)境往往有著比類產(chǎn)品環(huán)境要復(fù)雜和健全的基礎(chǔ)設(shè)施,可能會出現(xiàn)類產(chǎn)品環(huán)境不能預(yù)測到的缺陷和異常。

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

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

4. 數(shù)據(jù)復(fù)雜度

產(chǎn)品環(huán)境的數(shù)據(jù)量和數(shù)據(jù)復(fù)雜度也是類產(chǎn)品環(huán)境無法比擬的,通常都不是一個數(shù)量級的數(shù)據(jù),容易引發(fā)性能問題、或者一些復(fù)雜的數(shù)據(jù)組合導(dǎo)致的問題。

5. 用戶行為千奇百怪

產(chǎn)品環(huán)境的用戶分布廣泛,使用習(xí)慣各種各樣,導(dǎo)致用戶行為千奇百怪,某些使用行為可能就會產(chǎn)生意想不到的問題。

6. 訪問受限

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

7. 真實(shí)的用戶反饋

真實(shí)用戶在產(chǎn)品環(huán)境使用,能夠提出一些真實(shí)而重要的反饋,但是開發(fā)團(tuán)隊(duì)往往不能直接接觸終端用戶,QA也就沒有辦法獲得第一手的用戶反饋,這些反饋常常需要通過支持團(tuán)隊(duì)的轉(zhuǎn)述。

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

產(chǎn)品環(huán)境的這些特點(diǎn)決定了QA在產(chǎn)品環(huán)境不是想做什么就能做什么的,原來類產(chǎn)品環(huán)境那套質(zhì)量保證理論和方法都行不通了。

產(chǎn)品環(huán)境下的QA有這么多挑戰(zhàn),聽起來是不是很沮喪?不要著急,針對產(chǎn)品環(huán)境獨(dú)有的特點(diǎn),一定能找到相應(yīng)的解決方案。接下來,咱們一起來看看產(chǎn)品環(huán)境下(不僅是QA)可以做什么。

產(chǎn)品環(huán)境下可以做什么

一、監(jiān)控預(yù)警

前面講到不能隨便去操作產(chǎn)品環(huán)境下的系統(tǒng)對其進(jìn)行測試,但是可以通過監(jiān)控的方式去獲得我們需要的信息,對異常情況進(jìn)行預(yù)警。提到監(jiān)控預(yù)警,不得不提大家都了解或者至少聽說過的日志和網(wǎng)站分析工具,這兩者都是做好產(chǎn)品環(huán)境下的QA非常有幫助的工具。

監(jiān)控預(yù)警
日志

日志就像是飛機(jī)上的黑匣子,可以記錄系統(tǒng)運(yùn)行的各種信息,包括錯誤、異常和失敗等。一旦程序出現(xiàn)問題,記錄的這些信息就可以用來分析問題的原因;同時可以利用記錄的日志設(shè)置好預(yù)警,提前預(yù)測系統(tǒng)可能出現(xiàn)的問題。產(chǎn)品環(huán)境下日志所提供的監(jiān)控和預(yù)警信息,將有利于:

  • 阻止不良后果,避免大的損失:前面提到的葡萄酒訂購系統(tǒng)就是一個很好的例子;
  • 發(fā)現(xiàn)潛在的性能問題:通過對日志進(jìn)行分析,可能發(fā)現(xiàn)還沒暴露出來的性能問題,提前修復(fù);
  • 指導(dǎo)類產(chǎn)品環(huán)境的測試:通過產(chǎn)品環(huán)境下日志的分析,可以看出哪些功能易出什么樣的錯誤,從而相應(yīng)調(diào)整測試策略,加強(qiáng)類產(chǎn)品環(huán)境的相關(guān)功能的測試。
網(wǎng)站分析工具

網(wǎng)站分析工具根據(jù)具體工具不同,所能記錄信息也有差異,但基本都可以記錄如下信息:

  • 用戶使用的操作系統(tǒng)、瀏覽器等信息
  • 用戶行為習(xí)慣,包括使用的時間、關(guān)鍵路徑、關(guān)鍵業(yè)務(wù)流程等
  • 用戶所在地區(qū)、語言等區(qū)域信息
  • 用戶訪問量,請求的響應(yīng)時間,網(wǎng)站性能等

利用網(wǎng)站分析工具收集到的以上數(shù)據(jù),可以幫助我們調(diào)整類產(chǎn)品環(huán)境的測試側(cè)重點(diǎn),指導(dǎo)類產(chǎn)品環(huán)境的測試;根據(jù)用戶行為習(xí)慣等信息,還可以幫助優(yōu)化產(chǎn)品業(yè)務(wù)價值。

二、用戶反饋

介紹產(chǎn)品環(huán)境特點(diǎn)的時候提到一點(diǎn)就是產(chǎn)品環(huán)境能夠收到真實(shí)的用戶反饋,這是非常有價值的,要做好產(chǎn)品環(huán)境下的QA一定要利用這些反饋。由于用戶行為和習(xí)慣的千奇百怪,用戶提供的反饋也可能是各種各樣的,為了更好的利用它們,需要一個嚴(yán)格的Triage的過程,對所有反饋進(jìn)行分類并相應(yīng)處理。用戶反饋,可以總結(jié)為下面幾類:

用戶反饋
缺陷

用戶在使用過程中,系統(tǒng)所出現(xiàn)的問題,并且能夠穩(wěn)定重現(xiàn)的,我們定義為缺陷,缺陷通常會影響到功能的使用,是需要修復(fù)的,根據(jù)優(yōu)先級和嚴(yán)重程度,安排相應(yīng)的修復(fù)計(jì)劃并對其進(jìn)行修復(fù),同時還需要對修復(fù)的缺陷增加(自動化)測試,以防被再次破壞。

除了能夠穩(wěn)定重現(xiàn)的缺陷,有時候還會有一些隨機(jī)的失敗(比如前面提到的葡萄酒訂購系統(tǒng)的bug)或者難以重現(xiàn)的問題,這類問題很難找到原因,但是又給用戶帶來很大的不爽。其實(shí),它們通常也是一些缺陷引起的,只是根源可能隱藏的比較深,對于這種問題的處理辦法就是前面部分提到的可以添加日志對相關(guān)功能進(jìn)行監(jiān)控和預(yù)警,利用日志協(xié)助找到問題根源并進(jìn)行修復(fù)。

抱怨

用戶在使用系統(tǒng)過程中由于行為習(xí)慣、網(wǎng)絡(luò)環(huán)境等差異,總會有各種抱怨,一般以非功能性的問題居多,比如易用性、性能、可維護(hù)性、可擴(kuò)展性等,當(dāng)然也有可能是某個功能設(shè)計(jì)的不能滿足真實(shí)的用戶需求。需要對所有抱怨進(jìn)行分類,確定是非功能的缺陷,還是新的需求。用戶的抱怨有可能千奇百怪,不是所有的都能滿足,需要根據(jù)分類定義優(yōu)先級,確定哪些是需要改進(jìn)和修復(fù),從而采取相應(yīng)的措施。

建議

除了反饋問題和提出抱怨,用戶也會對系統(tǒng)使用方面提一些建議。但一般用戶很難提出好的建議,要想收集到有價值的信息,需要提前設(shè)計(jì)好問卷進(jìn)行問卷調(diào)查,有針對性的去收集;或者對一些重要用戶進(jìn)行訪談,或者發(fā)布一個簡單的新功能收集用戶的使用建議等。然后對收集到的建議進(jìn)行分析,確定可行性,并將可行的建議應(yīng)用到后續(xù)的系統(tǒng)和業(yè)務(wù)流程的改進(jìn)中。

利用用戶反饋,改進(jìn)系統(tǒng)功能,可以優(yōu)化業(yè)務(wù)價值,擴(kuò)大產(chǎn)品的市場影響力,提高企業(yè)的競爭力。常被用來收集用戶反饋的實(shí)踐有:

  • Beta測試:很多有前瞻性的網(wǎng)站或應(yīng)用會發(fā)布新功能給特定用戶組(Beta用戶),收集用戶使用新功能的統(tǒng)計(jì)數(shù)據(jù);
  • AB測試:同時發(fā)布兩個不同版本的系統(tǒng)到產(chǎn)品環(huán)境,并將用戶引導(dǎo)到兩個版本,統(tǒng)計(jì)使用每個版本的用戶數(shù)據(jù);
  • Observed Requirement:發(fā)布一個簡單的功能,或者發(fā)布一個MVP版本,觀察用戶使用情況,從而引出并收集到用戶的真實(shí)需求。

監(jiān)控預(yù)警、收集和分析用戶反饋并不是QA能獨(dú)立完成的,需要與不同角色協(xié)作,QA在整個過程中主要充當(dāng)分析者和協(xié)調(diào)者的角色,對產(chǎn)品環(huán)境下的質(zhì)量保證工作起到至關(guān)重要的作用:

  1. 跟DEV一起討論監(jiān)控標(biāo)準(zhǔn),把日志標(biāo)準(zhǔn)化的要求融入到軟件開發(fā)流程中,確保日志能夠記錄到真正需要記錄的信息。
  2. 跟運(yùn)維團(tuán)隊(duì)一起分析收集到的統(tǒng)計(jì)數(shù)據(jù),指導(dǎo)和優(yōu)化各個階段的測試,以預(yù)防和減少系統(tǒng)在產(chǎn)品環(huán)境下的缺陷。
  3. 跟業(yè)務(wù)分析人員一起分析和梳理從產(chǎn)品環(huán)境收集到的需求相關(guān)的反饋,提煉出合理的需求,優(yōu)化業(yè)務(wù)價值。
QA與不同角色協(xié)作

產(chǎn)品環(huán)境下的QA在項(xiàng)目上的實(shí)踐

我所在的項(xiàng)目是一個離岸交付項(xiàng)目,采用的是敏捷開發(fā)模式,四周一次發(fā)布到產(chǎn)品環(huán)境,開發(fā)的系統(tǒng)包括一個內(nèi)部員工使用系統(tǒng)和一個外部用戶使用的網(wǎng)站,用戶遍及全球,項(xiàng)目整個已經(jīng)持續(xù)了七年有余,產(chǎn)品環(huán)境具備前面所描述的所有特點(diǎn),并且產(chǎn)品環(huán)境每日的錯誤日志達(dá)到幾千條。正是由于錯誤日志的數(shù)量到了一個不能忍的程度,產(chǎn)品環(huán)境引起了各方的關(guān)注,也使得產(chǎn)品環(huán)境下的QA迎來了試點(diǎn)的最佳時機(jī)。產(chǎn)品環(huán)境下的QA在我們項(xiàng)目上的實(shí)踐主要是三部分內(nèi)容:日志分析和優(yōu)化、Google Analytics數(shù)據(jù)分析、用戶反饋的收集和分析,下面逐個介紹。

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

既然錯誤日志那么多,首當(dāng)其沖就是從這些錯誤日志下手。項(xiàng)目使用的日志分析工具是Splunk,這個工具功能強(qiáng)大、使用方便,關(guān)于工具的詳細(xì)信息可以參考官網(wǎng)。下圖所示為使用Splunk通過指定條件搜索日志文件得到的結(jié)果頁面,結(jié)果集里四條類似亂碼的東西就是代表有四種類型的錯誤日志,每種錯誤出現(xiàn)的數(shù)量和百分比都有統(tǒng)計(jì),點(diǎn)擊每條結(jié)果可以查看詳細(xì)的錯誤日志信息。

Splunk日志分析

關(guān)于日志的分析和優(yōu)化,我們在項(xiàng)目上做了如下工作:

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

每天會有專人負(fù)責(zé)錯誤日志的分析,找出其中的優(yōu)先級高的問題給團(tuán)隊(duì)修復(fù)。QA會協(xié)助重現(xiàn)、跟蹤并負(fù)責(zé)測試這些重要的需要修復(fù)的問題,通過對錯誤日志的分析,QA可以大概的統(tǒng)計(jì)出哪些功能特性比較容易產(chǎn)生錯誤,在接下來的類產(chǎn)品環(huán)境的測試中要重點(diǎn)關(guān)注。
另外,對于某些功能由于測試環(huán)境的數(shù)據(jù)等局限性,擔(dān)心部署到產(chǎn)品環(huán)境會產(chǎn)生錯誤或者有性能問題,一般上線后會著重關(guān)注這樣的功能,除了日常的監(jiān)控分析之外,還要單獨(dú)對該功能的日志進(jìn)行檢查,以防產(chǎn)生嚴(yán)重問題。

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

把產(chǎn)品環(huán)境錯誤日志的分析方法應(yīng)用于測試環(huán)境,對測試環(huán)境的錯誤日志進(jìn)行監(jiān)控,盡量把環(huán)境無關(guān)由功能引起的錯誤找出來,盡早修復(fù),不讓其流落到產(chǎn)品環(huán)境。據(jù)不完全統(tǒng)計(jì),最近兩三個月通過這種方式發(fā)現(xiàn)并修復(fù)了好幾個潛在的Bug。

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

Ops在Splunk里設(shè)置有專門的統(tǒng)計(jì)和監(jiān)控系統(tǒng)性能的Dashboard,QA會定期從里邊拿出潛在的存在性能問題的功能模塊,創(chuàng)建對應(yīng)的任務(wù)卡由開發(fā)團(tuán)隊(duì)來做性能調(diào)優(yōu)。

4. 日志記錄標(biāo)準(zhǔn)化

通過對產(chǎn)品環(huán)境錯誤日志的分析,發(fā)現(xiàn)現(xiàn)有日志記錄存在如下問題:

  • 存儲位置不統(tǒng)一,有些日志沒有辦法通過Splunk統(tǒng)計(jì)分析,造成分析成本的增加;
  • 記錄格式不一致,有些日志雖然可以通過Splunk看到,但是沒有記錄很有用的信息,比如沒有記錄錯誤發(fā)生時候的一些有意義的message,或者是Post請求沒有記錄輸入?yún)?shù),導(dǎo)致排查錯誤日志的工作增加了難度;
  • 日志級別定義混亂,有些沒有到達(dá)錯誤級別(error)的日志也記成了錯誤(error)日志,這也是錯誤日志數(shù)量大的原因之一。

為了讓日志分析更輕松、讓日志更全面的記錄系統(tǒng)的各種情況,針對上面的問題,團(tuán)隊(duì)討論并達(dá)成共識:

  • 將日志輸出到各個服務(wù)器的同一個路徑;
  • 統(tǒng)一日志記錄格式,并且盡量記錄更全面的信息幫助后期的日志分析;
  • 清晰定義各個日志級別(Debug,Info,Warning,Error,Critical,F(xiàn)atal),將已有的誤記成錯誤的日志降低到正確的級別,對于新功能則嚴(yán)格按照所定義級別記錄日志;
  • QA在用戶故事(Story)的開發(fā)機(jī)驗(yàn)收(Dev-box Testing or Desk Check)階段負(fù)責(zé)跟開發(fā)人員確認(rèn)相關(guān)日志記錄是否符合標(biāo)準(zhǔn),并且通過測試環(huán)境的日志監(jiān)控可以及時驗(yàn)證新功能的日志記錄情況。

Google Analytics數(shù)據(jù)分析

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

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

根據(jù)GA數(shù)據(jù)統(tǒng)計(jì)分析出用戶使用的操作系統(tǒng)和瀏覽器分布情況,從而相應(yīng)的調(diào)整QA用來測試的操作系統(tǒng)和瀏覽器,盡量讓測試環(huán)境跟真實(shí)用戶更接近。比如,前兩年客戶內(nèi)部員工使用的瀏覽器最多的是IE9,那么我們QA的測試也是主要關(guān)注IE9,而今年變成了IE11,我們重點(diǎn)關(guān)注的瀏覽器也相應(yīng)調(diào)整為IE11(當(dāng)然,鑒于IE9的特殊性——容易出問題,只要還有用戶使用,我們還是需要關(guān)注),而對于沒有用戶使用的Firefox,我們則不用來測試。

2. 分析QA測試跟用戶真實(shí)行為的差異,及時調(diào)整測試根據(jù)

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

QA測試路徑

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

用戶使用路徑

發(fā)現(xiàn)了這種差異,QA就要在測試時候做相應(yīng)的調(diào)整,讓測試更接近用戶的行為習(xí)慣。

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

一個開發(fā)好幾年的系統(tǒng),其功能必然是比較復(fù)雜的,由于自動化測試覆蓋率不是很理想,過去回歸測試需要的投入比較大,而且由于功能相對復(fù)雜,又不是很清楚哪些功能對用戶來說最為重要,測試很難做到有效覆蓋。這種情況對于人員比例低下的敏捷團(tuán)隊(duì)QA來說,是一件非常有挑戰(zhàn)的事情,通常QA們在發(fā)布前忙得不行。利用GA的數(shù)據(jù)結(jié)合客戶業(yè)務(wù)人員對系統(tǒng)各功能使用情況的介紹,我們提煉出來系統(tǒng)最為關(guān)鍵的一些業(yè)務(wù)場景,并且盡量分層(參考測試金字塔)實(shí)現(xiàn)自動化測試覆蓋,從而不需要花費(fèi)太多的人力去做回歸測試,同樣可以保證主要的業(yè)務(wù)流程不至于被破壞,而QA則可以有更多的時間和精力去做探索性測試等更有價值的事情。

4. 發(fā)現(xiàn)用戶較少使用的功能,優(yōu)化業(yè)務(wù)流程

關(guān)鍵場景就是用戶使用頻率較高的功能,類似的,我們還可以通過GA發(fā)現(xiàn)一些用戶較少使用的功能,這可能的原因是不符合用戶真實(shí)行為習(xí)慣,喜歡用其他路徑去完成同樣的事情,或者不符合真實(shí)業(yè)務(wù)需求,也就是說真實(shí)的業(yè)務(wù)環(huán)境下根本沒有要用到這個功能的地方。對于這種功能,首先從QA角度來講,我們的測試基本不需要太多去關(guān)注,如果有相關(guān)功能的缺陷,它的優(yōu)先級也很低很低;另外,可以跟業(yè)務(wù)分析人員一起分析下原因,在后續(xù)的功能開發(fā)過程中可以作為借鑒,從而優(yōu)化業(yè)務(wù)流程。

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

系統(tǒng)用戶遍及全球,使用時間段分布也就變得復(fù)雜,為了不影響正常使用,有些事情是需要盡量在系統(tǒng)沒人使用的時候去做的,比如統(tǒng)計(jì)某類數(shù)據(jù)需要定時執(zhí)行SQL腳本等定時任務(wù)。通過GA上的數(shù)據(jù),統(tǒng)計(jì)出哪個時間段是相對空閑的,在不影響真實(shí)業(yè)務(wù)的前提下,把一些資源消耗較大的任務(wù)安排在那個時候執(zhí)行,合理分配資源以減輕服務(wù)器的負(fù)擔(dān)。

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

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

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

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

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

GA統(tǒng)計(jì)數(shù)據(jù)

用戶反饋的收集和分析

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

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

QA會定期跟客戶的Ops和業(yè)務(wù)人員溝通,了解用戶對于現(xiàn)有系統(tǒng)的反饋,找出在測試中需要重視的功能特性,將類產(chǎn)品環(huán)境的測試關(guān)注點(diǎn)做出相應(yīng)的調(diào)整。

2. 培訓(xùn)Ops人員

指導(dǎo)和協(xié)助客戶Ops人員利用魚骨圖(Fishbone Diagram)的方法對收集到的用戶反饋進(jìn)行分析和分類,將分析結(jié)果跟現(xiàn)有的測試覆蓋情況進(jìn)行對比,找出測試過程的薄弱環(huán)節(jié),并做出改進(jìn)。比如,如果某個瀏覽器出現(xiàn)的bug比較多,而我們的測試則要加強(qiáng)該瀏覽器的關(guān)注;或者是因?yàn)椴煌脩魴?quán)限導(dǎo)致的問題出現(xiàn)頻率高,那就得在測試中注意覆蓋不同用戶角色的測試,反之則減弱不同用戶的覆蓋,主要測最常用的那類角色即可。

3. 調(diào)查和跟蹤產(chǎn)品環(huán)境Bug

幫助重現(xiàn)和調(diào)查用戶反饋過來的產(chǎn)品環(huán)境Bug,并負(fù)責(zé)跟蹤修復(fù)和驗(yàn)證;對于難以重現(xiàn)的問題,則添加日志監(jiān)控,通過分析收集到的日志信息找出問題根源,從而進(jìn)行修復(fù)。

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

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

產(chǎn)品環(huán)境下的QA有什么特點(diǎn)

1. 不同于類產(chǎn)品環(huán)境的QA

產(chǎn)品環(huán)境的特點(diǎn)決定了產(chǎn)品環(huán)境下的QA是跟類產(chǎn)品環(huán)境的QA不同的,不是主動的去測試產(chǎn)品環(huán)境的系統(tǒng),而是通過設(shè)置監(jiān)控條件,收集用戶使用系統(tǒng)的反饋,對反饋進(jìn)行分析并改進(jìn),從而讓產(chǎn)品質(zhì)量獲得提高。因此,產(chǎn)品環(huán)境下的QA并不是類產(chǎn)品環(huán)境QA活動的簡單后延,它有著自己獨(dú)特的特點(diǎn)。

2. 不能獨(dú)立存在

產(chǎn)品環(huán)境下的QA所設(shè)置的監(jiān)控標(biāo)準(zhǔn)是根據(jù)系統(tǒng)的行為特點(diǎn)和在類產(chǎn)品環(huán)境下的表現(xiàn)來定義的,產(chǎn)品環(huán)境下各項(xiàng)反饋的分析結(jié)果反過來又影響著類產(chǎn)品環(huán)境的QA過程,而且這兩者是相輔相成的,只有形成了良性環(huán)路,才能把產(chǎn)品環(huán)境下的QA做好。

良性環(huán)路
3. 有別于Ops

產(chǎn)品環(huán)境設(shè)置監(jiān)控預(yù)警和收集用戶反饋不都是Ops團(tuán)隊(duì)可以做的事情嗎?還要QA參與干什么?那是因?yàn)镼A有著獨(dú)特的思維模式和視角,QA的參與能夠幫助更好的分析產(chǎn)品環(huán)境下收集到的各種反饋,并且結(jié)合對于系統(tǒng)的了解,能夠?qū)⑦@些反饋更好的應(yīng)用到日常的開發(fā)工作中。

這時候的QA帶著QA和Ops的帽子,兼具QA和Ops的部分職責(zé),類似于QAOps,不過現(xiàn)在都提倡不要有獨(dú)立的DevOps,我們也不要獨(dú)立的QAOps角色,只是讓QA這個角色可做的事情得到了延伸和擴(kuò)展而已,本質(zhì)上還是QA。

產(chǎn)品環(huán)境下的QA與Ops
4. 跟APM的側(cè)重點(diǎn)不同

可能有人會覺得產(chǎn)品環(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)管理領(lǐng)域,APM是對軟件應(yīng)用程序的性能和可用性的監(jiān)控和管理。)”

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

總結(jié)

  • 產(chǎn)品環(huán)境下的QA將QA的工作范圍擴(kuò)大到從需求到產(chǎn)品環(huán)境,增加了更多的反饋來源,跟持續(xù)交付結(jié)合,可以幫助持續(xù)提高產(chǎn)品質(zhì)量、持續(xù)優(yōu)化業(yè)務(wù)價值。
  • 產(chǎn)品環(huán)境下的QA給QA的工具箱添加了更多的工具,提供了更多評估和提高系統(tǒng)質(zhì)量的選項(xiàng),是QA們值得深入研究的話題。
  • 產(chǎn)品環(huán)境下的QA不能走的太遠(yuǎn),必須先做好類產(chǎn)品環(huán)境的質(zhì)量保證,并且僅適用于持續(xù)交付實(shí)踐的比較好的組織,如果連類產(chǎn)品環(huán)境的質(zhì)量保證都做不好,而就想著去做產(chǎn)品環(huán)境下的QA,那只能是舍本逐末、事倍功半。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,480評論 2 379

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