第一單元 測試?yán)碚?/h1>

1.1 軟件的分類

1.1.1 軟件的定義

一系列按照特定順序組織的計算機數(shù)據(jù)和指令的集合。
軟件 = 數(shù)據(jù) + 指令 + 文檔
問題:常見軟件有哪些输莺?

1.1.2 根據(jù)應(yīng)用場景分類

工具類軟件玲献、游戲型軟件朋凉、媒體型軟件、電商型軟件等

1.1.3 根據(jù)軟件架構(gòu)分類

單機版軟件低滩、分布式軟件

  1. 單機版軟件:office顽冶、紅警等
  2. 分布式軟件:
    C/S架構(gòu)軟件:客戶端需安裝專門軟件欺抗,如QQ 微信等
    B/S架構(gòu)軟件:客戶端為瀏覽器 ,如百度强重、hao123等

1.2 軟件測試的定義與原則

1.2.1 為什么需要軟件測試

阿麗亞娜5號火箭.jpg
  • 事故:阿麗亞娜5號火箭爆炸绞呈,造成重大經(jīng)濟損失。
  • 原因:程序中試圖將64位浮點數(shù)轉(zhuǎn)換成16位整數(shù)時發(fā)生溢出-----缺少錯誤程序?qū)?shù)據(jù)溢出進行管理


    image.png

    事故:拼多多2019年用戶可以領(lǐng)取100元無門檻券间景。
    原因:程序中試圖將64位浮點數(shù)轉(zhuǎn)換成16位整數(shù)時發(fā)生溢出-----缺少錯誤程序?qū)?shù)據(jù)溢出進行管理

1.2.2 軟件測試的定義

通過人工或自動化的方式來驗證軟件的實際結(jié)果與用戶需求是否一致的過程

1.2.3 軟件測試的原則

  • 原則一:測試顯示軟件存在缺陷
    測試只能證明軟件中存在缺陷佃声,但并不能證明軟件中不存在缺陷。軟件測試是為了降低存在缺陷的可能性拱燃,即便是沒有找到缺陷秉溉,也不能證明軟件是完美的力惯。
  • 原則二:窮盡測試是不可能的
    現(xiàn)在軟件的規(guī)模越來越大碗誉,復(fù)雜度越來越高召嘶,想做到完全性的測試是不可能的。在測試階段哮缺,測試人員可以根據(jù)風(fēng)險和優(yōu)先級來進行集中和高強度的測試弄跌,從而保證軟件的質(zhì)量。
  • 原則三:測試盡早介入
    為什么測試要盡早介入呢尝苇,簡單的說就是保證軟件質(zhì)量铛只,降低風(fēng)險和成本。測試人員一般在需求階段就開始介入糠溜,使缺陷在需求或設(shè)計階段就被發(fā)現(xiàn)淳玩,缺陷發(fā)現(xiàn)越早,修復(fù)的成本就越小非竿。
  • 原則四:缺陷集群性(2/8原則)
    缺陷集群性表明小部分模塊包含大部分的缺陷蜕着。軟件測試中存在Pareto原則:80%的缺陷發(fā)現(xiàn)在20%的模塊中。
    一個功能模塊發(fā)現(xiàn)的缺陷越高红柱,那存在的未被發(fā)現(xiàn)的缺陷也越高承匣,故發(fā)現(xiàn)的缺陷與未發(fā)現(xiàn)的缺陷成正比。
  • 原則五:殺蟲劑悖論
    反復(fù)使用相同的殺蟲劑會導(dǎo)致害蟲對殺蟲劑產(chǎn)生免疫而無法殺死害蟲锤悄。軟件測試也一樣韧骗。如果一直使用相同的測試方法或手段,可能無法發(fā)現(xiàn)新的bug零聚。
    為了解決這個問題袍暴,測試用例應(yīng)當(dāng)定期修訂和評審,增加新的或不同的測試用例幫助發(fā)現(xiàn)更多的缺陷隶症。
    測試人員不能一直依賴于現(xiàn)有的測試技術(shù)容诬,而要不斷的提升測試方法以提高測試效率。
  • 原則六:測試活動依賴于測試內(nèi)容
    根據(jù)業(yè)務(wù)的不同沿腰,軟件測試內(nèi)部也分為不同的行業(yè)览徒,比如游戲行業(yè)、電商行業(yè)颂龙、金融行業(yè)习蓬。不同的行業(yè),測試活動的開展都有所不同措嵌,比如測試技術(shù)躲叼、測試工具的選擇,測試流程都不盡相同企巢,所以軟件測試的活動開展依賴于所測試的內(nèi)容枫慷。
  • 原則七:沒有錯誤是好是謬論
    有可能99%沒有bug的軟件也是不能使用的。如果對錯誤的需求進行了徹底的測試,這種情況就發(fā)生了或听。軟件測試不僅是找出缺陷妄讯,同時也需要確認(rèn)軟件是否滿足需求吝沫。如果開發(fā)出來的產(chǎn)品不滿足用戶的需求,即便找到和修復(fù)了缺陷也作用不大。
  • 原則八:程序員應(yīng)避免檢查自己的程序
  • 原則九:嚴(yán)格執(zhí)行測試計劃默垄,排除測試的隨意性
  • 原則十:應(yīng)當(dāng)對每一個測試結(jié)果做全面的檢查
  • 原則十一:妥善保存測試計劃捉邢、測試用例播急、出錯統(tǒng)計和最終分析報告再沧,為維護提供方便
  • 原則十二:設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入數(shù)據(jù)和不合理的輸入數(shù)據(jù)
  • 原則十三:測試用例應(yīng)由測試數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成

