萬事開頭難弓坞!軟件測試基礎(chǔ)知識大全(收藏)!

1. 軟件生命周期(SDLC)的六個階段

1车荔、問題的定義及規(guī)劃 此階段是軟件開發(fā)方與需求方共同討論渡冻,主要確定軟件的開發(fā)目標(biāo)及其可行性。

2忧便、需求分析 在確定軟件開發(fā)可行的情況下族吻,對軟件需要實現(xiàn)的各個功能進(jìn)行詳細(xì)分析。需求分析階段是一個很重要的階段珠增,這一階段做得好超歌,將為整個軟件開發(fā)項目的成功打下良好的基礎(chǔ)。"唯一不變的是變化本身蒂教。"巍举,同樣需求也是在整個軟件開發(fā)過程中不斷變化和深入的,因此我們必須制定需求變更計劃來應(yīng)付這種變化凝垛,以保護(hù)整個項目的順利進(jìn)行懊悯。

3蜓谋、軟件設(shè)計 此階段主要根據(jù)需求分析的結(jié)果,對整個軟件系統(tǒng)進(jìn)行設(shè)計炭分,如系統(tǒng)框架設(shè)計桃焕,數(shù)據(jù)庫設(shè)計等等。軟件設(shè)計一般分為總體設(shè)計和詳細(xì)設(shè)計捧毛。好的軟件設(shè)計將為軟件程序編寫打下良好的基礎(chǔ)观堂。

4、程序編碼此階段是將軟件設(shè)計的結(jié)果轉(zhuǎn)換成計算機可運行的程序代碼呀忧。在程序編碼中必須要制定統(tǒng)一师痕,符合標(biāo)準(zhǔn)的編寫規(guī)范。以保證程序的可讀性荐虐,易維護(hù)性,提高程序的運行效率丸凭。

5福扬、軟件測試 在軟件設(shè)計完成后要經(jīng)過嚴(yán)密的測試,以發(fā)現(xiàn)軟件在整個設(shè)計過程中存在的問題并加以糾正惜犀。整個測試過程分單元測試铛碑、組裝測試以及系統(tǒng)測試三個階段進(jìn)行。測試的方法主要有白盒測試和黑盒測試兩種虽界。在測試過程中需要建立詳細(xì)的測試計劃并嚴(yán)格按照測試計劃進(jìn)行測試汽烦,以減少測試的隨意性。

6莉御、運行維護(hù)軟件維護(hù)是軟件生命周期中持續(xù)時間最長的階段撇吞。在軟件開發(fā)完成并投入使用后,由于多方面的原因礁叔,軟件不能繼續(xù)適應(yīng)用戶的要求牍颈。要延續(xù)軟件的使用壽命,就必須對軟件進(jìn)行維護(hù)琅关。軟件的維護(hù)包括糾錯性維護(hù)和改進(jìn)性維護(hù)兩個方面煮岁。

2、軟件生命周期模型

從概念提出的那一刻開始涣易,軟件產(chǎn)品就進(jìn)入了軟件生命周期画机。在經(jīng)歷需求、分析新症、設(shè)計步氏、實現(xiàn)、部署后徒爹,軟件將被使用并進(jìn)入維護(hù)階段戳护,直到最后由于缺少維護(hù)費用而逐漸消亡金抡。這樣的一個過程,稱為"生命周期模型"(Life Cycle Model)腌且。

典型的幾種生命周期模型包括瀑布模型梗肝、快速原型模型、迭代模型铺董。

瀑布模型的特點(文檔是主體)巫击,很多的問題在最后才會暴露出來。迭代模型比瀑布模型問題暴露的要早精续;快速原型法比瀑布模型直觀坝锰。

3.軟件測試概念

廣義概念:指軟件生存周期中所有的檢查、評審和確認(rèn)工作重付,其中包括了對分析顷级、設(shè)計階段,以及完成開發(fā)后維護(hù)階段的各類文檔确垫、代碼的審查和確認(rèn)

狹義概念:識別軟件缺陷的過程弓颈,即實際結(jié)果與預(yù)期結(jié)果的不一致

4.軟件測試目的

?測試的目的就是發(fā)現(xiàn)軟件中的各種缺陷

?測試只能證明軟件存在缺陷,不能證明軟件不存在缺陷

?測試可以使軟件中缺陷降低到一定程度删掀,而不是徹底消滅

?以較少的用例翔冀、時間和人力找出軟件中的各種錯誤和缺陷,以確保軟件的質(zhì)量

