當前位置:
首頁 > 知識 > 互聯網巨頭們在測試介面中泄露的商業機密

互聯網巨頭們在測試介面中泄露的商業機密

這是關於現代測試架構和方法系列文章的第一部分。第二部分可以在這裡找到。

現今,多數大中型企業以用戶為基礎進行A/B測試和新功能的實驗。這是檢測某個功能能否長期有效並且獲取變化影響的可觀察指標的好方法。

我想探索一些大公司的測試方法,以及是否存在潛在的機密信息泄露。這些測試在實現時通常是獨立的 - 由於近期單頁應用程序的增長和關注點的分離,他們依靠前端或客戶端來區分測試,而非在服務端進行這些操作。

實際上,這意味著許多公司都擁有定義其測試架構的私有API路由。用戶通過客戶端發送請求,服務端將予以回復,通常包含公司正在運行的所有測試的列表。下面將探討一些最受歡迎的網站是如何做到這一點的。

Lyft

當您在Web客戶端上登錄Lyft時,其中的一個網路請求是https://www.lyft.com/api/experiments/configurations。

請求成功後,將返回180kb大小的JSON對象,其中包括正在運行的測試以及用戶的當前狀態。

互聯網巨頭們在測試介面中泄露的商業機密

Lyft測試路徑

上圖是返回結果,由於信息量巨大,我們先關注一些有趣的內容。

這裡有兩個關鍵點 - assignment和variables。每個分配似乎都帶有測試 - 每個關鍵詞都有一個預定義的組。大概內容如下:

  • Control
  • Static
  • Treatment
  • Variant_#(其中#代表接返回結果的變數)

此外,大量的測試都以Justin或Micha為前綴 - 我不確定這些是內部測試工具還是員工在測試前加上他們的名字。

儘管一些測試名稱非常莫名其妙(exodus ETE test2: "control", MichaTntTest_e89f281d-53bb-4b2b-b1b9-f28a840bb75b: "treatment",並且EliuTest可能意味著什麼),但是那些正常的名稱可以讓我們對Lyft當前正在研究的方向窺探一二。這些都是基於名稱中的關鍵詞推測的,但足夠讓我們做出一些推斷。

  • PPTacticalPriceSFOV4 - SFO的戰略定價 - 他們將定價與SFO區分開來。Airport在他們的測試名稱中非常常見。
  • PXCPaxSREarlyArrival5minWaitFromAcceptV2值為"300s_from_accept" - 司機在接單後應該等待多長時間?
  • PXCPaxCancelFrictionAcceptanceEmpathy - 當取消乘坐時,他們可能改變措辭來修改用戶行為,並降低取消率。

下一個關鍵詞,variables,似乎是用戶配置文件上的布爾設置。目前有61個(!!)類別的變數。

它們表示乘客和司機的狀態,並提供了很多關於Lyft認為你是什麼的見解。一些關鍵詞可以檢查您是否被排除在某些促銷活動之外,是否濫用系統,以及將您指定為Lyft員工/管理員/的布爾值。其中最為有趣的內容如下:

  • lastmile.enableIncentiveZones - 對我來說,不會使用這個功能。它可能表示司機常去的人口密集的地區,或者用於特殊用戶的激勵區。
  • lastmile.userLegacyMap - 他們使用不同的地圖嗎?他們可以從谷歌地圖切換嗎?
  • payments.allow_amex_on_fd - 基於其他關鍵詞,fd表示第一個數據。這對我來說是錯誤的 - 也許他們沒有首先顯示美國運通,因為他們的交換費用更高,所以他們更喜歡乘客/司機使用Visa/萬事達卡?
  • payment.intuitAffiliateCode - 對我來說,這個值是lyftplat18。也許這是intuit的促銷碼?現在是稅收階段,所以也許他們正準備在Intuit的TurboTax上建立合作夥伴關係?
  • pricing.tpa - TPA的全部款項,似乎代表「戰術價格調整」; 他們清楚地意識到人們在Uber和Lyft之間的每次乘車對比,他們有不同的層級和價值觀,可能只是勉強擊敗他們的競爭對手。
  • api.lnHasStrictEarlyCancelFee - 對我來說,不會使用這個功能。我猜測這是用來杜絕司機接單後,乘客又隨意取消訂單的行為。
  • cancels - 帶有predictorEnabled關鍵詞的「預測」的全部款項。例如,我的賬號pxcPaxNoShowTa1kPredictor是0.52,pxcPaxNoShowTa1kPredictorBkn是0.66。這可能是某人沒有出現的可能性?我通常非常尊重我的司機,但在他們出現之前幾乎總是我需要的地方,所以我不確定0.52是52%還是衡量其他指標。
  • enterprise.businessRewardsMapBanner - Uber剛剛宣布了獎勵措施。也許他們正在為某個商業版做準備,即當企業客戶將它們用於乘車時會有獎勵?
  • publicapi.ridetypes.courier.features.supportsWalking - Uber最近推出了「Express Pool」,您可以步行一小段距離以換取更便宜的價格。也許Lyft正在嘗試相同的方法?
  • service.venues.snap_to_destination_vegas_enabled - 很多地點都提到了特定的地方。其中一個關鍵詞是MacArthurBARTEnabled- 東灣的BART站之一!
  • ProjectX - 這是最有趣的關鍵字之一。我問了Lyft的一位朋友,他說這代表近期重構代碼的名稱!