1.3 開發(fā)與測試模型的介紹

1.3.1 開發(fā)模型

  1. 瀑布模型:
  • 引入:做飯最終不能返回
  • 定義:將軟件生命周期的各項活動規(guī)定為按固定順序而連接的若干階段工作斩跌,形如瀑布流水绍些,最終得到軟件產(chǎn)品的項目。
瀑布模型.jpg
  • 優(yōu)點:
    為項目提供了按階段劃分的檢查點
    當(dāng)前一階段完成后耀鸦,只需要去關(guān)注后續(xù)階段遇革。
  • 缺點:
    各個階段的劃分完全固定,階段之間產(chǎn)生大量的文檔揭糕,極大地增加了工作量萝快。
    由于開發(fā)模型是線性的,用戶只有等到整個過程的末期才能見到開發(fā)成果著角,從而增加了開發(fā)風(fēng)險揪漩。
    通過過多的強制完成日期和里程碑來跟蹤各個項目階段。
    瀑布模型的突出缺點是不適應(yīng)用戶需求的變化吏口。
  1. 快速原型模型:在需求分析階段對軟件的需求進行初步而非完全的分析和定義奄容,用戶與開發(fā)者在過程中加強反饋,快速設(shè)計開發(fā)出軟件系統(tǒng)可以運行的模型产徊;
  2. 增量模型:把待開發(fā)的軟件系統(tǒng)模塊化昂勒,第1個增量往往是產(chǎn)品的核心,將每個模塊作為一個增量組件舟铜,從而分批次地分析戈盈、設(shè)計、編碼和測試這些增量組件谆刨;
  3. 敏捷開發(fā):先選擇產(chǎn)品塘娶,再進行開會、對產(chǎn)品計劃痊夭,然后對任務(wù)進行分工刁岸,分工后開始按照計劃執(zhí)行,然后就做出了新的功能模塊她我,然后再進行演示虹曙、回顧迫横,最后再領(lǐng)取新的任務(wù),依次循環(huán)酝碳。

1.3.2 測試模型

V模型:
V 模型的左邊下降的是開發(fā)過程各階段矾踱,與此相對應(yīng)的是右邊上升的部分,即各測試過程的各個階段击敌。
V 模型的優(yōu)點在于它非常明確地標(biāo)明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發(fā)各階段的對應(yīng)關(guān)系拴事。

V模型.jpg

W模型:
相對于V模型沃斤,W模型更科學(xué)。W模型是V模型的發(fā)展刃宵,強調(diào)的是測試伴隨著整個軟件開發(fā)周期衡瓶,而且測試的對象不僅僅是程序,需求牲证、功能和設(shè)計同樣要測試哮针。測試與開發(fā)是同步進行的,從而有利于盡早地發(fā)現(xiàn)問題坦袍。
W模型.jpg

