從前端到後端測試必須具備技能:

1)SQL,能看懂專案日誌

2)測試輔助工具(資料庫,介面,效能,自動化。。。)使用,

資料庫設計是整個專案的靈魂,從設計可以看出業務及業務關聯關係。

測試過程不知道功能對應的表怎麼辦?

1。操作功能從後臺看日誌。日誌會列印SQL語句(如果日誌沒有配置列印SQL日誌也是檢視不到的),若功能程式碼SQL有問題,我們可以定位出問題,告訴開發原因,怎麼解決,這樣也節省了開發的時間;

2。看資料庫設計;

3。如果沒有設計,就從資料庫找到與功能命名相同的表,檢視,篩選,提煉出自己要的表。

4。如果以上都行不通,那就向開發請教。

測試過程不知道介面怎麼辦?

1。從介面文件檢視;

2。用介面抓取工具檢視;

3。操作功能從日誌中檢視(如果日誌沒配置列印介面日誌也是看不到的);

4。如果以上都行不通,那就請教開發。

掌握SQL常用技能,資料庫增,刪,改,查;

造資料(N個流程迴歸時按步就班從前臺操作不改資料庫一天才能驗證完,透過資料庫造資料或許2小時就能搞定),大資料測試(主要用來驗證報表資料正確性,手工+人腦費時又費力)是不錯的得力小助手。

在測試過程中要養成做筆記的好習慣,把SQL記錄下來下次複用,需求大體上描述一下,做成工作軌跡檔案,方便自己查詢,學習,總結,定位需求上線清單及時間。

和開發做朋友而不是冤家,開發也是不錯的老師,也會引導你學會看日誌定位問題,使用SQL基本方法,抓包啊,網頁分析工具。。。。。。

=======================================================

一般來說,服務端測試有兩種:

一種是直接對WEB或者APP的服務端進行測試;

另一種是對更後端的資料庫、快取系統、中介軟體、檔案系統等進行測試。

一、先來說第一種吧:直接對WEB或者APP的服務端進行測試。

一般來說,這種服務端的開發人員就是WEB/APP產品團隊的開發人員,當然,測試人員跟WEB/APP的前端測試人員也是一個團隊的。這種服務端就是為WEB/APP端提供一些後臺的介面,比如說,使用者個人資訊、交易記錄的讀取和儲存等,一般都是用HTTP介面的方式提供。這種後臺的測試從流程上來說是跟隨著WEB/APP產品的釋出節奏來的,在後端開發完成介面以後,

測試人員就直接用TestNG+HttpClient寫介面測試用例、或者用Postman等工具手工測試

。如果專案緊張,一般會先用Postman等工具先手工測試,等版本釋出完以後,再用TestNG+HttpClient把自動化用例補上去,或者用Python的Nose框架。

對於這種服務端後臺的測試人員,除了需要掌握上述的自動化測試技術之外,還有一個溝通、協調的工作,因為後臺的介面一般是同時提供給iOS/Android/WEB三個端,所以需要跟三端的測試人員協調測試進度、測試環境等事項。

如果遇到後端服務大的重構、或者是第一次上線預計有大流量的,那還需要對後端服務做一個性能測試,用

JMeter/Grinder等工具編寫指令碼並進行壓測,看看後端服務能不能撐住大流量

。有些版本效能風險小的,不必要每次都做效能測試,可以根據實際版本的情況具體分析。

二、第二種:對更後端的資料庫、快取系統、中介軟體、檔案系統等進行測試。

這種就類似於雲計算等後端基礎服務的測試,對於一些大的公司,會有一個專門的團隊來開發這種後端基礎服務,這種服務當然也需要測試人員來保證質量。

這類服務一般都是透過HTTP介面的方式提供給剛才講的WEB/APP的後端使用,所以,第一個要做的也就是

介面測試

,也就是用Postman等工具做手工測試、用TestNG+HttpClient或者Python的Nose框架做自動化測試。

不過,對於這類後端服務來說,介面只是暴露給外用的部分,內部邏輯通常是非常複雜的,所以,除了針對介面做測試之外,測試人員還需要細緻地瞭解這些

服務端產品的技術框架及技術實現

,需要了解到模組的級別,對於

系統框架圖、時序圖

等都有很好的理解。針對這些理解去設計用例,再跟開發一起討論如何實現用例。

如果這種基礎服務用了某一個開源軟體,那通常也需要測試人員能關注社群的進展,並把我們發現的Bug及解決方案等推到社群,為社群做貢獻。

除了介面測試之外,在我們公司,

異常測試、穩定性測試、效能測試

也是服務端測試必備的測試型別。

1)

異常測試

會模擬各種異常情況,比如

硬體異常

-機器掛掉的情況下能否啟動備機、

硬碟掛掉

的情況下是否會丟失資料;

網路異常

-網路忽然斷掉、或者網路流量變小的情況;

系統異常

-作業系統忽然掛掉的情況。。。這些極端的情況出現的時候,我們需要驗證資料有沒有丟、能不能儘快啟動備機對外提供服務、系統狀態有沒有異常等。我們會採用各種方式或者工具來模擬這些異常,比如用TrafficControl工具來控制網路流量。

2)穩定性測試

,就是模擬系統在

7*24的執行下會不會出問題

,一般會用介面測試或者效能測試用例不斷地跑,在執行期間,我們會模擬各種情況,比如說

負載的變化、系統的各種干擾

等。可以用

ChaosMonkey等

工具來進行這類測試。

3)效能測試

,其實細分起來會有各種型別,比如

負載測試、壓力測試、配置測試、甚至還有線上壓測、容量規劃

等。最常規的效能測試,一般是先規定一個系統需要承受的壓力,比如說,某一個系統,1個小時之內會有1W單的單子,那基於這個需求我們分析伺服器後端需要承受的壓力,分析出來以後,就寫效能測試指令碼,然後逐漸增加壓測的力度,直到超過這個預定的壓力。通常在這個測試過程中會發現各種問題,比如

資料庫索引沒有建、執行緒池太小、系統異常

等。需要解決了之後再加大壓力測試。也是用

Grinder/JMeter等工具來進行效能測試

,不過難的不是這些工具的使用,而是

發現問題以後的定位