一、前言
功能測試是測試工程師的基礎工作,很多人功能測試還做不好,就想去做性能測試、自動化測試。很多人對功能測試的理解就是點點點,如何自己不用心去悟,去研究,那麼你的職業生涯也就停留在點點點上了。在這裡,我把我對功能測試的理解寫下來。
二、功能測試所需要掌握的技能
2.1 熟練使用SQL
1、常用的 sql 語句一定會寫。比如說增刪改查之類。
2、了解資料庫的事務、會編寫存儲過程、熟練常用的系統函數。
3、了解並可以進行資料庫的備份、遷移、還原、鏡像等操作
4、對 sql 語句進行調優,並對可以對運行的語句監控查看性能
5、了解資料庫集群等操作。
2.2 Linux
Linux是測試人員的基礎功,不需要掌握太難或者很不常見的Linux命令,正常能做到查看日誌,定位問題就可以了。
1、基本命令
常用的Linux基本命令,面試經常會問的,或者給出一種場景,問你用什麼命令。
具體請看:HTTPS://www.cnblogs.com/bianfengjie/p/9213180.html
2、查看日誌
初級測試人員在工作時經常遇到,發現bug,開發商不承認或者不願意解決的情況,測試人員怎麼擺脫這樣的問題呢?
那就是根據發現的bug根據日誌級別,來查看日誌,定位問題。
那這裡首先要說一下日誌級別了。
首先記住這一點:日誌級別越高,輸出的信息越少 。
具體的日誌級別分為四級:
info : 代碼 info 信息,不包括sql語句等一些debug信息
warning warning : 代碼警告信息
error : 程序本身報錯信息 Java.lang.outindexERROR.....
critical :幾乎用不到
一般不符合需求的bug存在 debug中,程序本身報錯的bug在 error中。
2.3 使用資料庫,跟數據流向
關於資料庫,請見另外一篇博文。
1、資料庫的本質
常見資料庫主要是MAYsql、ORECAL、Redis
其中Mysql資料庫是典型的關係型資料庫
2、資料庫操作
(1) 資料庫和表操作
(2)表數據操作
(3)複雜sql查詢
2.4 寫好測試用例
在測試過程中很重要的一類文檔,它是測試工作的核心、是一組在測試時輸入輸出的標準、是軟體需求的具體對照。編寫測試用例,是測試人員的基本功,但是真正能寫好的人並不多。
測試用例必須包含的內容:
用例編號、用例名稱、測試背景、前置條件、優先級、重要級、測試數據、測試步驟、預期結果、實際結果、備註。
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格式
具體參考:https://blog.csdn.net/sdr_zd/article/details/70453027?locationNum=6&fps=1
2.5 http與https協議
關與HTTP和HTTPS協議,請點擊:https://www.cnblogs.com/bianfengjie/p/9213131.html
面試經常關於Http協議的下面幾個問題
1、Http協議原理
2、http和http協議的區別
3、TCP和UDP的區別
4、session和token的區別
5、公鑰和私鑰的理解
6、get和post的區別
7、從輸入URL到頁面加載發生了什麼
8、什麼叫代理,正向代理和反向代理?
2.6 了解業務
做功能測試,一定要了解業務,甚至理解業務。只有把業務吃透,才能把功能測試做好,並且有一定的提高。
業務熟悉後,會知道很多常識,知道下面的常識之後,你就可以嘗試進階,學習做自動化測試、接口測試、性能測試
1、什麼時候介入自動化 => 當系統趨於穩定的時候
2、什麼時候介入接口測試 => 當接口開發完畢的時候
3、什麼時候介入性能測試 => 當出現促銷的時候,或者搶購的時候(618大促,過年搶火車票,搶優惠券)
比如說,5000張優惠券,大概有多少人搶,在多長時間內搶完
2.7 bug管理
做功能測試,還有個很重要的工作就是bug管理,一個優秀的的測試人員,線上bug非常多,多於和你一起工作的其他同事,但是線上bug非常少,少於其他同事。
1、 bug定義
(1)不符合需求的
(2)程序本身報錯
(3)不符合用戶的使用習慣
2、bug生命周期當我們測試人員提交一個bug的時候,自始bug就有它的生命周期,從開始到
結束,生命周期如下
3、bug單內容
Bug描述(summary)
環境信息:作業系統/資料庫/瀏覽器/軟體版本 (OS/Database/Project/Build/Release)
所屬功能模塊
測試/開發人員
嚴重等級(1-5)
客戶優先級
風險程度
狀態
重現步驟
實際結果
是否要回歸的問題
等
具體參考:https://blog.csdn.net/ewq159/article/details/79500546
4、測試報告
把測試的過程和結果寫成文檔,對發現的問題和缺陷進行分析,為糾正軟體存在的質量問題提供依據,
同時為軟體驗收和交付打下基礎測試報告和測試計劃一樣,一般由測試leader編寫,測試人員需要了解一下測試報告中都有哪些內容
2.8 典型bug
1、抓包作用: 測試一個app搜索功能,抓包,抓到一個搜索接口,突然發現抓到了兩個請求接口 -> 當訪問量上來了,服務的壓力上升兩倍
2、數據流走向 : 測試的時候發現頁面上數據只有一條,但是資料庫裡面多了一條 -> 1、數據量變大,查詢速度變慢 2、髒數據太多,瞬間爆滿,程序崩潰了
3、弱網測試:app項目一定要有弱網絡測試(模擬2g、3g、4g,wifi網絡狀態以及丟包情況);網絡切換測試(網絡斷開後重連、3g切換到4g/wifi 等)
三、小結
總結下來,做好功能測試並不是一件容易的事情。我做了兩年的網際網路功能測試來,還是很多知識不明白,只有不斷地學習,自己才能成才。
很多人功能測試都做不好,就想做性能測試、自動化測試,其實是好高騖遠,我覺得基礎打好了,再去學習性能測試、自動化測試什麼什麼的,肯定事半功倍。
感謝每一個認真閱讀我文章的人!!!
如果下面這些資料用得到的話可以直接拿走:
1、自學開發或者測試必備的完整項目源碼與環境
2、測試工作中所有模板(測試計劃、測試用例、測試報告等)
3、軟體測試經典面試題
4、Python/Java自動化測試實戰.pdf
5、Jmeter/postman接口測試全套視頻獲取
我個人整理了我這幾年軟體測試生涯整理的一些技術資料,包含:電子書,簡歷模塊,各種工作模板,面試寶典,自學項目等。如果在學習或工作中遇到問題可以直接進群詢問,群里也會有大神幫忙解答,需要的就可以私我謝謝