????????對青春最好的致敬就是成為最好的自己,成為最好的自己的前提就是不斷的學習!
????????下面是有關(guān)軟件測試技術(shù)相關(guān)知識:
1.軟件測試定義
????????冒煙測試:測試軟件版本中的主要功能是否能實現(xiàn)。
????????回歸測試:衰竭性測試,為了確保修改或增加的功能對原有功能沒有影響。
????????白盒測試:通過分析組件或系統(tǒng)的內(nèi)部結(jié)構(gòu)來進行測試,白盒測試用例分析方法主要包括語句覆蓋,條件覆蓋,分支覆蓋,條件/分支覆蓋,路徑覆蓋等;
????????黑盒測試:基于系統(tǒng)功能或規(guī)格說明書來設(shè)計或選擇設(shè)計用例的測試技術(shù),不涉及軟件內(nèi)部結(jié)構(gòu)。黑盒測試也可以基于代碼來實現(xiàn),函數(shù)級別黑盒測試。
????????單元測試:對單個軟件組件進行的測試。一般采用軟件測試驅(qū)動與樁的技術(shù)。
????????集成測試:暴露接口或者組件/系統(tǒng)間交互時存在缺陷的軟件測試方法,包括自上而下測試法,自下而上測試法,自上而下和自下而上混合(三明治)測試法。
????????系統(tǒng)測試:采用各種方法驗證軟件是否滿足產(chǎn)品顯性或者隱性需求。
????????驗收測試:由客戶/用戶或者是運維人員進行確認是否可以接受一個系統(tǒng)的驗證性軟件測試,包括Alpha測試和Beta測試。
????????Alpha測試:由客戶或者軟件測試團隊在開發(fā)環(huán)境或者實際操作環(huán)境下進行的測試,是對現(xiàn)貨軟件進行內(nèi)部測試的一種方式;
????????Beta測試:在沒有開發(fā)工程師的參與下的軟件測試,對現(xiàn)貨軟件進行外部驗收測試。
????????靜態(tài)測試:對組件或系統(tǒng)進行規(guī)格或?qū)崿F(xiàn)級別的測試,但不執(zhí)行這個軟件。
????????動態(tài)測試:通過運行軟件的組件或系統(tǒng)來測試軟件。
2.軟件工程模型
????????瀑布模型:計劃→需求分析→設(shè)計→編碼→測試→運行維護。缺點:需求在時刻變化,但模型不可以反復;只有在編碼結(jié)束階段,軟件測試工程師才可介入進行軟件測試,但在項目初期很難提出明確的項目需求。
????????迭代模型和螺旋模型:從最開始的分析、設(shè)計、編碼、測試,然后進行下一輪迭代。主要有RUP模型、快速開發(fā)模型、敏捷開發(fā)等。
3.軟件測試模型
????????V模型:單元測試→編碼、集成測試→詳細設(shè)計、系統(tǒng)測試→概要設(shè)計、驗收測試→需求。
????????W模型:主要提倡軟件前置測試,及軟件測試需貫穿軟件測試的始終。
????????X模型:將軟件系統(tǒng)分為若干模塊,對每個模塊進行單元、集成、以及系統(tǒng)測試,然后再統(tǒng)一對模塊進行集成測試。
4.軟件測試步驟
????????測試計劃→測試分析→測試設(shè)計→測試實施→測試執(zhí)行→評估出口準則和報告→測試結(jié)束
5.軟件缺陷管理
????????缺陷嚴重等級:blocker(阻礙的)、critical(緊急的)、major(重大的)、normal(普通的)、minor(較小的)、trivial(外觀的)、enhancement(改進的)。
????????缺陷修改優(yōu)先級:P5,P4,P3,P2,P1。
6.測試用例
????????測試用例格式
????????編號“固定的開始字符”+“模塊名”+“3位0~9的數(shù)字”
????????前置條件完成此項測試需要達到的前提條件
????????說明測試項目的描述
7.軟件測試類型
????????功能測試:核實數(shù)據(jù)接收、處理、檢索是否正確。
????????易用性測試:用戶體驗性測試,在指定條件下使用時,軟件產(chǎn)品被理解、學習、使用和吸引用戶的能力。
????????可靠性測試:對軟件成熟度在時間上的統(tǒng)計度量指標進行監(jiān)控并與既定目標比較??煽啃缘娜齻€指標:平均失效時間間隔(MTBF)=平均修復時間(MTTR)+平均失效前時間(MTTF),可靠性指標= MTTR/ MTBF。
????????性能測試包括:基本性能測試,正常情況下軟件的響應(yīng)速度;負載測試(LOAD測試),通過增加負載來評估組件或系統(tǒng)性能;壓力測試:評估系統(tǒng)處于一定的負載下,運行一段時間后,觀察系統(tǒng)各項指標是否正常。
????????安全性測試:功能安全性;信息安全性(與用戶接口相關(guān)、與文件系統(tǒng)相關(guān)、與操作系統(tǒng)相關(guān)、與外部軟件相關(guān)),軟件產(chǎn)品保護信息和數(shù)據(jù)的能力。[黑客侵入、XSS注入、SQL注入]
????????相容性測試:兼容性測試,軟件產(chǎn)品或應(yīng)用程序在各種指定的目標環(huán)境下是否可以正常工作。主要包括硬件、軟件、中間件、操作系統(tǒng)、其他。
????????可移植性測試:第一次建立或者從現(xiàn)有環(huán)境移植到另一個環(huán)境。包括可安裝性測試、適應(yīng)性測試、可替換性測試。
????????可維護性測試:軟件產(chǎn)品可被修改的能力,包括糾正、改進或者軟件對環(huán)境、需求和規(guī)格說明變化的使用能力。
????????數(shù)據(jù)和數(shù)據(jù)庫完整性測試:數(shù)據(jù)或者數(shù)據(jù)庫進行應(yīng)該作為一個完整的子系統(tǒng)進行測試。
????????本地化測試:為各個地方開發(fā)軟件產(chǎn)品的測試。
????????文字測試:測試文字是否拼寫正確、是否易懂、不存在二義性、沒有語法錯誤;文字與內(nèi)容是否有出入等。
????????發(fā)布測試:產(chǎn)品在發(fā)布前對一些附帶產(chǎn)品,如說明書、廣告稿等進行測試。
8.軟件測試曲線與軟件的殺蟲劑現(xiàn)象
? ? ? ? 要避免軟件測試不夠或者軟件測試過度。為避免殺蟲劑現(xiàn)象,每次應(yīng)該輪流測試,最好安排不同的工程師進行不同模塊的測試。
9.軟件測試的七項基本原則
????????軟件測試顯示存在缺陷,但不能證明軟件不存在缺陷。
????????Good enough原則,測試既不要不充分也不要過分。
????????軟件測試盡早介入。
????????缺陷集群性,即80%的缺陷發(fā)生在20%的模塊中。
????????殺蟲劑悖論,為克服劑悖論,測試用例需定時評審與修改,需不斷增加新的不同的測試用例。
????????軟件測試活動依賴于軟件測試背景。
????????不存在缺陷(有用系統(tǒng))的謬論,假如系統(tǒng)無法使用或者不滿足客戶需求,發(fā)現(xiàn)和修改缺陷沒有意義。
10.驗證與確認的區(qū)別
????????驗證:通過檢查和提供客觀證據(jù),來證實指定的需求是否已經(jīng)滿足。
????????確認:通過檢查和提供客觀證據(jù),來證實特地的目的功能或應(yīng)用已經(jīng)實現(xiàn)。