1.4 軟件測試的流程

階段名 工作內(nèi)容 產(chǎn)出物
測試準(zhǔn)備階段 項目立項十厢、需求分析、需求評審 需求文檔捂齐、產(chǎn)品PRD
測試計劃階段 編寫測試計劃蛮放、計劃評審 測試計劃
測試設(shè)計階段 提取測試點、編寫測試用例奠宜、用例評審 測試用例
測試執(zhí)行階段 冒煙測試包颁、執(zhí)行測試用例、提bug压真、回歸測試 缺陷報告
測試完成階段 驗收測試娩嚼、編寫測試報告、項目上線 測試報告
image.png

1.5 軟件測試的分類

image.png

1.5.1 按技術(shù)劃分

黑盒測試滴肿、白盒測試岳悟、灰盒測試

  • 黑盒測試(Black Box -Test):把被測試的軟件看做一個黑盒子,我們不去關(guān)心盒子里邊的結(jié)構(gòu)是什么樣子泼差,只關(guān)心軟件的輸入數(shù)據(jù)和輸出結(jié)果
    有人把黑盒測試比作中醫(yī)竿音,通過“望聞問切”來判斷是否有問題。
    “望”:觀察軟件的行為是否正常拴驮。
    “聞”:檢查輸出的結(jié)果是否正確春瞬。
    “問”:輸入各種信息,結(jié)合“望”套啤,“聞”來觀察軟件的響應(yīng)宽气。
    “切”:像中醫(yī)一樣給軟件“把把脈”随常,敲擊一下軟件的某些“關(guān)節(jié)”
  • 白盒測試:是一種按照程序內(nèi)部邏輯結(jié)構(gòu)和編碼結(jié)構(gòu)設(shè)計測試數(shù)據(jù)并完成測試的測試方法
  • 灰盒測試:一種基于程序運行時的外部表現(xiàn)同時又結(jié)合程序內(nèi)部結(jié)構(gòu)來設(shè)計測試數(shù)據(jù)的測試方法


    image.png

1.5.2 按階段劃分

單元測試、集成測試萄涯、系統(tǒng)測試绪氛、驗收測試

  • 單元測試:對一個模塊、一個函數(shù)或者一個類來進行正確性檢驗的測試方法
  • 集成測試:單元測試后涝影,將單獨的模塊按照設(shè)計要求組裝成為子系統(tǒng)或系統(tǒng)枣察,作為整體進行測試的測試方法
  • 系統(tǒng)測試:集成測試后,將硬件燃逻、軟件看作一個整體,對系統(tǒng)的功能及性能的總體測試
  • 驗收測試:系統(tǒng)測試后以用戶測試為主序目,或有測試人員共同參與檢驗軟件質(zhì)量的測試方法


    image.png

1.5.3 按內(nèi)容劃分

功能測試、性能測試伯襟、兼容性測試

1.5.3.1 功能測試:
  • 界面測試猿涨、冒煙測試、回歸測試姆怪、業(yè)務(wù)邏輯測試叛赚、易用性測試
  • 功能測試:根據(jù)產(chǎn)品操作描述和需求文檔,測試一個產(chǎn)品的特性和可操作行為是否滿足用戶需求的測試方法
  • 界面測試:測試用戶界面的功能模塊的布局是否符合客戶使用習(xí)慣稽揭,界面操作便捷性俺附、導(dǎo)航簡單易懂性的測試
  • 冒煙測試:驗證系統(tǒng)的核心功能是否能夠正常運行的測試方法
  • 回歸測試:指修改了舊代碼后,重新進行測試以確認(rèn)修改沒有引入新的錯誤或?qū)е缕渌a產(chǎn)生錯誤的測試方法
  • 業(yè)務(wù)邏輯測試:在基本的功能點都已合格的基礎(chǔ)上溪掀,準(zhǔn)備多種測試數(shù)據(jù)昙读,來驅(qū)動各種約束條件下業(yè)務(wù)流程,確定最終輸出的結(jié)果是否符合預(yù)期的測試
  • 易用性測試:指用戶使用軟件時是否感覺方便的測試