5.軟件測試原則

?Good-enough: 一種權(quán)衡投入/產(chǎn)出比的原則

?保證測試的覆蓋程度披泪,但窮舉測試是不可能的

?所有的測試都應(yīng)追溯到用戶需求

?越早測試越好纤子,測試過程與開發(fā)過程應(yīng)是相結(jié)合的

?測試的規(guī)模由小而大,從單元測試到系統(tǒng)測試

?為了盡可能地發(fā)現(xiàn)錯誤款票,應(yīng)該由獨立的第三方來測試

?不能為了便于測試擅自修改程序

?既應(yīng)該測試軟件該做什么也應(yīng)該測試軟件不該做什么

6.軟件測試的的重點

?測試用例的設(shè)計

?測試用例的設(shè)計是整個軟件測試工作的核心

?測試用例反映對被測對象的質(zhì)量要求控硼,決定對測試對象的質(zhì)量評估

?測試工作的管理

?尤其是對包含多個子系統(tǒng)的大型軟件系統(tǒng),其測試工作涉及大量人力和物力艾少,有效的測試工作管理是保證有效測試工作的必要前提

?測試環(huán)境的建立

?測試環(huán)境應(yīng)該與實際測試環(huán)境一致

7.黑盒測試

?什么是黑盒測試

又稱功能測試或數(shù)據(jù)驅(qū)動測試象颖,是針對軟件的功能需求/實現(xiàn)進(jìn)行測試,通過測試來檢測每個功能是否符合需求姆钉,不考慮程序內(nèi)部的邏輯結(jié)構(gòu)

?黑盒測試方法

?功能劃分

?等價類劃分

?邊界值分析

?因果圖

?錯誤推測等

8.什么是白盒測試

?白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試说订,必須知道軟件內(nèi)部工作過程,通過測試來檢測軟件內(nèi)部是否按照需求潮瓶、設(shè)計正常運行

白盒測試的主要方法

對應(yīng)于程序的一些主要結(jié)構(gòu):語句陶冷、分支、邏輯路徑毯辅、變量埂伦;白盒測試的主要方法是:

語句覆蓋方法

分支覆蓋方法

邏輯覆蓋方法

9. 什么是動態(tài)測試

動態(tài)測試需要在開發(fā)/測試環(huán)境或?qū)嶋H運行環(huán)境中運行軟件,并使用測試用例去查找軟件缺陷思恐;動態(tài)測試包括功能確認(rèn)與接口測試沾谜、覆蓋率分析膊毁、性能分析、內(nèi)存分析等

10.什么是靜態(tài)測試

靜態(tài)測試不實際運行軟件基跑,主要是對軟件的編程格式婚温、結(jié)構(gòu)等方面進(jìn)行評估.靜態(tài)測試包括代碼檢查、程序結(jié)構(gòu)分析媳否、代碼質(zhì)量度量等栅螟。它可以由人工進(jìn)行,也可以借助軟件工具自動進(jìn)行

11.手工測試和自動測試

a.手工測試缺點在于測試工作量大篱竭,重復(fù)多力图,回歸測試難以實現(xiàn)

b.自動測試?yán)密浖y試工具自動實現(xiàn)全部或部分測試工作:管理、設(shè)計掺逼、執(zhí)行和報告吃媒;節(jié)省大量的測試開銷,并能夠完成一些手工測試無法實現(xiàn)的測試

?手工完成測試的全部過程無法保證測試的科學(xué)性與嚴(yán)密性:

– 修改的缺陷越多吕喘,回歸測試越困難

– 沒有人能向決策層提供精確的數(shù)據(jù)以度量當(dāng)前的工作進(jìn)度及工作效率

– 反復(fù)測試帶來的倦怠情緒及其他人為因素使得測試標(biāo)準(zhǔn)前后不一

– 測試花費的時間越長赘那,測試的嚴(yán)格性也就越低

?自動測試將測試人員從反復(fù)、煩雜的測試執(zhí)行中解放出來兽泄,用更多的時間進(jìn)行測試設(shè)計和結(jié)果分析

軟件測試不可能完全自動化

?不能完成所有手工測試任務(wù)

?無創(chuàng)造性且靈活性差漓概,不能改進(jìn)測試的有效性

過程中可能會遇到許多意想不到的問題漾月,特別是當(dāng)軟件不穩(wěn)定時

?測試腳本的維護(hù)高

12. 測試流程

?單元測試

?集成測試