Lyft的結尾似乎也很少清理或過濾 - 如下是variables中的部分代碼:

互聯網巨頭們在測試介面中泄露的商業機密

互聯網巨頭們在測試介面中泄露的商業機密

總的來說,通過查看測試名稱,我們可以收集到很多關於Lyft當前的策略信息。一個有趣的測試是設置像Burp Suite這樣的變數並將其從false替換為true,反之亦然,看看你是否能夠解鎖應用程序中任何隱藏的面板。

以上內容不到測試總數的10% - 我邀請您在這裡查看完整的內容,並且和我交流您的發現吧!

接下來我將從移動應用程序攔截這個測試,這將包括更多的信息,您可以在這裡查看。

其中一個最有趣的內容:

  • vars.client.autonomous - Lyft似乎正在試驗自動駕駛。例如console_far_stops由Lyft Level 5 HQ和Caltrain AV Stop組成,這似乎是Caltrain自動駕駛汽車站。

vars.client中有1,449個關鍵詞 - 這並不包括variables中正在運行的162個測試,或holdout_variants中的44個。Lyft正在進行大量的測試!

您可以在此處查看所有信息並自己進行分析。

Airbnb

Airbnb的iOS應用程序發出請求https://api.airbnb.com/v2/mario_experiments?client=ios。

首先需要注意客戶端有一個URL參數,請求成功後將返回一個大小約為33kb的JSON對象。如果切換為android版,返回的對象大小為44kb - 顯然在Android上運行著更多測試。

返回結果的獲取:iOS版,Android版。

Airbnb使用的測試框架似乎是Mario。每個測試用例都遵循相同的格式:

互聯網巨頭們在測試介面中泄露的商業機密

我們無需對上述內容進行猜測 - 對於每個測試,關鍵詞都給出了明確的描述。

他們大多數的測試都圍繞著推薦和支持。似乎沒有什麼暗示未來發展方向的內容 - 大部分是推薦的不同表達,不同的按鈕位置以及聊天系統的各種變化。

Airbnb也對https://api.airbnb.com/v2/client_configs - 儘管這看起來沒什麼測試而更多的是普通的應用程序配置,但是也存在一些有趣的內容。

一些客戶端配置如下:

互聯網巨頭們在測試介面中泄露的商業機密

其中又很多內容指向中國 - 似乎Airbnb目前的主要焦點是亞洲市場的擴張。

完整的客戶端配置可以在這裡找到。那裡有大量的測試 - experiments_assignments類別中有923個。

應用程序的現有模塊似乎有許多新的版本,例如"new_quick_pay","new_guest_inbox"和"new_verifications_profile_completion",其中很多還未處於「已啟動」狀態。

另外,我在Airbnb的工作區曾說「Google的軟體工程師」- 但是現在改為「軟體工程師(隱藏於Airbnb)」,並且如果我嘗試讓其再次說「Google」,HTTP PATCH 請求將回復:

互聯網巨頭們在測試介面中泄露的商業機密

他們不斷地用「(由Airbnb隱藏)」取代「Google」- 我猜想這是他們試圖阻止用戶說出「谷歌我的名字直接和我聯繫以規避支付Airbnb的費用」,或者他們只是與谷歌有一些不和,想限制員工使用該應用程序。

Pinterest

Pinterest目前正在進行我見過的最全面的測試之一。在初始載入應用程序時,它會發出請求https://api.pinterest.com/v3/users/me/。它返回了完整的用戶對象,以及gatekeeper_experiments。

完整的測試列表在這裡。目前活躍的有823個。其中一些有趣的內容如下:

  • ios_skin_tone_filter - 您現在可以通過膚色篩選化妝產品!
  • ios_use_cases_board_ideas_quiz - 在不同的板上測驗?
  • activation_male_topic_image_replacement - 性別內容差異化?

