軟體測驗的基本理論知識有很多, 根據不同情況劃分的,內容比較多~
目錄
1、軟體測驗概述
2、軟體測驗基礎軟體的概念
3、軟體測驗分類
4、白盒測驗用例設計方法
5、黑盒測驗用例設計方法
6、缺陷管理軟體缺陷
1、軟體測驗概述
軟體測驗的IEEE定義:使用人工或自動的手段來運行或測量軟體系統的程序,目的是檢驗軟體系統是否滿足規定的需求,并找出與預期結果之間的差異,軟體測驗的發展趨勢: ① 測驗作業將進一步前移,軟體測驗不僅僅是單元測驗、集成測驗、系統測驗和驗收測驗,還對需求的精確性和完整性的測驗技術、對系統設計的測驗技術將成為新的研究熱點, ② 軟體架構師,開發工程師,QA人員,測驗工程師將進行更好的融合 ③ 測驗職業將得到更充分的尊重, ④ 設定獨立的軟體測驗部門將成為未來軟體公司的共識,⑤ 測驗外包服務將快速增長,和軟體開發外包一樣,軟體測驗外包將成為全球化的趨勢,
軟體測驗工程師的素質:責任心;溝通能力;團隊合作精神;耐心、細心和信心;保持懷疑的態度,有缺陷預防的意識;不斷學習的能力,
合格的測驗工程師應具有的能力: ① 一般能力:包括表達、交流、協調、管理、質量意識、軟體開發程序方法、軟體工程等; ② 測驗技能及方法:包括測驗基本概念及方法、對測驗工具的掌握、對專業測驗標準的熟悉程度等; ③ 測驗規劃能力:包括風險分析及防范能力、測驗目標及計劃的制定能力等; ④ 測驗執行能力:包括測驗資料/腳本/用例的制定能力、測驗比較及分析能力、缺陷記錄及處理能力; ⑤ 測驗分析、報告和改進能力:包括測驗度量、統計技術、測驗報告、程序監測及持續改進能力,
測驗工程師的職責: 測驗人員要了解專案需求內容,從用戶的角度提出自己的測驗看法; 測驗人員要撰寫合理的測驗計劃并與專案整體計劃有機地整合在一起; 測驗人員要撰寫覆寫率高的測驗用例;測驗人員要認真仔細的實施測驗作業,并提交測驗報告以供專案參考; 測驗人員要進行缺陷跟蹤和分析,
2、軟體測驗基礎軟體的概念
軟體是計算機系統中與硬體相互依存的一部分,包括程式、資料、與其相關檔案的完整結合,軟體 = 程式 + 資料 + 檔案,
軟體的特點: ① 軟體是一種邏輯體,而不是具體的物理體,因而它具有抽象性; ② 軟體的生產與硬體不同,它沒有明顯的制造程序,對軟體質量的控制,必須在開發方面下功夫; ③ 在軟體運行和使用期間,沒有硬體那樣的機械磨損和老化問題,然而它存在退化問題,必須進行多次的修改和維護; ④ 軟體的開發和運行常常受計算機系統的制約,對計算機系統有著不同程度的依賴性,為了解除這種依賴性,在軟體開發程序中提出了軟體移植問題, ⑤ 軟體本身是復雜的,軟體的復雜性可能來自它所反映問題的復雜性,也可能來自程式邏輯結構的復雜性, ⑥ 軟體成本的昂貴,軟體的研制作業需要投入大量的、復雜的、高強度的腦力,它的成本比較高,
軟體的分類:按照功能劃分:系統軟體:如作業系統、資料庫管理系統,各種驅動軟體等 應用軟體:如Office、金山詞霸、QQ等 按照技術結構劃分: 單機版本:如Office,畫圖工具等 C/S結構軟體:如QQ、MSN等 B/S結構軟體:如新浪、搜狐、google等、按照用戶劃分:產品軟體:Office、財務處理軟體、金山毒霸等 專案軟體:如為企業定制的OA系統等、按照開發規模劃分: 類別 參與人數 開發時間、小型 10人以下 1-4個月、中型 10-100人 1年以下、大型 100人以上 1年
軟體測驗的概念:軟體測驗就是為了發現錯誤而執行程式的程序(狹義觀點),使用人工或自動的手段,來運行或測驗軟體系統的程序,目的是檢驗軟體系統是否滿足規定的需求,并找出與預期結果之間的差異,(標準定義IEEE )軟體測驗就是為了證明程式有錯,而不是證明程式無錯誤(辨證觀點) ,測驗被定義為“對軟體系統中潛在的各種風險進行評估的活動”,(風險觀點)軟體測驗就是“驗證(Verification)”和“有效性確認(Validation)”活動構成的整體,即軟體測驗V&V ,(標準觀點)要完整理解軟體測驗,就要從不同方面去審視軟體測驗,概括起來,軟體測驗就是貫穿整個軟體開發生命周期,對軟體產品(包括階段性產品)進行驗證和確認的活動程序,其目的是盡快盡早地發現在軟體的缺陷,
軟體測驗的物件: ① 源程式/目標代碼 ② 各開發階段的檔案(需求規格說明、概要設計說明、詳細設計說明及其它相關檔案)
軟體測驗的目的:從用戶角度看的目的:通過軟體測驗發現隱藏的錯誤和缺陷,考慮是否可以接受該產品,從開發者角度看的目的:表明軟體產品不存在錯誤,驗證軟體實作了所有用戶的要求,從測驗人員角度看的目的:發現錯誤,預測錯誤,提供軟體可靠性錯誤,對軟體做出評價, ① 幫助開發人員、測驗工程師發現問題、分析問題, ② 減少軟體的缺陷數目或者降低軟體缺陷的密度, ③ 提高軟體的可靠性 ④ 評估軟體的性能指標, ⑤ 增加用戶對軟體的信心, ⑥ 測驗的最終目的是盡快盡早地發現在軟體中的缺陷,通過修正各種錯誤和缺陷提高軟體質量,回避軟體發布后由于潛在的軟體缺陷和錯誤造成的隱患所帶來的商業風險,
軟體測驗的原則: ① 所有測驗的都應追溯到用戶需求, ② 應當把“盡早地和不斷地進行軟體測驗”作為軟體測驗者的座右銘, ③ 由于軟體的復雜性和抽象性,在軟體生命周期各個階段都可能產生錯誤,所以不應把軟體測驗僅僅看作是軟體開發的一個獨立階段的作業,而應當把它貫穿到軟體開發的各個階段中,在軟體開發的需求和設計階段就應開始測驗作業,撰寫相應的測驗檔案, ④ 完全測驗是不可能的,測驗需要終止, ⑤ 想要進行完全的測驗,在有限的時間和資源條件下,找出所有的軟體缺陷和錯誤 使軟體趨于完美是不可能的主要有三個原因: ① 輸入量太大; ② 輸出結果太多;③ 路徑組合太多, ⑥ 測驗無法顯示軟體潛在的缺陷:進行測驗是可以查找并報告發現的軟體缺陷和錯誤,但不能保證軟體缺陷和錯誤全部找到, ⑦ 充分注意集試中群集現象(二八定理):經驗表明,在所測驗程式段中,若發現的錯誤數目多,則殘存的錯誤數目也較多,缺陷的二八定理指的是,一般情況下,80%軟體缺陷出現在20%的功能區域,在測驗程序中,投入主要的人力和精力重點測驗這20%的功能區域, ⑧ 開發人員應避免檢查自己的程式:基于心理因素,揭露自己程式中的問題總不是一件愉快的事,不愿否認自己的作業;由于思維定勢,人們難于發現自己的錯誤,因此為達到測驗的目的,應由客觀、公正、嚴格的獨立的測驗部門或獨立的第三方測驗機構進行測驗, ⑨ 盡量避免測驗的隨意性:應從工程的角度理解測驗,它是有組織、有計劃、有步驟的活動,
軟體測驗誤區:誤區一:如果發布出去的軟體有質量問題,都是軟體測驗人員的錯,誤區二:軟體測驗技術要求不高,至少比編程容易多了,誤區三:有時間就多測驗一些,來不及就少測驗一些,誤區四:軟體測驗是測驗人員的事,與開發人員無關,誤區五:根據軟體開發瀑布模型,軟體測驗是開發后期的一個階段,
3、軟體測驗分類

