金培勛
(貴陽幼兒師范高等專科學校 貴州 貴陽 550014)
隨著我國數字信息技術的成熟,社會已經進入了信息化時代,但信息化不僅僅意味著掌握了更多的信息,更重要的是有能力對相關信息數據等進行對應且專業的處理。信息化時代展現出信息數據量龐大,數據類型繁雜,數據價值密度下降等特征,其中還含有很多無關的信息,如何對這些信息進行深度挖掘和提高信息處理速度,是當前需要關注的問題。在信息化社會背景下,很多軟件形態產生了巨大且深刻的變化,這就要求軟件測試技術的深入研究。
一般而言,軟件測試在軟件開發工程當中貫徹頭尾,并且在軟件工程中的各個環節都具有非常重要的作用。
在這個階段當中,軟件測試相關人員要充分了解系統需求并對其進行比較深入的研究,并且為后續的軟件測試計劃和開發工程奠定堅實基礎[1]。
在這個階段當中,軟件測試相關人員要充分了解系統流程,并且依據測試的要求進行規劃測試方案,同時確認測試方法、對象、范圍等,詳細審查軟件工程開發的文檔,從而保障軟件工程設計和流程的合理性。
軟件測試工作人員要依據軟件工程的具體情況,將軟件分成多個相對獨立的子系統,然后將每個子系統進行相應的檢測,同時也會有針對性的案例進行相應的測試,如用例測試,這種方式能夠直接影響軟件測試成果,所以工作人員要關注用例測試過程和結果[2]。
在軟件測試當中,相關工作人員要依據測試計劃,合理使用測試用例,從而完成軟件軟硬件環境的檢測。
在軟件通過測試流程之后,工作人員要完成軟件工程的軟件測試報告。同時,將測試中發現的各種問題以及相關的思路等,詳細地寫在測試報告當中,最終也會根據測試的結果綜合判斷軟件工程最終合格與否。
隨著我國信息技術的快速發展,各種軟件測試技術層出不窮。但就測試過程中程序執行狀態,則可以將軟件測試大致分為動態、靜態測試;按照軟件結構、算法等進行分類,則可以分為黑盒、白盒、灰盒測試;就測試執行方式分類,則可以分成人工和自動兩種[3]。
動態、靜態測試按照程序只從狀態進行區分,動態測試大致有3個步驟構成,構建測試實例、執行測試、分析結果。動態測試會利用測試程序的有效運行,然后置入預制實例,得到最終的測試結果進行分析,從而得到軟件的性能、效率、準確度等。
靜態測試則不需要運行軟件程序,僅僅依據分析,或者對軟件中的程序過程、語句等進行檢查,從而確定程序有沒有問題。一般情況下,軟件測試中工作人員會審查軟件源程序結構、規格等內容尋找軟件的漏洞,進而完成軟件的測試工作[4]。
黑盒測試是指測試過程中,被檢測的程序無法打開,處于黑盒狀態,所以測試工作人員要在不考慮程序內部和特性的情況下,依據程序的說明書進行實例設計測試,同時也要檢查軟件程序中的各種功能,從而確定這些功能符合說明書的要求范圍。黑盒測試技術一般是測試軟件功能或者界面,進而確認軟件程序的最終質量[5]。
白盒測試不同于黑盒測試,在白盒測試當中,工作人員一般會通過軟件程序內部的信息數據、邏輯關系等,對軟件內部的工作活動等進行相應的檢查,進而確定軟件是否符合預先設定的規劃,同時也需要檢查軟件通路工作狀態,并進行分析。白盒測試一般是從軟件程序內部的結構入手,而且檢測過程中重點檢查邏輯結構,從而確認軟件中各個模塊的結構等是否符合標準。
灰盒測試是介于白盒、黑盒測試中間的技術,該技術關注的是軟件內部,并將其作為檢測的核心。測試軟件工程的應用完整和詳細的相對有限性,通過部分外在表現和特點進行分析,從而判斷軟件運行情況,但這種檢測方式最終的精度不高。大多情況是內部結果有問題,但輸出結果正確的情況下,才會選擇使用灰盒測試方法,不過這種方式有比較強的效率和實用性,所以在具體的使用過程中具備一定的價值。
一般在進行測試試用實例設計之后,才會進行人工測試,依據預先設計的內容執行,最終得到測試的結果并進行分析,從而確定實際結果和預期結果一樣。自動測試是軟件自動化測試,依據預定設置的前置條件運行,從而分析程序運行情況。
我國信息技術的快速提升,為當下軟件測試技術的發展奠定了基礎,但在具體發展過程中,軟件測試技術仍舊會面對很多問題,只有解決了這些問題,滿足當下社會的具體需求,才能有效推進軟件測試技術發展。
軟件的發展會經歷完全編碼、構建、服務等階段,尤其是服務階段,是發展歷程中非常重要的環節,因為服務階段軟件數量快速攀升,這就給軟件測試了巨大的壓力和困難。
(1)完全編碼過程。這個過程是軟件工程中的開始階段,其主要內容就是代碼編寫。軟件測試系統中數據庫系統足夠優秀,且有足夠強的測試性能,才能讓軟件檢測性成為現實。
(2)構建化過程。其工作是立足設計組織系統數據庫之上,同時結合部分工作特征進而形成相應的工作組件,并且組件職能在當地運作,具備很強的契合度。只有這樣,測試工作人員才能掌控相關的組件,但這些組件只能測試相關的機構和成分,不能有效完成軟件內核的測試[6]。
(3)服務過程。需要將調動的當地組件轉換成遠程服務,并依據實際掌控的外部服務進行運行,但在這個過程當中,部分軟件測試技術員對軟件服務的實際情況沒有足夠的認知,無法充分掌控軟件測試,所以只能借助服務輸出、輸入來掌握軟件服務情況,這就造成最終的軟件測試難度提升,也會讓工作內容越發繁雜。
在軟件工程中,軟件測試技術的殺蟲劑效應是因為基本病毒無線傳播引起的。在網絡環境中,軟件測試種類非常多,在具體運行當中,因為具備非常強的病毒免疫力,就像農業領域中用的殺蟲劑,如果在生產過程中長期使用同一種殺蟲劑,那么病毒就會同害蟲一樣產生非常強的抗藥性,殺蟲劑就無法殺死害蟲,病毒也就獲得了免疫力。所以,在軟件工程開始之初,就要不斷地完善軟件中的各種缺陷,不斷優化軟件內部,讓軟件更加完善,有效提升軟件的各種性能。所以,在軟件測試當中,殺蟲劑效應能夠推動軟件測試技術不斷提升和發展,這對提升系統處理技術有非常具體的意義。另外,殺蟲劑效應的出現,也會讓軟件測試技術的發展更加完善和健全,進而形成抵抗力比較強的軟件測試體系[7]。
在軟件測試技術當中,規范化能夠為測試結果的精度提供重要保障,同時也可以有效促進軟件測試技術的健康有序發展,所以相關技術人員要不斷地將軟件測試進行標準化,通過規范軟件測試技術,從而奠定該技術持續穩定發展的基礎。同時,在數字信息技術的發展下,軟件測試技術在具體應用中也會不斷地進步發展,并逐步走向成熟,其應用當中的多態性、封裝性等特征就會顯現,也為軟件測試技術的發展提供相應的保障。
在軟件測試當中,測試用例在其中有著重要作用。隨著軟件工程的發展以及軟件領域對軟件測試的關注,軟件測試工作量也會快速增加。因此,在這個環境下人工或者手工檢測、測試等,已經無法滿足當下軟件行業領域的發展,所以自動化軟件測試會得到更廣泛的使用[8]。自動化的軟件測試是對軟件進行全自動或者部分自動化測試,在這個過程中人為操作的元素越來越少,甚至不需要人工元素的參與,就能完成軟件的測試,從而明顯提升軟件測試效率。未來,自動化軟件測試技術將會成為主要的發展方向。
為了確保軟件測試能夠有足夠的精確度,在軟件測試當中就要不斷拓展測試范圍,同時也要科學分析得到的測試數據,提升軟件工程全流程的可靠性。另外,在拓展軟件測試范圍過程中,也需要預防和控制工作,有意識地規避各種風險和缺點,從而提升成本控制提升軟件測試效率。
綜上所述,隨著我國信息科技的快速進步,各種技術發展不僅呈現出發展加快,也出現多元化的特征,對于軟件工程中軟件測試技術的研究而言,不僅是壓力和挑戰,也是該技術能夠持續發展創新的動力。在軟件工程開發當中,為了避免軟件測試中出現漏洞,就需要合理利用各種軟件測試技術。同時,隨著網絡的發展,軟件數量的增多,未來軟件測試技術發展趨勢必然是逐步走向自動化、智能化,這樣才能適應我國軟件工程的發展。