鄧 佳
(中國(guó)解放軍31401部隊(duì),煙臺(tái) 264001)
隨著現(xiàn)代社會(huì)信息科技智能化水平的飛速發(fā)展,軟件相關(guān)產(chǎn)品已廣泛應(yīng)用于各行各業(yè),與人們工作生活深度融合??梢哉f(shuō),軟件產(chǎn)品質(zhì)量的高低對(duì)推動(dòng)社會(huì)信息化進(jìn)程發(fā)展起著決定性作用。軟件開(kāi)發(fā)項(xiàng)目由于其高度的復(fù)雜性和集成性,在軟件開(kāi)發(fā)過(guò)程中極易產(chǎn)生錯(cuò)誤和缺陷,因此貫穿整個(gè)軟件開(kāi)發(fā)周期的軟件項(xiàng)目測(cè)試,是保障軟件開(kāi)發(fā)質(zhì)量的重要技術(shù)手段,對(duì)提升軟件性能有顯著的促進(jìn)作用。隨著互聯(lián)網(wǎng)+時(shí)代的來(lái)臨,進(jìn)行高效專業(yè)軟件測(cè)試的要求和挑戰(zhàn)日益迫切。
IEEE將軟件測(cè)試定義為“使用人工和自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。[1]
軟件測(cè)試工作并非等到軟件開(kāi)發(fā)完畢才開(kāi)始,而是和項(xiàng)目開(kāi)發(fā)同時(shí)展開(kāi),伴隨著軟件項(xiàng)目研發(fā)生命周期的每個(gè)重要階段。第一,需求分析階段,測(cè)試人員需要參與需求調(diào)研,深入理解系統(tǒng)需求,這一步驟有助于測(cè)試計(jì)劃的科學(xué)制定及對(duì)需求規(guī)格說(shuō)明書(shū)的審核審查,是開(kāi)發(fā)過(guò)程的基礎(chǔ)。第二,分析設(shè)計(jì)階段,測(cè)試人員要詳細(xì)理解系統(tǒng)工作流的實(shí)現(xiàn)過(guò)程,針對(duì)系統(tǒng)測(cè)試需求制定出完備的測(cè)試計(jì)劃,內(nèi)容要具體到測(cè)試方法的確定、測(cè)試對(duì)象的范圍、測(cè)試時(shí)間及測(cè)試覆蓋率等,還需對(duì)開(kāi)發(fā)文檔進(jìn)行審查,檢查計(jì)劃與設(shè)計(jì)的合理性。第三,開(kāi)發(fā)階段,測(cè)試人員將系統(tǒng)合理分解成相對(duì)獨(dú)立的子系統(tǒng)以降低測(cè)試復(fù)雜性,并在此階段完成測(cè)試用例設(shè)計(jì)。軟件測(cè)試中最為關(guān)鍵的步驟就是測(cè)試用例的設(shè)計(jì),軟件測(cè)試成效如何在很大程度上是由測(cè)試用例決定的。第四,軟件測(cè)試階段,是測(cè)試的實(shí)際執(zhí)行階段,測(cè)試人員需要嚴(yán)格按照制定好的測(cè)試計(jì)劃和已經(jīng)準(zhǔn)備好的測(cè)試用例,對(duì)整個(gè)軟件項(xiàng)目和硬件環(huán)境進(jìn)行完全的測(cè)試。第五,測(cè)試完成階段,測(cè)試人員結(jié)合整個(gè)測(cè)試過(guò)程,生成最終的測(cè)試報(bào)告,主要包含測(cè)試的思路、方法,在測(cè)試過(guò)程中發(fā)現(xiàn)的問(wèn)題,如何改進(jìn),發(fā)布軟件系統(tǒng)與需求的一致性檢驗(yàn)結(jié)果等,以確定該軟件項(xiàng)目是否符合部署條件。
軟件測(cè)試根據(jù)不同的分類標(biāo)準(zhǔn)有不同的分類方法。
靜態(tài)測(cè)試方法是指對(duì)靜態(tài)的軟件代碼進(jìn)行分析和檢測(cè),在實(shí)際的測(cè)試過(guò)程中,并不需要軟件運(yùn)行起來(lái),而是單純的只對(duì)軟件的各種文檔進(jìn)行分析檢測(cè)。故而,靜態(tài)測(cè)試方法通常只應(yīng)用于軟件開(kāi)發(fā)的過(guò)程中,其主要測(cè)試手段是人工測(cè)試和計(jì)算機(jī)輔助測(cè)試。
動(dòng)態(tài)測(cè)試方法是指對(duì)運(yùn)行過(guò)程中的軟件進(jìn)行檢測(cè),其測(cè)試原理是通過(guò)檢測(cè)軟件運(yùn)行過(guò)程中的某些動(dòng)態(tài)行為,來(lái)判斷軟件的測(cè)試結(jié)果是否符合標(biāo)準(zhǔn)。動(dòng)態(tài)測(cè)試的特點(diǎn)就是必須確保軟件的完整運(yùn)行。另外,需要注意的一點(diǎn)是在實(shí)際操作過(guò)程中,除了被測(cè)試軟件,軟件測(cè)試中所涉及到的各種數(shù)據(jù)也會(huì)影響動(dòng)態(tài)測(cè)試結(jié)果。[2]
白盒測(cè)試也稱為邏輯驅(qū)動(dòng)測(cè)試或結(jié)構(gòu)測(cè)試,其工作原理是對(duì)軟件系統(tǒng)的內(nèi)部結(jié)構(gòu)進(jìn)行測(cè)試,對(duì)軟件系統(tǒng)的運(yùn)行狀態(tài)進(jìn)行評(píng)估,根據(jù)系統(tǒng)不同區(qū)域反饋的測(cè)試信息得出最終檢測(cè)結(jié)果。白盒測(cè)試主要包括:基本路徑測(cè)試法、邏輯覆蓋法、靜態(tài)結(jié)構(gòu)分析法和代碼檢查法等。白盒測(cè)試技術(shù)需要測(cè)試人員對(duì)被測(cè)試軟件的系統(tǒng)內(nèi)部構(gòu)造有足夠的了解,能夠在實(shí)際的檢測(cè)過(guò)程中正確分析軟件的檢測(cè)數(shù)據(jù)。與其他測(cè)試技術(shù)相比,白盒測(cè)試技術(shù)最大的優(yōu)勢(shì)就是測(cè)試速度快且可以促進(jìn)軟件的運(yùn)行效率。
黑盒測(cè)試的工作原理是通過(guò)對(duì)被檢測(cè)軟件的功能進(jìn)行測(cè)試,來(lái)判斷該軟件系統(tǒng)是否能夠正常運(yùn)行。在它的實(shí)際操作及應(yīng)用過(guò)程中,測(cè)試人員無(wú)需考慮軟件的內(nèi)部架構(gòu),只需對(duì)其輸入輸出數(shù)據(jù)進(jìn)行分析。黑盒測(cè)試被廣泛應(yīng)用于軟件系統(tǒng)的界面設(shè)計(jì)和功能測(cè)試方面,主要包括等價(jià)類劃分、錯(cuò)誤推測(cè)、邊界值分析、因果圖等方法。黑盒測(cè)試的技術(shù)優(yōu)勢(shì)是:操作和設(shè)計(jì)代碼簡(jiǎn)單且有利于實(shí)現(xiàn)軟件的功能。[3]
當(dāng)今社會(huì)已步入數(shù)據(jù)信息時(shí)代,大數(shù)據(jù)、物聯(lián)網(wǎng)、云計(jì)算、人工智能等新型IT技術(shù)的快速發(fā)展和廣泛應(yīng)用對(duì)軟件行業(yè)產(chǎn)生了巨大影響,也為軟件測(cè)試帶來(lái)了新的挑戰(zhàn)和機(jī)遇。
新技術(shù)背景下,軟件測(cè)試的發(fā)展會(huì)具備以下幾個(gè)特點(diǎn):一是對(duì)軟件測(cè)試周期要求更高。傳統(tǒng)的軟件測(cè)試通常會(huì)遵循軟件測(cè)試流程,但互聯(lián)網(wǎng)+技術(shù)下的軟件對(duì)即時(shí)性要求很高,應(yīng)對(duì)市場(chǎng)需求要有更快的更新速度,因此軟件測(cè)試周期需更加快捷。二是對(duì)數(shù)據(jù)準(zhǔn)確性和可靠性需要求更高。面對(duì)概念模糊、格式不一的海量數(shù)據(jù),軟件測(cè)試效率會(huì)在一定程度上降低,因此,提升數(shù)據(jù)準(zhǔn)確性和可靠性將有助于減少軟件測(cè)試頻次,提高測(cè)試性能。三是軟件測(cè)試將趨于標(biāo)準(zhǔn)化。在軟件測(cè)試進(jìn)程中實(shí)現(xiàn)檢測(cè)標(biāo)準(zhǔn)化后,軟件開(kāi)發(fā)人員更容易滲透軟件開(kāi)發(fā)和設(shè)計(jì)的思想,去規(guī)范和完善軟件測(cè)試。四是智能測(cè)試工具將得到開(kāi)發(fā)和推廣。在新技術(shù)環(huán)境下手工方式的軟件測(cè)試將逐漸被智能測(cè)試軟件所取代,也就需要我們開(kāi)發(fā)出合適的軟件測(cè)試工具以應(yīng)對(duì)軟件測(cè)試范圍不斷擴(kuò)大的新需求,提升預(yù)期和實(shí)際數(shù)據(jù)的一致性。
軟件測(cè)試技術(shù)已經(jīng)成為保證軟件產(chǎn)品質(zhì)量的重要組成部分,甚至已發(fā)展為推進(jìn)軟件開(kāi)發(fā)和實(shí)踐應(yīng)用的重要驅(qū)動(dòng)因素。為滿足新時(shí)代更多的的軟件測(cè)試需求,我們需要不斷總結(jié)成熟的方法,研究新的熱點(diǎn),提出不同的思路,以促進(jìn)軟件測(cè)試系統(tǒng)工程的研究和軟件產(chǎn)業(yè)的快速發(fā)展。