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

2015年11月ThoughtWorks發(fā)布的技術(shù)雷達提到一個新的主題——產(chǎn)品環(huán)境下的QA(QA in Production)味抖,2016年4月再次提到旁壮。這個主題第一次出現(xiàn)在技術(shù)雷達童漩,就深深的吸引了我啊胶,當(dāng)時我就給測試團隊成員轉(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)境有運維支持團隊(Ops)超陆,產(chǎn)品環(huán)境下的QA跟Ops所做的事情又有什么區(qū)別與聯(lián)系?

帶著這些疑問浦马,結(jié)合項目上的一系列實踐时呀,于是有了本文。

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

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

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

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

這是一個非常嚴重且昂貴的Bug欣福!對于這樣的問題责球,作為QA,你能想到的解決辦法有哪些?

瀑布式QA流程

瀑布式軟件開發(fā)模式下雏逾,測試是計劃驅(qū)動的嘉裤,基本是根據(jù)需求文檔進行驗證,測試的目的就是找到盡可能多的bug栖博,而且測試階段處于開發(fā)階段結(jié)束之后的一個相對獨立的階段屑宠,測試結(jié)束之后發(fā)布產(chǎn)品到產(chǎn)品環(huán)境〕鹑茫基本流程如下:

瀑布式QA流程

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

敏捷QA流程

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

敏捷QA流程

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

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

上面兩種開發(fā)模式下,QA的重點都是放在發(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ù)量異常的情況進行監(jiān)控抵碟,將能及時發(fā)現(xiàn)bug,并且比較容易在損失發(fā)生之前及時阻止產(chǎn)生更嚴重的后果坏匪。這就是產(chǎn)品環(huán)境下的QA內(nèi)容之一拟逮!

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

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

1. 真實适滓、不可破壞

產(chǎn)品環(huán)境都是真實用戶在使用敦迄,是真正的支持企業(yè)業(yè)務(wù)運轉(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)境由于是真實業(yè)務(wù)線上的系統(tǒng)哥蔚,對安全性和穩(wěn)定性要求更高,服務(wù)器的通常不是所有QA可以隨便訪問的蛛蒙,這種訪問受限的情況對于產(chǎn)品環(huán)境的一些缺陷的排查帶來了很大的不便糙箍。

7. 真實的用戶反饋

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

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

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

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

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

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

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

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

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

  • 阻止不良后果铃拇,避免大的損失:前面提到的葡萄酒訂購系統(tǒng)就是一個很好的例子;
  • 發(fā)現(xiàn)潛在的性能問題:通過對日志進行分析沈撞,可能發(fā)現(xiàn)還沒暴露出來的性能問題慷荔,提前修復(fù);
  • 指導(dǎo)類產(chǎn)品環(huán)境的測試:通過產(chǎn)品環(huán)境下日志的分析缠俺,可以看出哪些功能易出什么樣的錯誤显晶,從而相應(yīng)調(diào)整測試策略,加強類產(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è)重點,指導(dǎo)類產(chǎn)品環(huán)境的測試凡泣;根據(jù)用戶行為習(xí)慣等信息枉疼,還可以幫助優(yōu)化產(chǎn)品業(yè)務(wù)價值皮假。

二、用戶反饋

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

用戶反饋
缺陷

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

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

抱怨

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

