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