單元測驗:
單元測驗又稱模塊測驗,針對軟體設計中的最小單位——程式模塊,進行正確性檢查的測驗作業,單元測驗需要從程式的內部結構出發設計測驗用例,多個模塊可以平行地獨立進行單元測驗,
單元定義:
C中指一個函式,Java中指一個類,在圖形化的軟體中,單元一般指1個視窗,1個選單,如何進行單元測驗:單元測驗主要用白盒測驗,先靜態地檢查代碼是否符合規范,然后動態運行代碼,檢查其實際運行結果,檢查程式的運行結果是否正確是一個最基本的要求,還要關注容錯處理,程式的邊界值處理等,
集成測驗:
集成測驗又叫組裝測驗,通常在單元測驗的基礎上,將所有程式模塊進行有序的、遞增的測驗,重點測驗不同模塊的介面部分,
系統測驗:
指將整個軟體系統看為一個整體進行測驗,包括對功能、性能、以及軟體所運行的軟硬體環境進行測驗,
驗收測驗:
驗收測驗指按照專案任務書或合同、供需雙方約定的驗收依據檔案進行的對整個系統的測驗與評審,決定是否接識訓拒收系統,在系統測驗的后期,以用戶測驗為主或有測驗人員等質量保證人員共同參與的測驗,
α測驗:指的是指的是由用戶,測驗人員、開發人員等共同參與的內部測驗,
β測驗:指的是內測后的公測,即完全交給最終用戶測驗驗收測驗的重要性:驗收簽字,收錢,