?系統(tǒng)測試

?用戶驗收測試

?回歸測試


13.單元測試

?完成對最小的軟件設(shè)計單元—模塊的驗證工作

?目標(biāo)是確保模塊被正確地編碼

?使用過程設(shè)計描述作為指南病梢,對重要的控制路徑進(jìn)行測試以發(fā)現(xiàn)模塊內(nèi)的錯誤

?通常情況下是面向白盒的

?對代碼風(fēng)格和規(guī)則、程序設(shè)計和結(jié)構(gòu)梁肿、業(yè)務(wù)邏輯等進(jìn)行靜態(tài)測試蜓陌,及早地發(fā)現(xiàn)和解決不易顯現(xiàn)的錯誤

?單元測試的內(nèi)容

– 接口測試

– 內(nèi)部數(shù)據(jù)結(jié)構(gòu)

– 全局?jǐn)?shù)據(jù)結(jié)構(gòu)

– 邊界

– 語句覆蓋,錯誤路徑

14.集成測試

?通過測試發(fā)現(xiàn)與模塊接口有關(guān)的問題

?目標(biāo)是把通過了單元測試的模塊拿來吩蔑,構(gòu)造一個在設(shè)計中所描述的程序結(jié)構(gòu)

?應(yīng)當(dāng)避免一次性的集成(除非軟件規(guī)模很信ト取),而采用增量集成

集成測試主要內(nèi)容

?API

?API/參數(shù)組合

15.系統(tǒng)測試

?根據(jù)軟件需求規(guī)范的要求進(jìn)行系統(tǒng)測試烛芬,確認(rèn)系統(tǒng)滿足需求的要求

?系統(tǒng)測試人員相當(dāng)于用戶代言人

?在需求分析階段要確定軟件的可測性隧期,保證有效完成系統(tǒng)測試工作

?系統(tǒng)測試主要內(nèi)容

?所有功能需求得到滿足

?所有性能需求得到滿足

?其他需求(例如安全性、容錯性赘娄、兼容性等)得到滿足

16.用戶驗收/確認(rèn)測試

?Alpha測試

– 是由用戶在開發(fā)者的場所來進(jìn)行的仆潮,Alpha測試是在一個受控的環(huán)境中進(jìn)行的

?Beta測試

– 由軟件的最終用戶在一個或多個用戶場所來進(jìn)行的,開發(fā)者通常不在現(xiàn)場遣臼,用戶記錄測試中遇到的問題并報告給開發(fā)者

17.壓力測試VS性能測試?

性能測試的目的不是去找bugs,而是排除系統(tǒng)的瓶頸性置,以及為以后的回歸測試建立一個基準(zhǔn)。而性能測試的操作揍堰,實際上就是一個非常小心受控的測量分析過程鹏浅。在理想的情況下嗅义,被測軟件在這個時候已經(jīng)是足夠穩(wěn)定了

性能測試是為了檢查系統(tǒng)的反映,運行速度等性能指標(biāo)隐砸,他的前提是要求在一定負(fù)載下之碗,如檢查一個網(wǎng)站在100人同時在線的情況下的性能指標(biāo),每個用戶是否都還可以正常的完成操作等凰萨。概括就是:在不同負(fù)載下(負(fù)載一定)時继控,通過一些系統(tǒng)參數(shù)(如反應(yīng)時間等)檢查系統(tǒng)的運行情況;

壓力測試是為了發(fā)現(xiàn)系統(tǒng)能支持的最大負(fù)載胖眷,他的前提是要求系統(tǒng)性能處在可以接受的范圍內(nèi)武通,比如經(jīng)常規(guī)定的葉面3秒鐘內(nèi)響應(yīng);概括就是:在性能可以接受的前提下珊搀,測試系統(tǒng)可以支持的最大負(fù)載冶忱。

舉例說明:針對一個網(wǎng)站進(jìn)行測試,模擬10到50個用戶就是在進(jìn)行常規(guī)性能測試境析,用戶增加到1000乃至上萬就變成了壓力/負(fù)載測試囚枪。如果同時對系統(tǒng)進(jìn)行大量的數(shù)據(jù)查詢操作,就包含了強度測試劳淆。

18.?主流測試工具的測試流程


1 啟動時選擇要加載的插件

2 進(jìn)行一些設(shè)置(如錄制模式等)

3 識別應(yīng)用程序的GUI链沼,即創(chuàng)建map(就是學(xué)習(xí)被測試軟件的界面)

