Web測試轉App測試不看不知道

2020-12-16 紙鶴視界

Web測試

Web通常指的是網際網路應用系統,比如稅務電子化徵管檔案系統、金融數據平臺、餐飲商家管理後臺等等,其實質是C/S的程序。

C是Client——客戶端,S是Server——伺服器。

Web中的客戶端一般指的是Browser——瀏覽器,也就是B/S。

Web系統有三層結構 == 表示層 + 業務層 + 數據層。

MVC軟體設計模式也是三層 == 模型 + 視圖 + 控制器。

它們的對應關係如下,不完全準確,簡單意會意會即可,

測試的一個重要思路是,了解被測對象的架構,Web系統典型架構如圖所示,

這個圖很重要,多看幾秒!想想這些問題,

我測試覆蓋的是哪些地方?

有哪些環節是漏掉的?

瀏覽器從請求到響應,這個過程是怎樣一個鏈路?

測試難點

Web測試,不僅僅是頁面的點點點。

面對這樣複雜的系統,如何保障質量,使系統健康的、長期的、穩定的運行,是測試的難點。

業務複雜度本身就是難點,而且這是測試核心中的核心。

安全、性能的評估,也是一個棘手的難點。

網站用戶的能力,包括瀏覽器、作業系統、設備、網絡帶寬都可能是參差不齊。

網絡中斷,或弱網情況下,網站的表現。

網站本身的應用日誌、系統資源、冷熱數據。

引入的第三方程序的質量,雖然可以直接用,但仍需做黑盒測試。

國際化差異,如語言、時差、貨幣兌換。

你要考慮的不是一個點,也不是一個面,而是一個整體。

表示層

表示層的測試對象包括了,

UI(User Interface)用戶界面UE(User Experience)用戶體驗UED(User-Experience Design)用戶體驗設計簡而言之就是,系統的外觀和感覺。

更專業具體點,就是整體審美、字體、連結跳轉、圖形解析度和大小、色彩、拼寫檢查、文字語法和風格、光標位置、選中默認按鈕、交互操作體驗友好、商業特定術語和風格、確認框、瀏覽器版本、作業系統配置等。

表示層的測試主要以人工為主,部分測試也可以通過工具完成,如無效連結檢測。

業務層

業務層包括內部業務和外部服務,內部業務和外部服務都需要經過測試。

內部業務就是實實在在的業務,每個公司的業務都有差異。

業務測試是貫穿於測試周期自始始終的。

最開始測試考慮的是業務,測試結束考慮的也還是業務。

業務層測試是用到測試用例設計方法最多的,包括等價類劃分、邊界值、判定表、因果分析、場景法等。

同時也需要做性能測試,考察響應時間、吞吐率等性能指標。

毫不誇張的說,無業務,不測試!

數據層

數據層主要幹的事就是讀寫數據。

數據層的數據既包括系統自產的,也包括從用戶收集來的數據。

數據是存放在資料庫伺服器裡邊的,包括RDBMS、NoSQL。

數據模型定義了數據層接口和數據存儲方式。

數據可以直接使用,但往往是經過了ETL對數據進行加工。

數據層的測試是有一些門檻的,但一些隱藏的bug就藏在這一層。

首先需要測試的是數據存儲的正確,其次需要測試冗餘數據的清理,還有數據狀態的變化。

資料庫的性能,sql的耗時,數據量大小,數據冷熱。

資料庫的數據類型,長度、精度、字符集、日期時間格式、時區等。

資料庫的安全,數據加密和安全性。

還有資料庫的魯棒性,故障處理,備份恢復能力,最大化MTBF,最小化MTTR。

App測試

網絡

App測試還是從架構入手,先看看App的典型的無線運營商網絡架構,

行動網路,是App區別於Web應用的重要差異。

行動網路的通信協議並不是基於IP的,而通常是一種基於射頻的協議。

如,

