件測試基礎(chǔ)知識(shí)簡介什么是軟件測試
軟件測試是軟件需求分析、測試計(jì)劃分析、測試用例分析、測試用例設(shè)計(jì)、測試用例執(zhí)行等一系列過程活動(dòng)。 它必須在整個(gè)軟件測試周期內(nèi),在軟件項(xiàng)目的各個(gè)階段,進(jìn)行針對(duì)性不同的內(nèi)容測試活動(dòng),保證各個(gè)階段的正確性。
為什么要進(jìn)行軟件測試
如果安裝的軟件是未經(jīng)測試的軟件,則在使用過程中可能會(huì)出現(xiàn)軟件堵塞、帳戶被盜或資金被挪用的情況。 軟件測試工程師的出現(xiàn)是為了避免這個(gè)問題。
一、開發(fā)模式
1、瀑布模型
計(jì)劃——需求分析——設(shè)計(jì)——代碼——測試——http://www.Sina.com/
線性化研發(fā)模型各階段具有里程碑特性、文檔驅(qū)動(dòng)困難的階段評(píng)審機(jī)制特點(diǎn)
有利于人員在大型軟件開發(fā)過程中的組織和管理有利于開發(fā)方法和工具的使用提高了軟件的質(zhì)量和效率優(yōu)點(diǎn)
不靈活的缺點(diǎn)
用戶需求——需求分析——概要設(shè)計(jì)——詳細(xì)設(shè)計(jì)——代碼——單元測試3354集成測試——系統(tǒng)測試——驗(yàn)收測試
2、V模型
軟件測試分為幾個(gè)層次,提高軟件質(zhì)量的軟件測試和開發(fā)水平一對(duì)一優(yōu)點(diǎn)
軟件測試的對(duì)象不僅是程序,文檔驗(yàn)收測試也是最后階段,需求分析階段的問題只能在驗(yàn)收測試中發(fā)現(xiàn)。
缺點(diǎn)在開發(fā)活動(dòng)測試活動(dòng)的同時(shí)進(jìn)行軟件測試的對(duì)象不僅是程序,還包括文檔,可以通過提前投入測試來降低開發(fā)成本。
不可重復(fù)(相對(duì)的、非絕對(duì)的)
3、W模型
首先引入探索性測試的研發(fā)模式,將軟件分為幾個(gè)領(lǐng)域,集成形成最終的軟件
優(yōu)點(diǎn)
非線性研發(fā)模型引入風(fēng)險(xiǎn)管理進(jìn)行評(píng)價(jià)
缺點(diǎn)
非線性開發(fā)模型,也稱為原型定義,主要適用于小公司,客戶最后了解軟件的情況,首先制作demo (模型或風(fēng)格),為客戶進(jìn)行產(chǎn)品預(yù)演示
二、開發(fā)方式
4、X模型
每次只設(shè)計(jì)和實(shí)現(xiàn)一小部分產(chǎn)品,逐步完成的方法叫迭代開發(fā),每次設(shè)計(jì)和實(shí)現(xiàn)的階段叫迭代
5、螺旋模型
降低需求更改成本通過早期用戶反饋進(jìn)行持續(xù)集成和測試
6、快速原型
敏捷開發(fā)以用戶需求的進(jìn)化為中心,以反復(fù)的、逐次的方法進(jìn)行軟件開發(fā)
敏捷開發(fā)的核心價(jià)值觀:
個(gè)人交流比流程和工具重要(個(gè)人交流主要指人與人之間的交流)可用軟件比完整文檔重要,客戶合作比合同談判響應(yīng)的變化重要,計(jì)劃
1、迭代開發(fā)
敏捷確實(shí)是項(xiàng)目進(jìn)入了實(shí)質(zhì)性的開發(fā)迭代階段,用戶很快就能看到基線框架版的產(chǎn)品,敏捷注重市場的快速反應(yīng)能力
優(yōu)點(diǎn)
注重敏捷的交流忽視了文檔的重要性。 項(xiàng)目出行者過多會(huì)給維護(hù)帶來很多困難,項(xiàng)目有很多初學(xué)者會(huì)讓資深員工疲憊不堪
tips :
敏捷和迭代不同,但他們不能分離。 迭代開發(fā)與敏捷開發(fā)相結(jié)合,既保證了產(chǎn)品質(zhì)量,又在項(xiàng)目產(chǎn)品持續(xù)改進(jìn)中具有一定優(yōu)勢,吸取精華,剔除其糟粕。 只有這樣,項(xiàng)目才能接近完美。
這里給大家準(zhǔn)備了我從大學(xué)到大廠工作的軟件測試資料,無償分享給大家,需要的可以點(diǎn)擊自取

