李 忠
(廣州城建職業(yè)學(xué)院,廣東 廣州 510000)
計算機軟件在各行各業(yè)的應(yīng)用,使得生產(chǎn)的效率得以大大提高,人們的生活質(zhì)量也有了顯著提升。與此同時,我們也要清醒地認識到,當(dāng)前計算機軟件的普及應(yīng)用,人們的生活和工作已經(jīng)對其形成了較強的依賴,一旦出現(xiàn)故障或設(shè)計缺陷,造成的影響將十分巨大,所以有必要對計算機軟件開展測試工作,以確保其投入運用后的運行可靠性。
計算機軟件測試技術(shù)在實踐中能夠有效減少軟件出現(xiàn)故障的頻率,而且通過實施合適的測試用例,軟件設(shè)計開發(fā)中的一些隱性缺陷也能夠及時得到發(fā)現(xiàn),在此基礎(chǔ)上對軟件產(chǎn)品進行優(yōu)化完善,就能極大地提升軟件品質(zhì)。
一般而言,計算機軟件在設(shè)計開發(fā)中可能會受到各種內(nèi)、外因素的影響,導(dǎo)致其存在一些隱性瑕疵和缺陷,如果不對其進行處理,則會對軟件投入運用后的性能和可靠性產(chǎn)生不利影響。計算機軟件測試就是檢測這些瑕疵和缺陷的過程,對其效果進行評價的一個主要標(biāo)志就是看能否發(fā)現(xiàn)未知的漏洞和錯誤。
計算機軟件的測試流程按照邏輯次序可分為以下環(huán)節(jié)。
1)測試準(zhǔn)備。就具體的測試對象進行相關(guān)資料的搜集和分析,開展測試需求分析,并依據(jù)對測試業(yè)務(wù)的估計成立測試團隊。
2)設(shè)計測試用例。在需求分析的基礎(chǔ)上,明確測試的標(biāo)準(zhǔn)和條件,并進一步完成測試用例的設(shè)計。此環(huán)節(jié)是計算機軟件測試的核心,也是整個測試過程中難度系數(shù)較大的步驟。測試用例會包含數(shù)據(jù)輸入和預(yù)期輸出,如果被測對象在輸入用例數(shù)據(jù)后的實際輸出與預(yù)期輸出間存在差異,就需要考慮可能存在漏洞和瑕疵,為后續(xù)的軟件優(yōu)化完善提供基礎(chǔ)依據(jù)。
3)實施測試。該環(huán)節(jié)主要指實施測試用例,這同時也是測試的主要過程,占據(jù)了測試組的絕大部分時間。
4)測試總結(jié)。在測試工作結(jié)束后,需要對測試進行總結(jié),并在此基礎(chǔ)上編寫測試報告,測試報告也是軟件后續(xù)進行完善優(yōu)化的重要基礎(chǔ)依據(jù)。
5)測試驗收和結(jié)果歸檔。待以上測試工作全部結(jié)束后,需要對測試的效果進行驗收,驗收合格后即可宣布測試結(jié)果有效并正式結(jié)束測試。同時,對于宣布有效的測試,還需要對其涉及到的技術(shù)標(biāo)準(zhǔn)文檔進行歸檔處理。
單元測試法是軟件測試方法中的一種,它先對軟件測試進行分塊,然后針對不同的單元設(shè)計相應(yīng)的測試方式。這種方法可以實現(xiàn)對計算機軟件的詳細檢查,使得軟件運行的質(zhì)效得到有效保障。值得注意的是,采用該方法需要具備良好的計算機和軟件技術(shù)基礎(chǔ),這是因為單元測試法需要對軟件運行的每一個細節(jié)都進行檢查,盡可能發(fā)現(xiàn)細微處的漏洞。如果對計算機系統(tǒng)和軟件各個模塊的功能以及原理不能準(zhǔn)確掌握,那么在劃分測試單元和設(shè)計單元測試方式時就難免存在疏漏,進而會影響到測試結(jié)果的可靠性。
集成測試法主要是指在單元測試結(jié)束后,對軟件整體進行測試時用到的一種方法。它主要是對相關(guān)的接口進行檢測,因為接口出錯會影響到軟件的正常運行,此方法一般需要通過大面積的元件檢測來實現(xiàn)。通過集成測試,可以發(fā)現(xiàn)軟件運行中的一些不足之處,然后再對其進行進一步的探究,使得軟件的運行漸趨完善。集成測試時需要按照一定的次序開展,這可以使對軟件的檢測更加細致,很多細節(jié)問題尤其是接口問題也更易于被發(fā)現(xiàn)。
所謂邏輯驅(qū)動測試法,也就是常說的白盒測試法,它主要是對軟件的程序進行測試。在實踐應(yīng)用中,邏輯驅(qū)動測試就是對程序的運行路徑進行測試,并在此基礎(chǔ)上對軟件進行系統(tǒng)性分析。采用該方法前,應(yīng)該對軟件的整體結(jié)構(gòu)和運行功能進行系統(tǒng)的調(diào)研分析,然后再開展測試。
測試過程中主要是對軟件程序的執(zhí)行速率和相關(guān)路徑信息進行獲取,然后在這些獲取信息數(shù)據(jù)的基礎(chǔ)上對其進行系統(tǒng)性的整理和分析。值得注意的一點是,該方法主要是對軟件代碼的執(zhí)行路徑和速率進行測試,對軟件程序的功能實現(xiàn)缺乏有效關(guān)注,所以在實踐應(yīng)用中還存在一些不足之處。比如軟件程序如果不完整,那么采用邏輯驅(qū)動測試法一般難以找到原因;又比如軟件數(shù)據(jù)出錯,該方法也難以發(fā)現(xiàn)軟件中存在的問題。因此,在采用該方法時,要求測試人員應(yīng)該對軟件程序的要求進行明確掌握,并在應(yīng)用中輔助采用一些相關(guān)的技術(shù)手段,這樣才能最大限度地確保軟件測試結(jié)果的有效性。
現(xiàn)實中,計算機軟件用戶對軟件內(nèi)部的程序代碼及其邏輯結(jié)構(gòu)并不關(guān)注,用戶更關(guān)注的是軟件的各項功能是否能夠?qū)崿F(xiàn)。比如軟件是否能夠根據(jù)輸入信息產(chǎn)生正確的輸出結(jié)果。而黑盒測試法就是站在用戶角度上的一種測試方法,它將整個計算機軟件看作是一個黑盒,不關(guān)心其內(nèi)部程序代碼和邏輯結(jié)構(gòu),就是對各項功能能否正確使用進行檢測,如圖1所示。它在測試時將計算機軟件進行功能模塊劃分,然后針對每一項功能,設(shè)計貼近用戶需求的測試用例,并對實施測試用例的輸出結(jié)果的正確性進行檢測,進而實現(xiàn)對軟件功能和相關(guān)界面的測試。黑盒測試的優(yōu)點是使用簡便而且貼近用戶需求,缺點則是軟件的外部特性設(shè)計漏洞無法進行有效檢測。
圖1 黑盒測試法的應(yīng)用示意
以上介紹的計算機軟件測試方法都有各自的特點和優(yōu)勢,它們都是伴隨著軟件技術(shù)的發(fā)展進步而不斷被探索出來的。筆者相信,隨著技術(shù)的進步,未來的計算機軟件測試技術(shù)會不斷發(fā)展完善,而且還會誕生出更多新的手段,測試方法的使用在越來越簡便的同時,測試結(jié)果的有效性則會不斷提高。
傳統(tǒng)的計算機軟件測試一般是在軟件開發(fā)結(jié)束后進行的,而這增加了測試人員及時發(fā)現(xiàn)和掌握軟件中存在風(fēng)險的難度。因為沒有及早發(fā)現(xiàn)軟件中的瑕疵、漏洞和缺陷,使得軟件產(chǎn)品的后續(xù)優(yōu)化完善成本大大提升。為了解決這一問題,就需要提升軟件測試工作的介入效率,這樣有利于及時發(fā)現(xiàn)軟件中的問題并加以改善。具體來說,可以采取以下措施。
1)軟件開發(fā)與測試同步進行。軟件的開發(fā)和測試都需要對軟件用戶的需求進行了解,然后站在用戶需求的角度開展工作。因此,不妨將二者并行推進,以需求分析為基礎(chǔ),對軟件開發(fā)的階段性成果進行測試,然后基于測試結(jié)果提出專業(yè)性的評估報告,為開發(fā)過程中的調(diào)整完善提供依據(jù)。
2)迭代式測試。軟件開發(fā)可以采用迭代式方式。先設(shè)計開發(fā)出一個初始版本,然后對其進行測試,依據(jù)測試評估結(jié)果對軟件進行優(yōu)化完善,實現(xiàn)軟件版本的更新。隨著以上過程的循環(huán)進行,開發(fā)軟件的版本號會不斷迭代,測試工作也會不斷迭代,進而使得軟件版本日趨完善。這種方式的好處是可以有效降低軟件項目的風(fēng)險和開發(fā)成本。
3)優(yōu)化開發(fā)和測試模式。軟件開發(fā)人員一般在階段性工作結(jié)束后,會主動對其進行測試,而測試人員如果再對其進行測試就會造成工作重復(fù),影響工作效率。此時不妨將測試工作分為開發(fā)員測試和系統(tǒng)性測試兩個階段,一方面可以使得測試工作實現(xiàn)及早介入,另一方面還可以避免工作重復(fù),降低了測試成本。
人工測試不僅會耗費大量的人力資源,而且因為人為因素的干擾,還可能會影響測試的有效性。采用自動化測試工具對軟件進行系統(tǒng)測試,能夠避免人為失誤的不利影響,而且還能提升測試效率,對后續(xù)的軟件及時優(yōu)化完善具有積極效果。