軟件測試概述
軟件測試的IEEE定義:使用人工或自動的手段來運(yùn)行或測量軟件系統(tǒng)的過程,目的是檢驗軟件系統(tǒng)是否滿足規(guī)定的需求,并找出與預(yù)期結(jié)果之間的差異。軟件測試的發(fā)展趨勢:
①測試將進(jìn)一步前移。軟件測試不僅僅是單元測試、集成測試、系統(tǒng)測試和驗收測試,還對需求的精確性和完整性的測試技術(shù)、對系統(tǒng)設(shè)計的測試技術(shù)將成為新的研究熱點。
②軟件架構(gòu)師,開發(fā)工程師,QA人員,測試工程師將進(jìn)行更好的融合
③測試職業(yè)將得到更充分的尊重。
④設(shè)置獨立的軟件測試部門將成為未來軟件公司的共識。
⑤測試外服務(wù)將快速增長,和軟件開發(fā)外一樣,軟件測試外將成為全球化的趨勢。
軟件測試工程師的素質(zhì):
責(zé)任心;溝通能力;團(tuán)隊合作精神;耐心、細(xì)心和信心;保持懷疑的態(tài)度,有缺陷預(yù)防的意識;不斷學(xué)習(xí)的能力。
合格的測試工程師應(yīng)具有的能力:
①一般能力:括表達(dá)、交流、協(xié)調(diào)、管理、質(zhì)量意識、軟件開發(fā)過程方法、軟件工程等;
②測試技能及方法:括測試基本概念及方法、對測試工具的掌握、對專業(yè)測試標(biāo)準(zhǔn)的熟悉程度等;
③測試規(guī)劃能力:括風(fēng)險分析及防范能力、測試目標(biāo)及計劃的制定能力等;
④測試執(zhí)行能力:括測試數(shù)據(jù)/腳本/用例的制定能力、測試比較及分析能力、缺陷記錄及處理能力;
⑤測試分析、報告和改進(jìn)能力:括測試度量、統(tǒng)計技術(shù)、測試報告、過程監(jiān)測及持續(xù)改進(jìn)能力。
測試工程師的職責(zé):
測試人員要了解項目需求內(nèi)容,從用戶的角度提出自己的測試看法;
測試人員要編寫合理的測試計劃并與項目整體計劃有機(jī)地整合在一起;
測試人員要編寫覆蓋率高的測試用例;測試人員要認(rèn)真仔細(xì)的實施測試,并提交測試報告以供項目參考;
測試人員要進(jìn)行缺陷跟蹤和分析。
軟件測試基礎(chǔ)軟件概念
軟件是計算機(jī)系統(tǒng)中與硬件相互依存的一部分,括程序、數(shù)據(jù)、與其相關(guān)文檔的完整結(jié)合。軟件=程序+數(shù)據(jù)+文檔。
軟件的特點:
①軟件是一種邏輯體,而不是具體的物理體,因而它具有抽象性;
②軟件的生產(chǎn)與硬件不同,它沒有明顯的制造過程,對軟件質(zhì)量的控制,必須在開發(fā)方面下功夫;
③在軟件運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損和老化問題,然而它存在退化問題,必須進(jìn)行多次的修改和維護(hù);
④軟件的開發(fā)和運(yùn)行常常受計算機(jī)系統(tǒng)的制約,對計算機(jī)系統(tǒng)有著不同程度的依賴性,為了解除這種依賴性,在軟件開發(fā)過程中提出了軟件移植問題。
⑤軟件本身是復(fù)雜的,軟件的復(fù)雜性可能來自它所反映問題的復(fù)雜性,也可能來自程序邏輯結(jié)構(gòu)的復(fù)雜性。
⑥軟件成本的昂貴。軟件的研制需要投入大量的、復(fù)雜的、高強(qiáng)度的腦力,它的成本比較高。
軟件測試分類
單元測試:
單元測試又稱模塊測試,針對軟件設(shè)計中的最小單位——程序模塊,進(jìn)行正確性檢查的測試。單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例。多個模塊可以平行地獨立進(jìn)行單元測試。
單元定義:
C中指一個函數(shù),Java中指一個類,在圖形化的軟件中,單元一般指1個窗口,1個菜單。如何進(jìn)行單元測試:單元測試主要用白盒測試,先靜態(tài)地檢查代碼是否符合規(guī)范,然后動態(tài)運(yùn)行代碼,檢查其實際運(yùn)行結(jié)果,檢查程序的運(yùn)行結(jié)果是否正確是一個最基本的要求,還要關(guān)注容錯處理,程序的邊界值處理等。
集成測試:
集成測試又叫組裝測試,通常在單元測試的基礎(chǔ)上,將所有程序模塊進(jìn)行有序的、遞增的測試。重點測試不同模塊的接口部分。
系統(tǒng)測試:
指將整個軟件系統(tǒng)看為一個整體進(jìn)行測試,括對功能、性能、以及軟件所運(yùn)行的軟硬件環(huán)境進(jìn)行測試。
驗收測試:
驗收測試指按照項目任務(wù)書或合同、供需雙方約定的驗收依據(jù)文檔進(jìn)行的對整個系統(tǒng)的測試與評審,決定是否接收或拒收系統(tǒng)。在系統(tǒng)測試的后期,以用戶測試為主或有測試人員等質(zhì)量人員共同參與的測試。
α測試:指的是指的是由用戶,測試人員、開發(fā)人員等共同參與的內(nèi)部測試。
β測試:指的是內(nèi)測后的公測,即完全交給最終用戶測試驗收測試的重要性:驗收簽字,收錢。