測試流程
- 你們項目組測試流程是什么?
(1)先從配置庫獲取需求文檔,參加需求評審
需求評審的參與者是全體項目組成員,包括產(chǎn)品經(jīng)理,項目經(jīng)理,開發(fā),測試。主要由產(chǎn)品經(jīng)理介紹本次項目的業(yè)務(wù)流程,并解決開發(fā)或測試提出的需求疑問。
(2)等需求明確以后,測試主管編寫測試計劃,分配測試任務(wù)
(3)測試人員針對自己負責的模塊準備測試用例,主要從獨立功能/業(yè)務(wù)場景/非功能3個方面準備用例
(4)編寫完用例后,進行用例評審,確保用例準備充分
(5)等待開發(fā)提測,部署項目,執(zhí)行測試,執(zhí)行測試時先對主流程進行冒煙測試,如果冒煙測試通過了,則按照獨立功能/業(yè)務(wù)場景/非功能順序進行測試,如果冒煙測試不通過,直接返給開發(fā),要求開發(fā)確保主流程測試通過再進行提測
(6)測試完后,將bug匯總提交到測試管理工具Jira上進行跟蹤管理,直到bug被關(guān)閉
(7)編寫測試報告,支持項目上線
功能分析
以你最熟悉的項目,說一下你是怎么測試的?
我測試的項目是iwebshop,項目是一個電商網(wǎng)站,主要用于購物。前臺功能主要包括登錄、注冊、搜索、立即購買、加入購物車等功能,后臺功能主要包括添加商品、修改商品、刪除商品、添加訂單、修改訂單、刪除訂單等功能。
我主要負責的模塊是商品和訂單模塊,商品模塊包括添加商品、修改商品、刪除商品等功能,訂單模塊包括添加訂單、修改訂單、刪除訂單等功能。
以修改訂單功能為例,首先明確需求,比如:修改商品價格的時候,價格是否可以為0;修改商品個數(shù)的時候,個數(shù)是否可以為0;不勾選是否需要發(fā)票復(fù)選框時,是否可以輸入稅金等等。明確需求后,準備測試點:首先看界面的默認數(shù)據(jù)是否正確,有沒有錯別字,界面上的按鈕是否正常,下拉框能否正常顯示。然后分析輸入項組成規(guī)則,及輸入項之間的關(guān)聯(lián)關(guān)系,準備測試數(shù)據(jù),比如商品價格的規(guī)則是正浮點數(shù),那么它的有效類就是正整數(shù)和正小數(shù),無效類就是負數(shù)、漢子、特殊字符、空。然后再分析數(shù)據(jù)庫中不可見數(shù)據(jù),比如訂單的創(chuàng)建時間,發(fā)貨時間等等。最后分析預(yù)期輸出結(jié)果,訂單修改成功了,前后臺查看訂單時都可以看到修改后的訂單,數(shù)據(jù)庫中的數(shù)據(jù)也會發(fā)生相應(yīng)的修改,如果訂單修改失敗,應(yīng)該提示相應(yīng)的錯誤。
為了保證測試用例的完整,除了上面的功能測試,我還進行了非功能測試,比如界面的兼容性測試,兼容到ie,firefox,chrome,還有界面的易用性測試,看界面設(shè)計是否美觀,是否符合用戶的操作習慣,界面的規(guī)則提示或者錯誤信息提示是否明確等。
在執(zhí)行測試用例的過程中,我發(fā)現(xiàn)的bug有修改商品價格的時候,價格可以改為0,商品的數(shù)量可以為負數(shù)、小數(shù),收貨地址省市縣,只選擇一個或者兩個可以提交成功等等。
項目整體 - 測試了幾個瀏覽器及版本?
Iwebshop測試了IE8-IE11,firefox43.0,chrome64.0 - 該項目你測試了幾個版本?
測試了4個版本,第一個版本經(jīng)歷了4個月上線的,每次迭代大概1-2周 - 項目周期多長時間?測試時間多長?
項目周期是4個月,測試了1個月 - 這個項目做了多長時間?幾個開發(fā)幾個測試?
項目做了4個月,8個開發(fā),3個測試 - 你們公司哪個部門負責上線?項目上線后還測嗎?
我們公司由運維部門負責上線,上線后還會進行隨機測試,重點測試主流程。
工具類 - 用過哪些測試管理工具?具體怎么用的?
(1)配置管理工具SVN
給同事要配置庫的地址,賬戶,密碼,在電腦桌面右擊SVN checkout,輸入地址,點擊確定,輸入賬號密碼。如果要新增文檔,在指定文件夾新建文檔,右擊TortoiseSVN,選擇add,右擊commit提交文檔,注意填寫備注;如果要更新版本資料,則右擊update;如果要刪除文件,則右擊TortoiseSVN,選擇delete;如果要比較兩個版本的差別,則右擊TortoiseSVN,選擇diff with previous version。
(2)測試管理工具Jira
a.測試人員進入系統(tǒng)將發(fā)現(xiàn)的bug提交到Jira上,并且分配給相應(yīng)的開發(fā)
點擊創(chuàng)建按鈕,填寫內(nèi)容:選擇項目、選擇問題類型、主題、描述、選擇優(yōu)先級、環(huán)境、附件(缺陷截圖)、經(jīng)辦人
b.開發(fā)看到這個bug后會打開bug,如果開發(fā)接受了bug,則進行修復(fù),修復(fù)完成后再分配給相應(yīng)的測試,測試人員對開發(fā)修復(fù)的bug進行復(fù)測,如果復(fù)測通過了,那么關(guān)閉bug,如果復(fù)測不通過,那么繼續(xù)分配給開發(fā),一直跟蹤到bug被關(guān)閉;如果開發(fā)不接受bug,那么我們首先要檢查自己的bug是否描述準確,再測試一遍確認是否為bug,這些都確認了以后還沒有與開發(fā)達成一致,那么就把bug反饋給測試主管,召開bug評審會,討論bug是否需要修復(fù)。
(3)用例管理工具Testlink
a. 創(chuàng)建新項目:第一次進到系統(tǒng)沒有項目時,先建項目,注意勾選啟用產(chǎn)品需求功能
b. 創(chuàng)建新用戶:點擊admin下面的小人按鈕,點擊create,填寫用戶名,密碼,郵箱,分配角色
c. 創(chuàng)建測試計劃:點擊測試計劃管理,填寫名稱,勾選活動,公共復(fù)選框,點擊 創(chuàng)建
d. 創(chuàng)建需求:在產(chǎn)品需求下,點擊產(chǎn)品需求規(guī)格,新建產(chǎn)品需求規(guī)格,添加產(chǎn)品需求信息
e. 創(chuàng)建用例集和用例:在測試用例下點擊編輯測試用例,點擊右側(cè)左上角小齒輪會出現(xiàn)綠色+號按鈕,點擊添加用例集信息,創(chuàng)建好后會在左側(cè)下方看到建好的用例集,雙擊打開,在右側(cè)點擊第二個綠色+號按鈕創(chuàng)建測試用例
f. 創(chuàng)建版本管理:在測試計劃下點擊版本管理,創(chuàng)建版本
g. 添加/刪除測試用例到測試計劃,并將測試用例分配給用戶:選擇要分配的用戶,選擇版本,勾選要分配的測試用例,點擊增加選擇的測試用例
h. 執(zhí)行測試:點擊執(zhí)行過的測試用例,在每一步驟執(zhí)行通過后,將result改為通過,并將下面的結(jié)果也改為通過,點擊保存
i. 查看結(jié)果:在測試執(zhí)行里點擊測試報告和進度,可以看到測試計劃報告,測試計劃的進度,失敗的用例等等
(4)抓包工具fiddler
a測試項目中重要的敏感數(shù)據(jù)是否加密傳輸
打開iwebshop網(wǎng)站登錄界面,輸入用戶名密碼,點擊登錄,在fiddler左側(cè)列表中找到帶綠色箭頭的請求打開,在右側(cè)窗口中可以看到抓取的數(shù)據(jù)。
發(fā)現(xiàn)的問題:用戶名密碼都是明文傳輸,存在安全隱患
b.打斷點,測試服務(wù)器端對用戶提交的數(shù)據(jù)是否進行校驗
(1) 在fiddler工具中設(shè)置斷點:點擊rules---automatic breakpoints---before request
或者在fiddler左側(cè)列表下面點擊all processes右側(cè)的小方格出現(xiàn)紅色大T圖標即可
(2) 進入到iwebshop注冊頁面,填寫符合規(guī)則的注冊信息,點擊提交按鈕
(3) Fiddler工具攔截到數(shù)據(jù),在左側(cè)列表中出現(xiàn)紅色大T請求,雙擊請求,在右側(cè)窗口中可以看到被攔截的注冊數(shù)據(jù),對數(shù)據(jù)進行修改,點擊”run to completion”,若出現(xiàn)多個紅色大T圖標,需要多次點擊此按鈕
c.過濾無效的請求
在fiddler右側(cè)窗口中點擊filters標簽,勾選use filters,選擇show only following hosts,在輸入框輸入要監(jiān)測的服務(wù)器IP地址,多個ip可以用英文下的逗號隔開
d.自動響應(yīng)(mock擋板操作)
(1) 進入到后臺頁面,在fiddler左側(cè)列表中找到后臺頁面的請求,右擊點擊save---response---response body
(2) 輸入前臺網(wǎng)址,找到前臺對應(yīng)的請求
(3) 啟動自動響應(yīng)功能:點擊autoresponder標簽,勾選3個復(fù)選框
(4) 將前臺對應(yīng)的請求拖拽到右側(cè)空白區(qū)域,點擊fiddler右側(cè)最下方的下拉框,選擇find a file,找到桌面保存的后臺文件,點擊save
(5) 刷新前臺網(wǎng)址,看到后臺系統(tǒng)首頁
e.抓取https的包
(1) 先導出fiddler證書:tools---fiddler option---https標簽下,勾選所有復(fù)選框,點擊”export Root certificate to Desktop”把fiddler證書導到桌面
(2) 把fiddler證書導入到相應(yīng)瀏覽器中
(5)網(wǎng)頁效率性測試工具httpwatch
打開httpwatch工具,點擊record,開始錄制,訪問iwebshop網(wǎng)站,在time chart右側(cè)分析時間柱,blocked空白:檢查本地網(wǎng)絡(luò)和本地緩存時間,由緩存量的大小決定,send發(fā)送:發(fā)送http請求消耗的時間,由數(shù)據(jù)包的大小和帶寬決定,receive接收:接收http響應(yīng)結(jié)果耗費的時間,也是由數(shù)據(jù)包的大小和帶寬決定,wait等待:等待服務(wù)器處理耗費的時間,由并發(fā)的用戶量和服務(wù)端程序復(fù)雜度決定,cache read讀緩存的時間,由緩存量大小決定,network網(wǎng)絡(luò)占用總時間。 - 用fiddler工具做過哪些測試?發(fā)現(xiàn)了什么問題?
a.用fiddler對iwebshop登錄功能進行測試,發(fā)現(xiàn)了用戶名密碼沒有加密,存在安全隱患。
b.用fiddler打斷點,測試服務(wù)器端是否對用戶提交的數(shù)據(jù)進行校驗
用例類 - 這個項目你寫了多少條用例?
寫了130條 - 你寫的用例設(shè)計方法在項目中哪些地方用到了?
添加商品功能用了等價值邊界法,商品篩選功能用了正交試驗法。 - 如何確保用例寫全了?
首先進行獨立功能測試,獨立功能測試完成后進行業(yè)務(wù)場景測試,再進行非功能測試,最后通過用例評審分析哪些地方不正確或者沒有分析到的。
安全測試類 - fiddler工具如何進行安全性測試?
(1) 打開fiddler,打開iwebshop登錄頁面,輸入用戶名密碼,點擊登錄,在fiddler左側(cè)列表中找到帶綠色箭頭的請求打開,在右側(cè)可以看到用戶名密碼沒有加密
(2) 用fiddler打斷點,在iwebshop注冊頁面,輸入符合規(guī)則的注冊信息,點擊注冊,在fiddler中點擊帶有紅色T的請求,右側(cè)webforms中可以看到提交的數(shù)據(jù),把其中的數(shù)據(jù)修改成不符合規(guī)則的數(shù)據(jù),點擊所有run to completion,看是否通過,如果通過了則沒有對服務(wù)器端數(shù)據(jù)進行校驗,存在安全隱患 - Sql注入測試原理
通過輸入特殊字符(or,’’,=),達到修改后臺sql語句的目的。比如登錄功能的sql語句為select * from iwebshop_user where username=’輸入的用戶名’ and password=’輸入的密碼’,我們在登錄界面輸入用戶名’or 1=1 or ‘’=’,密碼123456,那么sql語句為select * from iwebshop_user where username=’’or 1=1 or ‘’=’’ and password=’123456’,根據(jù)sql語句運算規(guī)則,先運算and,再運算or,那么where后面的條件就變?yōu)镕 or T or T/F,對于or運算來說,由一個為T即為T,所以沒有防止sql注入的話,這樣是可以通過的。
缺陷類 - 你在測試過程中發(fā)現(xiàn)了多少缺陷?說一下你發(fā)現(xiàn)的最有價值的bug.
我在測試過程中發(fā)現(xiàn)了30個bug,發(fā)現(xiàn)最有價值的bug是修改訂單時商品件數(shù)沒有校驗,可以輸負數(shù),小數(shù),特殊字符等;修改商品時收貨人地址省市縣只選擇一個或兩個可以提交成功。 - 說一下你們項目組缺陷管理流程
測試人員將bug提交到Jira上,并分配給相應(yīng)的開發(fā),開發(fā)看到這個bug后會打開bug,如果開發(fā)接受了bug,則進行修復(fù),修復(fù)完成后再分配給相應(yīng)的測試,測試人員對開發(fā)修復(fù)的bug進行復(fù)測,如果復(fù)測通過了,那么關(guān)閉bug,如果復(fù)測不通過,那么繼續(xù)分配給開發(fā),一直跟蹤到bug被關(guān)閉;如果開發(fā)不接受bug,那么我們首先要檢查自己的bug是否描述準確,再測試一遍確認是否為bug,這些都確認了以后還沒有與開發(fā)達成一致,那么就把bug反饋給測試主管,召開bug評審會,討論bug是否需要修復(fù)。 - 說一下缺陷生命周期
new、open、fixed、rejected、reopen、closed - 你提交的bug,開發(fā)拒絕修復(fù),你怎么辦?
首先要檢查自己的bug是否描述準確,再測試一遍確認是否為bug,這些都確認了以后還沒有與開發(fā)達成一致,那么就把bug反饋給測試主管,召開bug評審會,討論bug是否需要修復(fù)。
性能類
Httpwatch工具你是怎么用的?
打開httpwatch工具,點擊record,開始錄制,訪問iwebshop網(wǎng)站,在time chart右側(cè)分析時間柱,blocked空白:檢查本地網(wǎng)絡(luò)和本地緩存時間,由緩存量的大小決定,send發(fā)送:發(fā)送http請求消耗的時間,由數(shù)據(jù)包的大小和帶寬決定,receive接收:接收http響應(yīng)結(jié)果耗費的時間,也是由數(shù)據(jù)包的大小和帶寬決定,wait等待:等待服務(wù)器處理耗費的時間,由并發(fā)的用戶量和服務(wù)端程序復(fù)雜度決定,cache read讀緩存的時間,由緩存量大小決定,network網(wǎng)絡(luò)占用總時間。