生活随笔
收集整理的這篇文章主要介紹了
《移动APP测试实战》学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言: ?很久沒有交學習作業了,上一篇博客居然在國慶節前。其實最近一直在學習移動APP測試,包括搭建AndroidStudio的開發環境,學習移動APP測試工具,但由于項目變化的原因,一直不能專心地來小結。
總的來說,讀完很有收獲。個人收獲較大的是:1、ch5輔助測試中的接口Mock,AOP,有些新的理念上的觸動,暴露平時接觸測試理論太淺薄,另外工具整合能力差許多;2、ch6的內容,以及ch7的開發自測。這兩個合在一起;3、ch4的一些具體內容。 其他一些零零碎碎的倒是基本有經驗。但是許多工具還需要在實際項目中用。 ?
下面是每章的內容和收獲:偏Android,關于iOS的暫時不準備涉及。另外,后面對一些工具進行使用和評估,具體的再寫。
第一章:研發流程。
這方面個人經驗比較豐富。移動互聯網的特色是在開發和測試之間,有個體驗階段。
第二章:功能測試自動化。
主要是基于JMeter的接口自動化。配合其中的一些環境設置、腳本嵌入等。以前主要是用到JMeter做性能測試,不如LR好用。
UIAutomatorViewer,獲取APP中對象的ID。配合自動化測試框架Appium的使用。
第三章:性能測試。
1)Web前端性能測試:web頁面,可以配合HttpWatch及WebPageSpeed,PageSpeed(Google Chrome)等各大瀏覽器自帶的分析器。
2)App端性能測試: 內存-.hprof文件分析;webview渲染性能--通過Logcat分析;其他常見性能如耗電、啟動時間、流量等放在了專項測試。
3)后臺服務性能測試:類似常規的網站的壓力測試,JMeter就可以。AB(ApacheBench)也可以用來測試Http連接數。
第四章:專項測試。
這個貌似重點內容。
1)兼容性測試。其實主要是真機平臺的問題,其實用各大云測平臺(Testin、百度MTC)很不錯。作者推薦自己錄制編寫腳本(例如robotium),云平臺測試的方式。其實和UI自動化測試有些關聯。
2)流量測試。a,系統自帶的,讀取文件解析就可以。 ?b,編碼,通過系統API來獲取。c,直接外部抓包估計--Fiddler。
3)電量測試。 ?a,電表;b,電池監控器 GSam Battery Monitor Pro。
4)弱網絡測試。a,iOS自帶的開發者選項“Network link conditioner”;b,基于代理的弱網絡模擬。windows下面的Network Delay Simulator; Mac下的Network Link Simulator。內置了3G,2G,Wifi等不同場景,當然也可以設置。 這個是以前沒有怎么接觸的。
5)穩定性測試。 a,基于Monkey的隨機操作。這個前面有一些了解,通過adb命令,可以控制APP,次數,幾類事件的百分比。b,MonkeyRunner的使用。可以通過腳本來控制事件類型。 c)穩定性測試后讀取ANR日志文件。 d)模糊測試的方法。 FuzzingTest。作者使用Sulley框架。通過腳本對可變異的和不可變異的內容進行設置,這個后面有必要嘗試。可變異的內容進行多次隨機化。
6)安全測試。
6.1)安裝包測試。 dex2jar進行反編譯、簽名、完整性校驗。通過manifest文件,檢查權限設置 。
6.2)敏感信息測試。數據庫、日志 、配置文件有沒有敏感詞,明文密碼、cookie信息等。
6.3)軟鍵盤劫持。-檢查是否支持第三方輸入法。 ?
6.4)賬戶安全。密碼明文存儲、傳輸;賬戶鎖定策略;同時會話通知;注銷機制。 ?
6.5)數據通信安全。
6.6)組件安全。一般是使用drozer。
6.7)服務器端。 如SQL注入。跨站腳本攻擊XSS。CSRF跨站請求偽造。越權訪問。 這些都是常規的,可以用滲透測試工具Appscan、Fortify。和專門的工具。
7)環境相關的測試。 a、干擾測試。來電、短信、通知、電量低、告警等。 b、權限測試。一方面檢查授權;一方面檢查不給予授權的情況。 c、邊界情況。 如存儲滿、電量低、飛行模式、系統時間有誤、第三方依賴(調用第三方應用失敗)等。
8)定位測試。
第五章:輔助測試方法
1、代碼靜態掃描。開源的如FindBugs、Lint。以插件方式工作。 例外工作中用到一些商用的,Klocwork,Coverity等。
2、代碼覆蓋率分析。例如jacoco(主流),emma。工作中使用商用的Vectorcast,Jtest。
3、接口Mock。 a,直接修改后臺server;b,搭建測試Server; C,在數據返回的途中截獲并修改。Fiddler可以提供AutoResponder來實現。 作者提供基于FiddlerCore二次開發的Mock工具。(改善了加密的響應不能匹配和篡改的問題)
4、AOP測試方法。 Aspect Oriented Programming。 前面基本沒有接觸過。 AspectJ是java下面實現AOP的一個框架。
第6章 發布過程中的質量管理
1、持續集成。jenkis 。這個久聞大名,沒有接觸過。 持續集成和發布平臺的一些要求。
2、內測。不同對象應提供不同版本。本部門;其他部門;外部粉絲等應區別。
3、灰度測試。 白名單--比例控制(最簡單就是ID篩選)--根據設定邏輯篩選---基于功能維度的灰度等不同策略。
第7章 質量的度量和推動
這個其實Bug管理系統就搞定。主流的基本都用過了,感覺開源的簡潔的Bugfree就可以滿足一般的需要的。
開發自測,設計走查,產品走查。值得說的,還是開發自測這個。通過提供測試用例集給開發,并對Bug區分:不能發現,使用即應發現,運行提供的自測用例集應發現的不同手段。
第8章 發布之后的質量管理
交叉測試,線上監控。 監控如何埋點是關鍵。其實也算是一種可測試性設計要求。
問題的收集和反饋,這些都是必須的。
總結
以上是生活随笔為你收集整理的《移动APP测试实战》学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。