更新時間:2019年01月02日11時53分 來源:軟件測試培訓 瀏覽次數(shù):
軟件缺陷:
1)軟件未實現(xiàn)產(chǎn)品說明書要求的功能
2)軟件出現(xiàn)了產(chǎn)品說明書指明不應(yīng)該出現(xiàn)的錯誤
3)軟件實現(xiàn)了產(chǎn)品說明書未提到的功能
4)軟件未實現(xiàn)產(chǎn)品說明書雖未明確提及但應(yīng)該實現(xiàn)的目標
5)軟件難以理解、不易使用、運行緩慢或者從測試員的角度看最終用戶會認為不好
軟件測試:為了發(fā)現(xiàn)軟件產(chǎn)品中的各種缺陷,而對軟件產(chǎn)品進行驗證和確認的活動過程,此過程貫穿整個軟件開發(fā)生命周期。 簡單的說,軟件測試是以發(fā)現(xiàn)錯誤為目的而執(zhí)行的一個程序或系統(tǒng)的過程。
軟件測試的目的:
驗證軟件需求和功能是否得到完整實現(xiàn)
驗證軟件是否可以發(fā)布
盡可能多的發(fā)現(xiàn)軟件中的bug
盡可能早的發(fā)現(xiàn)軟件中的bug
對軟件質(zhì)量做出合理評估
預防下個版本可能出現(xiàn)的問題
預防用戶使用可能出現(xiàn)的問題
發(fā)現(xiàn)開發(fā)過程中的問題和風險
軟件測試的原則:
所有測試的標準都是建立在用戶需求之上 。
合理控制測試深度與廣度,完全測試不可能,測試的投入與產(chǎn)出要均衡。
80-20原則,軟件中80%的bug可以在分析、設(shè)計與評審階段就能被發(fā)現(xiàn)與修正,16%的缺陷在系統(tǒng)的軟件測試中發(fā)現(xiàn),最后剩下的4%是用戶長期使用的過程中才能暴露出來。
盡可能早的開展測試,越早發(fā)現(xiàn)錯誤,修改的代價越小。
發(fā)現(xiàn)錯誤較多的程序段,應(yīng)進行更深入的測試。
軟件項目一啟動,軟件測試也就是開始,而不是等程序?qū)懲?,才開始進行測試 。
軟件開發(fā)人員即程序員應(yīng)當避免測試自己的程序
嚴格執(zhí)行測試計劃,排除測試的隨意性,以避免發(fā)生疏漏或者重復無效的工作
優(yōu)秀測試人員應(yīng)具備的素質(zhì):1)溝通能力與表達能力 2)好奇心與懷疑精神 3)責任感與抗壓能力 4)自信心,堅持自己的觀點
5)耐心與細心 6)逆向思維的能力 7)善于學習與總結(jié) 8)團隊協(xié)作精神 9)文檔編寫能力
優(yōu)秀測試人員應(yīng)具備的技能:1)精通業(yè)務(wù)知識 2)具備軟件編程能力,比如C,C++,JAVA等。 3)可以用腳本語言編寫小測試工具
4)主流操作系統(tǒng)應(yīng)用與網(wǎng)絡(luò)知識,可以搭建測試環(huán)境 5)熟練掌握各種數(shù)據(jù)庫知識 6)精通軟件測試理論與方法 7)掌握常用測試與開發(fā)工具的使用 8)優(yōu)秀的文檔編寫能力
軟件測試的組織架構(gòu):
1)項目型的測試組織:測試人員作為項目組的固定成員,從頭到尾的跟著項目走
2)智能型的測試組織:測試人員參與到項目中,是以獨立的測試部門委派的方式進入
3)綜合型的測試組織:項目型與職能型的結(jié)構(gòu)組合并加以改造而產(chǎn)生的。測試部門把測試人員,分為常規(guī)項目測試人員與專項測試人員。 測試部門會把常規(guī)測試人員長期委派到項目組中,成為項目中的一員。專項測試人員,一般由性能測試工程師、自動化測試工程師、安全性測試工程師等組成。只有當項目發(fā)生專門需求測試時,測試部門才靈活把專項測試人員委派到各個項目組進行專項測試。
軟件測試的分類:
1)按照是否執(zhí)行被測試軟件來分:
靜態(tài)測試:是指不運行軟件,測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等,主要對軟件需求說明書、設(shè)計說明書、軟件源代碼進行檢查與分析。
動態(tài)測試:指通過運行被測程序,檢查運行結(jié)果與預期結(jié)果的差異,分析差異原因,并分析軟件運行效率、健壯性等性能。 動態(tài)測試是目前公司主要的測試方式
2)按照測試技術(shù)分為黑盒測試和白盒測試:
黑盒測試:黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動測試,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,通過軟件的外部表現(xiàn)來發(fā)現(xiàn)其缺陷和錯誤。
白盒測試:白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)進行測試程序,通過測試來檢測產(chǎn)品內(nèi)部邏輯是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作。
3)按照測試手段來分,可以分為手工測試和自動化測試
4)按照過程階段來分,可以分為單元測試、集成測試、系統(tǒng)測試和驗收測試
單元測試:通過模塊(類/方法/函數(shù))測試,使代碼達到設(shè)計要求 主要目的是針對編碼過程中可能存在的各種錯誤,例如用戶輸入驗證過程中的邊界值的錯誤。
集成測試:將經(jīng)過單元測試的模塊逐步組裝成完整的程序。 主要目的是檢查各單元與其它程序部分之間的接口是否存在問題,各模塊功能之間是否有影響。
系統(tǒng)測試:是將已經(jīng)確認的軟件、計算機硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起進行測試。 系統(tǒng)測試是針對整個產(chǎn)品系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方 ,進行改正。
驗收測試:驗收測試是在軟件產(chǎn)品完成了單元測試、集成測試和系統(tǒng)測試之后,產(chǎn)品發(fā)布之前所進行的最后一次軟件測試活動,也稱為交付測試。 通常由業(yè)務(wù)專家或用戶進行,以確認產(chǎn)品能真正符合用戶業(yè)務(wù)上的需要。
軟件開發(fā)流程(軟件生命周期):
計劃-》需求分析-》設(shè)計-》程序編寫-》測試-》運行/維護
軟件測試流程:
測試計劃-》需求分析-》測試用例-》測試用例執(zhí)行-》提交bug-》回歸測試
軟件開發(fā)模型:
瀑布模型:適用于需求很明確的項目,分階段向下進行,無法回溯
迭代模型:需求不明確,迭代版本系統(tǒng)
敏捷開發(fā)模型:
敏捷開發(fā)是一種以人為核心、迭代、循序漸進的開發(fā)方法。 在敏捷開發(fā)中,軟件項目被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備集成和可運行的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
測試驅(qū)動開發(fā)模型:先編寫測試代碼,再寫開發(fā)代碼
軟件測試模型:
V模型:反映了測試與開發(fā)階段之間一一對應(yīng)的特點,測試在開發(fā)之后,出錯后回歸測試量大
W模型:測試伴隨整個開發(fā)周期,測試與開發(fā)同步進行,有利于盡早發(fā)現(xiàn)問題
H模型:軟件測試活動完全獨立,與其他流程并行