軟件測試與質(zhì)量保證_第1頁
軟件測試與質(zhì)量保證_第2頁
軟件測試與質(zhì)量保證_第3頁
軟件測試與質(zhì)量保證_第4頁
軟件測試與質(zhì)量保證_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件測試與質(zhì)量保證王韌(上海交通大學(xué)軟件學(xué)院, 上海 )摘要:隨著計(jì)算機(jī)應(yīng)用越來越廣泛與深入,軟件也越來越復(fù)雜,人們已清楚的認(rèn)識(shí)到軟件產(chǎn)品和其它工業(yè)產(chǎn)品一樣,未經(jīng)測試、試驗(yàn)是不能作為產(chǎn)品推向市場的。軟件產(chǎn)業(yè)的發(fā)展,需要合格的、高質(zhì)量的商品化軟件產(chǎn)品。軟件質(zhì)量提高是一個(gè)龐大的系統(tǒng)工程,涉及到技術(shù)、過程和人員等綜合因素, 本文針對(duì)軟件質(zhì)量提高工作的關(guān)鍵環(huán)節(jié)軟件測試進(jìn)行探討,著重討論了軟件測試和質(zhì)量提高工作中可能面臨的問題,試圖為IT組織的軟件質(zhì)量實(shí)踐工作提供幫助。關(guān)鍵詞: 軟件測試 軟件質(zhì)量 質(zhì)量保證 質(zhì)量提高 1. 引言軟件質(zhì)量作為參與國際競爭的必要條件,日益受到人們的關(guān)注。由于受到資源限制和環(huán)境影響,多數(shù)IT組織追求短期利益、放棄長遠(yuǎn)質(zhì)量投資在所難免,陷入發(fā)展的惡性循環(huán)。顯然,在合理借鑒國外成功經(jīng)驗(yàn)的基礎(chǔ)上,探尋切合國內(nèi)實(shí)際情況的軟件質(zhì)量提高途徑是當(dāng)務(wù)之急。軟件測試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試僅處于編碼之后、運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付用戶使用之前軟件質(zhì)量保證的最后手段。這是一種誤導(dǎo),軟件生命周期每一階段中都應(yīng)包含測試,從靜態(tài)測試到動(dòng)態(tài)測試,要求檢驗(yàn)每一個(gè)階段的成果是否符合質(zhì)量要求和達(dá)到定義的目標(biāo),盡可能早的發(fā)現(xiàn)錯(cuò)誤并加以修正。如果不在早期階段進(jìn)行測試,錯(cuò)誤的不斷擴(kuò)散、積累常常會(huì)導(dǎo)致最后成品測試的巨大困難、開發(fā)周期的延長、開發(fā)成本的劇增等等。2. 軟件測試與軟件質(zhì)量保證之間的關(guān)系軟件測試和軟件質(zhì)量保證是軟件質(zhì)量工程的兩個(gè)不同層面的工作。軟件測試只是軟件質(zhì)量保證工作的一個(gè)重要環(huán)節(jié)。軟件測試是為使產(chǎn)品滿足質(zhì)量要求所采取的作業(yè)技術(shù)和活動(dòng),它包括檢驗(yàn)、糾正和反饋。比如軟件測試進(jìn)行檢驗(yàn)發(fā)現(xiàn)不良品后將其剔除,然后將不良信息反饋給相關(guān)部門采取改善措施。因此軟件測試的控制范圍主要是在工廠內(nèi)部,其目的是防止不合格品投入、轉(zhuǎn)序、出廠。確保產(chǎn)品滿足質(zhì)量要求及只有合格品才能交付給客戶。軟件質(zhì)量保證是為滿足顧客要求提供信任,即使顧客確信你提供的產(chǎn)品能滿足他的要求。軟件質(zhì)量保證的目的不是為了保證產(chǎn)品質(zhì)量,保證產(chǎn)品質(zhì)量是軟件測試的任務(wù)。軟件質(zhì)量保證主要是提供確信。因此需對(duì)了解客戶要求開始至售后服務(wù)的全過程進(jìn)行管理。這就要求企業(yè)建立品管體系,制訂相應(yīng)的文件規(guī)范各過程的活動(dòng)并留下活動(dòng)實(shí)施的證據(jù),以便提供信任。軟件測試和軟件質(zhì)量保證的主要區(qū)別前者是保證產(chǎn)品質(zhì)量符合規(guī)定,后者是建立體系并確保體系按要求運(yùn)作,以提供內(nèi)外部的信任。同時(shí)軟件測試和軟件質(zhì)量保證又有相同點(diǎn):即軟件測試和軟件質(zhì)量保證都要進(jìn)行驗(yàn)證,如軟件測試按標(biāo)準(zhǔn)檢測產(chǎn)品就是驗(yàn)證產(chǎn)品是否符合規(guī)定要求,軟件質(zhì)量保證進(jìn)行內(nèi)審就是驗(yàn)證體系運(yùn)作是否符合標(biāo)準(zhǔn)要求。測試并非像大家平時(shí)認(rèn)知的那樣,不動(dòng)腦,天天對(duì)著屏幕點(diǎn)鼠標(biāo),雖然做測試門檻不高,但真正能做好做精,更需要正確的方法和勤奮的學(xué)習(xí)。首先軟件測試的主要內(nèi)容,軟件測試人員平時(shí)主要是在一定時(shí)間內(nèi)根據(jù)軟件需求對(duì)開發(fā)完成的軟件功能進(jìn)行檢測,并且能對(duì)項(xiàng)目研發(fā)過程中可能遇到的風(fēng)險(xiǎn)有預(yù)見性,及時(shí)提出,幫助團(tuán)隊(duì)優(yōu)化。檢測的時(shí)候需要站在用戶的角度,如果需求模糊,需要跟寫需求的人員溝通確保理解了需求。如果測試過程當(dāng)中發(fā)現(xiàn)問題,提交給開發(fā)修改后再次測試。直到軟件符合發(fā)布的標(biāo)準(zhǔn),結(jié)束測試。軟件測試的關(guān)鍵在于能在有限的時(shí)間內(nèi)將送測軟件中影響軟件使用的問題盡量都找到。如何才能高效的完成一次軟件測試呢。有很多因素影響測試的效果,我一一列舉:1.書寫需求的人對(duì)客戶的真正需求理解錯(cuò)誤,導(dǎo)致需求說明書與實(shí)際需求不符,這是最致命的,直接導(dǎo)致項(xiàng)目失敗,所以在測試的第一步,就要求測試人員查看需求說明書,根據(jù)需求說明書寫出對(duì)應(yīng)的測試需求,一旦發(fā)現(xiàn)需求模糊或不合理盡早跟需求人員確認(rèn)。如果條件允許的話,測試人員可以跟提出需求的人復(fù)述自己對(duì)需求的理解,如果一致,就可以按照理解的來進(jìn)行測試了。當(dāng)然,需求確定完成后還可能多次修改,這時(shí)測試人員需要注意,一方面做好更新記錄,避免后期容易遺漏,一方面要注意更改需求對(duì)項(xiàng)目的風(fēng)險(xiǎn),及時(shí)提出。2.由于研發(fā)的流程可能是多種多樣的,若是瀑布模型的,測試人員需要盡早主動(dòng)問相關(guān)人員拿到需求文檔或開發(fā)文檔,提前準(zhǔn)備測試用例和測試數(shù)據(jù),如果研發(fā)流程是開發(fā)和測試并行,測試人員也要盡量多參與多了解開發(fā)進(jìn)度,方便后期測試。3.當(dāng)有多個(gè)測試人員同時(shí)測試一個(gè)項(xiàng)目,則需要提前分配好工作,并且創(chuàng)建好測試需要用的公共文件夾,測試環(huán)境等,并且經(jīng)常溝通, 相互了解測試進(jìn)度4.測試提交BUG時(shí),對(duì)BUG的書寫也需要注意,盡量用詞準(zhǔn)確,簡潔,開發(fā)通過看BUG能了解到這個(gè)問題是通過什么步驟操作以后出現(xiàn)什么樣子的效果,還可以寫上建議的解決方案。5.盡量從用戶的角度來進(jìn)行測試,模擬用戶常用的操作場景,這樣才能發(fā)現(xiàn)用戶實(shí)際使用時(shí)可能會(huì)遇到的問題6.測試的是否全面很難量化,可以根據(jù)排列功能的重要級(jí)別,把主要精力用在重要的模塊,邏輯復(fù)雜的模塊,改動(dòng)頻繁的模塊,這些都是容易產(chǎn)生錯(cuò)誤的地方,將這些地方重點(diǎn)優(yōu)先保證,可以極大的減少嚴(yán)重的BUG產(chǎn)生7.在開始測試軟件之前,需要測試人員先想好測試的途徑,如果邊測邊想,很難保證測試效果,只有先考慮好如何分解功能模塊,每個(gè)模塊如何測試,是否有測試工具能提高測試效率等等,才能既快又準(zhǔn)的完成測試任務(wù)。8.完成測試后,最好能對(duì)這個(gè)項(xiàng)目進(jìn)行總結(jié)分析,總結(jié)常見的問題分類,測試方法,為下一次的測試做積累。3. 軟件測試對(duì)軟件質(zhì)量的影響由于人們對(duì)于軟件質(zhì)量的重視程度越來越高,就導(dǎo)致了軟件測試在軟件開發(fā)中的地位越來越重要。軟件測試是程序的一種執(zhí)行過程,目的是盡可能發(fā)現(xiàn)并改正被測試軟件中的錯(cuò)誤,提高軟件的可靠性。它是軟件生命周期中一項(xiàng)很重要且非常復(fù)雜的工作,對(duì)軟件可靠性保證具有極其重要的意義。在目前形式化方法和程序正確性證明技術(shù)還無望成為實(shí)用性方法的情況下,軟件測試在將來相當(dāng)一段時(shí)間內(nèi)仍然是軟件可靠性保證的有效方法。軟件工程的總目標(biāo)是充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成軟件開發(fā)項(xiàng)目。不足的測試勢必使軟件帶著一些未揭露的隱藏錯(cuò)誤投入運(yùn)行,這將意味著更大的危險(xiǎn)讓用戶承擔(dān),過度測試則會(huì)浪費(fèi)許多寶貴的資源。到測試后期,即使找到了錯(cuò)誤,然而付出了過高的代價(jià)。E.W.Dijkstra的一句名言說明了這一道理:“程序測試只能表明錯(cuò)誤的存在,而不能表明錯(cuò)誤不存在?!笨梢姡瑴y試是為了使軟件中蘊(yùn)涵的缺陷低于某一特定值,使產(chǎn)出、投入比達(dá)到最大。近20來年的時(shí)間,隨著計(jì)算機(jī)和軟件技術(shù)的飛速發(fā)展,軟件測試技術(shù)研究也取得了很大的突破,同時(shí)人們的要求也在不斷增加。軟件測試和軟件質(zhì)量是分不開的。測試是手段,質(zhì)量是目的。對(duì)比國外可以看到,國外軟件開發(fā)機(jī)構(gòu)會(huì)把40%的工作花在測試上,測試費(fèi)用則會(huì)占到軟件開發(fā)總費(fèi)用的30%到50%,對(duì)于一些要求高可靠性、高安全性的軟件,測試費(fèi)用則相當(dāng)于整個(gè)軟件項(xiàng)目開發(fā)費(fèi)用的3至5倍。因此,軟件測試在軟件生存期中占有非常突出的位置,是保證軟件質(zhì)量的重要手段。軟件項(xiàng)目的實(shí)踐一再說明,為了確保軟件產(chǎn)品能夠符合用戶的需要,必須著眼于整個(gè)軟件生存周期,在各個(gè)階段進(jìn)行驗(yàn)證、確認(rèn)和測試活動(dòng),使軟件不致在開發(fā)完成后,才發(fā)現(xiàn)和用戶的需求有較大的差距。軟件在很多領(lǐng)域廣泛使用,然而軟件是人編的,難免存在各種各樣的缺陷。下面給出個(gè)著名的案例。 Oracle曾分析過這樣一個(gè)故障案例:當(dāng)某人從自動(dòng)柜員機(jī)中取錢時(shí),在輸入信息后,系統(tǒng)開始交易并已經(jīng)從數(shù)據(jù)庫中扣除了100元,但在柜員機(jī)吐出錢之前,突然由于某些硬件的原因?qū)е鹿收?。這樣顧客沒有拿到錢,而在其賬戶中卻已經(jīng)被扣除了100元。為了解決這類問題,Oracle提出了”有效交易”概念,即交易中的每一步都要在上一步完全有效下才能進(jìn)行。為此,研發(fā)人員在產(chǎn)品中建立登錄檔案來記錄交易中的每個(gè)步驟,萬一交易過程突然中斷,則Oracle的登錄檔案會(huì)適時(shí)修復(fù)數(shù)據(jù),重新恢復(fù)到初始狀態(tài)。 以上只是軟件失敗時(shí)發(fā)生的歷史事件,后果也許是不方便使用,也可能是災(zāi)難性的。而隨著時(shí)間的推移,軟件缺陷修復(fù)的費(fèi)用會(huì)數(shù)十倍的增長,例如,若編寫需求說明書時(shí)就發(fā)現(xiàn)了軟件缺陷,費(fèi)用可能只要幾角錢;若在測試時(shí)才發(fā)現(xiàn)軟件缺陷時(shí)費(fèi)用可能要幾元錢;若缺陷是客戶發(fā)現(xiàn)的費(fèi)用可能達(dá)到幾百元。 由于原始問題的復(fù)雜性,軟件的復(fù)雜性和抽象性,軟件開發(fā)各個(gè)階段工作的多樣性,以及參加開發(fā)各種層次人員之間工作的配合關(guān)系等因素,使得開發(fā)的每個(gè)環(huán)節(jié)都可能產(chǎn)生錯(cuò)誤。所以不應(yīng)把軟件測試僅僅看作是軟件開發(fā)的一個(gè)獨(dú)立階段,而應(yīng)當(dāng)把它貫穿到軟件開發(fā)的各個(gè)階段中。堅(jiān)持在軟件開發(fā)的各個(gè)階段的技術(shù)評(píng)審,這樣才能在開發(fā)過程中盡早發(fā)現(xiàn)和預(yù)防錯(cuò)誤,把出現(xiàn)的錯(cuò)誤克服在早期,杜絕某些隱患,提高軟件質(zhì)量。4. 從軟件測試到質(zhì)量保證在中國,專業(yè)的軟件測試服務(wù)目前尚處于起步階段,而專業(yè)化的質(zhì)量測試服務(wù)機(jī)構(gòu),必須具備下面三個(gè)條件:1、有先進(jìn)的、完整的軟件質(zhì)量測試管理理念;2、結(jié)合先進(jìn)的測試技術(shù)和工具,有一套完整的實(shí)用的質(zhì)量測試解決方案;3、擁有一批行業(yè)經(jīng)驗(yàn)豐富,測試水平高超,項(xiàng)目管理能力很強(qiáng)的咨詢實(shí)施團(tuán)隊(duì)。建設(shè)銀行總行,十分注重自身的IT系統(tǒng)質(zhì)量,其信息化水平在業(yè)內(nèi)也屬于領(lǐng)先地位。他們采用的策略是針對(duì)重點(diǎn)系統(tǒng)進(jìn)行性能測試,驗(yàn)證各種系統(tǒng)在不同使用條件和壓力下的性能表現(xiàn),跟據(jù)性能測試進(jìn)行系統(tǒng)性能優(yōu)化,包括對(duì)用戶行為、硬件和軟件參數(shù)配置、數(shù)據(jù)庫和代碼的優(yōu)化。對(duì)軟件體系結(jié)構(gòu)方面的性能基準(zhǔn)測試和咨詢。從而確保系統(tǒng)在上線前后都無質(zhì)量問題。此外,在項(xiàng)目前期通過實(shí)施事業(yè)部提供的設(shè)備選型方案和技術(shù)架構(gòu)驗(yàn)證方案,采用科學(xué)化的技術(shù)手段和客觀的數(shù)字分析,來采購最適合的設(shè)備和最適宜業(yè)務(wù)特點(diǎn)的架構(gòu),避免了資金的浪費(fèi)和后期的開發(fā)風(fēng)險(xiǎn)。如何判斷IT系統(tǒng)質(zhì)量是否存在問題?一般的評(píng)判標(biāo)準(zhǔn)包含以下幾個(gè)方面:1、功能,軟件的規(guī)范和滿足用戶需求的程度;2、性能,即軟件的運(yùn)行速度和消耗的資源;3、可靠性和安全性,在規(guī)定的時(shí)間和條件下,軟件所能維持其性能水平的程度;4、友好度,軟件的學(xué)習(xí)、理解和使用的方便程度;5、可維護(hù)性,當(dāng)運(yùn)行條件或者軟件本身發(fā)生故障的時(shí)候,對(duì)其進(jìn)行修正的困難程度。系統(tǒng)能不能用,是用戶關(guān)心首要問題。這就需要功能測試,原則就是不能出錯(cuò)。系統(tǒng)是一個(gè)有機(jī)的整體,動(dòng)一指而牽全身。所以,一個(gè)細(xì)微功能的改變都有可能對(duì)系統(tǒng)的其它部分造成重大影響。比如,銀行最常見的業(yè)務(wù)是存、取款,如果因?yàn)樾碌墓δ芗尤?,造成存、取款業(yè)務(wù)出現(xiàn)錯(cuò)誤,甚至無法完成的話,那么就需要對(duì)新加入的功能模塊進(jìn)行修正。解決了系統(tǒng)是否能用問題,好不好用就提到了重要位置。也就是性能測試。如果系統(tǒng)不能在規(guī)定的時(shí)間內(nèi)做出正確響應(yīng)的話,就是根本無法投入使用的,再強(qiáng)的功能也只能是擺設(shè)。性能測試,就是要找出對(duì)系統(tǒng)性能起著瓶頸式影響的各種因素并對(duì)其進(jìn)行優(yōu)化。功能再強(qiáng),性能再好,但如果系統(tǒng)三天兩頭出故障,同樣也是不能接受的,所以需要進(jìn)行可靠性和安全性方面的測評(píng)。而友好度和可維護(hù)性,都可以通過功能測試和針對(duì)性地專項(xiàng)測試來實(shí)現(xiàn)。總之,IT系統(tǒng)質(zhì)量的幾個(gè)因素相互關(guān)聯(lián)。比如,功能的提升,可能會(huì)帶來可靠性和性能方面的問題。所以,質(zhì)量測試工作必須從全局的高度出發(fā),平衡各因素的影響,從而系統(tǒng)質(zhì)量能夠滿足用戶需求。然而,測試終究是被動(dòng)的查漏補(bǔ)缺,沒能從根本上解決質(zhì)量問題,實(shí)現(xiàn)標(biāo)本兼治。如果從IT系統(tǒng)生命周期的源頭做起,從過程上做起必然能大大提高軟件開發(fā)與應(yīng)用的效率,這就是質(zhì)量管理。即是從客戶的需求開始,主動(dòng)對(duì)IT系統(tǒng)生命周期的產(chǎn)生過程進(jìn)行質(zhì)量控制。根據(jù)業(yè)界著名的“V”字型模型,每一項(xiàng)測試工作都與開發(fā)的經(jīng)過是一一對(duì)應(yīng)的。所以需要從需求開始,結(jié)合軟件質(zhì)量5個(gè)方面的層次需求,按照需求、設(shè)計(jì)、詳設(shè)、開發(fā)、測試的流程,對(duì)軟件的質(zhì)量進(jìn)行全生命周期的質(zhì)量管理,這樣,才可能把隱患減小到比較低的程度。 建設(shè)銀行總行,在質(zhì)量測試事業(yè)部的助力下,建立起一套有效的測試體系和管理流程,整合業(yè)界最先進(jìn)的測試管理工具,從測試需求的管理、測試分析設(shè)計(jì)、測試案例的設(shè)計(jì)、測試執(zhí)行、缺陷的管理和報(bào)告,確保使每一個(gè)需求,都保障得到有效的測試,每一次變更,都保障得到測試的覆蓋。對(duì)于自身大型IT項(xiàng)目,采用了事業(yè)部的測試管理、質(zhì)量保證方案;創(chuàng)新性地應(yīng)用了項(xiàng)目群架構(gòu)關(guān)聯(lián)密集型的測試管理思路,制定了多主線并發(fā)測試管理流程,以及目標(biāo)系統(tǒng)驅(qū)動(dòng)的管理模式,在實(shí)際運(yùn)作中取得了明顯成效,有效的控制了項(xiàng)目質(zhì)量風(fēng)險(xiǎn),使項(xiàng)目開發(fā)更加有的放矢,成果顯著。所以,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論