博客筆記_軟件測試基礎知識學習2

PC、APP、H5三端測試的相同與不同
隨着手機應用的不斷狀態,同一款產品的移動端應用市場佔相較PC端也越來越大,那麼app與PC端針對這些產品的測試有什麼相同與不同之處呢?筆者總結如下:
首先談一談相同之處。。。
一,針對同一個系統功能的測試,三端所測的業務流程是一樣的
二,一般情況下手機端和PC端都對應一套後臺服務,比如說筆者公司所開發的互聯網金融平臺,整個平臺做了分佈式服務架構,後臺服務包括用戶服務、交易服務、產品服務等。PC和手機端測試以上三個流程時,調用的都是同一個後臺服務。(注:也有一些功能,比如PC與手機端展示不一致,或者有什麼特殊處理,這樣情況下後臺會寫兩套不同的接口來處理對應的業務需求)

不同之處
一,測試平臺(容器)不同:
pc項目都是在電腦上進行測試的:常見的PC項目架構有BS架構和CS架構的,BS架構就是通過瀏覽器(browser)請求後臺服務(server),後臺返回到響應內容顯示在瀏覽器上,常見BS架構的項目有天貓、京東等瀏覽器輸入地址就可以訪問。CS架構的項目比如QQ、微信等,需要在電腦下載客戶端(client),客戶端與後臺服務器(server)進行數據傳輸交互。基於以上信息,PC端測試都是在電腦上,要麼是在瀏覽器上測試要麼安裝對應客戶端。平臺都是電腦
app測試平臺分爲安卓和IOS端:安卓測試需要在安卓手機上安裝開發提供的apk測試包;IOS測試需要將手機UUID提供給開發安裝ipa測試包進行測試
H5測試就是測試HTML5頁面:在PC或者手機瀏覽器都可以直接訪問H5頁面
二,兼容性測試不同:
基於以上測試平臺的不同,三端的兼容性也不一樣。
PC的兼容性主要包括各瀏覽器和不同操作系統,目前筆者所經歷的公司主要測試了不同主流版本瀏覽器的兼容性,還未涉及操作系統層面
APP的兼容性包含安卓和IOS不同機型,不同版本,不同屏幕都要適配
H5的兼容性主要測試手機端的不同瀏覽器的兼容性
三,系統架構不一樣
PC和H5端項目尤其是WEB項目對應一個後臺服務,所有客戶訪問的都是同一個後臺。上線測試時,直接訪問線上地址測試即可
APP測試雖然對應了一個後臺,但是不同的用戶可能下載了不同版本的客戶端,上線測試時,需要兼容每個版本的測試。
四,發佈流程不同:
PC端每次更新發布,需要將測試通過的包替換線上包,重啓服務後立刻生效,訪問的就是最新的環境
H5由於是一些html5網站發佈上線後無需重啓即可訪問
APP端需要嚮應用市場發佈,安卓發佈的市場有很多,應用寶、豌豆莢、應用商店等每個應用都需要單獨審覈;IOS端應用比較單一就是appstore。從提交、審覈到發佈會有幾天的時間間隔,開發的應用包不會立刻發佈。
五,專項測試
除以上不同外,app端還有一些專項測試:
性能方面:響應時間、流量測試和耗電量測試
安裝測試(PC端web項目不用測試,CS架構的也需要考慮)
交叉測試:就是在操作某個軟件的時候,來電話、來短信,電量不足提示等外部事件
操作類型:手勢測試、橫屏豎屏
網絡測試:包含弱網和網絡切換測試,重點要考慮回退和刷新是否會造成二次提交。弱網絡的模擬,據說可以用360wifi實現設置。
升級測試:升級測試的提醒機制,升級取消是否會影響原有功能的使用,升級後用戶數據是否被清除了
HTTPS和HTTP的區別主要如下:
  1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
  2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
  3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。
  4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
  二、下面是詳細的測試點:
