趙亞清
天津環(huán)投數(shù)字科技有限公司 天津 300452
軟件測試是驗(yàn)證交付的軟件能夠達(dá)到預(yù)期的功能需求,或者檢測軟件的實(shí)際輸出功能與預(yù)期的功能之間是否存在差異,以及軟件在安全性、功能性、容錯性、穩(wěn)定性方面是否滿足要求。軟件測試最終目標(biāo)是發(fā)現(xiàn)開發(fā)的軟件是否存在錯誤。一般來說,是從用戶使用的視角出發(fā),通過測試發(fā)現(xiàn)軟件中存在不符合預(yù)期的功能、隱藏的錯誤與缺陷。從開發(fā)者的視角出發(fā)分析,希望開發(fā)的軟件不存在錯誤、具有容錯異常處理能力,是一個(gè)成熟可靠,具有高質(zhì)量的“藝術(shù)品”,以保證開發(fā)的軟件能夠滿足客戶的要求,對用戶是友好易操作的,以此來提高用戶對軟件使用的信心[1]。
隨著軟件開發(fā)領(lǐng)域的需求日益增加,軟件測試已經(jīng)是其開發(fā)過程中重要的一部分,國家也越來越注重對軟件測試人員的培養(yǎng)。軟件測試是發(fā)現(xiàn)軟件程序中隱藏的錯誤而施行的操作過程,換而言之軟件測試就是為軟件可靠性而生的,只有軟件通過測試系統(tǒng)才能擁有高可靠性。如果一個(gè)沒有通過測試的軟件就給用戶使用,那就不能保證在使用過程中是否會出現(xiàn)的各種錯誤,甚至?xí)绊懻麄€(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行,這樣用戶體驗(yàn)極差,同時(shí)用戶的信賴度也隨之下降。怎么樣才能保證軟件的質(zhì)量,我們需要通過軟件測試來得到保證,而且要保證測試用例一定是合理與適當(dāng)?shù)?,并且一定要按照軟件開發(fā)的生命周期來進(jìn)行:首先是需求分析、依次是系統(tǒng)設(shè)計(jì)、再次編碼實(shí)現(xiàn)、然后是軟件測試、最后是運(yùn)行維護(hù)。軟件測試在整個(gè)軟件開發(fā)過程中充當(dāng)?shù)氖切r?yàn)者,有了這個(gè)校驗(yàn)者工作才不會出差錯,做出來的成品質(zhì)量也是有保證的[2]。
單元測試法是軟件測試方法中的一種,它先對軟件測試進(jìn)行分塊,然后針對不同的單元設(shè)計(jì)相應(yīng)的測試方式。這種方法可以實(shí)現(xiàn)對計(jì)算機(jī)軟件的詳細(xì)檢查,使得軟件運(yùn)行的質(zhì)效得到有效保障。值得注意的是,采用該方法需要具備良好的計(jì)算機(jī)和軟件技術(shù)基礎(chǔ),這是因?yàn)閱卧獪y試法需要對軟件運(yùn)行的每一個(gè)細(xì)節(jié)都進(jìn)行檢查,盡可能發(fā)現(xiàn)細(xì)微處的漏洞。如果對計(jì)算機(jī)系統(tǒng)和軟件各個(gè)模塊的功能以及原理不能準(zhǔn)確掌握,那么在劃分測試單元和設(shè)計(jì)單元測試方式時(shí)就難免存在疏漏,進(jìn)而會影響到測試結(jié)果的可靠性[3]。
集成測試法主要是指在單元測試結(jié)束后,對軟件整體進(jìn)行測試時(shí)用到的一種方法。它主要是對相關(guān)的接口進(jìn)行檢測,因?yàn)榻涌诔鲥e會影響到軟件的正常運(yùn)行,此方法一般需要通過大面積的元件檢測來實(shí)現(xiàn)。通過集成測試,可以發(fā)現(xiàn)軟件運(yùn)行中的一些不足之處,然后再對其進(jìn)行進(jìn)一步的探究,使得軟件的運(yùn)行漸趨完善。集成測試時(shí)需要按照一定的次序開展,這可以使對軟件的檢測更加細(xì)致,很多細(xì)節(jié)問題尤其是接口問題也更易于被發(fā)現(xiàn)。
所謂邏輯驅(qū)動測試法,也就是常說的白盒測試法,它主要是對軟件的程序進(jìn)行測試。在實(shí)踐應(yīng)用中,邏輯驅(qū)動測試就是對程序的運(yùn)行路徑進(jìn)行測試,并在此基礎(chǔ)上對軟件進(jìn)行系統(tǒng)性分析。采用該方法前,應(yīng)該對軟件的整體結(jié)構(gòu)和運(yùn)行功能進(jìn)行系統(tǒng)的調(diào)研分析,然后再開展測試。
測試過程中主要是對軟件程序的執(zhí)行速率和相關(guān)路徑信息進(jìn)行獲取,然后在這些獲取信息數(shù)據(jù)的基礎(chǔ)上對其進(jìn)行系統(tǒng)性的整理和分析。值得注意的一點(diǎn)是,該方法主要是對軟件代碼的執(zhí)行路徑和速率進(jìn)行測試,對軟件程序的功能實(shí)現(xiàn)缺乏有效關(guān)注,所以在實(shí)踐應(yīng)用中還存在一些不足之處。比如軟件程序如果不完整,那么采用邏輯驅(qū)動測試法一般難以找到原因;又比如軟件數(shù)據(jù)出錯,該方法也難以發(fā)現(xiàn)軟件中存在的問題。因此,在采用該方法時(shí),要求測試人員應(yīng)該對軟件程序的要求進(jìn)行明確掌握,并在應(yīng)用中輔助采用一些相關(guān)的技術(shù)手段,這樣才能最大限度地確保軟件測試結(jié)果的有效性。
一是標(biāo)準(zhǔn)化軟件測試規(guī)范及體系。明確規(guī)定軟件測試工作流程、團(tuán)隊(duì)建設(shè)模式、軟件測試不同階段工作內(nèi)容以及預(yù)期取得的成果,統(tǒng)一化軟件測試工作文檔格式及內(nèi)容,對軟件測試工作的不同階段內(nèi)容制定可行性較高的標(biāo)準(zhǔn)體系。二是構(gòu)建軟件測試案例庫。持續(xù)完善軟件測試案例庫,有助于提升軟件測試案例的利用率,能夠盡早確定系統(tǒng)問題的來源,縮短問題分析及問題解決方案制定所需要的時(shí)間,避免此類問題再次發(fā)生,真正提升軟件測試效率,保障軟件質(zhì)量。
可以從兩方面入手:一是加強(qiáng)溝通交流。就調(diào)查發(fā)現(xiàn),很多軟件項(xiàng)目的測試工作介入時(shí)間相對較晚,并且開發(fā)人員和測試人員基本不存在溝通交流,為了避免上述問題,就要加強(qiáng)溝通交流,這樣可以讓測試人員更快了解測試內(nèi)容,快速找到軟件存在的問題點(diǎn),與同事分享發(fā)現(xiàn)的問題,將所有的問題歸類處理,錄入案例庫,設(shè)計(jì)人員在受到測試報(bào)告以后,可以與測試人員溝通交流,共同討論出一個(gè)科學(xué)的解決方案,這樣可以加快開發(fā)進(jìn)度,提高軟件質(zhì)量。二是加強(qiáng)測試團(tuán)隊(duì)的建設(shè)。軟件測試面臨的最大的問題就是“重開發(fā)輕測試”,甚至出現(xiàn)測試資金不足的現(xiàn)象,為此要摒棄這種不合理的思想,加強(qiáng)對測試人員的合理培訓(xùn),引進(jìn)一些先進(jìn)的測試技術(shù)及方法,不斷提高測試人員綜合素養(yǎng),掌握更多的專業(yè)測試技能。
計(jì)算機(jī)軟件在各行各業(yè)的應(yīng)用,使得生產(chǎn)的效率得以大大提高,人們的生活質(zhì)量也有了顯著提升。與此同時(shí),我們也要清醒地認(rèn)識到,當(dāng)前計(jì)算機(jī)軟件的普及應(yīng)用,人們的生活和工作已經(jīng)對其形成了較強(qiáng)的依賴,一旦出現(xiàn)故障或設(shè)計(jì)缺陷,造成的影響將十分巨大,所以有必要對計(jì)算機(jī)軟件開展測試工作,以確保其投入運(yùn)用后的運(yùn)行可靠性。