金九銀十求職季谓媒,總結(jié)了一些軟件測(cè)試基礎(chǔ)知識(shí)為面試做準(zhǔn)備蚯斯,跟大家分享下。
一牢贸、基本概念
軟件測(cè)試
軟件測(cè)試的目的
軟件測(cè)試的原則
軟件測(cè)試對(duì)象
軟件測(cè)試的模型
二竹观、軟件測(cè)試的流程
需求評(píng)審
測(cè)試計(jì)劃
用例設(shè)計(jì)
執(zhí)行測(cè)試
三、常見(jiàn)的用例設(shè)計(jì)方法
黑盒測(cè)試用例設(shè)計(jì)方法
白盒測(cè)試用例設(shè)計(jì)方法
四十减、常見(jiàn)的測(cè)試方法和類型
按代碼的可見(jiàn)程度劃分
按項(xiàng)目流程階段劃分
按執(zhí)行過(guò)程是否需要人工干預(yù)劃分
其它測(cè)試方法
一栈幸、基本概念
軟件測(cè)試
在規(guī)定條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)錯(cuò)誤帮辟,對(duì)軟件質(zhì)量進(jìn)行評(píng)估速址,包括對(duì)軟件形成過(guò)程的文檔、數(shù)據(jù)以及程序進(jìn)行測(cè)試
軟件測(cè)試的目的
o發(fā)現(xiàn)程序中存在的錯(cuò)誤發(fā)現(xiàn)程序中存在的錯(cuò)誤由驹,而不是證明程序無(wú)錯(cuò)誤芍锚。一個(gè)好的測(cè)試用例在于它能發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤。一個(gè)成功的測(cè)試則是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤蔓榄。開(kāi)始我們認(rèn)為做測(cè)試無(wú)非是為了證明我們編的程序是無(wú)錯(cuò)誤的并炮,那是大錯(cuò)特錯(cuò)了。因?yàn)閎ug會(huì)因時(shí)間不同甥郑,條件不同而出現(xiàn)逃魄。永遠(yuǎn)無(wú)法證明我們的程序是絕對(duì)正確的。
o為反饋信息做準(zhǔn)備為開(kāi)發(fā)者或軟件項(xiàng)目經(jīng)理提供反饋信息澜搅,以及為風(fēng)險(xiǎn)評(píng)估所準(zhǔn)備的信息
軟件測(cè)試的原則
o所有的測(cè)試都應(yīng)追溯到用戶需求伍俘。因?yàn)檐浖哪康氖鞘褂脩敉瓿深A(yù)定的任務(wù),滿足其需求勉躺,而軟件測(cè)試揭示軟件的缺陷和錯(cuò)誤癌瘾,一旦修正這些錯(cuò)誤就能更好地滿足用戶需求。
o應(yīng)盡早地和不斷地進(jìn)行軟件測(cè)試饵溅。由于軟件的復(fù)雜性和抽象性妨退,在軟件生命周期各階段都可能產(chǎn)生錯(cuò)誤,所以不應(yīng)把軟件測(cè)試僅僅看作是軟件開(kāi)發(fā)的一個(gè)獨(dú)立階段蜕企,而應(yīng)當(dāng)把它貫穿到軟件開(kāi)發(fā)的各個(gè)階段去咬荷。在需求分析和設(shè)計(jì)階段就應(yīng)開(kāi)始進(jìn)行測(cè)試工作,編寫相應(yīng)的測(cè)試計(jì)劃及測(cè)試設(shè)計(jì)文檔糖赔,同時(shí)堅(jiān)持在開(kāi)發(fā)各階段進(jìn)行技術(shù)評(píng)審和驗(yàn)證萍丐,這樣才能盡早發(fā)現(xiàn)和預(yù)防錯(cuò)誤,杜絕某些缺陷和錯(cuò)誤放典,提高軟件質(zhì)量逝变,測(cè)試工作進(jìn)行得越早基茵,越有利于提高軟件的質(zhì)量,這是預(yù)防性測(cè)試的基本原則壳影。
o在有限的時(shí)間和資源下進(jìn)行完全測(cè)試拱层,找出軟件所有的錯(cuò)誤和缺陷是不可能的,軟件測(cè)試不能無(wú)限進(jìn)行下去宴咧,應(yīng)適時(shí)終止根灯。因?yàn)椋瑴y(cè)試輸入量大掺栅、輸出結(jié)果多烙肺、路徑組合太多,用有限的資源來(lái)達(dá)到完全測(cè)試是不現(xiàn)實(shí)的氧卧。
o測(cè)試只能證明軟件存在錯(cuò)誤而不能證明軟件沒(méi)有錯(cuò)誤桃笙。測(cè)試是無(wú)法顯示潛在的錯(cuò)誤和缺陷,繼續(xù)進(jìn)一步錯(cuò)誤可能還會(huì)找到其它錯(cuò)誤和缺陷沙绝。
o充分關(guān)注測(cè)試中的集群現(xiàn)象搏明。在測(cè)試的程序段中,若發(fā)現(xiàn)的錯(cuò)誤數(shù)目多闪檬,則殘存在其中的錯(cuò)誤也越多星著,因此應(yīng)當(dāng)花較多的時(shí)間和代價(jià)測(cè)試那些具有更多錯(cuò)誤數(shù)目的程序模塊。
o程序員應(yīng)避免檢查自己的程序粗悯⌒檠考慮到人們的心理因素,自己揭露自己程序中的錯(cuò)誤是件不愉快的事样傍,自己不愿意否認(rèn)自己的工作;另一方面邮丰,由于思維定勢(shì),自己難以發(fā)現(xiàn)自己的錯(cuò)誤铭乾。因此,測(cè)試一般由獨(dú)立的測(cè)試部門或第三方機(jī)構(gòu)進(jìn)行娃循。
o盡量避免測(cè)試的隨意性炕檩。軟件測(cè)試是有組織、有計(jì)劃捌斧、有步驟的活動(dòng)笛质,要嚴(yán)格按照測(cè)試計(jì)劃進(jìn)行,要避免測(cè)試的隨意性捞蚂。
軟件測(cè)試對(duì)象
程序開(kāi)發(fā)過(guò)程中的各個(gè)文檔妇押、源程序、目標(biāo)程序及數(shù)據(jù)
軟件測(cè)試的模型
oV模型
o從左到右姓迅,描述了基本的開(kāi)發(fā)過(guò)程和測(cè)試行為敲霍,非常明確地標(biāo)明了測(cè)試過(guò)程中存在的不同級(jí)別俊马,并且清楚地描述了這些測(cè)試階段和開(kāi)發(fā)過(guò)程期間各階段的對(duì)應(yīng)關(guān)系。
o左邊依次下降的是開(kāi)發(fā)過(guò)程各階段肩杈,與此相對(duì)應(yīng)的是右邊依次上升的部分柴我,即各測(cè)試過(guò)程的各個(gè)階段。
oV模型問(wèn)題:
§測(cè)試是開(kāi)發(fā)之后的一個(gè)階段扩然。
§測(cè)試的對(duì)象就是程序本身艘儒。
§實(shí)際應(yīng)用中容易導(dǎo)致需求階段的錯(cuò)誤一直到最后系統(tǒng)測(cè)試階段才被發(fā)現(xiàn)夫偶。
§整個(gè)軟件產(chǎn)品的過(guò)程質(zhì)量保證完全依賴于開(kāi)發(fā)人員的能力和對(duì)工作的責(zé)任心,而且上一步的結(jié)果必須是充分和正確的兵拢,如果任何一個(gè)環(huán)節(jié)出了問(wèn)題,則必將嚴(yán)重的影響整個(gè)工程的質(zhì)量和預(yù)期進(jìn)度
oW模型相對(duì)于V模型卵佛,W模型更科學(xué)。W模型是V模型的發(fā)展截汪,強(qiáng)調(diào)的是測(cè)試伴隨著整個(gè)軟件開(kāi)發(fā)周期疾牲,而且測(cè)試的對(duì)象不僅僅是程序,需求衙解、功能和設(shè)計(jì)同樣要測(cè)試阳柔。測(cè)試與開(kāi)發(fā)是同步進(jìn)行的,從而有利于盡早地發(fā)現(xiàn)問(wèn)題蚓峦。W模型也有局限性舌剂。W模型和V模型都把軟件的開(kāi)發(fā)視為需求、設(shè)計(jì)暑椰、編碼等一系列串行的活動(dòng)霍转,無(wú)法支持迭代、自發(fā)性以及變更調(diào)整一汽。
二避消、軟件測(cè)試的流程
需求評(píng)審
閱讀需求、理解需求及了解需求
測(cè)試計(jì)劃
根據(jù)需求估算測(cè)試所需資源(人力召夹、設(shè)備等)岩喷、所需時(shí)間、功能點(diǎn)劃分监憎、如何合理分配安排資源等纱意。
用例設(shè)計(jì)
根據(jù)測(cè)試計(jì)劃、任務(wù)分配鲸阔、功能點(diǎn)劃分偷霉,設(shè)計(jì)合理的測(cè)試用例迄委。
執(zhí)行測(cè)試
根據(jù)測(cè)試用例的詳細(xì)步驟,執(zhí)行測(cè)試用例腾它。
三跑筝、常見(jiàn)的用例設(shè)計(jì)方法
黑盒測(cè)試用例設(shè)計(jì)方法
o等價(jià)劃分
o定義等價(jià)類劃分法是一種典型的、重要的黑盒測(cè)試方法瞒滴,它將程序所有可能的輸入數(shù)據(jù)(有效的和無(wú)效的)劃分成若干個(gè)等價(jià)類曲梗。然后從每個(gè)部分中選取具有代表性的數(shù)據(jù)當(dāng)做測(cè)試用例進(jìn)行合理的分類,測(cè)試用例由有效等價(jià)類和無(wú)效等價(jià)類的代表組成妓忍,從而保證測(cè)試用例具有完整性和代表性虏两。利用這一方法設(shè)計(jì)測(cè)試用例可以不考慮程序的內(nèi)部結(jié)構(gòu),以需求規(guī)格說(shuō)明書為依據(jù)世剖,選擇適當(dāng)?shù)牡湫妥蛹ò眨J(rèn)真分析和推敲說(shuō)明書的各項(xiàng)需求旁瘫,特別是功能需求酬凳,盡可能多地發(fā)現(xiàn)錯(cuò)誤宁仔。等價(jià)類劃分法是一種系統(tǒng)性的確定要輸入的測(cè)試條件的方法翎苫。
o有效等價(jià)類有效等價(jià)類指對(duì)于程序規(guī)格說(shuō)明來(lái)說(shuō)煎谍,是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合秩彤。利用有效等價(jià)類可以檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明預(yù)先規(guī)定的功能和性能。有效等價(jià)類可以是一個(gè)瓜富,也可以是多個(gè)与柑,根據(jù)系統(tǒng)的輸入域劃分若干部分,然后從每個(gè)部分中選取少數(shù)有代表性數(shù)據(jù)當(dāng)做數(shù)據(jù)測(cè)試的測(cè)試用例丑念,等價(jià)類是輸入域的集合。
o無(wú)效等價(jià)類無(wú)效等價(jià)類和有效等價(jià)類相反渔彰,無(wú)效等價(jià)類是指對(duì)于軟件規(guī)格說(shuō)明而言恍涂,沒(méi)有意義的再沧、不合理的輸入數(shù)據(jù)集合炒瘸。利用無(wú)效等價(jià)類顷扩,可以找出程序異常說(shuō)明情況竞端,檢查程序的功能和性能的實(shí)現(xiàn)是否有不符合規(guī)格說(shuō)明要求的地方事富。
o等價(jià)類劃分的方法
§按區(qū)間劃分统台。
§按數(shù)值劃分。
§按數(shù)值集合劃分井赌。
§按限制條件或規(guī)劃劃分仇穗。
§按處理方式劃分纹坐。
o等價(jià)類劃分的原則
§在輸入條件規(guī)定的取值范圍或值的個(gè)數(shù)的情況下耘子,可以確定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。
§在規(guī)定了輸入數(shù)據(jù)的一組值中(假定有n個(gè)值)绒障,并且程序要對(duì)每個(gè)輸 入值分別處理的情況下户辱,可以確定n個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類焕妙。
§在規(guī)定輸入數(shù)據(jù)必須遵守的規(guī)則的情況下焚鹊,可以確定一個(gè)有效等價(jià)類和若干個(gè)無(wú)效等價(jià)類末患。
§在輸入條件規(guī)定了輸入值的集合或規(guī)定了“必須如何”的條件下锤窑,可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類探橱。
§在確定已劃分的等價(jià)類中各元素在程序處理中的方式不同的情況下绘证,則應(yīng)將該等價(jià)類進(jìn)一步地劃分為更小的等價(jià)類嚷那。
o邊界值分析
o定義邊界值是指輸入和輸出等價(jià)類中哪些恰好處于邊界魏宽、或超過(guò)邊界、或在邊界以下的值派桩、
o與等價(jià)類劃分方法的不同
§邊界值分析不是從某等價(jià)類中隨便挑一個(gè)作為代表铆惑,而是使這個(gè)等價(jià)類的每個(gè)邊界都要作為測(cè)試條件鸭津。
§邊界值分析不僅考慮輸入條件逆趋,還要考慮輸出空間產(chǎn)生的測(cè)試情況闻书。
邊界值分析和等價(jià)類劃分的一個(gè)弱點(diǎn)是未對(duì)輸入條件的組合進(jìn)行分析魄眉。
o因果圖
o定義因果圖法是一種適合于描述對(duì)于多種輸入條件組合的測(cè)試方法坑律,根據(jù)輸入條件的組合晃择、約束關(guān)系和輸出條件的因果關(guān)系宫屠,分析輸入條件的各種組合情況浪蹂,從而設(shè)計(jì)測(cè)試用例的方法坤次,它適合于檢查程序輸入條件涉及的各種組合情況。因果圖法著重分析輸入條件的各種組合灿渴,每種組合條件就是“因”骚露,它必然有一個(gè)輸出的結(jié)果棘幸,這就是“果”。
o利用因果圖生成測(cè)試用例的步驟扫茅。
§將規(guī)格說(shuō)明書分解為可執(zhí)行的片段葫隙。
§確定規(guī)格說(shuō)明中的因果關(guān)系恋脚。
§分析規(guī)格說(shuō)明的語(yǔ)義內(nèi)容糟描,并將其轉(zhuǎn)換為連接因果關(guān)系的布爾圖。
§給圖加上注解符號(hào)驻子,說(shuō)明由于語(yǔ)法或環(huán)境的限制而不能聯(lián)系起來(lái)的“因”和“果”崇呵。
§將因果圖轉(zhuǎn)換為判定表荒辕。
§將判定表轉(zhuǎn)換為測(cè)試用例抵窒。
白盒測(cè)試用例設(shè)計(jì)方法
o語(yǔ)句覆蓋(SC)
o判定覆蓋(DC)
o條件覆蓋(CC)
o判定/條件覆蓋(DCC)
o條件組合覆蓋(CMC)
o路徑覆蓋
四李皇、常見(jiàn)的測(cè)試方法和類型
按代碼的可見(jiàn)程度劃分
黑盒測(cè)試黑盒測(cè)試又稱為數(shù)據(jù)驅(qū)動(dòng)測(cè)試掉房,把測(cè)試對(duì)象當(dāng)做看不見(jiàn)的黑盒,在完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過(guò)程的情況下诅病,測(cè)試者僅依據(jù)程序功能的需求規(guī)范考慮,確定測(cè)試用例和推斷測(cè)試結(jié)果的正確性讨阻,它是站在使用軟件或程序的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系出發(fā)進(jìn)行的測(cè)試。
白盒測(cè)試白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試戳气,是一種按照程序內(nèi)部邏輯結(jié)構(gòu)和編碼結(jié)構(gòu),設(shè)計(jì)測(cè)試數(shù)據(jù)并完成測(cè)試的一種測(cè)試方法巧鸭。
灰盒測(cè)試灰盒測(cè)試是一種綜合測(cè)試法瓶您,它將“黑盒”測(cè)試與“白盒”測(cè)試結(jié)合在一起,是基于程序運(yùn)行時(shí)的外部表現(xiàn)又結(jié)合內(nèi)部邏輯結(jié)構(gòu)來(lái)設(shè)計(jì)用例纲仍,執(zhí)行程序并采集路徑執(zhí)行信息和外部用戶接口結(jié)果的測(cè)試技術(shù)呀袱。
按項(xiàng)目流程階段劃分
單元測(cè)試單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位----程序模塊或功能模塊郑叠,進(jìn)行正確性檢驗(yàn)的測(cè)試工作夜赵。其目的在于檢驗(yàn)程序各模塊是否存在各種差錯(cuò),是否能正確地實(shí)現(xiàn)了其功能乡革,滿足其性能和接口要求寇僧。
集成測(cè)試集成測(cè)試又叫組裝測(cè)試或聯(lián)合嘁傀,是單元測(cè)試的多級(jí)擴(kuò)展蕾殴,是在單元測(cè)試的基礎(chǔ)上進(jìn)行的一種有序測(cè)試。目的是檢查軟件單位之間的接口是否正確。
系統(tǒng)測(cè)試系統(tǒng)測(cè)試是對(duì)已經(jīng)集成好的軟件系統(tǒng)進(jìn)行徹底的測(cè)試,以驗(yàn)證軟件系統(tǒng)的正確性和性能等是否滿足其規(guī)約所指定的要求。
驗(yàn)收測(cè)試驗(yàn)收測(cè)試是部署軟件之前的最后一個(gè)測(cè)試操作。驗(yàn)收測(cè)試的目的是確保軟件準(zhǔn)備就緒,向軟件購(gòu)買者展示該軟件系統(tǒng)滿足其用戶的需求。
按執(zhí)行過(guò)程是否需要人工干預(yù)劃分
手工測(cè)試手工測(cè)試就是由人去一個(gè)一個(gè)的去執(zhí)行測(cè)試用例,通過(guò)鍵盤鼠標(biāo)等輸入一些參數(shù),查看返回結(jié)果是否符合預(yù)期結(jié)果宫峦。
自動(dòng)化測(cè)試自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程贾费。通常葵萎,在設(shè)計(jì)了測(cè)試用例并通過(guò)評(píng)審之后,由測(cè)試人員根據(jù)測(cè)試用例中描述的規(guī)程一步步執(zhí)行測(cè)試票从,得到實(shí)際結(jié)果與期望結(jié)果的比較先馆。在此過(guò)程中铣减,為了節(jié)省人力劣针、時(shí)間或硬件資源引谜,提高測(cè)試效率贝室,便引入了自動(dòng)化測(cè)試的概念误趴。自動(dòng)化測(cè)試:又可分為功能自動(dòng)化測(cè)試與性能自動(dòng)化測(cè)試。我們一般所說(shuō)的自動(dòng)化測(cè)試就是指功能自動(dòng)化測(cè)試榨咐,通過(guò)相關(guān)的測(cè)試技術(shù)数焊,通過(guò)編碼的方式用一段程序來(lái)測(cè)試一個(gè)軟件的功能饺蚊,這樣就可以重復(fù)執(zhí)行程序來(lái)進(jìn)行重復(fù)的測(cè)試籍凝。如果一個(gè)軟件一小部分發(fā)生改變彼乌,我們只要修改一部分代碼,就可以重復(fù)的對(duì)整個(gè)軟件進(jìn)行功能測(cè)試毒租。這樣就大大的提高了測(cè)試效率墅垮。性能自動(dòng)化測(cè)試沛简,當(dāng)然淆九,除了早期階段做鹰,現(xiàn)在的性能測(cè)試工作都是通過(guò)性能測(cè)試工具輔助完成的症见。能過(guò)工具可以模擬成千上萬(wàn)的用戶向系統(tǒng)發(fā)送請(qǐng)求喂走,用來(lái)驗(yàn)證系統(tǒng)的處理能力。
其他測(cè)試方法
冒煙測(cè)試冒煙測(cè)試是指在對(duì)一個(gè)新版本進(jìn)行系統(tǒng)大規(guī)模的測(cè)試之前谋作,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn)芋肠,是否具備可測(cè)性。
回歸測(cè)試回歸測(cè)試是指修改了舊代碼后遵蚜,重新時(shí)行測(cè)試以確認(rèn)修改后沒(méi)有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤帖池。
隨機(jī)測(cè)試是指測(cè)試中的所有輸入數(shù)據(jù)都是隨機(jī)生成的,其目的是模擬用戶的真實(shí)操作吭净,并發(fā)現(xiàn)一些邊緣性的錯(cuò)誤睡汹。
壓力測(cè)試、負(fù)載測(cè)試及性能測(cè)試壓力測(cè)試:驗(yàn)證軟件在超過(guò)負(fù)載設(shè)計(jì)的情況下仍能返回正確的結(jié)果寂殉,沒(méi)有崩潰負(fù)載測(cè)試:測(cè)試軟件在負(fù)載情況下能否正常工作性能測(cè)試:測(cè)試軟件的性能囚巴,是否提供滿意的服務(wù)質(zhì)量
理論必不可少,實(shí)踐也是重中之重友扰。
博為峰網(wǎng)校助力求職季彤叉,特別推出測(cè)試集訓(xùn)營(yíng),更多好課打折村怪、送券秽浇、砍價(jià)……驚喜不停歇,快來(lái)~
活動(dòng)鏈接:http://h.atstudy.com/activity/?