需求測試: 查看電梯使用說明書、安全說明書等
界面測試: 查看電梯外觀
功能測試:
1.測試電梯能否實現正常的上升和下降功能。
2.電梯的按鈕是否都可以使用。
3.電梯門的打開,關閉是否正常。
4.報警裝置是否可用。
5.與其他電梯之間是否協作良好。
6.通風狀況如何。
7.突然停電時的情況。
8.上升途中的響應。
1)電梯本來在1樓,如果有人按18樓,那麼電梯在上升到5樓的時候,有人按了10樓,這時候是否會在10樓先停下來;
2)電梯下降到10層時顯示滿員,此時若8層有人等待電梯,是否在8層停。
9.是否有手機信號
可靠性:
1.門關上的一剎那出現障礙物。
2.同時按關門和開門按鈕。
3.點擊當前樓層號碼
4.多次點擊同一樓層號碼
5.同時按上鍵和下鍵
易用性:
電梯的按鈕的設計符合一般人的習慣嗎
用戶文檔:
使用手冊是否對電梯的用法、限制、使用條件等有詳細的描述
壓力測試:
1.看電梯的最大承重量,在負載過重時報警裝置是否有提醒
2.在一定時間內不斷讓電梯上升、下降
穩定性測試:
看電梯在最大負載下平穩運行的最長時間

  1. 啓動差別
    app端:在執行用例的時候,1部安卓手機同一時刻打開一個apk包,可以理解,因爲比如你在做王者榮耀的測試,那麼你的apk肯定只有1個在主屏幕顯示,其他apk在後臺繼續運行,但是你無法對他們做操作。
    web端:web端就不太一樣了,在web端,我們可以通過Python多線程(或多進程)同時開啓幾個瀏覽器,讓selenium對多個瀏覽器進行操作,同樣100個測試用例,如果均勻分佈在3個瀏覽器進行,那麼測試效率會有所提高,而且只需要一臺電腦就可以測試多種瀏覽器。
  2. 安裝檢查
    app端:這點感覺很像c/s架構軟件,因爲app是需要安裝了才能使用的,所以軟件是否安裝異常,也是需要檢查的一個點。
    web端:不需要安裝,在瀏覽器中輸入url就可以測試。
  3. 頁面元素操作
    app端:只會顯示在手機頁面里加載出來的部分,比方說有的頁面比較長,需要向下滑動才能看到更多信息,此時需要保證不可見的元素顯示在手機頁面才能對它進行操作。
    web端:不太一樣,如果控件不是下拉產生的異步加載,那麼我們是可以對屏幕內不可見的元素做操作的。因爲雖然頁面上沒有加載出來,但是html頁面實際上已經有了。如果遇到需要下拉才能加載的頁面,可以用js操作滾動條。
  4. 元素定位
    app端:基本操作和web端差不多,不過部分定位方式不支持,比如css_selector和link_text,使用的時候會提示方法還沒實現,也多出了accessible_id這種新的定位方式,不過目前我還沒有用到,以後再補充。
    web端:基礎的就name,id,class_name,css,xpath這幾種了。
  5. 啓動
    app端:需要制定desired_caps內容,因爲裏面包含了設備信息等。
    web端:通過啓動webdriver不同的瀏覽器類,獲取driver,如webdriver.Chrome(),也可以模擬手機端加載wap頁面做wap頁面的測試。
  6. 關於元素的屬性
    app端:查找到元素以後,查看元素對象,發現裏邊基本上只有元素的text屬性,也沒有相關的方法修改,這個區別還是很大的。不過appium有set_text和set_value的方法,目前還沒有嘗試,用的還是send_keys()。
    web端:web端簡直就是天堂了,比起修改,讀取元素屬性。比如我要獲取input標籤的name,我可以用get_attribute方法,也可以自行寫js代碼改變這些屬性。
  7. 使用js
    app端:似乎是支持了,但是執行任何命令server端都會提示404的錯誤。
    web端:支持非常好,因爲本身js就是負責網頁交互的,所以會很方便。
  8. 關於滑動
    app端:關於滑動是會用得很多的,比如頁面很長,或者打開通知欄,這種需要在屏幕上滑動的,用到的還比較多。
    web端:用到的比較少,之前基本上沒有用到過。
  9. 異常
    app端:需要注意的是其他apk給你帶來的影響,目前沒有找到很好的方式去處理這些問題,因爲其他apk給你做了彈窗,比如qq異地登陸,或者短信這種推送,會影響到目前的流程。辦法肯定是有解決的,我個人理解,可以在出錯之後比對一下是否在當前apk,如果不在的話則進入當前apk再做一次相關操作。
    web端:很少被影響,可以邊跑用例邊聊qq,當然我只是舉個例子,總之個人體會就是影響比較小,因爲瀏覽器的driver完全只是控制瀏覽器,別的地方和它無關。

