软件测试流程(完整版)
單純從功能測試層面上來講的話,APP測試、web測試在流程和功能測試上是沒有區別的
根據兩者載體不一樣,則區別如下:
1.系統結構方面
web項目:b/s架構,基于瀏覽器的;web測試只要更新來服務器端,客戶端就會同步更新
app項目:c/s架構,必須要有客戶端;app修改來服務端,則客戶端用戶所有核心版本都需要進行回歸測試一遍。
2.性能方面
web項目 需監測 響應時間,CPU、Memory
app項目 除了監測 響應時間,CPU、Memory外,還需監測瀏覽,電量等。
3.兼容方面
web項目
1.瀏覽器(火狐、谷歌、IE等)
2.操作系統(Windows7、Windows10、Linux等)
app項目:
1.設備系統:iOS(iPad、iPhone)、Android(三星、華為、聯想等)、Windows(Win7、Win8)、OS X(Mac)
2.手機設備可根據 手機型號、分辨率不同
4. 相對于Web項目,app有專項測試
1.干擾測試:中斷,來電,短信,關機,重啟等
2.弱網絡測試(模擬2g、3g、4g,wifi網絡狀態以及丟包情況);網絡切換測試(網絡斷開后重連,3g切換到4g/wifi等)
5. 安裝、更新、卸載
安裝:需要考慮安裝時的中斷、弱網、安裝后刪除安裝文件等情況
卸載:需考慮卸載后是否刪除app相關的文件
更新:分強制更新,非強制更新,增包更新,斷點續傳,弱網狀態下更新
6.測試工具方面
自動化工具:APP一般使用Appium;Web一般使用Selenium
性能測試工具:APP一般使用Jmeter;Web一般使用LR Jmeter
7. 界面操作
關于手機端測試,需要注意手勢,橫豎屏切換,多點觸控,前后臺切換
8. 安全測試
安裝包是否可以編譯代碼,安裝包是否簽名,權限設置,例如訪問通訊錄等
9. 邊界測試
可用存儲空間少,沒有SD卡/雙SD卡,飛行模式,系統時間有誤,第三方依賴(QQ,微信登錄)等
10. 權限測試
設置某個app是否可以獲取權限,例如是否可訪問通訊錄,相冊照相機等
一、 注冊
以等價類劃分和邊界值法來分析
二、 登錄
三、修改密碼
四、添加
五、刪除
六、 查詢
精確查詢:
模糊查詢:
在精確查詢的基礎上加上以下一點:
8. 輸入一些字符,看是否查出數據庫中所有相關信息
功能測試自動化
性能測試
網絡抓包工具:Wireshark
網頁文件大小
webpage test
pagespeed insight
chrome adb
Android內存占用分析:MAT
iOS內存問題分析:ARC模式
Android WebView性能分析
iOS WebView性能分析
負載,壓力,耐久性,可擴展性,基準
工具:apacheAB,Jmeter,LoadRunner
兼容性測試
手工測試:操作系統,分辨率,rom,網絡類型
云平臺:testin,腳本編寫,Android
流量測試
Android自帶流量管理
iOS自帶的Network
tcpdump抓包
Wi-Fi代理抓包:Fidder
流量節省方法:壓縮數據,json優于xml;Webp優于傳統的JPG,PNG;控制訪問的頻次;只獲取必要的數據,緩存;
電量測試
基于測試設備的方法,購買電量表進行測試
GSam Battery Monitoe Pro
IOS基于Instrument Energy工具
弱網絡測試
手機自帶的網絡狀態模擬工具
基于代理的弱網絡的模擬
工具:Windows;network delay simulator
Mac:network link conditioner
分析
隨著手機應用不斷狀態,同一款產品的移動端應用市場占相較PC端也越來越大,那么app與pc端針對這些產品的測試有什么相同之處與不同之處呢?
總結如下:
相同之處
一、針對同一個系統功能的測試,三端所測試的業務六月初是一樣的
二、一般情況下手機端和PC端都對應一套后臺服務,比如說某公司所開發的互聯網金融平臺,整個平臺做了分布式服務架構,后臺服務包括用戶服務,交易服務,產品服務,PC和手機端測試以上三個流程時,調用的都是同一個后臺服務。
(注:也有一些功能,比如PC與手機端展示不一致,或者有什么特殊處理,這樣情況下后臺會寫兩套不同的接口來處理對應的業務需求)
不同之處
一、 測試平臺(容器)不同:
pc項目都是在電腦上進行測試的:常見的PC項目架構有BS架構和CS架構(server),后臺返回的到相應內容顯示在瀏覽器上,常見BS架構的項目比如QQ,微信等,需要在電腦下載客戶端(client),客戶端與后臺服務器(server)進行數據傳輸交互,基于以上信息,PC端測試都是在電腦上,要么是在瀏覽器上測試要么安裝對應客戶端,平臺都是電腦
app測試平臺分為安卓和iOS端:安卓測試需要在安卓手機上安裝開發提供的apk測試包,iOS測試需要將手機UUID提供給開發安裝ipa測試包進行測試
H5測試就是測試HMTL5頁面:在PC或者手機瀏覽器都可以直接訪問H5頁面
二、兼容性測試不同
基于以上測試平臺的不同,三端的兼容性也不一樣
PC的兼容性主要包括各個瀏覽器和不同操作系統,目前筆者所經歷的公司主要測試了不同主流版本瀏覽器的兼容性,還未涉及操作系統層面
APP的兼容性包含安卓和iOS不同機型,不同版本,不同屏幕都要適配
H5的兼容性主要測試手機端的不同瀏覽器的兼容性
三、系統架構不一樣
PC和H5端項目尤其是WEB項目對應一個后臺服務,所有客戶訪問的都是同一個后臺。上線測試時,直接訪問線上地址測試即可
APP測試雖然對應一個后臺,但是不同的用戶可一下載了不同版本的客戶端,上線測試時,需要兼容每個版本的測試。
四、發布流程不同:
PC端每次更新發布,需要將測試通過的包退換線上包,重啟服務后立即生效,訪問的就是最新的環境
H5由于是一些html5網站發布上線后無需重啟即可訪問
APP端需要向應用市場發布,安卓發布的市場有很多,應用寶,豌豆莢,應用商店等每個應用都需要單獨審核;iOS端應用比較單一就是app store。從提交,審核發到發布會有幾天的時間間隔,開發的應用包不會立即發布。
五、專項測試
除以上不同外,app端還有一些專項測試
性能方面:響應時間,流量測試和耗電量測試
安裝測試(PC端web項目不用測試,CS架構的也需要考慮)
交叉測試:就是在操作某個軟件的時候,來電話,來短信,電量不足提示等外部事件
操作類型:手勢測試,橫豎屏
網絡測試:包含弱網和網絡切換測試,重點要考慮回退和刷新是否會造成二次提交,弱網絡的模擬,據說可以用360Wi-Fi實現設置。
升級測試:升級測試的提醒機制,升級取消是否影響原有功能的使用,升級后用戶數據是否被清除了
六、啟動
app端:需要制定desired_caps內容,因為里面包含了設備信息等
web端:通過啟動webdriver不同的瀏覽器類,獲取driver,如webdriver.Chrome(),也可以模擬手機端加載wap頁面做wap頁面測試
七、關于元素的屬性
app端:查找到元素以后,查看元素對象,發現里邊基本上只有元素的text屬性,也沒有相關方法修改,這個區別還是很大的,不過appium有set_value的方法,目前還沒有嘗試,用的還是send_keys().
web端:web端簡直就是人間天堂,比起修改,讀取元素屬性,比如我要獲取input標簽的name,我可以用get_attribute方法,也可以自行寫js代碼改變這些屬性。
八、使用JS
app端:似乎是支持了,但是執行任何命令server端都會提示404的錯誤。
web端:支持非常好,因為本身Js就是負責網頁交互的,所以會很方便
九、關于滑動
app端:關于滑動是會用很多的,比如頁面很長,或者打開通知欄,這種需要在屏幕上滑動的,用到的還比較多。
web端:用到的比較少,之前基本上沒有用到過。
十、異常
app端:需要注意的是其他apk給你帶來的影響,目前沒有找到很好的方式去處理這些問題,因為其他apk給你做了彈窗,比如qq異地登陸,或者短信這種推送,會影響到目前的流程。辦法肯定是解決的,我個人理解,可以在出錯之后對比一下是否在當前apk,如果不再的話則進入當前apk再做一次相關操作。
web端:很少影響,可以邊跑用例邊聊QQ,當然我只是舉個例子,總之個人體會就是影響比較小,因為瀏覽器的driver完全只是控制瀏覽器,別的地方和它無關。
軟件測試流程
制定測試策略
首先測試策略,當用戶提出新的需求時,測試人員應該和開發人員一起做測試需求分析,一般我們都會通過會議的形式去進行討論分析,這樣測試人員會對測試需要有個大概的了解,需要是干什么的,包括哪些功能等等,而不至于什么都不清楚不了解。
制定測試計劃
大概了解需求內容之后,要對整個測試進行預期評估,包括計劃要測試哪些方面的功能,要計劃分配哪些人員參與到測試中,哪些人負責哪個模塊,以及按照交叉測試的方法,同時還要計劃要測試的開始和結束時間,便于掌握這個測試進展等等。
編寫測試用例
測試計劃規范之后,則是進行測試用例的編寫,測試用例的編寫,主要圍繞界面模塊而展開,如界面包括哪些按鈕,按鈕操作是否可以正常進行,其次圍繞功能來設計,然后根據不同的場景來設計,對于測試過程中,出現的缺陷問題,要在將缺陷問題記錄到測試用例“測試結果”一列,便于查找測試項測試任務情況。
形成測試報告
測試用例執行之后,對于測試過程中發現的缺陷問題,要匯報自己的測試情況并且測試中的缺陷反饋到測試工具中,便于開發人員解決,對于安排的不同模塊的負責人在測試自己對應模塊任務時,也要及時匯報自己的測試工作進度,便于測試小組掌握測試的整個進度。
測試總結及文檔編寫
按照測試用例執行完所有的測試任務,且開發人員修復完來所有的bug問題(不包含一些難以修復但不緊急的問題)測試人員需要編寫針對本次項目的測試總結,要在總結中說明,測試計劃是否按照如期執行,總測試缺陷數據多少,測試覆蓋了多少等等。
同時文檔人員要針對本次項目開發新增加的功能進行項目“升級日志”和“幫助手冊”任務的編寫,便于用戶了解并能夠快速上手使用新增的功能。
web測試常見的測試場景
下面從頁面,頁面元素,功能,提示信息,容錯性,權限,鍵盤操作部分講述常見的測試點。
1. 頁面部分
2. 頁面元素部分
3. 功能部分
4. 提示信息
5. 容錯性
6. 權限部分
7. 鍵盤操作
問題:什么是性能測試,什么是負載測試,什么是壓力測試?
參考答案:
性能測試:性能測試是和功能測試相對應的,根據用戶場景進行的單個用戶操作,是屬于功能測試領域,主要是驗證軟件是否可以滿足用戶的功能需求,比如,單個用戶使用系統,系統各項功能是否滿足用戶的需求。
如果把這一個用戶的操作放大,變為100個,1000個,10000個用戶同時操作軟件,驗證軟件系統是否滿足用戶需求,那么這個就是軟件性能測試。通常使用性能測試工具對軟件開展并發的訪問,同時監控系統各項指標,比如CPU,內存,網絡,磁盤等關鍵部件的使用情況,性能測試是負載測試,壓力測試,并發測試的統稱。
負載測試: 通過逐步加壓的方式類確定系統的處理能力,確定系統能承受的各項閥值。
壓力測試: 逐步增加負載,使系統某些資源達到飽和、極限甚至失效的測試,目的是用來發現系統的軟件業務處理能力,系統硬件的極限處理能力等。
網站作為一款web端軟件,是測試小伙伴們測試產品的重要組成部分,拿到一個網站,不知道怎么測試?那么按照下面10大安全問題依次尋找。
性能測試這種測試方式在發生的過程中,其中一個過渡性的工作,就是對執行過程中的問題,進行定位,對功能的定位,對負載的定位,最重要的,當然是問題中說的“瓶頸”,接觸性能測試不深,更非專家,自己的理解,瓶頸產生在以下幾方面:
懷疑內存不足時:
方法一:
【監控指標】:Memory Available Mbytes, Memory的Pages/sec, page read/sec, Page Fault/sec
【參考值】:如果 Page Reads/Sec比率持續保持為5 ,表示可能內存不足。
Page/Sec推薦00-20(如果服務器沒有足夠的內存處理器工作負荷,此數值將一直很高,如果大于80,表示有問題)
方法二:
根據Physical Disk 值分析性能瓶頸
【監控指標】:Memory Available MBytes ,Pages read/sec,%Disk Time 和 Avg.Disk Queue Length
【參考值】:%Disk Time建議閾值90%
當內存不足時,有點進程會轉移到硬盤上去運行,造成性能急劇下降,而且一個缺少內存的系統常常表現出很高的CPU利用率,因為它需要不斷的掃描內存,將內存中的頁面移到硬盤上。
懷疑內存泄漏時
【監控指標】:Memory Available MBytes ,Process\Private Bytes和Process\Working Set,PhysicalDisk/%Disk Time
【說明】:
Windows資源監控中,如果Process\Private Bytes計數器和Process\Working Set計數器的值在長時間內持續升高,同時Memory\Available bytes計數器的值持續降低,則很可能存在內存泄漏,內存泄漏應該通過一個長時間的,用來研究分析當所有內存耗盡時,應用程序反應情況的測試來檢驗。
常見的問題是不安全的密鑰生成和儲存、不輪換密鑰和使用弱算法。使用弱的或者不帶salt的哈希算法來保護密碼也很普遍。外部攻擊者因訪問的局限性很難探測這種漏洞,他們通常必須首先破解其他東西以獲得需要的訪問。
在身份驗證過程中沒有用SSL/TLS,因此暴露傳輸數據和會話ID,被攻擊者截聽,或使用過期或者配置不正確的證書。
用戶登錄提示信息會給攻擊者一些有用的信息,作為程序的開發人員應該做到對登錄提示信息的模糊化,以防攻擊者利用登錄得知用戶是否存在
程序員在代碼中沒有對重復提交請求做限制,這樣就會出現訂單被多次下單,帖子被重復發布,惡意攻擊者可能利用此漏洞對網站進行批量灌水,致使網站癱瘓
訪問者所使用的瀏覽器不能完全支持 頁面里的腳本,形成“腳本錯誤”,也就是網站中的腳本沒有被成功執行,遇到“腳本錯誤”時,一般會彈出一個非常難看的腳本運行錯誤警告窗口
H5如何測試?
它跟安卓APP與iOS App有什么樣的區別呢?
&我們以往的app是使用原生態系統內核的,相當于直接在系統上操作,是我們傳統意義上的軟件,更加穩定
& H5的app先得調用系統的瀏覽器內核,相當于是在網頁中進行操作,較原生app穩定性稍差,似乎還沒有百萬級用戶量的H5app
&H5最大的優點是可以跨平臺,開發容易,app的話需要用android的語言和iOS的語言各自寫,H5只要開發一套
&簡單來說:H5是基于web,native基于客戶端
H5測試應該從哪些方面考慮?
除基本的功能測試之外,H5頁面的測試,需要關注以下幾點:
1.1登陸
目前H5與native各個客戶端都做來互通,所以大家在測試的時候要注意兩點:
a)若客戶端已登錄,那么進入H5后仍然是登錄狀態
b)若客戶端未登錄,進入H5,點擊對應按鈕OR鏈接
如果需要登錄,須拉起native登錄;
若取消登錄,是否可再次拉起登錄,或者停留在頁面是否有對應的登錄提示。
1.2翻頁
遇到翻頁加載的頁面,需要注意內容為1頁或者多頁的情況;
a)數據分頁加載時,注意后續頁面請求數據的正確
ps:這個需要注意在快操作場景中,請求頁數是不是依次遞增,快速操作。
(如第一頁尚未loading出來的時候仍然繼續上拉操作)時是否發出對應的請求了。
1.3刷新與返回
A、下拉刷新是否仍然處于當前頁面
B、用戶主動點擊刷新按鈕是否仍然處于當前頁面
C、點擊返回與back鍵,回退頁面是否是期望頁面
總結
以上是生活随笔為你收集整理的软件测试流程(完整版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P3165 [CQOI2014]排序机械
- 下一篇: 利用CVE-2019-1040 - 结合