第一單元單元測試理論

1.1 軟件的分類

1.1.1 軟件的定義

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

1.1.2 根據應用場景分類

工具類軟件、游戲型軟件、媒體型軟件、電商型軟件等

1.1.3 根據軟件架構分類

單機版軟件、分布式軟件

  1. 單機版軟件:office、紅警等
  2. 分布式軟件:
    C/S架構軟件:客戶端需安裝專門軟件,如QQ 微信等
    B/S架構軟件:客戶端為瀏覽器 ,如百度、hao123等

1.2 軟件測試的定義與原則

1.2.1 為什么需要軟件測試

image
  • 事故:阿麗亞娜5號火箭爆炸,造成重大經濟損失。

  • 原因:程序中試圖將64位浮點數轉換成16位整數時發生溢出-----缺少錯誤程序對數據溢出進行管理

    image

    事故:拼多多2019年用戶可以領取100元無門檻券。
    原因:程序中試圖將64位浮點數轉換成16位整數時發生溢出-----缺少錯誤程序對數據溢出進行管理

1.2.2 軟件測試的定義

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

1.2.3 軟件測試的原則

  • 原則一:測試顯示軟件存在缺陷
    測試只能證明軟件中存在缺陷,但并不能證明軟件中不存在缺陷。軟件測試是為了降低存在缺陷的可能性,即便是沒有找到缺陷,也不能證明軟件是完美的。
  • 原則二:窮盡測試是不可能的
    現在軟件的規模越來越大,復雜度越來越高,想做到完全性的測試是不可能的。在測試階段,測試人員可以根據風險和優先級來進行集中和高強度的測試,從而保證軟件的質量。
  • 原則三:測試盡早介入
    為什么測試要盡早介入呢,簡單的說就是保證軟件質量,降低風險和成本。測試人員一般在需求階段就開始介入,使缺陷在需求或設計階段就被發現,缺陷發現越早,修復的成本就越小。
  • 原則四:缺陷集群性(2/8原則)
    缺陷集群性表明小部分模塊包含大部分的缺陷。軟件測試中存在Pareto原則:80%的缺陷發現在20%的模塊中。
    一個功能模塊發現的缺陷越高,那存在的未被發現的缺陷也越高,故發現的缺陷與未發現的缺陷成正比。
  • 原則五:殺蟲劑悖論
    反復使用相同的殺蟲劑會導致害蟲對殺蟲劑產生免疫而無法殺死害蟲。軟件測試也一樣。如果一直使用相同的測試方法或手段,可能無法發現新的bug。
    為了解決這個問題,測試用例應當定期修訂和評審,增加新的或不同的測試用例幫助發現更多的缺陷。
    測試人員不能一直依賴于現有的測試技術,而要不斷的提升測試方法以提高測試效率。
  • 原則六:測試活動依賴于測試內容
    根據業務的不同,軟件測試內部也分為不同的行業,比如游戲行業、電商行業、金融行業。不同的行業,測試活動的開展都有所不同,比如測試技術、測試工具的選擇,測試流程都不盡相同,所以軟件測試的活動開展依賴于所測試的內容。
  • 原則七:沒有錯誤是好是謬論
    有可能99%沒有bug的軟件也是不能使用的。如果對錯誤的需求進行了徹底的測試,這種情況就發生了。軟件測試不僅是找出缺陷,同時也需要確認軟件是否滿足需求。如果開發出來的產品不滿足用戶的需求,即便找到和修復了缺陷也作用不大。
  • 原則八:程序員應避免檢查自己的程序
  • 原則九:嚴格執行測試計劃,排除測試的隨意性
  • 原則十:應當對每一個測試結果做全面的檢查
  • 原則十一:妥善保存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便
  • 原則十二:設計測試用例時,應當包括合理的輸入數據和不合理的輸入數據
  • 原則十三:測試用例應由測試數據和與之對應的預期輸出結果這兩部分組成

1.3 開發與測試模型的介紹

1.3.1 開發模型

  1. 瀑布模型:
  • 引入:做飯最終不能返回
  • 定義:將軟件生命周期的各項活動規定為按固定順序而連接的若干階段工作,形如瀑布流水,最終得到軟件產品的項目。
image
  • 優點:
    為項目提供了按階段劃分的檢查點
    當前一階段完成后,只需要去關注后續階段。
  • 缺點:
    各個階段的劃分完全固定,階段之間產生大量的文檔,極大地增加了工作量。
    由于開發模型是線性的,用戶只有等到整個過程的末期才能見到開發成果,從而增加了開發風險。
    通過過多的強制完成日期和里程碑來跟蹤各個項目階段。
    瀑布模型的突出缺點是不適應用戶需求的變化。
  1. 快速原型模型:在需求分析階段對軟件的需求進行初步而非完全的分析和定義,用戶與開發者在過程中加強反饋,快速設計開發出軟件系統可以運行的模型;
  2. 增量模型:把待開發的軟件系統模塊化,第1個增量往往是產品的核心,將每個模塊作為一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件;
  3. 敏捷開發:先選擇產品,再進行開會、對產品計劃,然后對任務進行分工,分工后開始按照計劃執行,然后就做出了新的功能模塊,然后再進行演示、回顧,最后再領取新的任務,依次循環。