現在一般公司的測試流程
1.制定測試策略
首先測試策略,當用戶提出新的需求時,測試人員應該和開發人員一起做測試需求分析,一般我們都會通過會議的形式去進行討論分析,這樣測試人員會對測試需要有個大概的瞭解,需要是幹什麼的,包括哪些功能等等,而不至於什麼都不清楚不瞭解。
2.制定測試計劃
大概瞭解需求內容之後,要對整個測試進行預期估算,包括計劃要測試哪些方面的功能,要計劃分配哪些人員參與到測試中,哪些人負責哪個模塊,以及按照交叉測試的方法,同時還要計劃要測試的開始和結束時間,便於掌控這個測試進展等等。
3.編寫測試用例
測試計劃規範之後,則是進行測試用例的編寫。測試用例的編寫,主要圍繞界面模塊而展開,如界面包括哪些按鈕,按鈕操作是否可以正常進行,其次圍繞功能來設計,然後根據不同的場景來設計。對於測試過程中,出現的缺陷問題,要在將缺陷問題記錄到測試用例“測試結果”一列,便於查看測試項測試任務情況。
4.形成測試報告
測試用例執行之後,對於測試過程中發現的缺陷問題,要彙報自己的測試情況並且測試中的缺陷反饋到測試工具中,便於開發人員解決。對於安排的不同模塊的負責人在測試自己對應模塊的任務時,也要及時的彙報自己的測試日工作進度,便於測試小組掌握測試的整個進度。
5.測試總結及文檔編寫
按照測試用例執行完所有的測試任務,且開發人員修復完了所有的bug問題(不包含一些難以修復但不緊急的問題,),測試人員需要編寫針對本次項目的測試總結,要在總結中說明,測試計劃是否按照如期進行。總測試缺陷數據多少,測試覆蓋了多少等等。  
同時文檔人員要針對本次項目開發新增加的功能進行項目“升級日誌”和“幫助手冊”任務的編寫。便於用戶瞭解並能夠快速上手使用新增加的功能。

Web測試是常見的測試場景,下面從頁面,頁面元素,功能,提示信息,容錯性,權限,鍵盤操作部分講述常見的測試點。
1.頁面部分
(1)頁面清單是否完整(是否已經將所需要的頁面全部列出來了)
(2)頁面是否顯示(在不同分辨率下頁面是否存在,在不同瀏覽器版本中頁面是否顯示)
(3)頁面在窗口中的顯示是否正確,美觀(在調整瀏覽器窗口大小時,屏幕刷新是否正確)
(4)頁面特殊效果(如特殊字體效果,動畫效果是否顯示)
(5)頁面特殊效果顯示是否正確
2.頁面元素部分
(1)頁面元素清單(爲實現功能,是否將所需要的元素全部都列出來了,如按鈕,單選框,複選框,列表框,輸入框等)
(2)元素是否顯示(元素是否存在)
(3)元素是否顯示正確(針對文字,圖形,簽章等)
(4)元素的外形,擺放位置是否合理(如按鈕,單選框,複選框,列表框,輸入框等)
(5)元素基本功能是否實現(如文字特效,動畫特效,按鈕,超鏈接等)
(6)元素的容錯性列表(如輸入框,時間列表或日曆)
(7)元素的容錯性是否正確或存在
3.功能部分
(1)數據初始化是否執行
(2)數據初始化是否正確
(3)數據處理功能是否執行或正確
(4)數據保存是否執行或正確
(5)是否對其他功能有影響
(6)如果影響其他功能,系統能否做出正確的反應
(7)對模塊的具體功能進行測試時可以列出功能模塊所有的功能,進行排列組合,測試所有情況
(8)查詢功能分2種–驗證操作結果,打開頁面時自動顯示結果,則不需要特別強調;需要手工操作進行查詢,則每次在其他功能完成後進行
4.提示信息
(1)成功,失敗提示
(2)操作結果失敗
(3)確認提示
(4)危險操作,重要操作提示
(5)返回頁面提示後顯示的頁面
5.容錯性
(1)爲空,非空
(2)唯一性
(3)字長,格式
(4)數字,郵編編碼,電話,電子郵件,ID號,密碼
(5)日期,時間
(6)特殊字符(對於數據庫),英文單詞,單雙引號
6.權限部分
(1)功能:指定用戶可以使用哪些功能,不能使用哪些功能
(2)數據:指定用戶可以處理哪些數據,不可以處理哪些數據
(3)操作:在邏輯關係上,操作前後順序,數據處理情況
(4)權限變化
7.鍵盤操作
(1)Tab鍵
(2)上下方向鍵
(3)Enter鍵
(4)系統設定快捷鍵

