功能測試又稱正確性測試,就是對產(chǎn)品的各功能進行驗證,根據(jù)功能測試用例,逐項測試,檢查產(chǎn)品是否達到用戶要求的功能或者說檢查軟件的功能是否符合規(guī)格說明。由于正確性是軟件最重要的質(zhì)量因素,所以功能測試也非常重要。
功能測試基本的方法是構(gòu)造一些合理輸入,檢查軟件是否得到期望的輸出。這顯然是一種枚舉方法,為了減少枚舉的次數(shù),提高測試效率,就有等價類劃分和邊界值等等各種測試方法。這些基本的測試理論和流程很多測試人員也都知道了,本文就不詳細討論了,下面想說說實際工作中,對于功能測試需要及其注意的幾個方面。
首先就是理解業(yè)務和需求。需求和業(yè)務理解了,才知道客戶想要系統(tǒng)實現(xiàn)什么。然后按照需求來進行測試,不滿足需求要求的都可以認為是BUG。雖然在實際工作中,拿到一份完整詳細的需求是很不容易的,但要做好一個功能測試,前提就是要對需求比較熟悉,各個業(yè)務細節(jié)都很了解,甚至做到比開發(fā)人員還要了解。除此之外,對于現(xiàn)在很多的信息處理相關(guān)的系統(tǒng),還需要對整個業(yè)務中數(shù)據(jù)庫的操作比較清楚。比如哪個業(yè)務需要用到哪些表,做怎么樣的操作。了解了這個就可以不單單從程序前臺來看程序,看到數(shù)據(jù)庫的過程,更有利于你找到隱藏的BUG。這些是從前臺看不出來的,但實際可能會導致程序出現(xiàn)問題。
第二,了解程序的框架結(jié)構(gòu)。
比如很多B/S結(jié)構(gòu)的系統(tǒng)中,前臺是如何和后臺通信的,之間是什么協(xié)議,什么格式,后臺是如何處理這些數(shù)據(jù)的。再比如C/S結(jié)構(gòu)的系統(tǒng),服務器端和客戶端之間是如何通信的,中間的數(shù)據(jù)包是什么格式,哪些功能由服務器端實現(xiàn),哪些功能由客戶端實現(xiàn)等等。了解這些有助于你更好的去測試程序以及定位程序錯誤。
第三,和開發(fā)人員溝通。
這里說的溝通并不僅僅指通過溝通試圖讓開發(fā)人員修改每個BUG,這個當然需要溝通,但是并不是指所有的BUG都需要修改,這中間涉及到成本、技術(shù),還有別的問題。除此之外,通過和開發(fā)人員搞好關(guān)系,對于BUG我們可以問他發(fā)生該BUG的原因,修改的大致方法,甚至不修改的原因等等,這有助于以后測試中多注意、多發(fā)現(xiàn)這樣的問題,甚至提出修改建議。
最后,注意多總結(jié),多學習。千萬不能滿足于整天在界面上點來點去,可以總結(jié)學習的東西很多,操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡,或者自動化測試,或者性能測試,等等,注意多學習,多總結(jié)提高,這對于無論是繼續(xù)從事功能測試還是別的測試工作都有很大的好處。相信大家很容易理解這一點,不再多說了。