1.3.2 測試模型

V模型:
V 模型的左邊下降的是開發過程各階段,與此相對應的是右邊上升的部分,即各測試過程的各個階段。
V 模型的優點在于它非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發各階段的對應關系。

image

W模型:
相對于V模型,W模型更科學。W模型是V模型的發展,強調的是測試伴隨著整個軟件開發周期,而且測試的對象不僅僅是程序,需求、功能和設計同樣要測試。測試與開發是同步進行的,從而有利于盡早地發現問題。

image

1.4 軟件測試的流程

階段名 工作內容 產出物
測試準備階段 項目立項、需求分析、需求評審 需求文檔、產品PRD
測試計劃階段 編寫測試計劃、計劃評審 測試計劃
測試設計階段 提取測試點、編寫測試用例、用例評審 測試用例
測試執行階段 冒煙測試、執行測試用例、提bug、回歸測試 缺陷報告
測試完成階段 驗收測試、編寫測試報告、項目上線 測試報告
image

1.5 軟件測試的分類

image

1.5.1 按技術劃分

黑盒測試、白盒測試、灰盒測試

  • 黑盒測試(Black Box -Test):把被測試的軟件看做一個黑盒子,我們不去關心盒子里邊的結構是什么樣子,只關心軟件的輸入數據和輸出結果
    有人把黑盒測試比作中醫,通過“望聞問切”來判斷是否有問題。
    “望”:觀察軟件的行為是否正常。
    “聞”:檢查輸出的結果是否正確。
    “問”:輸入各種信息,結合“望”,“聞”來觀察軟件的響應。
    “切”:像中醫一樣給軟件“把把脈”,敲擊一下軟件的某些“關節”

  • 白盒測試:是一種按照程序內部邏輯結構和編碼結構設計測試數據并完成測試的測試方法

  • 灰盒測試:一種基于程序運行時的外部表現同時又結合程序內部結構來設計測試數據的測試方法

    image

1.5.2 按階段劃分

單元測試、集成測試、系統測試、驗收測試

  • 單元測試:對一個模塊、一個函數或者一個類來進行正確性檢驗的測試方法

  • 集成測試:單元測試后,將單獨的模塊按照設計要求組裝成為子系統或系統,作為整體進行測試的測試方法

  • 系統測試:集成測試后,將硬件、軟件看作一個整體,對系統的功能及性能的總體測試

  • 驗收測試:系統測試后以用戶測試為主,或有測試人員共同參與檢驗軟件質量的測試方法

    image

1.5.3 按內容劃分

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

1.5.3.1 功能測試:
  • 界面測試、冒煙測試、回歸測試、業務邏輯測試、易用性測試
  • 功能測試:根據產品操作描述和需求文檔,測試一個產品的特性和可操作行為是否滿足用戶需求的測試方法
  • 界面測試:測試用戶界面的功能模塊的布局是否符合客戶使用習慣,界面操作便捷性、導航簡單易懂性的測試
  • 冒煙測試:驗證系統的核心功能是否能夠正常運行的測試方法
  • 回歸測試:指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤的測試方法
  • 業務邏輯測試:在基本的功能點都已合格的基礎上,準備多種測試數據,來驅動各種約束條件下業務流程,確定最終輸出的結果是否符合預期的測試
  • 易用性測試:指用戶使用軟件時是否感覺方便的測試
1.5.3.2 性能測試:
  • 性能測試:通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行校驗的測試方法
  • 壓力測試:通過逐步增加系統負載,測試系統性能的變化,并確定在什么條件下系統性能處于失效狀態
  • 負載測試:通過逐步增加系統負載,測試系統性能的變化,在滿足性能指標的情況下,系統所能承受的最大負載量的測試
  • 并發測試:是一個負載測試和壓力測試的過程,即逐漸增加并發用戶數負載直到系統的瓶頸,通過分析資源監控指標等來確定系統并發性能
1.5.3.3 兼容性測試:
  • app
  1. Android/IOS版本
  2. 廠商
  3. 型號
  4. 分辨率
  5. 屏幕:全屏、水滴屏、劉海屏、曲面屏、折疊屏、雙面屏
  • web
  1. 瀏覽器:四類,根據瀏覽器內核(78)

1.5.4 按其他劃分

  • 冒煙測試、隨機測試、安全性測試、探索性測試、回歸測試、Alpha測試、Beta測試
  • 隨機測試:隨機測試主要是根據測試者的經驗無需測試用例對軟件進行功能和性能抽查的測試方法
  • 安全性測試:通過不同的測試方法,檢驗程序、網絡、數據庫安全性的測試方法
  • 探索性測試:碰到問題時能隨機應變,強調測試人員的主觀能動性明確整體的測試計劃的測試方法
  • Alpha測試:俗稱內測,α測試。內部環境下的測試;開發人員或測試人員在現場
  • Beta測試:俗稱外測、公測,β測試。生產環境下的測試;開發人員和測試人員都不在現場3

作者:Anwfly
鏈接:http://www.lxweimin.com/p/4d164616a415
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容