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