陳佳麗
摘要:軟件測(cè)試是軟件開發(fā)過程中不可缺少的一部分,是保證軟件質(zhì)量的關(guān)鍵。文中從需求不明確、提測(cè)質(zhì)量差、部署環(huán)境等幾個(gè)阻礙測(cè)試進(jìn)度的因素開始著手分析,不僅僅是闡述目前存在的問題與不足,也根據(jù)目前的項(xiàng)目實(shí)踐提出優(yōu)化方法來提高軟件測(cè)試效率,同時(shí)介紹通過合理的測(cè)試工具,規(guī)范的測(cè)試行為等來實(shí)現(xiàn)高效能的軟件測(cè)試。
關(guān)鍵詞:軟件測(cè)試;效率;提升方法;測(cè)試環(huán)節(jié)
隨著軟件行業(yè)的高速發(fā)展、軟件復(fù)雜度的增加和規(guī)模的日益擴(kuò)大,軟件的功能也從開始階段的單一化和簡(jiǎn)單化發(fā)展為越來越復(fù)雜,軟件規(guī)模和復(fù)雜度的增加導(dǎo)致了軟件質(zhì)量的下降,軟件質(zhì)量的下降導(dǎo)致了軟件危機(jī)。軟件測(cè)試是提高軟件質(zhì)量的有效途徑,很多企業(yè)在軟件測(cè)試工作中投入的人力、物力、財(cái)力逐漸加大,國外有些軟件公司的測(cè)試人員和開發(fā)人員的比例甚至達(dá)到1:1或2:1的程度,因此必要分析研究如何提高軟件測(cè)試效率。結(jié)合實(shí)際的項(xiàng)目工程開發(fā)我們大致從以下幾個(gè)方面來分析研究提高軟件測(cè)試效率的方法。
首先需求不明確在測(cè)試過程中阻礙測(cè)試進(jìn)度所占據(jù)的比例是最大的。軟件需求的不確定性是客觀存在且不可避免的,對(duì)于一個(gè)開發(fā)軟件來說,軟件規(guī)模越大,研制周期越長(zhǎng),需求的不確定性就越大。原因主要在于:用戶的需求隨著開發(fā)進(jìn)程的推進(jìn),用戶對(duì)原來模糊的或非明示的需求有了新的認(rèn)識(shí),隨時(shí)會(huì)提出需求的變更;用戶需求的獲取過程與描述形式往往采用不專業(yè)的自然語言,再加上開發(fā)人員的領(lǐng)域知識(shí)的局限性,往往會(huì)引發(fā)對(duì)需求的誤解。如果在測(cè)試過程中忽視驗(yàn)證用戶實(shí)際需求的正確性,不考慮需求分析的結(jié)果是否合理,一味追求與需求規(guī)格說明書的一致性, 這可能導(dǎo)致本來可以提前發(fā)現(xiàn)而避免的錯(cuò)誤,在后續(xù)過程中要花費(fèi)大量的資源與時(shí)間來改正,甚至出現(xiàn)因需求分析錯(cuò)誤導(dǎo)致的項(xiàng)目返工現(xiàn)象。很多的軟件測(cè)試工作開始于軟件工程的最后階段, 一般都在編碼之后,這樣會(huì)導(dǎo)致排錯(cuò)的難度大大增加,測(cè)試人員應(yīng)該在軟件開發(fā)的需求分析階段就參與驗(yàn)證用戶需求來盡早地發(fā)現(xiàn)和需求相關(guān)的缺陷,避免在項(xiàng)目結(jié)束階段修復(fù)問題所浪費(fèi)大量的資源與時(shí)間,從而提高軟件測(cè)試效率。
其次是提測(cè)質(zhì)量差。在軟件測(cè)試過程中開發(fā)提測(cè)速度很快,導(dǎo)致項(xiàng)目排隊(duì),結(jié)果介入測(cè)試時(shí),第一條用例都跑不通;開發(fā)提測(cè)后反復(fù)修改,反復(fù)提測(cè),反復(fù)重復(fù)驗(yàn)證,項(xiàng)目后期通過壓縮測(cè)試時(shí)間來保證項(xiàng)目進(jìn)度;開發(fā)時(shí)自測(cè)通過承諾這次肯定沒問題,結(jié)果測(cè)試數(shù)據(jù)稍一變通就跑不通過的情況比比皆是。這時(shí)候,冒煙測(cè)試的工作就顯得尤為重要。從開始到交付,軟件測(cè)試的過程,主要包括單元測(cè)試、集成測(cè)試、功能測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。冒煙測(cè)試可能是被很多軟件測(cè)試忽略的一個(gè)過程,簡(jiǎn)單講,冒煙測(cè)試是指在對(duì)一個(gè)新版進(jìn)行系統(tǒng)大規(guī)模的測(cè)試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測(cè)試性。開展冒煙測(cè)試工作有助于盡早發(fā)現(xiàn)軟件代碼存在的問題,提高軟件代碼的質(zhì)量和開發(fā)效率。在一些自動(dòng)化落實(shí)程度比較高的項(xiàng)目中,如果已經(jīng)有主要用例完成了自動(dòng)化用例覆蓋,完全可以把自動(dòng)化執(zhí)行接入到提測(cè)流程中,提測(cè)前必須過自動(dòng)化用例檢查,一方面可以節(jié)省開發(fā)準(zhǔn)備環(huán)境的時(shí)間,另一方面開發(fā)對(duì)用例的關(guān)注程度也可以減弱,所有的結(jié)果和問題都可以在自動(dòng)化用例實(shí)現(xiàn)上進(jìn)行完善。
然后部署環(huán)境在阻礙測(cè)試進(jìn)度中也占了一定的比例。一般來說從開發(fā)者使用腳手架創(chuàng)建初始項(xiàng)目,在本地搭建開發(fā)服務(wù)器進(jìn)行項(xiàng)目開發(fā),編碼完成后,經(jīng)過構(gòu)建生成目標(biāo)環(huán)境可用的代碼,到此階段的所有工作都屬于開發(fā)環(huán)節(jié)。而部署就是在開發(fā)結(jié)束后,使得軟件在某一環(huán)境中運(yùn)行起來,這個(gè)過程中會(huì)將源代碼生成可運(yùn)行的軟件包,然后將軟件包放到要部署的環(huán)境中,通過一些配置使得這個(gè)軟件包在目標(biāo)環(huán)境上也能夠正常工作。對(duì)于傳統(tǒng)的手動(dòng)部署,項(xiàng)目新增加一個(gè)功能,就需要把本地更新-構(gòu)建-發(fā)布這一套流程走一遍,看似簡(jiǎn)單,但是一旦項(xiàng)目多,部署頻繁,傳統(tǒng)手動(dòng)部署的效率就會(huì)十分低下,同時(shí)還會(huì)存在人為的誤操作性,而且這個(gè)過程既不可重復(fù)也不可靠,需要很多的時(shí)間進(jìn)行調(diào)試和排錯(cuò)(需要額外的時(shí)間),無法保證流程的每一個(gè)環(huán)節(jié)都被嚴(yán)格執(zhí)行了,相較之下自動(dòng)化部署錯(cuò)誤概率很低 (會(huì)出錯(cuò)),能更好配合項(xiàng)目進(jìn)行平臺(tái)版本迭代和更新,使軟件能夠持續(xù)集成,提高運(yùn)維部署效率。自動(dòng)應(yīng)用部署也改進(jìn)了軟件的總體質(zhì)量。在整個(gè)生命周期(包括部署在內(nèi))都使用好的工具,能夠把人的干預(yù)最小化;能夠節(jié)省必須等待某人做某事的時(shí)間。一旦把人的干預(yù)去掉,質(zhì)量就更加可預(yù)測(cè),會(huì)變得更好。
結(jié)合目前的軟件測(cè)試項(xiàng)目實(shí)踐我們可以發(fā)現(xiàn)通過手動(dòng)測(cè)試和自動(dòng)化測(cè)試的結(jié)合可以很好的提高測(cè)試的效率。目前,隨著自動(dòng)化的發(fā)展,軟件測(cè)試的速度和效率大大提高,但它不能涵蓋設(shè)計(jì)、用戶體驗(yàn)和可用性等各個(gè)方面。在軟件開發(fā)過程中,自動(dòng)測(cè)試和手動(dòng)測(cè)試的之間平衡是QA測(cè)試的未來。QA團(tuán)隊(duì)檢測(cè)錯(cuò)誤的速度越快,糾錯(cuò)所需的時(shí)間就越少,因此,在測(cè)試資源上花錢比在發(fā)布后在錯(cuò)誤上花錢更有價(jià)值。且在整個(gè)測(cè)試過程中,每一種技術(shù)、分支、情況、路線和選擇都經(jīng)過了良好的測(cè)試,以便在初始就能發(fā)現(xiàn)故障。如果在一開始就發(fā)現(xiàn)了漏洞,那么就能讓修復(fù)它的費(fèi)用最小化。自動(dòng)化測(cè)試具有一致性和快速的優(yōu)點(diǎn);然而,它并未站在用戶立場(chǎng)上。而這就是手動(dòng)測(cè)試的優(yōu)勢(shì)所在,自動(dòng)化測(cè)試只能依照為其編寫的腳本工作,而手工測(cè)試只能做到像QA工程師的完成度。結(jié)合這兩種測(cè)試可以在可用性、功能、速度、漏洞最小化和整體最優(yōu)的用戶體驗(yàn)之間取得和諧的平衡。
最后在整個(gè)測(cè)試過程中應(yīng)該規(guī)范軟件配置管理,通過管理及技術(shù)手段,對(duì)軟件和文檔版本進(jìn)行控制,保障軟件測(cè)試的有效性,重視并規(guī)范技術(shù)文檔的編寫,技術(shù)文檔不僅是開發(fā)人員進(jìn)行信息交流的手段,也是測(cè)試人員進(jìn)行測(cè)試的依據(jù)。所以軟件相關(guān)文檔應(yīng)描述明確詳細(xì),組織合理,并根據(jù)需求和設(shè)計(jì)的變更及時(shí)更新。同時(shí)為了給獨(dú)立測(cè)試人員提供更多的信息,在技術(shù)文檔中可增加各軟件模塊的重要程度、重用性及測(cè)試歷史等信息,使得獨(dú)立測(cè)試人員可以合理分配精力,對(duì)重要軟件進(jìn)行重點(diǎn)測(cè)試,減少不必要的重復(fù)勞動(dòng),提高測(cè)試效率。