4 建立測試腳本(錄制及編寫)

5 對腳本除錯及調(diào)試(保證能夠運行完)

6 插入各種檢查點(圖片,文字沛鸵,控件等)

7 在新版應(yīng)用程序中執(zhí)行測試腳本

8 分析結(jié)果括勺,回報缺陷



1 準(zhǔn)備錄制打開你要對其進(jìn)行測試的應(yīng)用程序,并檢查QuickTest中的各項設(shè)置是否適合當(dāng)前的要求曲掰。2 進(jìn)行錄制打開QuickTest的錄制功能疾捍,按測試用例中的描述,操作被測試應(yīng)用程序栏妖。

3 編輯測試腳本通過加入檢測點乱豆、參數(shù)化測試,以及添加分支吊趾、循環(huán)等控制語句宛裕,來增強測試腳本的功能,使將來的回歸測試真正能夠自動化论泛。

4 調(diào)試腳本調(diào)試腳本揩尸,檢查腳本是否存在錯誤。

5 在回歸測試中運行測試在對應(yīng)用程序的回歸測試中孵奶,通過QuickTest回放對應(yīng)用程序的操作疲酌,檢驗軟件正確性,實現(xiàn)測試的自動化進(jìn)行。6 分析結(jié)果朗恳,報告問題查看QuickTest記錄的運行結(jié)果湿颅,記錄問題,報告測試結(jié)果粥诫。



1 創(chuàng)建域及工程

2 添加用戶

3 編輯licenses及本服務(wù)器

4 編輯數(shù)據(jù)庫--TD1 選擇新建的工程進(jìn)行定制(列表油航,用戶,組怀浆,版本等)2 在require中增加需求3 把需求轉(zhuǎn)化為plan4 在testlab中由計劃新建測試具體用例與執(zhí)行

5 發(fā)現(xiàn)bug谊囚,在defect中提交bug(每一部分都可以相對獨立地使用)



1 制定負(fù)載測試計劃(分析應(yīng)用程序, 確定測試目標(biāo)执赡,計劃怎樣執(zhí)行LoadRunner)

2 開發(fā)測試腳本(錄制基本的用戶腳本镰踏,完善測試腳本)

3 創(chuàng)建運行場景(選擇場景類型為Manual Scenario,選擇場景類型沙合,理解各種類型奠伪,場景的類型轉(zhuǎn)化)

4 運行測試

5 監(jiān)視場景(MEMORY 相關(guān),PROCESSOR相關(guān)首懈,網(wǎng)絡(luò)吞量以及帶寬绊率,磁盤相關(guān),WEB應(yīng)用程序 究履,IIS5.0滤否,SQL SERVER,NETWORK DELAY等)

6 分析測試結(jié)果(分析實時監(jiān)視圖表,分析事務(wù)的響應(yīng)時間,分解頁面,確定WEBSERVER的問題,其他有用的功能)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末最仑,一起剝皮案震驚了整個濱河市藐俺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盯仪,老刑警劉巖紊搪,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜜葱,死亡現(xiàn)場離奇詭異全景,居然都是意外死亡,警方通過查閱死者的電腦和手機牵囤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門爸黄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人揭鳞,你說我怎么就攤上這事炕贵。” “怎么了野崇?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵称开,是天一觀的道長。 經(jīng)常有香客問我,道長鳖轰,這世上最難降的妖魔是什么清酥? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮蕴侣,結(jié)果婚禮上焰轻,老公的妹妹穿的比我還像新娘。我一直安慰自己昆雀,他們只是感情好辱志,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狞膘,像睡著了一般揩懒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挽封,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天旭从,我揣著相機與錄音,去河邊找鬼场仲。 笑死和悦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的渠缕。 我是一名探鬼主播鸽素,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亦鳞!你這毒婦竟也來了馍忽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤燕差,失蹤者是張志新(化名)和其女友劉穎遭笋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徒探,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡瓦呼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了测暗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片央串。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖碗啄,靈堂內(nèi)的尸體忽然破棺而出质和,到底是詐尸還是另有隱情,我是刑警寧澤稚字,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布饲宿,位于F島的核電站厦酬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘫想。R本人自食惡果不足惜弃锐,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望殿托。 院中可真熱鬧霹菊,春花似錦、人聲如沸支竹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽礼搁。三九已至饶碘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間馒吴,已是汗流浹背扎运。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饮戳,地道東北人豪治。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像扯罐,于是被迫代替她去往敵國和親负拟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354