張娜
(江蘇省軟件產(chǎn)品檢測中心,江蘇 南京 210012)
測試屬于執(zhí)行軟件程序的過程,目的在于發(fā)現(xiàn)軟件的錯誤和不足,保障產(chǎn)品具備它所公布和承諾的功能,了解軟件產(chǎn)品是否符合效率和功能要求,是否符合用戶環(huán)境。軟件測試能及時發(fā)現(xiàn)軟件的問題,對于提升軟件運(yùn)行穩(wěn)定性和效率有著重要意義,是主動發(fā)現(xiàn)系統(tǒng)缺陷的手段之一。在軟件系統(tǒng)規(guī)模持續(xù)提升和軟件開發(fā)技術(shù)不斷發(fā)展的背景下,軟件測試也暴漏出了多方面的問題,對于軟件質(zhì)量有著一定的影響。
在一些軟件的測試工作中,存在著深度不足的問題。一些企業(yè)為了快速交付軟件,嚴(yán)重壓縮了軟件測試的時間,所以難以進(jìn)行深度測試。測試人員僅僅開展了簡單的測試,沒有測試關(guān)鍵的性能指標(biāo)和業(yè)務(wù)功能。如此倉促地把軟件交付給客戶,很有可能為軟件的使用埋下隱患。
軟件測試需要完善的準(zhǔn)備工作,需要有目的、全面地驗證和檢查軟件產(chǎn)品。在測試軟件之前,需要全面分析和了解軟件產(chǎn)品,進(jìn)而設(shè)計完善的測試方案。但是,一些測試人員在制定測試方案的時候存在隨意性,沒有充分了解軟件產(chǎn)品,所以制定的測試方案缺乏針對性,難以有效發(fā)現(xiàn)軟件的質(zhì)量問題和運(yùn)行問題。
軟件測試工作比較繁瑣和復(fù)雜,需要消耗較多的物力和人力。隨著軟件系統(tǒng)規(guī)模的擴(kuò)大,在測試中需要考慮軟件新技術(shù)和新特性,測試工作的難度顯著提升。一些軟件企業(yè)缺乏足夠的技術(shù)水平,測試人員嚴(yán)重不足,測試工作的安排也比較緊密。例如,一些測試人員同時負(fù)責(zé)軟件的開發(fā)和測試,在加班加點的過程中無法高質(zhì)量完成測試工作。
在設(shè)計和開發(fā)軟件的過程中,可能受到外部因素和內(nèi)部因素的影響,導(dǎo)致軟件存在一定的缺陷或者隱性瑕疵,如果沒有科學(xué)處理,可能對軟件的使用產(chǎn)生影響,降低軟件的可靠性和性能。進(jìn)行軟件測試就是檢查和發(fā)現(xiàn)缺陷和瑕疵的過程中,需要評價軟件的運(yùn)行效果,進(jìn)而發(fā)現(xiàn)未知的錯誤和漏洞。根據(jù)邏輯次序,可以把軟件測試分成以下幾個環(huán)節(jié):
第一,準(zhǔn)備測試。結(jié)合測試對象,分析和搜集關(guān)鍵資料,明確測試的具體需求,并且根據(jù)測試業(yè)務(wù)組件測試人員隊伍。第二,設(shè)計測試用例。在明確測試需求之后,明確測試的條件和標(biāo)準(zhǔn),并且設(shè)計測試用例。這個環(huán)節(jié)是測試的基礎(chǔ),也是工作難度較大的環(huán)節(jié)。測試用例涉及到預(yù)期輸出和數(shù)據(jù)輸入。如果輸入用例數(shù)據(jù)后,預(yù)期輸出和實際輸出之間存在一定的差異,那么可能存在瑕疵和漏洞,根據(jù)這些數(shù)據(jù)能繼續(xù)優(yōu)化軟件。第三,測試的實施。這個環(huán)節(jié)需要進(jìn)行正式測試,需要花費(fèi)較多的時間。第四,總結(jié)測試。在完成測試工作之后,需要總結(jié)測試的流程和結(jié)果。利用測試報告形式進(jìn)行總結(jié),這是后續(xù)完善軟件的數(shù)據(jù)基礎(chǔ)。第五,結(jié)果歸檔和測試驗收。完成以上的步驟之后,需要驗收測試的效果,結(jié)束驗收之后正式結(jié)束測試。對于測試的數(shù)據(jù)信息和技術(shù)標(biāo)準(zhǔn)文檔,進(jìn)行歸檔處理。
白盒測試和黑盒測試是軟件測試中比較常用的測試方法。黑盒測試的另外一個名字是功能測試法,能檢查軟件程序和實際功能要求是否一致。利用黑盒測試方式,能體現(xiàn)軟件程序的實際功能和作用。使用黑盒測試的方式,能有效完善軟件的功能,找出不發(fā)揮作用的功能和錯誤的功能。白盒測試和黑盒測試有一定的差別,白黑測試中,能發(fā)現(xiàn)每一個循環(huán)變量的最終值、中間值和初始值。利用白黑測試的方法,能發(fā)現(xiàn)軟件程序的錯誤假設(shè)條件和邏輯性錯誤,同時也能發(fā)現(xiàn)程序編輯錯誤。
在白盒測試和黑盒測試中,能發(fā)現(xiàn)程序錯誤,主要包括四個級別。利用分級的方式,能確定系統(tǒng)的運(yùn)行情況。計算機(jī)軟件開發(fā)人員和測試人員能結(jié)合錯誤等級來評價軟件,進(jìn)而根據(jù)錯誤等級開展軟件修改工作。一級錯誤是最嚴(yán)重的,也叫作致命錯誤,主要包括系統(tǒng)錯誤和功能錯誤。如果軟件開發(fā)的初始階段就存在問題,同時后期檢驗和開發(fā)中忽視了對系統(tǒng)和功能的研究,就會出現(xiàn)這種錯誤。二級錯誤也比較嚴(yán)重,包括軟件數(shù)據(jù)錯誤和軟件加工錯誤。出現(xiàn)了二級錯誤后,需要停止軟件使用,及時糾正錯誤。三級錯誤屬于一般性錯誤,關(guān)系到數(shù)據(jù)的規(guī)范程度和數(shù)據(jù)的完整度。如果發(fā)現(xiàn)數(shù)據(jù)并不完整,補(bǔ)充數(shù)據(jù)即可,并不需要停止使用軟件。在補(bǔ)充相關(guān)數(shù)據(jù)之后,重新檢查數(shù)據(jù)的完整程度。四級錯誤屬于提示性錯誤,包括應(yīng)提示而沒有提示和界面性提示錯誤。人們在使用軟件時,最開始比較在意這種錯誤,但是適應(yīng)錯誤之后,就會逐漸忽略提示性錯誤。
軟件測試過程中,需要考慮到多平臺的實際情況。在測試的時候,利用多平臺測試的方法保證軟件的通用性。如果軟件測試沒有針對性,用戶體驗就會比較差,軟件的運(yùn)行會出現(xiàn)問題。不同的軟件平臺存在結(jié)構(gòu)層面的差異,測試平臺不同,最終的測試結(jié)果也不相同。因此,需要應(yīng)采用多平臺通用測試的模式,提升軟件測試的效率和質(zhì)量。結(jié)合軟件測試中發(fā)現(xiàn)的問題進(jìn)行改進(jìn),讓每個平臺的用戶都能獲得良好體驗。在多平臺軟件測試過程中,需要針對主要功能以及核心模塊進(jìn)行檢測,這方面的錯誤屬于一級或者二級錯誤,需要及時修復(fù)軟件深層結(jié)構(gòu)。對于數(shù)據(jù)不充分等問題,能在短時間內(nèi)有效解決。
第一,引入自動化測試手段。在軟件測試過程中,重視應(yīng)用自動化測試手段,這種技術(shù)比較成熟,而且能減少人工操作的工作量。在測試之前,綜合性評估軟件情況,結(jié)合軟件開發(fā)項目的特點選擇最合適的自動化測試方案,這樣可以加快測試速度,在保證開發(fā)進(jìn)度的前提下提升軟件的質(zhì)量。在選擇自動化測試手段過程中,分析軟件的復(fù)雜程度、軟件規(guī)模、數(shù)據(jù)庫平臺和系統(tǒng)架構(gòu),這樣才能選擇最合適的測試方案,提升測試的速度[1]。第二,自主研發(fā)和學(xué)習(xí)借鑒。在測試之前,學(xué)習(xí)和借鑒有技術(shù)優(yōu)勢的軟件公司。這些公司已經(jīng)積累了豐富的軟件開發(fā)和測試經(jīng)驗,并且有自己的測試工具,在測試時可以借鑒他們的寶貴經(jīng)驗。此外,結(jié)合我國的實際情況,考慮企業(yè)的測試需求和規(guī)模,自主研發(fā)自動化測試工具,能顯著提升測試效率[2]。
第一,重視測試人員和開發(fā)軟件的交流和溝通。在測試過程中,一些企業(yè)的測試人員和開發(fā)人員缺乏交流,這種模式下,測試人員難以快速了解測試需求,無法定位測試的關(guān)鍵點。通過有效溝通,技術(shù)人員能分享發(fā)現(xiàn)的問題,并且歸檔和分類相關(guān)問題,把問題錄入案例庫。測試人員通過和設(shè)計人員的溝通,能制定科學(xué)的測試方案,這樣才能提升測試的速度[3]。第二,建設(shè)素質(zhì)能力強(qiáng)的測試團(tuán)隊。軟件測試過程中,“重開發(fā)輕測試”是最大的問題,測試工作可能缺乏充分的資金。當(dāng)前應(yīng)加強(qiáng)對測試人員的培訓(xùn),使其掌握專業(yè)的測試技能。通過改善測試人員的福利薪資結(jié)構(gòu),能激發(fā)他們的積極性[4]。此外,應(yīng)構(gòu)建軟件測試體系和標(biāo)準(zhǔn)。在測試過程中,遵循標(biāo)準(zhǔn)測試標(biāo)準(zhǔn),能顯著提升測試效率。測試標(biāo)準(zhǔn)中明確了軟件測試不同階段的工作內(nèi)容、團(tuán)隊建設(shè)的模式和軟件測試具體方法。同時,完善軟件測試案例庫。增加軟件測試案例,能提升軟件測試案例庫的價值,使其成為測試工作的重要參考,進(jìn)而縮短解決軟件問題的時間,避免相關(guān)問題再次出現(xiàn)[5]。
綜上所述,在軟件項目開發(fā)的過程中,會出現(xiàn)較多的風(fēng)險和不足,只有采用合理的測試方法,規(guī)范測試的流程,才能及時發(fā)現(xiàn)并且解決問題,保障軟件的質(zhì)量和運(yùn)行效率。針對測試過程中的不足,需要制定有效解決策略,完善軟件測試的各個環(huán)節(jié),建設(shè)專業(yè)的測試團(tuán)隊,遵循統(tǒng)一規(guī)范的測試體系開展工作。