靜態測驗:指不實際運行被測軟體,而只是靜態地檢查程式代碼、界面和檔案中可能存在的錯誤的程序,
動態測驗:指實際運行被測程式,輸入相應的測驗資料,檢查實際輸出結果與預期結果是否相符,(動態測驗方法為結構和正確性測驗;動態測驗工具Robot、QTP等)
黑盒測驗:指的是把被測的軟體看做一個黑盒子,我們不關心盒子里面的結構是什么樣子的,只關心軟體的輸入資料和輸出
白盒測驗:指的是把盒子打來,去研究里面的源代碼和程式結構,軟體公司中,往往采用黑盒測驗&白盒測驗相結合的方式,
- 靜態黑盒測驗:看檔案,看頁面等
- 靜態白盒測驗:看源代碼等
- 動態黑盒測驗:使用軟體等
- 動態白盒測驗:運行源代碼等
灰盒測驗:是介于白盒測驗與黑盒測驗之間的一種測驗,灰盒測驗多用于集成測驗階段,不僅關注輸出、輸入的正確性,同時也關注程式內部的情況,
功能測驗:是黑盒測驗的一方面,它檢查實際軟體的功能是否符合用戶的需求,
邏輯功能測驗(functiontesting)
界面測驗(UItesting)
易用性測驗(usability testing)
安裝測驗(installationtesting)
兼容性測驗(compatibilitytesting)
性能測驗:是軟體測驗的高端領域,通常我們所說的高級軟體測驗工程師一般就是指性能測驗或是白盒測驗工程師,時間性能(事務回應時間等)空間性能(系統資源消耗)一般性能測驗可靠性測驗負載測驗壓力測驗
回歸測驗:指對軟體的新版本測驗時,重復執行上一個版本測驗時的用例,
冒煙測驗:是指在對一個新版本進行系統大規模的測驗之前,先驗證一下軟體的基本功能是否實作,是否具備可測驗性,
隨機測驗:是指測驗中所有的輸入資料都是隨機生成的,其目的是模擬用戶的真實操作,并發現一些邊緣性的錯誤,
軟體測驗的程序:從軟體開發的程序按階段劃分有:需求驗證、單元測驗、集成測驗、確認測驗、系統測驗、驗收測驗
4、白盒測驗用例設計方法
測驗用例(英文為TestCase,縮寫為TC):指的是在測驗執行之前設計的一套詳細的測驗方案,包括測驗環境、測驗步驟、測驗資料和預期結果,測驗用例可以針對黑盒測驗設計用例,也可以針對白盒測驗設計用例,撰寫測驗用例的唯一標準就是用戶需求,具體的參考資料是《需求規格說明書》,
設計測驗用例的原因:軟體測驗是一項有組織、有計劃、有步驟的活動,為了將軟體測驗的行為轉換為可管理的、具體量化的模式,需要創建和設計測驗用例,
測驗用例的四性:
代表性:能夠代表并覆寫各種合理的和不合理合法的和不合法的、邊界的和越界的以及極限的輸入資料、操作等,
針對性:對程式中的可能存在的錯誤有針對性地測驗,
可判定性:測驗執行結果的正確性是可判定的,每一個測驗用例都應有相應的期望結果,
可重現性:對同樣的測驗用例,系統的執行結果應當是相同的,
測驗用例的基本原則:
利用成熟的測驗用例設計方法來指導設計
測驗用例的針對性
測驗用例的代表性
測驗用例的可判定性
測驗用例的可重現性足夠詳細、準確和清晰的步驟
測驗用例必須符合內部的規范的要求
陳述句覆寫:陳述句覆寫就是設計若干個測驗用例,運行被測驗程式,使得每一條可執行陳述句至少執行一次;
判定覆寫(也稱為分支覆寫):設計若干個測驗用例運行所測程式使程式中每個判斷的取真分支和取假分支至少執行一次;
條件覆寫:設計足夠多的測驗用例,運行所測程式,使程式中每個判斷的每 條件覆寫設計足夠多的測驗用例 行所測程式使程式中每個判斷的每個條件的每個可能取值至少執行一次;
判定-條件覆寫:設計足夠多的測驗用例,運行所測程式,使程式中每個判斷的每個條件的所有可能取值至少執行一次,并且每個可能的判斷結果也至少執行一次,換句話說,即是要求各個判斷的所有可能的條件取值組合至少執行一次;
條件組合測驗:設計足夠多的測驗用例,運行所測程式,使程式中每個判斷的所有可能的條件取值組合至少執行一次;
路徑測驗:設計足夠多的測驗用例,運行所測程式,要覆寫程式中所有可能的路徑,
主要測驗技術:分支條件覆寫,基本路徑測驗
5、黑盒測驗用例設計方法
主要測驗技術:等價類劃分(邊界值分析),因果圖法,(正交實驗法)
6、缺陷管理軟體缺陷
軟體缺陷:
是指存在于軟體(程式、資料、檔案)中的那些不符合用戶需求的問題,
軟體缺陷的來源:
需求說明書:需求說明書的錯誤或不清楚引起的錯誤,是缺陷第一大的來源,
設計檔案:設計檔案描述不準確、以及與需求說明書不一致,是缺陷的第二大來源,
編碼:純粹是由編碼的問題引起,
其它:可能是系統集成、測驗引起,
軟體缺陷的根源:交流不充分(客戶與開發人員、開發人員與測驗人員等)軟體的復雜性(功能復雜、開發復雜、測驗復雜)開發人員的錯誤(對需求的理解、開發壓力、能力與經驗)需求的變化(需求說明書設計檔案 程式的變更)進度壓力(專案周期比較緊)
軟體缺陷的發現手段:同行評審、測驗、管理評審、QA發現、專案組內部發現、客戶反饋為了便于缺陷的定位、跟蹤和修改,要對所發現的缺陷,按照缺陷的嚴重程度、優先級、發現階段、修復階段、缺陷的性質、所屬功能模塊、系統環境等方面進行分類和統計,
二八定理:80%的軟體問題總是發生在大約20%的功能模塊中,
缺陷密度:基本的缺陷測量是以每千行代碼的缺陷數(個/KLOC)來測量的,其測量單位是defects/KLOC,
常見尋找bug的方法:色彩、功能結構布局、圖片、頁面大小、字體、表單大小、界面文字、容錯處理(也為功能缺陷,所謂容錯,就是容忍錯誤的能力,當用戶在使用軟體程序中發生錯誤后,軟體應該能給出引導資訊,指應用戶進行正確的操作)、資料轉換(增刪改查)、性能缺陷(黑盒測驗),
Web測驗:
Web測驗即測驗網站系統在不同客戶端(瀏覽器)的運行情況及兼容性,
Selenium:
Selenium是一個用于Web應用程式測驗的工具,Selenium測驗直接運行在瀏覽器中,就像真正的用戶在操作一樣,
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟體測驗】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測驗工程師們走過最艱難的路程,希望也能幫助到你!
在我的QQ技術交流群里(技術交流和資源共享,廣告勿擾)
可以自助拿走,群號:310357728群里的免費資料都是筆者十多年測驗生涯的精華,還有同行大神一起交流技術哦

如果對你有一點點幫助,各位的「點贊」就是小編創作的最大動力,我們下篇文章見!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297124.html
標籤:其他
