曾經有一個樂隊在他們的演出條款中明確的寫道:演出前,承辦方必須提供巧克力豆,但絕對不許出現棕色豆;如有違反,樂隊立即取消演出 。
相信不少的同學在看到這個條款的時候第一反應都是,搞藝術的人怪癖真多?。。?
真相是,多年后,這個樂隊的主唱范·海倫在自傳中揭曉這一霸王條款的來由:”樂隊怎樣檢測承辦方的重視程度?這似乎很難!而把棕色巧克力豆的條款夾在合同里軟件測試需要的技能,就是確認承辦方是否認真閱讀了所有條款的一個辦法!在合同中巧妙’布雷’,如果承辦方不幸中招兒,那就沒得談!”事實上 , 這一條款出臺后 , 樂隊再沒有為安全問題傷過腦筋 。
上述這種Event 的方式放在互聯網應用中,俗稱就是”埋點” 。
從IT開發的角度出發,當應用系統(網站、App等)投入運營后,在做用戶行為分析的時候需要去挖掘核心業務功能使用情況時,往往會需要在應用的代碼中添加一些額外的代碼來采集數據 , 這就是所謂的”埋點” 。包括訪問數() , 訪客數(),停留時長(Time On Site),頁面瀏覽數(Page Views)和跳出率( Rate)等 。
這樣的信息收集可以大致分為三大類目標數據:
1、行為數據:時間、地點、人物、交互、交互的內容;
2、質量數據:瀏覽器加載情況、錯誤異常等;
3、環境數據:瀏覽器相關的元數據以及地理、運營商等;
埋點的方法除了在產品研發的時候直接在程序里嵌入代碼統計搭建自己的平臺以供查詢以外,也有利用第三方統計工具(如友盟、神策、、谷歌的 等) 。但是不管哪一種埋點方式也不管哪一種埋點機理 , 在數據埋點以后還需要做的非常關鍵的一件事情就是埋點測試,從測試人員的角度來看,更準確一點的說法為”埋點數據的測試” 。
以下為網上盛傳的知乎埋點測試的流程圖 , 從圖中可以看出測試人員主要是依據埋點需求進行數據的測試,也就是通常我們說的而非 。
知乎埋點測試流程.jpg
埋點數據的注意事項
埋點數據的一致性:埋點數據的值需要注意客戶端和服務端的一致性,包括編碼格式、大小寫、全角半角、發送時機等 。
編碼格式:埋點數據的值為中文時,尤其要注意編碼格式 。為了避免服務端解析數據出錯,一般情況下,客戶端需要對發出的數據進行編碼格式轉化;
大小寫:埋點數據的值在命名時要和服務端數據組同步命名規則 , 尤其是大小寫;
全角半角:埋點數據的值為英文時,常常容易忽略全角半角的輸入方式,有時候會因此產生無法接收的錯誤;
數據格式:埋點數據的數據格式在定義時要簡單明了 , 尤其是非實時數據的發送機制,發出的數據量大且同一條埋點發出好多 , 需要整合;
發送時機:埋點數據發送往往是一個公共功能,且發送時機一般情況下分為兩種:實時和非實時 。因此將數據發送功能作為一個單獨的模塊存在,其他功能調用即可,避免所有模塊在發送時各自處理,增加測試成本;
埋點數據的命名規則:埋點數據的規范化命名規則有利于數據的閱讀和查看,比如頁面點擊的就用Page開頭,區域的用Label開頭作為前綴;
在規范化埋點數據的一致性后,還需要針對埋點數據的正確性進行檢驗 。埋點數據又可以分為四個類型:展現類、點擊類、狀態類和計數類 。
展現類的埋點 。最關鍵的在于避免重復統計 。比如在某寶搜索”華為手機”時,當用戶輸入了”華為手機”和”華為”出來的效果幾乎是一樣的,失去了統計的意義 。
點擊類的埋點 。關鍵在于避免服務器超時的情況下連續點擊導致的重復統計 。
狀態類埋點 。關鍵在于避免統計默認狀態 。并且狀態類埋點統計的一定是最終的狀態 。例如,由開切換到關,那么最后發出的狀態數據一定是關閉的狀態 。
計數類埋點 。關鍵在于避免遺漏 。一般情況下 , 非實時發送的計數埋點容易出現遺漏情況,因為涉及到數據庫的讀寫 。因此在測試時要格外留意 。
因此,大家可以看出埋點數據的正確性更多的是需要在埋點設計的前期就對需求進行正確性、合理性的考慮,埋點數據的一致性更多體現在實現的技術上對數據一致性的校驗 。
另外 , 還有一些特別的注意事項:
網頁緩存:對于web頁面的埋點統計,要考慮到web頁緩存的問題 。例如,資訊詳情頁有停留時長的統計,當進入資訊詳情頁時開始計時統計,不在該頁面時結束統計,那么此時我們就要考慮到在前后臺相互切換時是否存在多發的情況,之前瀏覽器遇到的問題就是將緩存頁的時長頁做了統計一并發送到了服務器 。
網絡環境:當網絡特別差的時候,客戶端發送埋點失敗 , 這種情況下應該將發送失敗的數據保存在本地,等下次條件滿足的時候一并發出 。避免出現丟掉數據的情況 。
覆蓋安裝:產品升級之后,升級之前的埋點不能被刪除掉軟件測試需要的技能,應該保存在本地,待升級之后滿足條件一并發出 。
服務端壓力:數據發送有實時和非實時兩種,當實時數據量特別大時容易給服務器造成壓力,因此在測試時要特別留意 。
舉一個小例子,拿經常使用埋點的移動端平臺來說,比如我們需要查看平臺的埋點是否有效時,前提準備是有平臺的ddms環境(可以使用,或者直接使用 sdk里帶的)和埋點字段表(這是開發埋點的依據,以及產品分析的標準)
測試方法為:
1、調起之后,連接移動設備
2、設置的,填寫包名即可
3、取已埋點的安裝包并且輸出app埋點的日志
4、查看埋點字段表,執行對應有埋點的操作
比如埋點字段表中,需要監測的埋點為點擊首頁中的”下一步”時
埋點字段表
5、進入手機上的app,點擊 下一步
6、查看ddms的,即可看到操作的日志,如圖所示:
的日志
檢查埋點是否正確,出現錯誤的情況一般是:
a)漏埋點
b)埋點和操作類型不對應,比如點擊的是”下一步”,卻上報了”返回”
c)埋點和操作頻率不對應 , 比如只操作了一次,卻上報了兩次
關于埋點測試也可以做自動化的考慮,知乎,阿里等公司都出了對應于自己公司的埋點自動化測試工具 , 后續同學們要有興趣也可以繼續的八一八 。
以上是關于埋點測試的一些歸納總結和思考,若有做埋點測試的同學也歡迎大家一起來討論和分享 。
【軟件測試你不知道的技術干貨:埋點測試技能秒Get!】本文到此結束,希望對大家有所幫助 。
- 軟件測試工程師需具備哪些崗位技能
- 軟件測試實用技術與常用模板——自動化回歸測試實訓
- 成都軟件測試培訓哪家好?軟件測試需要學什么?
- 自學軟件測試需要掌握哪些技術?
- 輕松看片,必修教你打造最強個人多媒體平臺
- 分享8個相對受眾較少的網站,你還怕找不到好的網站利器?
- 如果你媽媽從小偏向兒子,房財都給兒子,讓女兒白養,你會怎么做?
- 你如果掌握了這35條教育常識,教育孩子從此不再苦惱
- “人的一生,做好兩件事:教育好孩子、照顧好自己”。你怎么看?
- ?德國 地鐵「科普關于德國地鐵你不知道的事」
