一直在做功能測試工作,負責過三四個不大不小的項目的功能測試工作,卻很少靜下心來總結工作中的得失。
很多不了解測試的人,認為功能測試不過就是拿鼠標點來點去,沒有什么技術含量,隨便招個應屆畢業生就能干的工作。我也曾經認為功能測試沒什么前途,現在看來覺得自己太浮躁了。功能測試的門檻可能比較低,做測試工作的人大多都是從功能測試開始,但要做好功能測試卻不容易,需要學習的知識還很多,比如操作系統、數據庫、網絡。下面主要結合工作實踐談談我對功能測試的一點總結。
功能測試最重要的是理解業務和需求。知道系統要實現什么功能,業務流程是怎樣的,然后就可以根據需求編寫測試計劃和測試用例了。測試書籍上介紹常用的編寫測試用例的方法有:等價類、邊界值、因果圖、判定表等,在實際工作中,我使用較多的有等價類、邊界值、場景法和錯誤猜測法。在這里需要提一點,將測試用例按測試目的進行分類,比如用戶界面、功能點、業務場景等,會讓測試用例的結構看起來更清晰,執行測試用例的效率也更高。
要做好功能測試,還需要對整個系統的數據庫結構比較清楚,每個功能點涉及哪些數據表,對數據的操作方式是怎樣的。這樣就不單從前臺頁面來進行測試,通過對數據庫中數據的驗證,可以發現隱藏的一些bug。比如庫表沒有進行關聯刪除,從前臺頁面是看不出來的,但實際可能導致程序出現問題。對一些比較復雜的組合查詢或數據排序,也可以自己編寫sql語句對結果進行驗證。
除此之外,了解程序的框架結構和一些開發知識也有助于更好地測試程序和定位錯誤。做完一個業務,可以通過系統日志來查看錯誤原因,結合數據庫結構,可以更好幫助開發人員定位錯誤。比如日志記錄執行哪條sql語句出錯了,錯誤的原因是字段長度設置不夠。我在這方面做得不太好,現在在努力學習一些開發知識,期待在以后的工作能做得更好。
最后,對bug的分析和總結有助于積累測試經驗。比如哪種類型的bug數量多,哪些測試用例發現的bug較多,有助于測試用例的編寫和修改。在探索測試時,發現bug的測試過程也要加入測試用例庫中。通過測試用例的累積,可以更好地了解系統常出現的錯誤,積累更多的測試經驗。
原文轉自:http://www.anti-gravitydesign.com