測試的核心技術

2021-07-04 21:40:51 字數 1724 閱讀 9865

測試這行的客觀規律總的來說是:入門容易,提公升難。 有些人幹測試8-9年了,其針對同乙個產品的測試思路和方法,與幹測試只有2-3年的人看不出有什麼區別。於是行業中有了一種誤區,認為測試技術的提公升主要集中在對效能測試工具的使用及指令碼開發,自動化測試開發,測試工具開發領域。僅個人愚見:測試工具開發和自動化測試開發 主要還是開發技術而不是測試技術,從沒有做過測試分析,測試設計的開發人員也能勝任。如果僅狹義地認為測試技術的發展只在自動化測試框架開發或測試工具開發上,那麼從邏輯上來說,任何乙個開發人員都可以成為測試技術大拿。當然我想:沒有人會真正這麼認為。

就其我的感受而言,開發工作有時反而會簡單一些。為什麼呢?開發工作的目標從一開始是非常明確的,要實現什麼要做什麼做到什麼程度大多數情況下都是清晰的,最大的困難則是如何實現如何做到,總的來說是乙個不斷聚焦的過程。而測試工作的目標呢?其實很多時候,並不如開發那麼明確,例如:同樣乙個效能指標,開發很清楚要通過實現xx演算法來達到目標;而測試則需要對該效能指標先進行測試分析,再進行測試設計,可是測試分析做到什麼程度卻是乙個發散的過程, 2小時也可以,2天也不夠,這就導致了測試質量的浮動範圍是非常大的,由於開發和專案經理通常對測試設計並不了解,也無法了解(測試其實是乙個專業度非常高的領域),因此會導致測試部的工作質量很難在過程中真正去度量和監督。

從哲學上來說:確定性的規律往往難度不大;不確定性的規律往往說明它是乙個複雜系統。因此,我個人認為:測試技術領域最難的技術應該是測試分析和設計。從另乙個角度來看,測試價值的體現最主要還是保障自己組織開發的軟體在關鍵應用時不要出故障,給組織造成商業損失。所以,有效的測試覆蓋率是最重要的測試工作目標(而不是自動化測試率),需要說明的是測試覆蓋率不等於**覆蓋率。通過單元測試達到**覆蓋率100%了就能保障產品無bug其實是乙個誤區,因為很多組織會為了達到單元覆蓋率而去開發單元測試**,單元測試**或單元測試設計的質量只能保障消除產品編碼的問題,發現產品設計的問題則往往會很困難。而發現產品設計問題的最主要方法還得需要基於黑盒的測試分析和設計。

如何做好測試分析和測試設計,根據我的經驗和體會,建議測試分析和測試設計主要通過3個維度來做,則可以大致達到乙個比較高的有效測試覆蓋率:

維度一:從使用者實際使用的場景和習慣入手,開發一批測試用例;

優點:  可以覆蓋到主要基本場景;

不足:  從事場景分析的人無法做到了解使用者所有的場景,必定受參與測試分析資源限制會有場景遺漏;

維度二:通過測試物件內部實現流程的路徑及依賴關係分析入手,開發一批測試用例;

優點:可填補維度一的部分遺漏場景,特別是異常處理和分支互動處理的場景;

不足:分析階段主要精力會被侷限在內部流程的熟悉和分析中,從而也會遺漏真實環境中的一些偶然小概率事件;

維度三:依賴基於經驗的測試分析和設計,例如:錯誤猜測法或探索性測試法;

優點: 給維度二再做一次補充測試分析和設計;

不足: 維度三效果的質量高低取決於組織內部經驗的積累量及測試人員思維的發散能力和創造性;

總得來說:無論是功能測試還是各種專項測試,依次使用以上3個維度的測試分析和設計,基本上能覆蓋到被測物件的絕大部分應用場景,充分保障產品質量,減少問題遺漏。

因此:測試的核心技術是測試分析和測試設計的能力,它決定了後續所有測試活動的質量及效果。同時,要做好乙個測試任務,掌握廣泛的測試型別也是必要的核心技術,如:如何給每個測試物件做細做深壓力測試,長時間測試,健壯性測試也是決定專案測試質量的關鍵所在。我本人不相信隨便做做的壓力測試設計和健壯性測試設計能夠保障產品實際應用表現良好。

測試活動的質量或者乙個測試工程師技術水平如何將主要取決於:測試分析和設計的深度及系統化,以及掌握廣泛的專項測試型別。

測試的核心技術是什麼?

談到核心技術,我曾經在 多工下的資料結構與演算法 中提過軟體的核心技術是軟體設計與資料結構演算法兩方面,那麼測試的核心技術是什麼呢?測試方面涉及到的技術非常多,有測試的管理技術,測試缺陷分析技術 測試用例設計技術 自動化測試工具.到底那個才是測試的核心技術呢?我認為測試用例設計技術和自動化測試工具才...

測試的核心技術是什麼?

談到核心技術,我曾經在 多工下的資料結構與演算法 中提過軟體的核心技術是軟體設計與資料結構演算法兩方面,那麼測試的核心技術是什麼呢?測試方面涉及到的技術非常多,有測試的管理技術,測試缺陷分析技術 測試用例設計技術 自動化測試工具.到底那個才是測試的核心技術呢?我認為測試用例設計技術和自動化測試工具才...

測試的核心技術是什麼?

談到核心技術,我曾經在 多工下的資料結構與演算法 中提過軟體的核心技術是軟體設計與資料結構演算法兩方面,那麼測試的核心技術是什麼呢?測試方面涉及到的技術非常多,有測試的管理技術,測試缺陷分析技術 測試用例設計技術 自動化測試工具.到底那個才是測試的核心技術呢?我認為測試用例設計技術和自動化測試工具才...