三、項(xiàng)目中成員
1、項(xiàng)目經(jīng)理(PM )。
2、架構(gòu)師
3、程序員
4、軟件測試工程師
5、資料工程師
6、配置管理員(CMO )。
7、QA
8、產(chǎn)品經(jīng)理(BA )。
9、用戶界面設(shè)計(jì)
10、數(shù)據(jù)庫管理員(DBA )。
四、軟件生命周期要求——設(shè)計(jì)——代碼3354測試3354維護(hù)——升級(jí)——淘汰
五、軟件測試流程需求分析——測試計(jì)劃——測試方案——測試用例3354測試運(yùn)行——測試報(bào)告
六、軟件測試定義是在規(guī)定條件下操作程序,發(fā)現(xiàn)缺陷,評(píng)估軟件質(zhì)量
七、軟件測試的目的是盡可能多地發(fā)現(xiàn)軟件缺陷,預(yù)防缺陷,評(píng)估軟件質(zhì)量,提高軟件質(zhì)量
八、測試范圍或?qū)ο蟪绦?、文檔、數(shù)據(jù)
九、軟件測試原則1、所有測試應(yīng)追溯到用戶需求
需求是軟件測試的依據(jù)2、應(yīng)該以盡快測試、不斷測試為測試者的座右銘
早期測試可以降低開發(fā)成本,持續(xù)測試可以提高軟件質(zhì)量3、不能進(jìn)行完整測試,測試需要中止
成本和現(xiàn)實(shí)的考慮4、測試不能反映程序的潛在缺陷
缺陷可能只在特定的情況下出現(xiàn)5、避免程序員檢查自己的程序
開發(fā)要沿襲以前的開發(fā)想法來尋找問題,很難發(fā)現(xiàn)問題點(diǎn)
>6、充分留意程序缺陷的富集
二八定律,80%的缺陷會(huì)出現(xiàn)在20%的模塊中
7,、避免出現(xiàn)測試的隨機(jī)性
測試需要計(jì)劃,節(jié)約成本和人力 十 、軟件測試分類
按照開發(fā)階段劃分(開發(fā)中階段)
單元測試
單元測試也叫模塊測試,是針對(duì)軟件測試設(shè)計(jì)最小單位————程序模塊進(jìn)行正確性檢驗(yàn)的測試工作。其目的在于檢查每個(gè)程序單元能否正確實(shí)現(xiàn)詳細(xì)設(shè)計(jì)說明中的模塊功能、性能、接口和設(shè)計(jì)約束等要求,發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。單元測試需要從內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測試用例。多個(gè)模塊可以平行的獨(dú)立進(jìn)行單元測試。(這也是開發(fā)人員在開發(fā)過程中用的最多的一種方法。
測試依據(jù):詳細(xì)設(shè)計(jì)
測試人員:90%都是開發(fā)人員
集成測試
集成測試也叫組裝測試,通常是在單元測試的基礎(chǔ)上,將所有的程序模塊進(jìn)行有序的、遞增的測試。集成測試是檢驗(yàn)程序單元或部件的接口關(guān)系,逐步成為符合概要設(shè)計(jì)要求的程序部件或整個(gè)系統(tǒng)。
測試依據(jù):概要設(shè)計(jì)
測試人員:軟件測試工程師集成的分類:非增量式集成:一次性集成
增量式集成:
自頂向下增量式集成:測試樁
自下而上的增量式集成:驅(qū)動(dòng)程序
( 開發(fā)完成階段)
確認(rèn)測試
確認(rèn)測試也叫有效性測試,在模擬環(huán)境下,驗(yàn)證軟件所有功能和性能以及其他特性是否與用戶的預(yù)期要求一致(也就是前面確認(rèn)的概念,確定軟件是否實(shí)現(xiàn)功能。一般都是正向測試(也叫冒煙測試)一般不是正式的測試階段。)
系統(tǒng)測試
系統(tǒng)測試是在真實(shí)的系統(tǒng)運(yùn)行環(huán)境下,檢查完整的程序系統(tǒng)是否和系統(tǒng)正確配置、連接,并最終滿足用戶的所有需求
1、這也是系統(tǒng)所有功能正式的,全面的測試。
2、模擬所有的軟件用戶的操作。
3、全方位的測試,包括承載硬件、外設(shè)、網(wǎng)絡(luò)和軟件系統(tǒng)、支持平臺(tái),與其他的軟件的關(guān)系。
4、系統(tǒng)測試的分類和范圍:
功能測試:測試系統(tǒng)功能是否實(shí)現(xiàn)
性能測試:測試系統(tǒng)所消耗的時(shí)間和資源
壓力測試:系統(tǒng)在什么情況下會(huì)達(dá)到基線
容量測試:測試系統(tǒng)的最大訪問用戶數(shù)
安全測試:驗(yàn)證系統(tǒng)是否會(huì)被攻擊
可用性測試:驗(yàn)證系統(tǒng)是否容易使用
GUI測試:界面測試
安裝測試:安裝和卸載是否正常
異常測試:檢查系統(tǒng)對(duì)異常情況下的處理
配置測試:測試系統(tǒng)軟件和硬件的最優(yōu)配置
備份測試:測試系統(tǒng)的數(shù)據(jù)備份
健壯性測試:用于檢測系統(tǒng)出現(xiàn)故障時(shí),能否自行恢復(fù)或者忽略故障繼續(xù)運(yùn)行
文檔測試:測試幫助文檔
在線幫助測試:聯(lián)系產(chǎn)品的售后客服
網(wǎng)絡(luò)測試:在不同網(wǎng)絡(luò)環(huán)境下進(jìn)行測試(2G,3G,4G,5G,WiFi等)
穩(wěn)定性測試:軟件長時(shí)間運(yùn)行,測試系統(tǒng)是否能夠長時(shí)間運(yùn)行
驗(yàn)收測試
是軟件測試的最后一個(gè)環(huán)節(jié)。按照項(xiàng)目的任務(wù)書或者合同、供需雙方約定的驗(yàn)收依據(jù)文檔進(jìn)行的對(duì)整個(gè)系統(tǒng)的測試與評(píng)審,決定是否接收或者拒收系統(tǒng)。
1、一般是由供求雙方達(dá)成的,一般有兩種種及驗(yàn)收測試主體。
α測試:軟件開發(fā)商自己進(jìn)行的交付前的測試。(非正式驗(yàn)收測試)
β測試:軟件需求方自己進(jìn)行的測試。(正式驗(yàn)收測試)
α測試與β測試的區(qū)別:1、α測試是由公司內(nèi)部人員測試,β測試由典型用戶測試
2、α測試發(fā)現(xiàn)的BUG可以控制,β測試發(fā)現(xiàn)的BUG不可控
3、α測試使用的是測試環(huán)境,β測試使用的是 現(xiàn)網(wǎng)環(huán)境
4、α測試發(fā)現(xiàn)的問題可以及時(shí)修復(fù),β測試發(fā)現(xiàn)的問題只能集中統(tǒng)一修復(fù)
按照代碼運(yùn)行劃分
靜態(tài)測試
指不實(shí)際運(yùn)行被測對(duì)象,而只是靜態(tài)的檢查程序代碼、界面或者文檔中可能存在錯(cuò)誤的過程。
1、代碼測試:主要測試代碼是否符合相應(yīng)的標(biāo)準(zhǔn)和規(guī)范。
2、界面測試:主要測試軟件的實(shí)際界面與需求中的說明是否相符。
3、文檔測試:主要測試用戶手冊和需求說明是否真正符合用戶的實(shí)際需求。
動(dòng)態(tài)測試
指實(shí)際運(yùn)行被測對(duì)象,輸入相應(yīng)的測試數(shù)據(jù),檢查實(shí)際輸出結(jié)果和預(yù)期結(jié)果是否相符的過程。
所以我們判斷一個(gè)測試屬于動(dòng)態(tài)測試還是靜態(tài)測試,唯一的標(biāo)準(zhǔn)就是看是否運(yùn)行程序
按照測試技術(shù)分類
黑盒測試
通過軟件的外部表現(xiàn)來發(fā)現(xiàn)其缺陷和錯(cuò)誤。黑盒測試法把測試對(duì)象看成一個(gè)黑盒子,完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程。黑盒測試實(shí)在程序界面處進(jìn)行測試,它只是撿查程序是否按照需求規(guī)格說明書的規(guī)定正常實(shí)現(xiàn)。
白盒測試
通過對(duì)程序內(nèi)部結(jié)構(gòu)的分析,檢測來尋找問題,白盒測試法把測試對(duì)象看成一個(gè)透明盒子,檢查是否所有的結(jié)構(gòu)以及路徑都是正確的,檢查軟件內(nèi)部動(dòng)作是否按照設(shè)計(jì)說明的規(guī)定正常進(jìn)行。白盒測試也叫結(jié)構(gòu)測試。
灰盒測試
介于白盒黑盒之間的測試,關(guān)注輸入的正確性;同時(shí)也關(guān)注內(nèi)部表現(xiàn),但這種關(guān)注不像白盒測試那樣詳細(xì)、完整,只是通過一些表征性的現(xiàn)象、事件、標(biāo)志來判斷程序內(nèi)部的運(yùn)行狀態(tài)。
其他測試
回歸測試
是指對(duì)軟件新版本測試時(shí),重復(fù)執(zhí)行之前某一個(gè)重要版本所有測試用例。
目的:
1、驗(yàn)證之前版本產(chǎn)生的所有缺陷已經(jīng)全部被修復(fù)
2、確認(rèn)修復(fù)這些缺陷沒有引發(fā)新的缺陷
冒煙測試
是指在對(duì)一個(gè)新版本進(jìn)行系統(tǒng)大規(guī)模測試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測性。
隨機(jī)測試
是指測試人員基于經(jīng)驗(yàn)和直覺的測試,發(fā)現(xiàn)一些邊緣性的錯(cuò)誤。
猴子測試
把自己當(dāng)作不懂產(chǎn)品的用戶。隨意亂點(diǎn),沒有任何主觀意識(shí)和規(guī)律的點(diǎn)擊,讓一些意想不到的操作造成錯(cuò)誤的結(jié)果。
這里給大家準(zhǔn)備了我從大學(xué)到大廠工作的軟件測試資料,無償分享給大家,需要的可以點(diǎn)擊自取