我培訓時,總結的一起分享,
Web與APP區別:

  1. web基於瀏覽器, app必須要有客戶端
  2. web關注響應時間,app還需要關注流量、電量、手機本身的硬件條件
  3. 兼容方面,web是瀏覽器兼容,選擇不同的瀏覽器內核,app是手機,有不同品牌,android和ios系統,還需要看屏幕分辨率、屏幕尺寸,和其它app之間的兼容
  4. 網絡環境,App還有不同網絡環境,2G、3G、4G、wifi、斷網
  5. 硬件環境,App還需考慮異常場景:中斷、關機、死機、重啓等
  6. 交叉事件,接聽電話、短信、郵件、其它操作
  7. App有橫屏和豎屏之分、溢屏、觸屏和手勢
  8. Web直接連接服務器,app的取值方式可能是服務器、接口或本地緩存
  9. 升級、更新,Web更新無提示,直接進入瀏覽器就是最新,app是需要自己進行更新才能獲取最新數據
  10. web登錄需要密碼,除非設置的記住密碼,App有免登錄功能
    標準區別:
    (1) 兼容性測試:web兼容各種版本瀏覽器,app兼容各種操作系統、手機型號、版本
    (2) 手勢:web沒有,app有手勢測試、功能鍵測試
    (3) 交叉事件和橫豎屏測試:app需要測試和其它app的兼容,與通話、短信之間的交叉
    (4) 安裝測試:web的bs架構,客戶端不需要安裝,手機app需要安裝測試
    (5) 更新:web一般更新服務端,app更新會對客戶端進行更新,需要對更新進行測試
    (6) 網絡:app需要測試網絡之間的切換,以及斷網情況下,不同的網絡類型對app是否有影響
    (7) 屏幕的限制:app需要關注不同的屏幕上傳的圖片,文字的顯示效果,是否會溢屏
    (8) 性能測試:web需要關注頁面的響應時間,app除了要考慮響應時間,還需要考慮到耗電量和流量消耗
    (9) 軟件的運行和啓動:移動端需要測試app的啓動,卸載和升級
    問題1.請描述什麼是性能測試、什麼是負載測試、什麼是壓力測試?
    參考答案:
    性能測試:性能測試是和功能測試相對應的。根據用戶場景進行的單個用戶操作,是屬於功能測試領域,主要是驗證軟件是否可以滿足用戶的功能需求。比如,單個用戶使用系統,系統各項功能是否滿足用戶的需求。
    如果把這1個用戶的操作放大,變爲100個,1000個,10000個用戶同時操作軟件,驗證軟件系統是否滿足用戶的需求。那麼這個就是軟件性能測試。通常使用性能測試工具對軟件開展併發的訪問,同時監控系統各項指標,比如CPU、內存、網絡、磁盤等關鍵部件的使用情況。目標是發現軟件在大用戶量的情況下,系統的工作情況。性能測試是負載測試、壓力測試、併發測試的統稱。
    負載測試:通過逐步加壓的方式來確定系統的處理能力,確定系統能承受的各項閥值。
    壓力測試:逐步增加負載,使系統某些資源達到飽、極限甚至失效的測試。目的是用來發現系統的軟件業務處理能力、系統硬件的極限處理能力等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章