本文轉自樂博學院公衆號--軟件測試資源共享
功能測試是測試工程師的基礎功,很多人功能測試還做不好,就想去做性能測試、自動化測試。很多人對功能測試的理解就是點點點,如何自己不用心去悟,去研究,那麼你的職業生涯也就停留在點點點上了。在這裏,我把我對功能測試的理解寫下來。
那麼,功能測試需要掌握哪些方面的技能?
一、 熟練使用SQL
1、常用的 sql 語句一定會寫。比如說增刪改查之類。
2、瞭解數據庫的事務、會編寫存儲過程、熟練常用的系統函數。
3、瞭解並可以進行數據庫的備份、遷移、還原、鏡像等操作
4、對 sql 語句進行調優,並對可以對運行的語句監控查看性能
5、瞭解數據庫集羣等操作。
二、 Linux
Linux是測試人員的基礎功,不需要掌握太難或者很不常見的Linux命令,正常能做到查看日誌,定位問題就可以了。
1、基本命令
常用的Linux基本命令,面試經常會問的,或者給出一種場景,問你用什麼命令。
2、查看日誌
初級測試人員在工作時經常遇到,發現bug,開發不承認或者不願意解決的情況,測試人員怎麼擺脫這樣的問題呢?那就是根據發現的bug根據日誌級別,來查看日誌,定位問題。
那這裏首先要說一下日誌級別了。首先記住這一點:日誌級別越高,輸出的信息越少 。
具體的日誌級別分爲四級:
info : 代碼 info 信息,不包括sql語句等一些debug信息
warning warning : 代碼警告信息
error : 程序本身報錯信息 java.lang.outindexERROR.....
critical :幾乎用不到
一般不符合需求的bug在 debug中,程序本身報錯的bug在 error中。
三、 使用數據庫,跟數據流向
1、數據庫的本質
常見數據庫主要是MAYSQL、ORECAL、Redis,其中Mysql數據庫是典型的關係型數據庫
2、數據庫操作
(1) 數據庫和表操作
(2)表數據操作
(3)複雜sql查詢
四、寫好測試用例
在測試過程中很重要的一類文檔,它是測試工作的核心、是一組在測試時輸入輸出的標準、是軟件需求的具體對照。編寫測試用例,是測試人員的基本功,但是真正能寫好的人並不多。
測試用例必須包含的內容:
用例編號、用例名稱、測試背景、前置條件、優先級、重要級、測試數據、測試步驟、預期結果、實際結果、備註。
1、測試用例的編寫流程
需求分析 --> 提取測試點 --> 測試用例編寫 --> 測試用例評審
2、編寫測試用例的思路
(1)根據產品的RPD,提取測試點。
(2)根據數據流的走向。
(3)根據的架構部署。
(4)編寫測試用例的常用方法:等價類劃分法、邊界值分析法、流程圖法等。
(5)覆蓋弱網測試、接口測試、安全測試、性能測試等。
(6)常用測試工具有:Postman、 Charles、 Fiddler 、Jemter、Loadrunner等。
3、編寫測試用例注意事項
(1)根據項目的實際情況設計測試用例表格
(2)用例格式不要生搬硬套
(3)根據具體情況編寫
(4)學會質疑需求,不要完全按照需求來寫測試用例,要從客戶和產品的角度來理解需求,看到需求之外的功能和體驗
4、管理測試用例
爲什麼要管理測試用例?
(1)測試用例數目巨大
(2)測試用例會根據需求的改變而改變
(3)測試用例需要長期補充完善
如何管理測試用例?
(1)原始的Excel管理
(2)專業的項目管理系統(eg:git、禪道、JIRA、Confiuence等)一般都爲web格式
五、 http與https協議
面試經常關於Http協議的下面幾個問題
1、Http協議原理
2、http和http協議的區別
3、TCP和UDP的區別
4、session和token的區別
5、公鑰和私鑰的理解
6、get和post的區別
7、從輸入URL到頁面加載發生了什麼
8、什麼叫代理,正向代理和反向代理?
六、瞭解業務
做功能測試,一定要了解業務,甚至理解業務。只有把業務吃透,才能把功能測試做好,並且有一定的提高。業務熟悉後,會知道很多常識,知道下面的常識之後,你就可以嘗試進階,學習做自動化測試、接口測試、性能測試
1、什麼時候介入自動化 => 當你係統趨於穩定的時候
2、什麼時候介入接口測試 => 當接口開發完畢的時候
3、什麼時候介入性能測試 => 當出現促銷的時候,或者搶購的時候(618大促,過年搶火車票,搶優惠券)。比如說,5000張優惠券,大概有多少人搶,在多長時間內搶完。
七、 bug管理
做功能測試,還有個很重要的工作就是bug管理,一個優秀的的測試人員,線上bug非常多,多於和你一起工作的其他同事,但是線上bug非常少,少於其他同事。
1、 bug定義
(1)不符合需求的
(2)程序本身報錯
(3)不符合用戶的使用習慣
2、bug生命週期
當我們測試人員提交一個bug的時候,自始bug就有它的生命週期,從開始到結束。
3、bug單內容
Bug描述(summary)
環境信息:操作系統/數據庫/瀏覽器/軟件版本(OS/Database/Project/Build/Release)
所屬功能模塊
測試/開發人員
嚴重等級(1-5)
客戶優先級
風險程度
狀態
重現步驟
實際結果
是否要回歸問題等
4、測試報告
把測試的過程和結果寫成文檔,對發現的問題和缺陷進行分析,爲糾正軟件的存在的質量問題提供依據,同時爲軟件驗收和交付打下基礎測試報告和測試計劃一樣,一般由測試leader編寫,測試人員需要了解一下測試報告中都有哪些內容。
八、 典型bug
1、抓包作用: 測試一個app搜索功能,抓包,抓到一個搜索接口,突然發現抓到了兩個請求接口 -> 當訪問量上來了,服務的壓力上升兩倍
2、數據流走向 : 測試時候發現頁面上數據只有一條,但是數據庫裏面多了一條 -> 1、數據量變大,查詢變慢 2、髒數據太多,瞬間爆滿,程序崩潰了
3、弱網測試:app項目一定要有弱網絡測試(模擬2g、3g、4g,wifi網絡狀態以及丟包情況);網絡切換測試(網絡斷開後重連、3g切換到4g/wifi 等)
總結下來,做好功能測試並不是一件容易的事情。我做了兩年的互聯網功能測試來,還是很多知識不明白,只有不斷的學習,自己才能成才。
很多人功能測試都做不好,就想做性能測試、自動化測試,其實是好高騖遠,我覺得基礎打好了,再去學習性能測試、自動化測試什麼什麼的,肯定事半功倍。