CDMA(Code Division Multiple Access)碼分多址TDMA(Time Division Multiple Access)時分多址GSM(Global System for Mobile)全球移動通信系統4G (the 4th generation mobile communication technology)第四代移動通信技術很多運營商都使用某種代碼轉換器或Web代理來進行行動裝置與網際網路的通信。但是因為競爭的關係,運營商一般不會披露這些細節。他們可能會「偷偷」幹這些事,

將數據轉換成WAP或HTTP支持的格式壓縮數據為了更快地傳輸和提高吞吐量數據傳輸加密和隱私保護屏蔽一些佔用過高帶寬的站點從網頁中抽取HTML頭信息和其他元數據以供程序使用WAP,是指Wireless Application Protocal,無線應用協議,已經過時。

現在大多數都使用HTTP協議了。

正是由於行動網路的存在,以及不同使用場景下網絡狀態的不穩定,在測App時,需要做弱網測試。

弱網包括無網(斷網)、弱網(2G 3G 4G)、網絡切換。

設備

App測試和Web測試,另外一個明顯的區別就是,行動裝置非常豐富。

不同的機型。不同的屏幕。不同的版本。不同的系統。不同的CPU內存。不同的瀏覽器。不同的配置。

App是To C的,也就意味著使用環境無法統一控制,是千差萬別的。

這對測試來說是很大的挑戰,以至於有漫畫調侃,高級測試工程師,可以轉行賣手機了!

不過好在有模擬器,有雲測平臺,減少了測試設備兼容性的成本。

模擬器也不是銀彈,不能替代真機,所以App必須在真機上面跑過才算ok。

真機和模擬器,各有利弊,需要做必要的權衡。

可以先用模擬器完成大量測試,最後使用真機做驗收。

用真機測試還需要注意的一個小問題就是,測試用例設計的儘量有效,不然每一次重複測試,就很可能在燃燒你的經費。

測試方法

App測試和Web測試有很多共同的地方,尤其是業務層和數據層。

不過由於網絡和設備等因素,讓App測試也有一些特殊的場景,

電子商務術語

B2B、B2C、C2C、O2O是電子商務的4種模式。

B2B,Business to Business,企業對企業,如經銷商銷貨給超市。

B2C,Business to Customer,企業對個人,如超市賣東西。

C2C,Customer to Customer,個人對個人,如擺地攤。

O2O,Online to Offline,線上到線下,如網上點個豆漿早餐到肯德基取。

B端-->企業端。

C端-->個人端。

G端-->政府端。

參考資料

——《軟體測試的藝術》

專注測試,堅持原創,只做精品。歡迎關注公眾號『東方er』