建議

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

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

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

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

  1. 跟DEV一起討論監(jiān)控標準焚辅,把日志標準化的要求融入到軟件開發(fā)流程中映屋,確保日志能夠記錄到真正需要記錄的信息苟鸯。
  2. 跟運維團隊一起分析收集到的統(tǒng)計數(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在項目上的實踐

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

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

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

Splunk日志分析

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

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

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

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

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

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

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

4. 日志記錄標準化

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

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

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

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

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

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

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

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

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

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

QA測試路徑

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

用戶使用路徑

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

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

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

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

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

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

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

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

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

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

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

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

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

用戶反饋的收集和分析

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

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

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

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

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

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

幫助重現(xiàn)和調(diào)查用戶反饋過來的產(chǎn)品環(huán)境Bug亏镰,并負責(zé)跟蹤修復(fù)和驗證;對于難以重現(xiàn)的問題拯爽,則添加日志監(jiā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有什么特點

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

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

2. 不能獨立存在

產(chǎn)品環(huán)境下的QA所設(shè)置的監(jiān)控標準是根據(jù)系統(tǒng)的行為特點和在類產(chǎn)品環(huán)境下的表現(xiàn)來定義的纤泵,產(chǎn)品環(huán)境下各項反饋的分析結(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團隊可以做的事情嗎?還要QA參與干什么公荧?那是因為QA有著獨特的思維模式和視角带射,QA的參與能夠幫助更好的分析產(chǎn)品環(huán)境下收集到的各種反饋,并且結(jié)合對于系統(tǒng)的了解循狰,能夠?qū)⑦@些反饋更好的應(yīng)用到日常的開發(fā)工作中窟社。

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

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

可能有人會覺得產(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)境進行一系列的監(jiān)控和數(shù)據(jù)收集咏雌,從系統(tǒng)功能凡怎、性能、易用性等多個方面進行優(yōu)化赊抖,從而最終優(yōu)化業(yè)務(wù)價值统倒。因此,兩者是不同的氛雪。

總結(jié)

  • 產(chǎn)品環(huán)境下的QA將QA的工作范圍擴大到從需求到產(chǎn)品環(huán)境房匆,增加了更多的反饋來源,跟持續(xù)交付結(jié)合报亩,可以幫助持續(xù)提高產(chǎn)品質(zhì)量浴鸿、持續(xù)優(yōu)化業(yè)務(wù)價值。
  • 產(chǎn)品環(huán)境下的QA給QA的工具箱添加了更多的工具弦追,提供了更多評估和提高系統(tǒng)質(zhì)量的選項岳链,是QA們值得深入研究的話題。
  • 產(chǎn)品環(huán)境下的QA不能走的太遠劲件,必須先做好類產(chǎn)品環(huán)境的質(zhì)量保證掸哑,并且僅適用于持續(xù)交付實踐的比較好的組織,如果連類產(chǎn)品環(huán)境的質(zhì)量保證都做不好寇仓,而就想著去做產(chǎn)品環(huán)境下的QA举户,那只能是舍本逐末、事倍功半遍烦。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俭嘁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子服猪,更是在濱河造成了極大的恐慌供填,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罢猪,死亡現(xiàn)場離奇詭異近她,居然都是意外死亡,警方通過查閱死者的電腦和手機膳帕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門粘捎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人危彩,你說我怎么就攤上這事攒磨。” “怎么了汤徽?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵娩缰,是天一觀的道長。 經(jīng)常有香客問我谒府,道長拼坎,這世上最難降的妖魔是什么浮毯? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮泰鸡,結(jié)果婚禮上债蓝,老公的妹妹穿的比我還像新娘。我一直安慰自己鸟顺,他們只是感情好惦蚊,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讯嫂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兆沙。 梳的紋絲不亂的頭發(fā)上欧芽,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音葛圃,去河邊找鬼千扔。 笑死,一個胖子當(dāng)著我的面吹牛库正,可吹牛的內(nèi)容都是我干的曲楚。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼褥符,長吁一口氣:“原來是場噩夢啊……” “哼龙誊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起喷楣,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤趟大,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后铣焊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逊朽,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年曲伊,在試婚紗的時候發(fā)現(xiàn)自己被綠了叽讳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡坟募,死狀恐怖岛蚤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情婿屹,我是刑警寧澤灭美,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站昂利,受9級特大地震影響届腐,放射性物質(zhì)發(fā)生泄漏铁坎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一犁苏、第九天 我趴在偏房一處隱蔽的房頂上張望硬萍。 院中可真熱鬧,春花似錦围详、人聲如沸朴乖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽买羞。三九已至,卻和暖如春雹食,著一層夾襖步出監(jiān)牢的瞬間畜普,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工群叶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吃挑,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓街立,卻偏偏與公主長得像舶衬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赎离,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

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