qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          自由測試人Jarod的一天

            宇宙中心接任務
            上午10:05
            五道口漫咖啡,Jarod擺弄著新淘來的Nexus5手機,時而飲一口桌上的焦糖拿鐵,間或偷眼瞄一下鄰桌的長腿妹子。
            上午10:30
            Allison如約而至,開始為Jarod介紹本次任務,并演示本次任務的目標:對Android應用“探路者”進行性能評估。“探路者”是Allison所在公司的新研發的產品,既有給用戶展示的動態界面,也會常駐手機后臺。其核心業務模式是將位置信息上報云端,結合云端數據進行復雜的計算后,將計算結果返回給手機。“除了CPU的消耗,還有流量的消耗和GPS模塊的使用”,Jarod默默記下。
            由于“探路者”是Allison本次創業的關鍵,不容有失,但創業公司資源緊張,團隊中并沒有專門的終端測試專家,產品臨近發布,心里不免惴惴,于是便有了這次與Jarod的合作。
            Jarod現在是一名自由職業者,曾任職于世界知名IT企業的安全產品部門,有著豐富的軟硬件測試經驗和黑客經驗,如今五子登科,便早早主動退休,過起了養魚遛鳥的生活。閑來無事,Jarod也會偶爾從熟人圈子接些私活,與人方便,也順便瞞著夫人賺些零花錢,以維護經濟自由。
            上午11:15
            Allison交接了委托任務后先行離去,Jarod先簡單瀏覽了“探路者”的界面,把玩一番后,又開啟了核心的“隨行”功能,“隨行”功能是持續型功能,要在運動中才能看出效果,不過靜止的狀態也是要保證正常處理的。雖然Allison說過“探路者”已經通過了功能測試和用戶體驗,基本功能是沒問題的,但Jarod作為一個資深的測試者,懷疑一切是職業的第一信條,質量如何,一定要親身試過才知道。
            上午11:30
            Jarod判定“探路者”的基本功能正常,于是對“探路者”進行啟動狀態的基本性能評估。Jarod先將“探路者”退出,然后從測試工具GT中啟動“探路者”,啟動完成后回到GT界面查看,“探路者”的CPU占用在0%-2%波動,結合手機默認的調頻策略判斷比較正常,jiffes(CPU時間片)值累積在400多,內存PSS值穩定在36M,上行流量和下行流量都不到1K,無異常,數據存檔。再啟動電流監控觀察,1分鐘后平均電流是220mA,從數據變化曲線上看沒有連續的峰值和規律性波動,待后面長時間測試時綜合多項指標再分析吧。回到“探路者”界面,從GT的懸浮框中觀察,CPU占用在0%-5%波動,PSS值和上下行流量也沒有異常的增長,OK。

            一人一機一GT
            上午11:50
            Jarod完成“探路者”的啟動性能驗證,把采集的數據存檔備案后,開始場測(到產品的實際使用環境中測試)前的準備:清理了“探路者”的緩存,給手機充滿電并固化了亮度等設置,規劃好場測路線,順便吃午飯。40分鐘后,Jarod喝完最后一杯檸檬水,只帶上Nexus5,便奔香山去了。作為獨行的極客,Jarod追求極致簡約:MBA,mini機箱,無線鍵鼠,網線自然是見不得的,所以當Jarod遇到“GT隨身調”時,一種幸福感無可言狀,因為GT可以獨立完成手機的大部分性能指標的采集,以后場測時他不必再背著筆記本,不必再帶著電流計了。Jarod出門前計算了一下,本次任務的實測和數據采集,1人1機1GT足矣,充電寶也不帶了。
            下午12:45
            Jarod上了輛直達香山的311路,找了個座位坐下,先打開了GT的“月光寶盒”,再啟動“探路者”并切換到 “隨行”模式,接著使用GT對其進行性能監控,然后在GT的懸浮框中對CPU、PSS、流量值即時觀察。行進中,PSS逐漸躍升到90M穩定下來,觀察一會沒有明顯的內存泄露跡象,OK。但是“探路者”的CPU占用持續在25%~40%,這對主流的4核手機已經算是高消耗了。Jarod等了3分鐘看到CPU沒有下降的趨勢,于是進入GT界面,發現這幾分鐘的平均電流達到660mA。Jarod心里一緊,對Nexus5的2100mAh的電池來說,持續運行在“隨行”模式下的手機只能支撐3個小時,與“隨行”的目標續航5小時有不小差距。
            公交上忙碌的Jarod
            Jarod立即觀察流量,10分鐘的下行流量有110K,在沒抓包的情況看不出明顯的疑點。Jarod思考了一下,對著“隨行”界面上幾個按鈕試了試,其中有個點下去,屏幕上彈出“停止實時路況”的提示,再看平均電流,這回降到500mA。“先反饋上去,看看這塊邏輯能有多大的優化空間吧”。Jarod想。“即使開啟實時路況的耗電優化到550mA,續航時間能達到4小時,離目標還差1小時呢”。Jarod又開始盯著手機觀察“嗯,畫面的動畫倒是挺順滑的……咦?好像忽略了什么……會不會過于順滑了?”這個想法閃念而出,Jarod立即切到GT的界面,激活FPS(幀率)的監測,回到“隨行”界面觀察。從GT的懸浮框中,Jarod看到FPS的數字變換著:59,60,60,58,60,59,59,59……“果然如此,Allison他們并沒有給動畫做幀率上的限制,所以Android系統會盡可能的刷新UI畫面,達到上限60幀”。其實,從Jarod的經驗看,“隨行”功能并不需要這么高的幀率,即使把動畫刷新降低到30幀,普通用戶也不會感覺到有卡頓的。而降低幀率,最直接的好處就是減少耗電。
            Jarod立即記下:“建議1:在不影響動畫效果下降幀率。建議2:優化‘實時路況’的算法性能。”
            Jarod又持續的對“隨行”的性能數據進行了10分鐘的采集,確認沒有新的發現后,即保存了數據,進行第二個核心功能“潛行”的測試。“潛行”是“探路者”退到后臺或手機滅屏后,“探路者”仍然以語音提示的方式對用戶提供服務的模式。
            下午13:25
            Jarod開始“潛行”模式的測試,還是那些監測指標。順利的“潛行”了10分鐘后,Jarod看到沒有明顯異常,只是產生了140K的下行流量,比“隨行”模式還要多一些,而上行流量也達到70K,。雖然流量一般會根據環境的復雜變化出現較大波動,不過Jarod謹慎起見,還是決定上山測試“潛行”的時候,用GT抓個包回去分析一下。
            登頂香爐峰
            下午13:55
            Jarod到達香山,啟動抓包后,開始測試爬山中的“潛行”。五月的香山風景迤邐,涼風習習,Jarod工作兼怡情,暢快之余,不免健步如飛,四刻鐘后即抵達香爐峰。掏出手機,點亮屏幕一看,頓時傻眼,原來“探路者”不知何時已棄主crash于寶剎云間去了。“剛剛爬上香爐峰的時候,‘探路者’還語音提醒了啊……”,回想到這里,Jarod心中有所明悟。熟練的保存了抓包文件后,Jarod切換到GT的Logcat查看界面,立即把手機緩存的Logcat日志保存下來,然后開始回溯。所幸,在3分鐘前的位置發現了“探路者”crash的蹤跡。“有跡可循的crash都不會太難解決,又多了筆收獲”,Jarod心中盤算。
            下午15:10
            Jarod看到Nexus5的電量已不足30%了,便關閉了早先在GT上打開的“月光寶盒”準備下山。其實“月光寶盒”是一個記錄用戶移動軌跡的功能,利用它,Jarod完整的記錄了這次測試過程中的位置變化,后續若有回歸測試,在Android手機模擬GPS的模式下回放錄制好的移動軌跡,就不必再跑一趟香山了。
            下午16:15
            Jarod趕在大塞車之前回到家中,連上電腦分析抓包后,連同一天的測試數據一起整理了報告給Allison,Allison立即回復并預約了3天后進行回歸測試,Jarod表示接受挑戰。
            下午16:30
            算算時間孩子該放學,妻子也該串門回來,Jarod搖身一變回復了本職,開始準備一家3口的晚餐。

          posted on 2014-07-09 15:56 順其自然EVO 閱讀(199) 評論(0)  編輯  收藏 所屬分類: android

          <2014年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 方正县| 广西| 东兰县| 汤阴县| 正安县| 湟中县| 金堂县| 庆云县| 白银市| 息烽县| 泉州市| 广汉市| 教育| 驻马店市| 油尖旺区| 治县。| 昂仁县| 安徽省| 建宁县| 六盘水市| 桓仁| 虹口区| 开原市| 邳州市| 台东县| 沙坪坝区| 丹棱县| 吉首市| 临清市| 怀安县| 绍兴市| 长子县| 瑞丽市| 东方市| 凤台县| 江陵县| 松桃| 河东区| 新安县| 都兰县| 如皋市|