互聯網巨頭們在測試介面中泄露的商業機密

Burp Suite攔截Pinterest API調用

Reddit

Reddit在過去的一年裡一直進行巨大的改變 - reddit的重構對公司來說是一個很大的改變,他們的領導層似乎試圖將reddit變成一個社交媒體應用程序。在載入應用程序時,它會請求https://gateway.reddit.com/redditmobile/1/ios/config。此配置包含當前啟用的所有測試用例。完整的回復內容可以在這裡找到。

他們目前有19個「桶」,每個都對應著相應的「測試」。

很多都與內容發現以及reddit推薦有關,例如best_of_community_carousel和trending_users_carousel。

這為他們推動基於用戶和公司的關注,而不是特定的subreddits提供了信任。

Slack

Slack有大量的測試在進行。

載入應用程序後,將有3條請求路徑。

  • https://slack.com/api/experiments.getEZFeatures
  • https://slack.com/api/experiments.getByUser
  • https://slack.com/api/experiments.getByVisitor

它們都遵循類似的格式,如下所示:

互聯網巨頭們在測試介面中泄露的商業機密

其中很多都包含"trigger":"finished",這可能暗示測試結束。

一些有趣的內容如下:

  • stripe_l3_data
  • unified_autocomplete
  • ios_poseidon
  • monetization_no_flannel_login

Amazon

在啟動Amazon iOS版本的應用程序後,會發出請求https://msh.amazon.com/mwl/assignments/v2 - 對於每個"Assignments"將返回一個對象。完整的內容可以在這裡找到。

下面是一些有趣的內容。

互聯網巨頭們在測試介面中泄露的商業機密

亞馬遜似乎在投資AR,可以在購物之前通過增強現實查看物品。

互聯網巨頭們在測試介面中泄露的商業機密

亞馬遜根據你提供的照片創建照片集?

儘管其他測試看起來相當無趣,但是還有很多內容可以查看。

Tinder

由於用戶態度的轉變,約會類型的應用程序成為AB測試的一種有趣的選擇。約會類型的應用程序或許比大多數的其他網站具有更深遠的影響。

可惜的是,我沒有看到任何類似Tinder幕後測試的內容。有很多功能標誌,例如是否啟用了Tinder Groups,是否啟用了Tinder Places,或者你是否是"Tinder Elite"的成員,即為名人設計的Tinder計劃。

雖然我無法找到Tinder的測試路徑,但我確實想在此處提及。幾個月前,Tinder取消了查看用戶Ins的功能 - 您可以看到這些照片,但是無法鏈接到該賬戶。

事實證明他們並沒有更新API - 此API仍會返回所匹配的Ins,因此還是可以由此獲取相關信息。在網路客戶端覆蓋fetch來阻斷所有匹配,並且通過Chrome插件來展示Ins看起來微不足道。

示例配置文件如下。

互聯網巨頭們在測試介面中泄露的商業機密

互聯網巨頭們在測試介面中泄露的商業機密

Facebook and Instagram

當然,我也想看看Facebook和Instagram的情況。可惜他們做了SSL Stapling - 任何Burp Suite證書替換的嘗試都會失敗,並且不會顯示任何路由。然而,這並非絕對可靠 - 如果有越獄機,就可以顯示各種配置而無視管理員設置了。

可惜的是我只有一個12.1.4版本的iPhone XS Max,它沒有越獄。一旦實現越獄,我就可以通過替換iOS上默認的openssl實現來覆蓋TLS Stapling。這樣就可以查看所有採用SSL Stapling公司(如Snapchat,FB,Instagram等)的路由了。

總結

大多數公司沒有模糊或最小化他們的測試名稱,從而導致信息泄露。隨著時間的推移,潛在的危機可能會浮出水面——如果一個公司正在緩慢地迭代一個新功能,它可能給競爭對手帶來優勢。

這在業內很常見 - 幾乎每家公司都有用戶增長策略部門,他們會隱匿測試路徑。這使得弄清他們正在做什麼,並在多數技術服務的藍圖上做出有根據的猜測變得有點困難。

我未來想測試的公司是Snapchat,Ebay,所有Google產品和服務以及Linkedin。

這種方法將用於更多的應用程序和服務。如果您有興趣了解任何給定公司的測試方法,請隨時與我們聯繫。

英文原文:https://blog.jonlu.ca/posts/experiments-and-growth-hacking?ref=hackernews 譯者:我是昵稱耶~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python部落 的精彩文章:

ReportLab: 使用Python將圖表添加到PDF中
遠程訪問虛擬化應用 無需公網IP 這款軟體太強大了

TAG:Python部落 |