1.5.3.2 性能測試:
  • 性能測試:通過自動化的測試工具模擬多種正常膨桥、峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進行校驗的測試方法
  • 壓力測試:通過逐步增加系統(tǒng)負(fù)載蛮浑,測試系統(tǒng)性能的變化,并確定在什么條件下系統(tǒng)性能處于失效狀態(tài)
  • 負(fù)載測試:通過逐步增加系統(tǒng)負(fù)載只嚣,測試系統(tǒng)性能的變化沮稚,在滿足性能指標(biāo)的情況下,系統(tǒng)所能承受的最大負(fù)載量的測試
  • 并發(fā)測試:是一個負(fù)載測試和壓力測試的過程册舞,即逐漸增加并發(fā)用戶數(shù)負(fù)載直到系統(tǒng)的瓶頸蕴掏,通過分析資源監(jiān)控指標(biāo)等來確定系統(tǒng)并發(fā)性能
1.5.3.3 兼容性測試:
  • app
  1. Android/IOS版本
  2. 廠商
  3. 型號
  4. 分辨率
  5. 屏幕:全屏、水滴屏调鲸、劉海屏盛杰、曲面屏、折疊屏藐石、雙面屏
  • web
  1. 瀏覽器:四類即供,根據(jù)瀏覽器內(nèi)核(78)

1.5.4 按其他劃分

  • 冒煙測試、隨機測試于微、安全性測試逗嫡、探索性測試青自、回歸測試、Alpha測試驱证、Beta測試
  • 隨機測試:隨機測試主要是根據(jù)測試者的經(jīng)驗無需測試用例對軟件進行功能和性能抽查的測試方法
  • 安全性測試:通過不同的測試方法延窜,檢驗程序、網(wǎng)絡(luò)抹锄、數(shù)據(jù)庫安全性的測試方法
  • 探索性測試:碰到問題時能隨機應(yīng)變逆瑞,強調(diào)測試人員的主觀能動性明確整體的測試計劃的測試方法
  • Alpha測試:俗稱內(nèi)測,α測試伙单。內(nèi)部環(huán)境下的測試获高;開發(fā)人員或測試人員在現(xiàn)場
  • Beta測試:俗稱外測、公測车份,β測試谋减。生產(chǎn)環(huán)境下的測試牡彻;開發(fā)人員和測試人員都不在現(xiàn)場3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末扫沼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子庄吼,更是在濱河造成了極大的恐慌缎除,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件总寻,死亡現(xiàn)場離奇詭異器罐,居然都是意外死亡,警方通過查閱死者的電腦和手機渐行,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門轰坊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祟印,你說我怎么就攤上這事肴沫。” “怎么了蕴忆?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵颤芬,是天一觀的道長。 經(jīng)常有香客問我套鹅,道長站蝠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任卓鹿,我火速辦了婚禮菱魔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吟孙。我一直安慰自己豌习,他們只是感情好存谎,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肥隆,像睡著了一般既荚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栋艳,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天恰聘,我揣著相機與錄音,去河邊找鬼吸占。 笑死晴叨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矾屯。 我是一名探鬼主播兼蕊,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼件蚕!你這毒婦竟也來了孙技?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤排作,失蹤者是張志新(化名)和其女友劉穎牵啦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妄痪,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡哈雏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衫生。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裳瘪。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖罪针,靈堂內(nèi)的尸體忽然破棺而出彭羹,到底是詐尸還是另有隱情,我是刑警寧澤站故,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布皆怕,位于F島的核電站,受9級特大地震影響西篓,放射性物質(zhì)發(fā)生泄漏愈腾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一岂津、第九天 我趴在偏房一處隱蔽的房頂上張望虱黄。 院中可真熱鬧,春花似錦吮成、人聲如沸橱乱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泳叠。三九已至作瞄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間危纫,已是汗流浹背宗挥。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留种蝶,地道東北人契耿。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像螃征,于是被迫代替她去往敵國和親搪桂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容