相關焦點

  • 必須知道的App測試和Web測試的區別
    隨著移動網際網路的極速發展,移動應用更是呈指數增長,在app測試方面更是需求大漲,已經完全超過以往web測試,今天就簡單說說兩者的區別,希望對測試攻城獅們有幫助。相同點不管是傳統行業的web測試,還是新興的手機app測試,都離不開測試的基礎知識,即是不管怎麼變,測試的原理依然會融入在這兩者當中。
  • Web測試和APP測試有什麼區別?
    testkuaibao | 自學軟體測試公眾號    不管是傳統行業的web測試,還是app測試,都離不開測試的基礎知識,
  • Web安全測試你知道多少
    數據驗證類型: 如果web server端提交sql語句時,不對提交的sql語句驗證,那麼一個黑客就可暗喜了。他可將提交的sql語句分割,後面加一個delete all或drop database的之類語句,能將你的資料庫內容刪個精光!我這一招還沒實驗在internet網站上,不知這樣的網站有沒有,有多少個。反正我負責的那個web系統曾經發現這樣的問題。
  • [上海] 米哈遊招測試開發工程師、遊戲測試工程師、web/app 測試工程師
    那個男人鎮樓~測試開發工程師崗位描述1、負責業務系統的測試工作,改進現有測試中的不足;2、負責自動化用例建設,提升項目測試自動化程度;3、負責測試相關工具或平臺開發,提升測試效率及平臺化程度有較強的遊戲操作能力,對遊戲有獨到的見解和敏銳的觀察力;9、具備遊戲行業經驗優先25-50K * 16+ 行業內大佬不設上限WEB/APP測試崗位職責:1、根據分配的測試任務和提供的測試文檔,參加需求評審、用例編寫、測試計劃規劃、測試項目進度跟進、bug追蹤等內容;2、測試過程發現的缺陷在缺陷工具上提交缺陷報告、並及對修正的缺陷進行處理
  • App測試流程及資料合集
    緣於太多同學諮詢老徐APP測試的問題,回答的次數太多了就不想回答了so,今天老徐特意整理了這份資料希望各位同學好好收藏、好好吸收、變成自己理解的內容,能夠應用到實際工作中;老徐只分享一次,不重複分享~提醒:文章略長,耐心看,或者先收藏,隨時查看/ 1
  • 移動App測試中的最佳做法
    而對於移動測試,測試員不得不基於用戶移動使用模式考慮移動相關的功能。     投入iPhone, Android, Windows  Phone 7的移動apps和移動web  apps。在XING移動團隊的日常工作以及與其他移動測試專家交流的過程中,我深刻了解了移動測試工作的困難。漸漸地,我明確了什麼是幫助改進同事們和 我的測試工作並為用戶提供更高質量app的移動最佳做法。
  • 【松勤軟體測試基礎】APP常見測試點總結
    b.第三方雲測試的解決方法。c.整理不兼容的地方,然後去分析app總可能不兼容的代碼。對技術能力的要求比較高,前期也需要花費不少的時間。d.利用友盟等第三方統計平臺獲得應用對應的TOP N 的記性重點進行測試。8.客戶端側性能測試偏重客戶端側CPU、MEM、流量、電量以及客戶端在不同網絡環境下響應速度等等。
  • 如何測試一個web網站?有哪些測試點?
    最近有工作了一年多的朋友在問我,一個web頁面到底怎麼測試?我的第一感覺是震驚,天天做web測試,咋還不知道怎麼測試呢?再仔細一想,可能是我們每天忙於測試而忽略測試導致的,畢竟當局者迷,旁觀者清。下面就說一下,該從哪些角度測試一個web網站,希望給同樣不知所措的你一點提示:UI用戶界面測試,主要檢測前端頁面展示效果的,測試點參考如下:各頁面的風格是否統一各頁面的大小是否一致;同樣的LOGO圖片在各個頁面中顯示是否大小一致;頁面及圖片是否居中顯示 、各頁面的title是否正確欄目名稱、文章內容等處的文字是否正確
  • 不只是移動 App 應用測試方法,還有測試思路……
    分析三種主流的移動 App 類型,並給出和普通web測試不同的地方,給出測試的思路,並給出部分場景組合。而且相對應的兼容性測試工具也不相同,WEB因為是測試兼容瀏覽器,所以需要使用不同的瀏覽器進行兼容性測試(常見的是兼容IE6,IE8,chrome,firefox)如果是手機端,那麼就需要兼容不同品牌,不同解析度,不同android版本甚至不同作業系統的兼容。
  • Web Service接口測試
    Web service 接口測試一. web Service概念Web service使用與平臺和程式語言無關的方式進行通訊的一項技術, web service 是一個接口, 他描述了一組可以在網絡上通過標準的XML消息傳遞訪問的操作,它基於xml語言協議來描述要執行的操作或者要與另外一個web 服務交換數據, 一組以web服務在面向服務體系結構中定義的web
  • Html5 App 測試方法總結
    實際上是Web app的一種,在測試過程中可以延續Web App測試的部分方法,同時兼顧手機端的一些特性即可,下面幫大家總結下Html5 app 相關測試方法!兼容性測試前文提到PC  web因為無法兼容IE6.7.8。
  • 關於面試總結13-app測試面試題
    前言現在面試個測試崗位,都是要求全能的,web、接口、app啥都要會測,那麼APP測試一般需要哪些技能呢?
  • 【推薦】移動App測試中的最佳做法
    本文是基於我的工作經驗而寫的。作為一名敏捷軟體開發團隊的軟體質量保證經理,我一心投入iPhone, Android, Windows Phone 7的移動apps和移動web apps。在XING移動團隊的日常工作以及與其他移動測試專家交流的過程中,我深刻了解了移動測試工作的困難。漸漸地,我明確了什麼是幫助改進同事們和我的測試工作並為用戶提供更高質量app的移動最佳做法。
  • 移動APP自動化測試框架對比
    它安裝了一個測試用例套件作為在Android設備或仿真器上的應用程式,並提供用於執行測試的真實環境。優點:容易在最短的時間內編寫測試腳本,易用性高。自動跟隨當前activity。由於運行時綁定到GUI組件,所以相比Appium,它的測試執行更快,更強大。不訪問代碼或不了解app實現,也可以工作。
  • APP常見測試點總結!速速收藏學習
    b.第三方雲測試的解決方法。c.整理不兼容的地方,然後去分析app中可能不兼容的代碼。對技術能力的要求比較高,前期也需要花費不少的時間。d.利用友盟等第三方統計平臺獲得應用對應的TOP N 的記性重點進行測試。
  • 使用pytest-xdist實現分布式APP自動化測試
    不知道大家有沒有遇到這樣一種情況,實際工作中,app自動化測試的用例可能是成百上千條的,如果放在一臺機器上跑,消耗的時間非常久,那能不能使用分布式的來跑測試用例呢?一般來說對於web自動化測試,使用多核CPU來做分布式比較合適,但對於app自動化測試來說,使用多臺機器做分布式比較合適。這裡主要介紹後者pytest-xdist是工作方式是一個master對應多個worker,每個worker會按照master的要求來執行各自的測試集。
  • 17道APP測試面試題分享帶參考答案
    參考答案:數據——》從哪裡來(入口)——》到哪裡去(出口)——》資料庫(檢驗數據的正確性)2、你認為app測試過程中,相對於web,要更多注意哪些測試點?或者說app測試和web測試有哪些不同之處?參考答案:比如fiddler,主要用來做app抓包使用,先在fiddler客戶端做好各項配置,埠設置為8888,然後在手機上設置代理,就可以抓包了,主要看的是伺服器返回的值、還能夠修改傳入參數、傳出的參數、模擬網絡延時,去構造不同場景。
  • 使用 Macaca 測試 Electron 桌面 App
    Macaca 交付過程分析為了使 Macaca 有測試 Electron 的能力,回顧之前試驗的方案 selenmiu-webdriver ,其方式是:傳遞 chromeDriver 9515服務埠,啟動該埠建立連接,傳遞 binary 參數,指明 app 的路徑,傳遞 forBrowser 參數,指明平臺類型,所以現在思考的問題是,Macaca 是否通過傳遞同樣的參數能實現?
  • APP缺陷測試
    再用run app.activity.start --component com.xxxx com.fxxx.mm.module.activity.LoadingActivity這條語句 去嘗試每一個activity 看是否存在拒絕服務攻擊
  • 自動化測試基礎知識,你知道的不知道的都在這裡!
    備註:測試不需要對軟體所有功能進行測試,比如很多軟體的幫助。特徵模擬人工操作:軟體替代人工操作、對界面進行操作。2)手工測試的質量更高:因為手工測試可以發現更多計劃外的缺陷。3)自動化測試與開發更貼近:因為自動化測試需要編寫程序代碼。4)兩者各自的局限性:手工測試相比較而言工作效率低、容易情緒化導致工作內容不穩定;自動化測則不能像人一樣思考。