產品筆記系列:20170104
一与柑、測試準備
測試用例
1.測試用例的編寫不僅應當根據(jù)有效和預料到的輸入情況,而且也應當根據(jù)無效和未預料到的輸入情況
2.測試用例的設計步驟
根據(jù)設計規(guī)格設計基本功能測試用例—>邊界值測試用例—>狀態(tài)轉換測試用例—>錯誤猜測測試用例—>異常測試用例—>性能測試用例—>壓力測試用例
測試文檔包括:測試計劃文檔蓄坏,測試設計規(guī)格文檔价捧,測試用例,軟件缺陷報告涡戳,狀態(tài)報告
Bug標準
1.Bug記錄
一個Bug最基本的記錄要求:bug編號结蟋、bug嚴重級別、優(yōu)先級渔彰、bug產生的模塊嵌屎、bug摘要、闡述bug大體的內容恍涂、bug對應的版本宝惰、bug詳細現(xiàn)象描述,包括一些截圖再沧、錄像等尼夺、bug出現(xiàn)時的測試環(huán)境、產生的條件即對應操作步驟
2.產品Bug等級
1)致命錯誤炒瘸,可能導致本模塊以及其他相關模塊異常淤堵,死機等問題;
2)嚴重錯誤,問題局限在本模塊什燕,導致模塊功能失效或異常退出;
3)一般錯誤粘勒,模塊功能部分失效;
4)建議問題,由問題提出人對測試對象的改進意見.
3.修改Bug原則:
1)發(fā)現(xiàn)嚴重錯誤屎即、致命錯誤應及時處理,有需要則采用熱更新/發(fā)包
2)發(fā)現(xiàn)一般錯誤則盡可能在下一版本中處理
3)建議問題可適當靠后,可加在后續(xù)的版本需求中
4)在發(fā)新版本前發(fā)現(xiàn)一般錯誤技俐、嚴重錯誤乘陪、致命錯誤,應解決錯誤之后再發(fā)版本
二雕擂、測試流程
1.單元測試:對程序中基本組成單位測試啡邑,如一個模塊、一個過程等井赌;目的是檢驗軟件基本組成單位的正確性
2.集成測試:在軟件系統(tǒng)集成過程中進行的測試谤逼,目的在于檢測軟件單位之間的接口是否正確
3.系統(tǒng)測試:對已經(jīng)集成好的軟件系統(tǒng)進行徹底的測試,以驗證程序的正確性和性能滿足需求
4.驗收測試:以《需求規(guī)格說明書》為驗收標準仇穗,測試時模擬實際用戶的運行環(huán)境流部;測試內容為:對功能模塊的全面測試
5.回歸測試:在軟件維護階段,對軟件進行修改之后進行的測試纹坐;目的在于驗證修改后的程序是否能夠正確的運行
二枝冀、原則&理論
測試原則
檢查程序是否做了“產品需求”中描述的事情,以及有沒有做“產品需求”外的事情(需求+錯誤)
測試理論
1.黑盒測試:已知產品的功能需求耘子,測試驗證每個功能是否符合需求
黑盒測試方法包括:等價類劃分果漾、邊界值分析、錯誤猜測法谷誓、因果圖測試绒障、狀態(tài)圖、場景法捍歪、大綱法
2.白盒測試:已知產品內部工作過程端盆,測試驗證功能內部操作是否符合功能需求
白盒測試方法包括:語句覆蓋、判定覆蓋费封、條件覆蓋焕妙、判定/條件覆蓋、條件組合覆蓋弓摘、路徑覆蓋
通過使用特定的面向黑盒測試的測試用例設計方法焚鹊,而后使用白盒測試方法對程序的邏輯結構進行檢查以補充這些測試用例,借此來設計出一個相當嚴格的測試
三韧献、測試要求
1.功能測試
1)功能測試:檢查需求描述中的產品交互末患,能否正確地進行跳轉,數(shù)據(jù)能否正確提交/返回
2)加載測試:檢查多媒體元素是否可以正確的加載/顯示锤窑,頁面顯示是否正常
3)鏈接測試:鏈接是否可正常跳轉璧针,是否有的出錯信息返回
4)多語言支持:能否正常支持顯示語言、表情渊啰、特殊符號等
2.界面測試
1)頁面實現(xiàn)效果是否與設計效果圖一致
2)頁面布局是否合理正確探橱,重點內容和熱點內容是否突出
3.性能測試
1)性能測試一般從以下3個方面考慮:壓力測試申屹、負載測試、強度測試
2)輸入條件在邊界值隧膏、極限值情況下哗讥,能夠正常運行,并給予正確的反饋
3)數(shù)據(jù)庫測試:數(shù)據(jù)庫一般需要考慮連結性胞枕,對數(shù)據(jù)的存取操作杆煞,數(shù)據(jù)內容的驗證等方面
4.安全測試
1)基本的核心功能測試:比如,登錄注冊腐泻、支付等產品關鍵業(yè)務
2)是否存在錯誤會導致系統(tǒng)崩潰决乎、權限泄露等問題
3)相關開發(fā)語言的常見安全性問題檢查砚婆,例如SQL注入等
5.兼容性測試
1)客戶端的兼容性
2)系統(tǒng)版本的兼容性
四河泳、測試方法
1.等價類劃分:把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件和屎;等價類劃分可有兩種不同的情況:有效等價類和無效等價類
2.邊界值分析法:使用邊界值分析方法設計測試用例窄坦,首先應確定邊界情況唤反;通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況鸭津;應當選取正好等于彤侍、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù)
3.錯誤猜測法:基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法
錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤、以前產品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等逆趋;還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況
4.因果圖方法:考慮輸入條件之間的相互組合盏阶,可能會產生一些新的情況;可考慮采用一種適合于描述對于多種條件的組合闻书,相應產生多個動作的形式來考慮設計測試用例名斟;這就需要利用因果圖(邏輯模型),因果圖方法最終生成的就是判定表
5.正交表分析法:可能因為大量的參數(shù)的組合而引起測試用例數(shù)量上的激增魄眉;同時砰盐,這些測試用例并沒有明顯的優(yōu)先級上的差距,而測試人員又無法完成這么多數(shù)量的測試坑律,就可以通過正交表來進行縮減一些用例岩梳,從而達到盡量少的用例覆蓋盡量大的范圍的可能性
6.場景分析方法:指根據(jù)用戶場景來模擬用戶的操作步驟,這個比較類似因果圖晃择,但是可能執(zhí)行的深度和可行性更好冀值。
7.狀態(tài)圖法:通過輸入條件和系統(tǒng)需求說明得到被測系統(tǒng)的所有狀態(tài),通過輸入條件和狀態(tài)得出輸出條件宫屠;通過輸入條件列疗、輸出條件和狀態(tài)得出被測系統(tǒng)的測試用例。
8.大綱法:大綱法是一種著眼于需求的方法浪蹂,為了列出各種測試條件抵栈,就將需求轉換為大綱的形式告材。
大綱表示為樹狀結構,在根和每個葉子結點之間存在唯一的路徑竭讳。大綱中的每條路徑定義了一個特定的輸入條件集合创葡,用于定義測試用例浙踢。樹中葉子的數(shù)目或大綱中的路徑給出了測試所有功能所需測試用例的大致數(shù)量绢慢。
五、其他
1.正確認識測試:測試流程的核心是在保障研發(fā)效率的前提下提高產品質量
2.關于人肉測試:測試團隊更多的職責在于測試邊界洛波、極限條件的情況胰舆,以及做回歸測試
3.測試用例的設計到測試執(zhí)行,可以采用經(jīng)典的三輪測試體系與探索性軟件測試體系
按照測試用例——用例評審——一輪測試(全面執(zhí)行測試用例)——二輪測試(針對bug修復的驗證以及bug修復可能帶來問題的驗證)——三輪測試(內網(wǎng)全面回歸)——外網(wǎng)回歸測試
4.回歸測試需要頻繁的執(zhí)行蹬挤,去檢查以往用例是否因為應用迭代而出現(xiàn)新的bug缚窿。
在回歸測試環(huán)節(jié)也可以輔助采用測試自動化的方法,但很多時候自動化是不能判隊代碼出錯的問題的焰扳,更多是需要監(jiān)控sdk進行